{
  "name": "yandex",
  "version": "0.13.0",
  "description": "A Pulumi package for creating and managing yandex cloud resources.",
  "keywords": [
    "pulumi",
    "yandex"
  ],
  "homepage": "https://pulumi.io",
  "license": "Apache-2.0",
  "attribution": "This Pulumi package is based on the [`yandex` Terraform Provider](https://github.com/yandex-cloud/terraform-provider-yandex).",
  "repository": "https://github.com/pulumi/pulumi-yandex",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "compatibility": "tfbridge20",
      "namespaces": null,
      "packageReferences": {
        "Pulumi": "3.*"
      }
    },
    "go": {
      "generateExtraInputTypes": true,
      "generateResourceContainerTypes": true,
      "importBasePath": "github.com/pulumi/pulumi-yandex/sdk/go/yandex"
    },
    "nodejs": {
      "compatibility": "tfbridge20",
      "dependencies": {
        "@pulumi/pulumi": "^3.0.0"
      },
      "devDependencies": {
        "@types/mime": "^2.0.0",
        "@types/node": "^10.0.0"
      },
      "disableUnionOutputTypes": true,
      "packageDescription": "A Pulumi package for creating and managing yandex cloud resources.",
      "packageName": "",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/yandex-cloud/terraform-provider-yandex)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi/pulumi-yandex` repo](https://github.com/pulumi/pulumi-yandex/issues); however, if that doesn't turn up anything,\n> please consult the source [`yandex-cloud/terraform-provider-yandex` repo](https://github.com/yandex-cloud/terraform-provider-yandex/issues).",
      "typescriptVersion": ""
    },
    "python": {
      "compatibility": "tfbridge20",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/yandex-cloud/terraform-provider-yandex)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi/pulumi-yandex` repo](https://github.com/pulumi/pulumi-yandex/issues); however, if that doesn't turn up anything,\n> please consult the source [`yandex-cloud/terraform-provider-yandex` repo](https://github.com/yandex-cloud/terraform-provider-yandex/issues).",
      "requires": {
        "pulumi": ">=3.0.0,<4.0.0"
      }
    }
  },
  "config": {
    "variables": {
      "cloudId": {
        "type": "string",
        "description": "ID of Yandex.Cloud tenant.\n"
      },
      "endpoint": {
        "type": "string",
        "description": "The API endpoint for Yandex.Cloud SDK client.\n"
      },
      "folderId": {
        "type": "string",
        "description": "The default folder ID where resources will be placed.\n"
      },
      "insecure": {
        "type": "boolean",
        "description": "Explicitly allow the provider to perform \"insecure\" SSL requests. If omitted,default value is `false`.\n"
      },
      "maxRetries": {
        "type": "integer",
        "description": "The maximum number of times an API request is being executed. If the API request still fails, an error is thrown.\n"
      },
      "organizationId": {
        "type": "string"
      },
      "plaintext": {
        "type": "boolean",
        "description": "Disable use of TLS. Default value is `false`.\n"
      },
      "serviceAccountKeyFile": {
        "type": "string",
        "description": "Either the path to or the contents of a Service Account key file in JSON format.\n"
      },
      "storageAccessKey": {
        "type": "string",
        "description": "Yandex.Cloud storage service access key. Used when a storage data/resource doesn't have an access key explicitly\nspecified.\n"
      },
      "storageEndpoint": {
        "type": "string",
        "description": "Yandex.Cloud storage service endpoint. Default is storage.yandexcloud.net\n"
      },
      "storageSecretKey": {
        "type": "string",
        "description": "Yandex.Cloud storage service secret key. Used when a storage data/resource doesn't have a secret key explicitly\nspecified.\n"
      },
      "token": {
        "type": "string",
        "description": "The access token for API operations.\n"
      },
      "ymqAccessKey": {
        "type": "string",
        "description": "Yandex.Cloud Message Queue service access key. Used when a message queue resource doesn't have an access key explicitly\nspecified.\n"
      },
      "ymqEndpoint": {
        "type": "string",
        "description": "Yandex.Cloud Message Queue service endpoint. Default is message-queue.api.cloud.yandex.net\n"
      },
      "ymqSecretKey": {
        "type": "string",
        "description": "Yandex.Cloud Message Queue service secret key. Used when a message queue resource doesn't have a secret key explicitly\nspecified.\n"
      },
      "zone": {
        "type": "string",
        "description": "The zone where operations will take place. Examples are ru-central1-a, ru-central2-c, etc.\n"
      }
    }
  },
  "types": {
    "yandex:index/AlbBackendGroupGrpcBackend:AlbBackendGroupGrpcBackend": {
      "properties": {
        "healthcheck": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupGrpcBackendHealthcheck:AlbBackendGroupGrpcBackendHealthcheck",
          "description": "Healthcheck specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "loadBalancingConfig": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupGrpcBackendLoadBalancingConfig:AlbBackendGroupGrpcBackendLoadBalancingConfig",
          "description": "Load Balancing Config specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the backend.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for incoming traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "References target groups for the backend.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tls": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupGrpcBackendTls:AlbBackendGroupGrpcBackendTls",
          "description": "Tls specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "weight": {
          "type": "integer",
          "description": "Weight of the backend. Traffic will be split between backends of the same BackendGroup according to their weights.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "targetGroupIds"
      ]
    },
    "yandex:index/AlbBackendGroupGrpcBackendHealthcheck:AlbBackendGroupGrpcBackendHealthcheck": {
      "properties": {
        "grpcHealthcheck": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupGrpcBackendHealthcheckGrpcHealthcheck:AlbBackendGroupGrpcBackendHealthcheckGrpcHealthcheck",
          "description": "Grpc Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "healthcheckPort": {
          "type": "integer",
          "description": "Optional alternative port for health checking.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "healthyThreshold": {
          "type": "integer",
          "description": "Number of consecutive successful health checks required to promote endpoint into the healthy state. 0 means 1. Note that during startup, only a single successful health check is required to mark a host healthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpHealthcheck": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupGrpcBackendHealthcheckHttpHealthcheck:AlbBackendGroupGrpcBackendHealthcheckHttpHealthcheck",
          "description": "Http Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interval": {
          "type": "string",
          "description": "Interval between health checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "intervalJitterPercent": {
          "type": "number",
          "description": "An optional jitter amount as a percentage of interval. If specified, during every interval value of (interval_ms * interval_jitter_percent / 100) will be added to the wait time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "streamHealthcheck": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupGrpcBackendHealthcheckStreamHealthcheck:AlbBackendGroupGrpcBackendHealthcheckStreamHealthcheck",
          "description": "Stream Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "string",
          "description": "Time to wait for a health check response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unhealthyThreshold": {
          "type": "integer",
          "description": "Number of consecutive failed health checks required to demote endpoint into the unhealthy state. 0 means 1. Note that for HTTP health checks, a single 503 immediately makes endpoint unhealthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "interval",
        "timeout"
      ]
    },
    "yandex:index/AlbBackendGroupGrpcBackendHealthcheckGrpcHealthcheck:AlbBackendGroupGrpcBackendHealthcheckGrpcHealthcheck": {
      "properties": {
        "serviceName": {
          "type": "string",
          "description": "Service name for grpc.health.v1.HealthCheckRequest message.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupGrpcBackendHealthcheckHttpHealthcheck:AlbBackendGroupGrpcBackendHealthcheckHttpHealthcheck": {
      "properties": {
        "host": {
          "type": "string",
          "description": "\"Host\" HTTP header value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2": {
          "type": "boolean",
          "description": "If set, health checks will use HTTP2.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "path": {
          "type": "string",
          "description": "HTTP path.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "path"
      ]
    },
    "yandex:index/AlbBackendGroupGrpcBackendHealthcheckStreamHealthcheck:AlbBackendGroupGrpcBackendHealthcheckStreamHealthcheck": {
      "properties": {
        "receive": {
          "type": "string",
          "description": "Text to search in reply.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "send": {
          "type": "string",
          "description": "Message to send. If empty, it's a connect-only health check.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupGrpcBackendLoadBalancingConfig:AlbBackendGroupGrpcBackendLoadBalancingConfig": {
      "properties": {
        "localityAwareRoutingPercent": {
          "type": "integer",
          "description": "Percent of traffic to be sent to the same availability zone. The rest will be equally divided between other zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "panicThreshold": {
          "type": "integer",
          "description": "If percentage of healthy hosts in the backend is lower than panic_threshold, traffic will be routed to all backends no matter what the health status is. This helps to avoid healthy backends overloading  when everything is bad. Zero means no panic threshold.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "strictLocality": {
          "type": "boolean",
          "description": "If set, will route requests only to the same availability zone. Balancer won't know about endpoints in other zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupGrpcBackendTls:AlbBackendGroupGrpcBackendTls": {
      "properties": {
        "sni": {
          "type": "string",
          "description": "[SNI](https://en.wikipedia.org/wiki/Server_Name_Indication) string for TLS connections.\n* `validation_context.0.trusted_ca_id` - (Optional) Trusted CA certificate ID in the Certificate Manager.\n* `validation_context.0.trusted_ca_bytes` - (Optional) PEM-encoded trusted CA certificate chain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "validationContext": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupGrpcBackendTlsValidationContext:AlbBackendGroupGrpcBackendTlsValidationContext",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupGrpcBackendTlsValidationContext:AlbBackendGroupGrpcBackendTlsValidationContext": {
      "properties": {
        "trustedCaBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "trustedCaId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupHttpBackend:AlbBackendGroupHttpBackend": {
      "properties": {
        "healthcheck": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupHttpBackendHealthcheck:AlbBackendGroupHttpBackendHealthcheck",
          "description": "Healthcheck specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2": {
          "type": "boolean",
          "description": "If set, health checks will use HTTP2.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "loadBalancingConfig": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupHttpBackendLoadBalancingConfig:AlbBackendGroupHttpBackendLoadBalancingConfig",
          "description": "Load Balancing Config specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the backend.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for incoming traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "References target groups for the backend.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tls": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupHttpBackendTls:AlbBackendGroupHttpBackendTls",
          "description": "Tls specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "weight": {
          "type": "integer",
          "description": "Weight of the backend. Traffic will be split between backends of the same BackendGroup according to their weights.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "targetGroupIds"
      ]
    },
    "yandex:index/AlbBackendGroupHttpBackendHealthcheck:AlbBackendGroupHttpBackendHealthcheck": {
      "properties": {
        "grpcHealthcheck": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupHttpBackendHealthcheckGrpcHealthcheck:AlbBackendGroupHttpBackendHealthcheckGrpcHealthcheck",
          "description": "Grpc Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "healthcheckPort": {
          "type": "integer",
          "description": "Optional alternative port for health checking.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "healthyThreshold": {
          "type": "integer",
          "description": "Number of consecutive successful health checks required to promote endpoint into the healthy state. 0 means 1. Note that during startup, only a single successful health check is required to mark a host healthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpHealthcheck": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupHttpBackendHealthcheckHttpHealthcheck:AlbBackendGroupHttpBackendHealthcheckHttpHealthcheck",
          "description": "Http Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interval": {
          "type": "string",
          "description": "Interval between health checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "intervalJitterPercent": {
          "type": "number",
          "description": "An optional jitter amount as a percentage of interval. If specified, during every interval value of (interval_ms * interval_jitter_percent / 100) will be added to the wait time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "streamHealthcheck": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupHttpBackendHealthcheckStreamHealthcheck:AlbBackendGroupHttpBackendHealthcheckStreamHealthcheck",
          "description": "Stream Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "string",
          "description": "Time to wait for a health check response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unhealthyThreshold": {
          "type": "integer",
          "description": "Number of consecutive failed health checks required to demote endpoint into the unhealthy state. 0 means 1. Note that for HTTP health checks, a single 503 immediately makes endpoint unhealthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "interval",
        "timeout"
      ]
    },
    "yandex:index/AlbBackendGroupHttpBackendHealthcheckGrpcHealthcheck:AlbBackendGroupHttpBackendHealthcheckGrpcHealthcheck": {
      "properties": {
        "serviceName": {
          "type": "string",
          "description": "Service name for grpc.health.v1.HealthCheckRequest message.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupHttpBackendHealthcheckHttpHealthcheck:AlbBackendGroupHttpBackendHealthcheckHttpHealthcheck": {
      "properties": {
        "host": {
          "type": "string",
          "description": "\"Host\" HTTP header value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2": {
          "type": "boolean",
          "description": "If set, health checks will use HTTP2.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "path": {
          "type": "string",
          "description": "HTTP path.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "path"
      ]
    },
    "yandex:index/AlbBackendGroupHttpBackendHealthcheckStreamHealthcheck:AlbBackendGroupHttpBackendHealthcheckStreamHealthcheck": {
      "properties": {
        "receive": {
          "type": "string",
          "description": "Text to search in reply.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "send": {
          "type": "string",
          "description": "Message to send. If empty, it's a connect-only health check.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupHttpBackendLoadBalancingConfig:AlbBackendGroupHttpBackendLoadBalancingConfig": {
      "properties": {
        "localityAwareRoutingPercent": {
          "type": "integer",
          "description": "Percent of traffic to be sent to the same availability zone. The rest will be equally divided between other zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "panicThreshold": {
          "type": "integer",
          "description": "If percentage of healthy hosts in the backend is lower than panic_threshold, traffic will be routed to all backends no matter what the health status is. This helps to avoid healthy backends overloading  when everything is bad. Zero means no panic threshold.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "strictLocality": {
          "type": "boolean",
          "description": "If set, will route requests only to the same availability zone. Balancer won't know about endpoints in other zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupHttpBackendTls:AlbBackendGroupHttpBackendTls": {
      "properties": {
        "sni": {
          "type": "string",
          "description": "[SNI](https://en.wikipedia.org/wiki/Server_Name_Indication) string for TLS connections.\n* `validation_context.0.trusted_ca_id` - (Optional) Trusted CA certificate ID in the Certificate Manager.\n* `validation_context.0.trusted_ca_bytes` - (Optional) PEM-encoded trusted CA certificate chain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "validationContext": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupHttpBackendTlsValidationContext:AlbBackendGroupHttpBackendTlsValidationContext",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupHttpBackendTlsValidationContext:AlbBackendGroupHttpBackendTlsValidationContext": {
      "properties": {
        "trustedCaBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "trustedCaId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupStreamBackend:AlbBackendGroupStreamBackend": {
      "properties": {
        "healthcheck": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupStreamBackendHealthcheck:AlbBackendGroupStreamBackendHealthcheck",
          "description": "Healthcheck specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "loadBalancingConfig": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupStreamBackendLoadBalancingConfig:AlbBackendGroupStreamBackendLoadBalancingConfig",
          "description": "Load Balancing Config specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the backend.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for incoming traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "References target groups for the backend.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tls": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupStreamBackendTls:AlbBackendGroupStreamBackendTls",
          "description": "Tls specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "weight": {
          "type": "integer",
          "description": "Weight of the backend. Traffic will be split between backends of the same BackendGroup according to their weights.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "targetGroupIds"
      ]
    },
    "yandex:index/AlbBackendGroupStreamBackendHealthcheck:AlbBackendGroupStreamBackendHealthcheck": {
      "properties": {
        "grpcHealthcheck": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupStreamBackendHealthcheckGrpcHealthcheck:AlbBackendGroupStreamBackendHealthcheckGrpcHealthcheck",
          "description": "Grpc Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "healthcheckPort": {
          "type": "integer",
          "description": "Optional alternative port for health checking.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "healthyThreshold": {
          "type": "integer",
          "description": "Number of consecutive successful health checks required to promote endpoint into the healthy state. 0 means 1. Note that during startup, only a single successful health check is required to mark a host healthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpHealthcheck": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupStreamBackendHealthcheckHttpHealthcheck:AlbBackendGroupStreamBackendHealthcheckHttpHealthcheck",
          "description": "Http Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interval": {
          "type": "string",
          "description": "Interval between health checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "intervalJitterPercent": {
          "type": "number",
          "description": "An optional jitter amount as a percentage of interval. If specified, during every interval value of (interval_ms * interval_jitter_percent / 100) will be added to the wait time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "streamHealthcheck": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupStreamBackendHealthcheckStreamHealthcheck:AlbBackendGroupStreamBackendHealthcheckStreamHealthcheck",
          "description": "Stream Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "string",
          "description": "Time to wait for a health check response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unhealthyThreshold": {
          "type": "integer",
          "description": "Number of consecutive failed health checks required to demote endpoint into the unhealthy state. 0 means 1. Note that for HTTP health checks, a single 503 immediately makes endpoint unhealthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "interval",
        "timeout"
      ]
    },
    "yandex:index/AlbBackendGroupStreamBackendHealthcheckGrpcHealthcheck:AlbBackendGroupStreamBackendHealthcheckGrpcHealthcheck": {
      "properties": {
        "serviceName": {
          "type": "string",
          "description": "Service name for grpc.health.v1.HealthCheckRequest message.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupStreamBackendHealthcheckHttpHealthcheck:AlbBackendGroupStreamBackendHealthcheckHttpHealthcheck": {
      "properties": {
        "host": {
          "type": "string",
          "description": "\"Host\" HTTP header value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2": {
          "type": "boolean",
          "description": "If set, health checks will use HTTP2.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "path": {
          "type": "string",
          "description": "HTTP path.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "path"
      ]
    },
    "yandex:index/AlbBackendGroupStreamBackendHealthcheckStreamHealthcheck:AlbBackendGroupStreamBackendHealthcheckStreamHealthcheck": {
      "properties": {
        "receive": {
          "type": "string",
          "description": "Text to search in reply.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "send": {
          "type": "string",
          "description": "Message to send. If empty, it's a connect-only health check.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupStreamBackendLoadBalancingConfig:AlbBackendGroupStreamBackendLoadBalancingConfig": {
      "properties": {
        "localityAwareRoutingPercent": {
          "type": "integer",
          "description": "Percent of traffic to be sent to the same availability zone. The rest will be equally divided between other zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "panicThreshold": {
          "type": "integer",
          "description": "If percentage of healthy hosts in the backend is lower than panic_threshold, traffic will be routed to all backends no matter what the health status is. This helps to avoid healthy backends overloading  when everything is bad. Zero means no panic threshold.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "strictLocality": {
          "type": "boolean",
          "description": "If set, will route requests only to the same availability zone. Balancer won't know about endpoints in other zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupStreamBackendTls:AlbBackendGroupStreamBackendTls": {
      "properties": {
        "sni": {
          "type": "string",
          "description": "[SNI](https://en.wikipedia.org/wiki/Server_Name_Indication) string for TLS connections.\n* `validation_context.0.trusted_ca_id` - (Optional) Trusted CA certificate ID in the Certificate Manager.\n* `validation_context.0.trusted_ca_bytes` - (Optional) PEM-encoded trusted CA certificate chain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "validationContext": {
          "$ref": "#/types/yandex:index%2FAlbBackendGroupStreamBackendTlsValidationContext:AlbBackendGroupStreamBackendTlsValidationContext",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbBackendGroupStreamBackendTlsValidationContext:AlbBackendGroupStreamBackendTlsValidationContext": {
      "properties": {
        "trustedCaBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "trustedCaId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbLoadBalancerAllocationPolicy:AlbLoadBalancerAllocationPolicy": {
      "properties": {
        "locations": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbLoadBalancerAllocationPolicyLocation:AlbLoadBalancerAllocationPolicyLocation"
          },
          "description": "Unique set of locations. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "locations"
      ]
    },
    "yandex:index/AlbLoadBalancerAllocationPolicyLocation:AlbLoadBalancerAllocationPolicyLocation": {
      "properties": {
        "disableTraffic": {
          "type": "boolean",
          "description": "If set, will disable all L7 instances in the zone for request handling.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "Provided by the client or computed automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneId": {
          "type": "string",
          "description": "ID of the zone that location is located at.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "subnetId",
        "zoneId"
      ]
    },
    "yandex:index/AlbLoadBalancerListener:AlbLoadBalancerListener": {
      "properties": {
        "endpoints": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerEndpoint:AlbLoadBalancerListenerEndpoint"
          },
          "description": "Network endpoints (addresses and ports) of the listener. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerHttp:AlbLoadBalancerListenerHttp",
          "description": "HTTP listener resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "name of SNI match.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "stream": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerStream:AlbLoadBalancerListenerStream",
          "description": "Stream listener resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tls": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerTls:AlbLoadBalancerListenerTls",
          "description": "TLS listener resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "yandex:index/AlbLoadBalancerListenerEndpoint:AlbLoadBalancerListenerEndpoint": {
      "properties": {
        "addresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerEndpointAddress:AlbLoadBalancerListenerEndpointAddress"
          },
          "description": "Provided by the client or computed automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ports": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "description": "One or more ports to listen on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "addresses",
        "ports"
      ]
    },
    "yandex:index/AlbLoadBalancerListenerEndpointAddress:AlbLoadBalancerListenerEndpointAddress": {
      "properties": {
        "externalIpv4Address": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerEndpointAddressExternalIpv4Address:AlbLoadBalancerListenerEndpointAddressExternalIpv4Address",
          "description": "External IPv4 address. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "externalIpv6Address": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerEndpointAddressExternalIpv6Address:AlbLoadBalancerListenerEndpointAddressExternalIpv6Address",
          "description": "External IPv6 address. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "internalIpv4Address": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerEndpointAddressInternalIpv4Address:AlbLoadBalancerListenerEndpointAddressInternalIpv4Address",
          "description": "Internal IPv4 address. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbLoadBalancerListenerEndpointAddressExternalIpv4Address:AlbLoadBalancerListenerEndpointAddressExternalIpv4Address": {
      "properties": {
        "address": {
          "type": "string",
          "description": "Provided by the client or computed automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "address"
          ]
        }
      }
    },
    "yandex:index/AlbLoadBalancerListenerEndpointAddressExternalIpv6Address:AlbLoadBalancerListenerEndpointAddressExternalIpv6Address": {
      "properties": {
        "address": {
          "type": "string",
          "description": "Provided by the client or computed automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "address"
          ]
        }
      }
    },
    "yandex:index/AlbLoadBalancerListenerEndpointAddressInternalIpv4Address:AlbLoadBalancerListenerEndpointAddressInternalIpv4Address": {
      "properties": {
        "address": {
          "type": "string",
          "description": "Provided by the client or computed automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "Provided by the client or computed automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "address",
            "subnetId"
          ]
        }
      }
    },
    "yandex:index/AlbLoadBalancerListenerHttp:AlbLoadBalancerListenerHttp": {
      "properties": {
        "handler": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerHttpHandler:AlbLoadBalancerListenerHttpHandler",
          "description": "HTTP handler that sets plaintext HTTP router. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "redirects": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerHttpRedirects:AlbLoadBalancerListenerHttpRedirects",
          "description": "Shortcut for adding http > https redirects. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbLoadBalancerListenerHttpHandler:AlbLoadBalancerListenerHttpHandler": {
      "properties": {
        "allowHttp10": {
          "type": "boolean",
          "description": "If set, will enable only HTTP1 protocol with HTTP1.0 support.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2Options": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerHttpHandlerHttp2Options:AlbLoadBalancerListenerHttpHandlerHttp2Options",
          "description": "If set, will enable HTTP2 protocol for the handler. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpRouterId": {
          "type": "string",
          "description": "HTTP router id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbLoadBalancerListenerHttpHandlerHttp2Options:AlbLoadBalancerListenerHttpHandlerHttp2Options": {
      "properties": {
        "maxConcurrentStreams": {
          "type": "integer",
          "description": "Maximum number of concurrent streams.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbLoadBalancerListenerHttpRedirects:AlbLoadBalancerListenerHttpRedirects": {
      "properties": {
        "httpToHttps": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbLoadBalancerListenerStream:AlbLoadBalancerListenerStream": {
      "properties": {
        "handler": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerStreamHandler:AlbLoadBalancerListenerStreamHandler",
          "description": "HTTP handler that sets plaintext HTTP router. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbLoadBalancerListenerStreamHandler:AlbLoadBalancerListenerStreamHandler": {
      "properties": {
        "backendGroupId": {
          "type": "string",
          "description": "Backend group id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbLoadBalancerListenerTls:AlbLoadBalancerListenerTls": {
      "properties": {
        "defaultHandler": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerTlsDefaultHandler:AlbLoadBalancerListenerTlsDefaultHandler",
          "description": "TLS handler resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sniHandlers": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerTlsSniHandler:AlbLoadBalancerListenerTlsSniHandler"
          },
          "description": "SNI match resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "defaultHandler"
      ]
    },
    "yandex:index/AlbLoadBalancerListenerTlsDefaultHandler:AlbLoadBalancerListenerTlsDefaultHandler": {
      "properties": {
        "certificateIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Certificate IDs in the Certificate Manager. Multiple TLS certificates can be associated\nwith the same context to allow both RSA and ECDSA certificates. Only the first certificate of each type will be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpHandler": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerTlsDefaultHandlerHttpHandler:AlbLoadBalancerListenerTlsDefaultHandlerHttpHandler",
          "description": "HTTP handler resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "streamHandler": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerTlsDefaultHandlerStreamHandler:AlbLoadBalancerListenerTlsDefaultHandlerStreamHandler",
          "description": "Stream handler resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "certificateIds"
      ]
    },
    "yandex:index/AlbLoadBalancerListenerTlsDefaultHandlerHttpHandler:AlbLoadBalancerListenerTlsDefaultHandlerHttpHandler": {
      "properties": {
        "allowHttp10": {
          "type": "boolean",
          "description": "If set, will enable only HTTP1 protocol with HTTP1.0 support.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2Options": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerTlsDefaultHandlerHttpHandlerHttp2Options:AlbLoadBalancerListenerTlsDefaultHandlerHttpHandlerHttp2Options",
          "description": "If set, will enable HTTP2 protocol for the handler. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpRouterId": {
          "type": "string",
          "description": "HTTP router id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbLoadBalancerListenerTlsDefaultHandlerHttpHandlerHttp2Options:AlbLoadBalancerListenerTlsDefaultHandlerHttpHandlerHttp2Options": {
      "properties": {
        "maxConcurrentStreams": {
          "type": "integer",
          "description": "Maximum number of concurrent streams.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbLoadBalancerListenerTlsDefaultHandlerStreamHandler:AlbLoadBalancerListenerTlsDefaultHandlerStreamHandler": {
      "properties": {
        "backendGroupId": {
          "type": "string",
          "description": "Backend group id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbLoadBalancerListenerTlsSniHandler:AlbLoadBalancerListenerTlsSniHandler": {
      "properties": {
        "handler": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerTlsSniHandlerHandler:AlbLoadBalancerListenerTlsSniHandlerHandler",
          "description": "HTTP handler that sets plaintext HTTP router. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "name of SNI match.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serverNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of server names.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "handler",
        "name",
        "serverNames"
      ]
    },
    "yandex:index/AlbLoadBalancerListenerTlsSniHandlerHandler:AlbLoadBalancerListenerTlsSniHandlerHandler": {
      "properties": {
        "certificateIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Certificate IDs in the Certificate Manager. Multiple TLS certificates can be associated\nwith the same context to allow both RSA and ECDSA certificates. Only the first certificate of each type will be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpHandler": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerTlsSniHandlerHandlerHttpHandler:AlbLoadBalancerListenerTlsSniHandlerHandlerHttpHandler",
          "description": "HTTP handler resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "streamHandler": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerTlsSniHandlerHandlerStreamHandler:AlbLoadBalancerListenerTlsSniHandlerHandlerStreamHandler",
          "description": "Stream handler resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "certificateIds"
      ]
    },
    "yandex:index/AlbLoadBalancerListenerTlsSniHandlerHandlerHttpHandler:AlbLoadBalancerListenerTlsSniHandlerHandlerHttpHandler": {
      "properties": {
        "allowHttp10": {
          "type": "boolean",
          "description": "If set, will enable only HTTP1 protocol with HTTP1.0 support.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2Options": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerListenerTlsSniHandlerHandlerHttpHandlerHttp2Options:AlbLoadBalancerListenerTlsSniHandlerHandlerHttpHandlerHttp2Options",
          "description": "If set, will enable HTTP2 protocol for the handler. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpRouterId": {
          "type": "string",
          "description": "HTTP router id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbLoadBalancerListenerTlsSniHandlerHandlerHttpHandlerHttp2Options:AlbLoadBalancerListenerTlsSniHandlerHandlerHttpHandlerHttp2Options": {
      "properties": {
        "maxConcurrentStreams": {
          "type": "integer",
          "description": "Maximum number of concurrent streams.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbLoadBalancerListenerTlsSniHandlerHandlerStreamHandler:AlbLoadBalancerListenerTlsSniHandlerHandlerStreamHandler": {
      "properties": {
        "backendGroupId": {
          "type": "string",
          "description": "Backend group id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbTargetGroupTarget:AlbTargetGroupTarget": {
      "properties": {
        "ipAddress": {
          "type": "string",
          "description": "IP address of the target.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "privateIpv4Address": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "ID of the subnet that targets are connected to.\nAll targets in the target group must be connected to the same subnet within a single availability zone.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "ipAddress"
      ]
    },
    "yandex:index/AlbVirtualHostModifyRequestHeader:AlbVirtualHostModifyRequestHeader": {
      "properties": {
        "append": {
          "type": "string",
          "description": "Append string to the header value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "name of the route.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "remove": {
          "type": "boolean",
          "description": "If set, remove the header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replace": {
          "type": "string",
          "description": "New value for a header. Header values support the following \n[formatters](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/headers#custom-request-response-headers).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "yandex:index/AlbVirtualHostModifyResponseHeader:AlbVirtualHostModifyResponseHeader": {
      "properties": {
        "append": {
          "type": "string",
          "description": "Append string to the header value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "name of the route.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "remove": {
          "type": "boolean",
          "description": "If set, remove the header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replace": {
          "type": "string",
          "description": "New value for a header. Header values support the following \n[formatters](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/headers#custom-request-response-headers).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "yandex:index/AlbVirtualHostRoute:AlbVirtualHostRoute": {
      "properties": {
        "grpcRoute": {
          "$ref": "#/types/yandex:index%2FAlbVirtualHostRouteGrpcRoute:AlbVirtualHostRouteGrpcRoute",
          "description": "GRPC route resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpRoute": {
          "$ref": "#/types/yandex:index%2FAlbVirtualHostRouteHttpRoute:AlbVirtualHostRouteHttpRoute",
          "description": "HTTP route resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "name of the route.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbVirtualHostRouteGrpcRoute:AlbVirtualHostRouteGrpcRoute": {
      "properties": {
        "grpcMatches": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbVirtualHostRouteGrpcRouteGrpcMatch:AlbVirtualHostRouteGrpcRouteGrpcMatch"
          },
          "description": "Checks \"/\" prefix by default. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "grpcRouteAction": {
          "$ref": "#/types/yandex:index%2FAlbVirtualHostRouteGrpcRouteGrpcRouteAction:AlbVirtualHostRouteGrpcRouteGrpcRouteAction",
          "description": "GRPC route action resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "grpcStatusResponseAction": {
          "$ref": "#/types/yandex:index%2FAlbVirtualHostRouteGrpcRouteGrpcStatusResponseAction:AlbVirtualHostRouteGrpcRouteGrpcStatusResponseAction",
          "description": "GRPC status response action resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbVirtualHostRouteGrpcRouteGrpcMatch:AlbVirtualHostRouteGrpcRouteGrpcMatch": {
      "properties": {
        "fqmn": {
          "$ref": "#/types/yandex:index%2FAlbVirtualHostRouteGrpcRouteGrpcMatchFqmn:AlbVirtualHostRouteGrpcRouteGrpcMatchFqmn",
          "description": "If not set, all services/methods are assumed. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbVirtualHostRouteGrpcRouteGrpcMatchFqmn:AlbVirtualHostRouteGrpcRouteGrpcMatchFqmn": {
      "properties": {
        "exact": {
          "type": "string",
          "description": "Match exactly.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "prefix": {
          "type": "string",
          "description": "Match prefix.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbVirtualHostRouteGrpcRouteGrpcRouteAction:AlbVirtualHostRouteGrpcRouteGrpcRouteAction": {
      "properties": {
        "autoHostRewrite": {
          "type": "boolean",
          "description": "If set, will automatically rewrite host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "backendGroupId": {
          "type": "string",
          "description": "Backend group to route requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hostRewrite": {
          "type": "string",
          "description": "Host rewrite specifier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "idleTimeout": {
          "type": "string",
          "description": "Specifies the idle timeout (time without any data transfer for the active request) for the\nroute. It is useful for streaming scenarios - one should set idle_timeout to something meaningful and max_timeout\nto the maximum time the stream is allowed to be alive. If not specified, there is no\nper-route idle timeout.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxTimeout": {
          "type": "string",
          "description": "Lower timeout may be specified by the client (using grpc-timeout header). If not set, default is \n60 seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "backendGroupId"
      ]
    },
    "yandex:index/AlbVirtualHostRouteGrpcRouteGrpcStatusResponseAction:AlbVirtualHostRouteGrpcRouteGrpcStatusResponseAction": {
      "properties": {
        "status": {
          "type": "string",
          "description": "The status of the response. Supported values are: ok, invalid_argumet, not_found, \npermission_denied, unauthenticated, unimplemented, internal, unavailable.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbVirtualHostRouteHttpRoute:AlbVirtualHostRouteHttpRoute": {
      "properties": {
        "directResponseAction": {
          "$ref": "#/types/yandex:index%2FAlbVirtualHostRouteHttpRouteDirectResponseAction:AlbVirtualHostRouteHttpRouteDirectResponseAction",
          "description": "Direct response action resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpMatches": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbVirtualHostRouteHttpRouteHttpMatch:AlbVirtualHostRouteHttpRouteHttpMatch"
          },
          "description": "Checks \"/\" prefix by default. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpRouteAction": {
          "$ref": "#/types/yandex:index%2FAlbVirtualHostRouteHttpRouteHttpRouteAction:AlbVirtualHostRouteHttpRouteHttpRouteAction",
          "description": "HTTP route action resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "redirectAction": {
          "$ref": "#/types/yandex:index%2FAlbVirtualHostRouteHttpRouteRedirectAction:AlbVirtualHostRouteHttpRouteRedirectAction",
          "description": "Redirect action resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbVirtualHostRouteHttpRouteDirectResponseAction:AlbVirtualHostRouteHttpRouteDirectResponseAction": {
      "properties": {
        "body": {
          "type": "string",
          "description": "Response body text.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "status": {
          "type": "integer",
          "description": "The status of the response. Supported values are: ok, invalid_argumet, not_found, \npermission_denied, unauthenticated, unimplemented, internal, unavailable.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbVirtualHostRouteHttpRouteHttpMatch:AlbVirtualHostRouteHttpRouteHttpMatch": {
      "properties": {
        "httpMethods": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of methods(strings).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "path": {
          "$ref": "#/types/yandex:index%2FAlbVirtualHostRouteHttpRouteHttpMatchPath:AlbVirtualHostRouteHttpRouteHttpMatchPath",
          "description": "If not set, '/' is assumed. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbVirtualHostRouteHttpRouteHttpMatchPath:AlbVirtualHostRouteHttpRouteHttpMatchPath": {
      "properties": {
        "exact": {
          "type": "string",
          "description": "Match exactly.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "prefix": {
          "type": "string",
          "description": "Match prefix.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/AlbVirtualHostRouteHttpRouteHttpRouteAction:AlbVirtualHostRouteHttpRouteHttpRouteAction": {
      "properties": {
        "autoHostRewrite": {
          "type": "boolean",
          "description": "If set, will automatically rewrite host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "backendGroupId": {
          "type": "string",
          "description": "Backend group to route requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hostRewrite": {
          "type": "string",
          "description": "Host rewrite specifier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "idleTimeout": {
          "type": "string",
          "description": "Specifies the idle timeout (time without any data transfer for the active request) for the\nroute. It is useful for streaming scenarios - one should set idle_timeout to something meaningful and max_timeout\nto the maximum time the stream is allowed to be alive. If not specified, there is no\nper-route idle timeout.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "prefixRewrite": {
          "type": "string",
          "description": "If not empty, matched path prefix will be replaced by this value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "string",
          "description": "Specifies the request timeout (overall time request processing is allowed to take) for the \nroute. If not set, default is 60 seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "upgradeTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of upgrade types. Only specified upgrade types will be allowed. For example, \n\"websocket\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "backendGroupId"
      ]
    },
    "yandex:index/AlbVirtualHostRouteHttpRouteRedirectAction:AlbVirtualHostRouteHttpRouteRedirectAction": {
      "properties": {
        "removeQuery": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replaceHost": {
          "type": "string",
          "description": "Replaces hostname.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replacePath": {
          "type": "string",
          "description": "Replace path.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replacePort": {
          "type": "integer",
          "description": "Replaces port.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replacePrefix": {
          "type": "string",
          "description": "Replace only matched prefix. Example:<br/> match:{ prefix_match: \"/some\" } <br/> \nredirect: { replace_prefix: \"/other\" } <br/> will redirect \"/something\" to \"/otherthing\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replaceScheme": {
          "type": "string",
          "description": "Replaces scheme. If the original scheme is `http` or `https`, will also remove the \n80 or 443 port, if present.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "responseCode": {
          "type": "string",
          "description": "The HTTP status code to use in the redirect response. Supported values are: \nmoved_permanently, found, see_other, temporary_redirect, permanent_redirect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/CdnOriginGroupOrigin:CdnOriginGroupOrigin": {
      "properties": {
        "backup": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enabled": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "originGroupId": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "source": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "source"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "originGroupId",
            "source"
          ]
        }
      }
    },
    "yandex:index/CdnResourceOptions:CdnResourceOptions": {
      "properties": {
        "allowedHttpMethods": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "HTTP methods for your CDN content. By default the following methods are allowed: GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS. In case some methods are not allowed to the user, they will get the 405 (Method Not Allowed) response. If the method is not supported, the user gets the 501 (Not Implemented) response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "browserCacheSettings": {
          "type": "integer",
          "description": "set up a cache period for the end-users browser. Content will be cached due to origin settings. If there are no cache settings on your origin, the content will not be cached. The list of HTTP response codes that can be cached in browsers: 200, 201, 204, 206, 301, 302, 303, 304, 307, 308. Other response codes will not be cached. The default value is 4 days.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cacheHttpHeaders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "list HTTP headers that must be included in responses to clients.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cors": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "parameter that lets browsers get access to selected resources from a domain different to a domain from which the request is received.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "customHostHeader": {
          "type": "string",
          "description": "custom value for the Host header. Your server must be able to process requests with the chosen header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "customServerName": {
          "type": "string",
          "description": "wildcard additional CNAME. If a resource has a wildcard additional CNAME, you can use your own certificate for content delivery via HTTPS. Read-only.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "disableCache": {
          "type": "boolean",
          "description": "setup a cache status.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "disableProxyForceRanges": {
          "type": "boolean",
          "description": "disabling proxy force ranges.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "edgeCacheSettings": {
          "type": "integer",
          "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",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fetchedCompressed": {
          "type": "boolean",
          "description": "option helps you to reduce the bandwidth between origin and CDN servers. Also, content delivery speed becomes higher because of reducing the time for compressing files in a CDN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "forwardHostHeader": {
          "type": "boolean",
          "description": "choose the Forward Host header option if is important to send in the request to the Origin the same Host header as was sent in the request to CDN server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "gzipOn": {
          "type": "boolean",
          "description": "GZip compression at CDN servers reduces file size by 70% and can be as high as 90%.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ignoreCookie": {
          "type": "boolean",
          "description": "set for ignoring cookie.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ignoreQueryParams": {
          "type": "boolean",
          "description": "files with different query parameters are cached as objects with the same key regardless of the parameter value. selected by default.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "proxyCacheMethodsSet": {
          "type": "boolean",
          "description": "allows caching for GET, HEAD and POST requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryParamsBlacklists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "files with the specified query parameters are cached as objects with the same key, files with other parameters are cached as objects with different keys.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryParamsWhitelists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "files with the specified query parameters are cached as objects with different keys, files with other parameters are cached as objects with the same key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "redirectHttpToHttps": {
          "type": "boolean",
          "description": "set up a redirect from HTTP to HTTPS.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "redirectHttpsToHttp": {
          "type": "boolean",
          "description": "set up a redirect from HTTPS to HTTP.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "slice": {
          "type": "boolean",
          "description": "files larger than 10 MB will be requested and cached in parts (no larger than 10 MB each part). It reduces time to first byte. The origin must support HTTP Range requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "staticRequestHeaders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "set up custom headers that CDN servers send in requests to origins.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "staticResponseHeaders": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "allowedHttpMethods",
            "browserCacheSettings",
            "cacheHttpHeaders",
            "cors",
            "customHostHeader",
            "customServerName",
            "disableCache",
            "disableProxyForceRanges",
            "edgeCacheSettings",
            "fetchedCompressed",
            "forwardHostHeader",
            "gzipOn",
            "ignoreCookie",
            "ignoreQueryParams",
            "proxyCacheMethodsSet",
            "queryParamsBlacklists",
            "queryParamsWhitelists",
            "redirectHttpToHttps",
            "redirectHttpsToHttp",
            "slice",
            "staticRequestHeaders",
            "staticResponseHeaders"
          ]
        }
      }
    },
    "yandex:index/CdnResourceSslCertificate:CdnResourceSslCertificate": {
      "properties": {
        "certificateManagerId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "status": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "status",
            "type"
          ]
        }
      }
    },
    "yandex:index/ComputeDiskDiskPlacementPolicy:ComputeDiskDiskPlacementPolicy": {
      "properties": {
        "diskPlacementGroupId": {
          "type": "string",
          "description": "Specifies Disk Placement Group id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskPlacementGroupId"
      ]
    },
    "yandex:index/ComputeInstanceBootDisk:ComputeInstanceBootDisk": {
      "properties": {
        "autoDelete": {
          "type": "boolean",
          "description": "Whether the disk is auto-deleted when the instance\nis deleted. The default value is false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "deviceName": {
          "type": "string",
          "description": "Name that can be used to access an attached disk\nunder `/dev/disk/by-id/`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskId": {
          "type": "string",
          "description": "ID of the disk that is attached to the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "initializeParams": {
          "$ref": "#/types/yandex:index%2FComputeInstanceBootDiskInitializeParams:ComputeInstanceBootDiskInitializeParams",
          "description": "Parameters for a new disk that will be created\nalongside the new instance. Either `initialize_params` or `disk_id` must be set. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mode": {
          "type": "string",
          "description": "Type of access to the disk resource. By default, a disk is attached in `READ_WRITE` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "deviceName",
            "diskId",
            "initializeParams",
            "mode"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceBootDiskInitializeParams:ComputeInstanceBootDiskInitializeParams": {
      "properties": {
        "blockSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "description": {
          "type": "string",
          "description": "Description of the boot disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "imageId": {
          "type": "string",
          "description": "A disk image to initialize this disk from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the boot disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "size": {
          "type": "integer",
          "description": "Size of the disk in GB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "snapshotId": {
          "type": "string",
          "description": "A snapshot to initialize this disk from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Disk type.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "blockSize",
            "description",
            "imageId",
            "name",
            "size",
            "snapshotId"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupAllocationPolicy:ComputeInstanceGroupAllocationPolicy": {
      "properties": {
        "zones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of availability zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "zones"
      ]
    },
    "yandex:index/ComputeInstanceGroupApplicationLoadBalancer:ComputeInstanceGroupApplicationLoadBalancer": {
      "properties": {
        "maxOpeningTrafficDuration": {
          "type": "integer",
          "description": "Timeout for waiting for the VM to be checked by the load balancer. If the timeout is exceeded, the VM will be turned off based on the deployment policy. Specified in seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "statusMessage": {
          "type": "string",
          "description": "The status message of the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupDescription": {
          "type": "string",
          "description": "A description of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupLabels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupName": {
          "type": "string",
          "description": "The name of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "statusMessage",
            "targetGroupId"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupDeployPolicy:ComputeInstanceGroupDeployPolicy": {
      "properties": {
        "maxCreating": {
          "type": "integer",
          "description": "The maximum number of instances that can be created at the same time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxDeleting": {
          "type": "integer",
          "description": "The maximum number of instances that can be deleted at the same time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxExpansion": {
          "type": "integer",
          "description": "The maximum number of instances that can be temporarily allocated above the group's target size\nduring the update process.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxUnavailable": {
          "type": "integer",
          "description": "The maximum number of running instances that can be taken offline (stopped or deleted) at the same time\nduring the update process.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "startupDuration": {
          "type": "integer",
          "description": "The amount of time in seconds to allow for an instance to start.\nInstance will be considered up and running (and start receiving traffic) only after the startup_duration\nhas elapsed and all health checks are passed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "strategy": {
          "type": "string",
          "description": "Affects the lifecycle of the instance during deployment. If set to `proactive` (default), Instance Groups\ncan forcefully stop a running instance. If `opportunistic`, Instance Groups does not stop a running instance. Instead,\nit will wait until the instance stops itself or becomes unhealthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "maxExpansion",
        "maxUnavailable"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "maxExpansion",
            "maxUnavailable",
            "strategy"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupHealthCheck:ComputeInstanceGroupHealthCheck": {
      "properties": {
        "healthyThreshold": {
          "type": "integer",
          "description": "The number of successful health checks before the managed instance is declared healthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpOptions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupHealthCheckHttpOption:ComputeInstanceGroupHealthCheckHttpOption"
          },
          "description": "HTTP check options. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interval": {
          "type": "integer",
          "description": "The interval to wait between health checks in seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tcpOptions": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupHealthCheckTcpOptions:ComputeInstanceGroupHealthCheckTcpOptions",
          "description": "TCP check options. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "integer",
          "description": "The length of time to wait for a response before the health check times out in seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unhealthyThreshold": {
          "type": "integer",
          "description": "The number of failed health checks before the managed instance is declared unhealthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "tcpOptions"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupHealthCheckHttpOption:ComputeInstanceGroupHealthCheckHttpOption": {
      "properties": {
        "path": {
          "type": "string",
          "description": "The URL path used for health check requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "The port used for TCP health checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "path",
        "port"
      ]
    },
    "yandex:index/ComputeInstanceGroupHealthCheckTcpOptions:ComputeInstanceGroupHealthCheckTcpOptions": {
      "properties": {
        "port": {
          "type": "integer",
          "description": "The port used for TCP health checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "port"
      ]
    },
    "yandex:index/ComputeInstanceGroupInstance:ComputeInstanceGroupInstance": {
      "properties": {
        "fqdn": {
          "type": "string",
          "description": "DNS record fqdn (must have dot at the end).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "instanceId": {
          "type": "string",
          "description": "The ID of the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name template of the instance.  \nIn order to be unique it must contain at least one of instance unique placeholders:\n{instance.short_id}\n{instance.index}\ncombination of {instance.zone_id} and {instance.index_in_zone}\nExample: my-instance-{instance.index}\nIf not set, default is used: {instance_group.id}-{instance.short_id}\nIt may also contain another placeholders, see metadata doc for full list.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "networkInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceNetworkInterface:ComputeInstanceGroupInstanceNetworkInterface"
          },
          "description": "Network specifications for the instance. This can be used multiple times for adding multiple interfaces. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "status": {
          "type": "string",
          "description": "The status of the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "statusChangedAt": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "statusMessage": {
          "type": "string",
          "description": "The status message of the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneId": {
          "type": "string",
          "description": "The ID of the availability zone where the instance resides.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fqdn",
            "instanceId",
            "name",
            "networkInterfaces",
            "status",
            "statusChangedAt",
            "statusMessage",
            "zoneId"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupInstanceNetworkInterface:ComputeInstanceGroupInstanceNetworkInterface": {
      "properties": {
        "index": {
          "type": "integer",
          "description": "The index of the network interface as generated by the server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "type": "string",
          "description": "Manual set static IP address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv4": {
          "type": "boolean",
          "description": "True if IPv4 address allocated for the network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6Address": {
          "type": "string",
          "description": "Manual set static IPv6 address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "macAddress": {
          "type": "string",
          "description": "The MAC address assigned to the network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nat": {
          "type": "boolean",
          "description": "Flag for using NAT.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natIpAddress": {
          "type": "string",
          "description": "A public address that can be used to access the internet over NAT. Use `variables` to set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natIpVersion": {
          "type": "string",
          "description": "The IP version for the public address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet to attach this interface to. The subnet must reside in the same zone where this instance was created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "index",
            "ipAddress",
            "ipv4",
            "ipv6",
            "ipv6Address",
            "macAddress",
            "nat",
            "natIpAddress",
            "natIpVersion",
            "subnetId"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupInstanceTemplate:ComputeInstanceGroupInstanceTemplate": {
      "properties": {
        "bootDisk": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplateBootDisk:ComputeInstanceGroupInstanceTemplateBootDisk",
          "description": "Boot disk specifications for the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "description": {
          "type": "string",
          "description": "A description of the boot disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hostname": {
          "type": "string",
          "description": "Hostname template for the instance.   \nThis field is used to generate the FQDN value of instance.\nThe hostname must be unique within the network and region.\nIf not specified, the hostname will be equal to id of the instance\nand FQDN will be `<id>.auto.internal`. Otherwise FQDN will be `<hostname>.<region_id>.internal`.\nIn order to be unique it must contain at least on of instance unique placeholders:\n{instance.short_id}\n{instance.index}\ncombination of {instance.zone_id} and {instance.index_in_zone}\nExample: my-instance-{instance.index}\nIf not set, `name` value will be used\nIt may also contain another placeholders, see metadata doc for full list.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of labels of metric.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of metadata key/value pairs to make available from within the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name template of the instance.  \nIn order to be unique it must contain at least one of instance unique placeholders:\n{instance.short_id}\n{instance.index}\ncombination of {instance.zone_id} and {instance.index_in_zone}\nExample: my-instance-{instance.index}\nIf not set, default is used: {instance_group.id}-{instance.short_id}\nIt may also contain another placeholders, see metadata doc for full list.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "networkInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplateNetworkInterface:ComputeInstanceGroupInstanceTemplateNetworkInterface"
          },
          "description": "Network specifications for the instance. This can be used multiple times for adding multiple interfaces. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "networkSettings": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplateNetworkSetting:ComputeInstanceGroupInstanceTemplateNetworkSetting"
          },
          "description": "Network acceleration type for instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "placementPolicy": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplatePlacementPolicy:ComputeInstanceGroupInstanceTemplatePlacementPolicy",
          "description": "The placement policy configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "platformId": {
          "type": "string",
          "description": "The ID of the hardware platform configuration for the instance. The default is 'standard-v1'.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplateResources:ComputeInstanceGroupInstanceTemplateResources",
          "description": "Compute resource specifications for the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "schedulingPolicy": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplateSchedulingPolicy:ComputeInstanceGroupInstanceTemplateSchedulingPolicy",
          "description": "The scheduling policy configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "secondaryDisks": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplateSecondaryDisk:ComputeInstanceGroupInstanceTemplateSecondaryDisk"
          },
          "description": "A list of disks to attach to the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serviceAccountId": {
          "type": "string",
          "description": "The ID of the service account authorized for this instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "bootDisk",
        "networkInterfaces",
        "resources"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "bootDisk",
            "labels",
            "metadata",
            "networkInterfaces",
            "resources",
            "schedulingPolicy"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupInstanceTemplateBootDisk:ComputeInstanceGroupInstanceTemplateBootDisk": {
      "properties": {
        "deviceName": {
          "type": "string",
          "description": "This value can be used to reference the device under `/dev/disk/by-id/`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskId": {
          "type": "string",
          "description": "ID of the existing disk. To set use variables.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "initializeParams": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplateBootDiskInitializeParams:ComputeInstanceGroupInstanceTemplateBootDiskInitializeParams",
          "description": "Parameters for creating a disk alongside the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mode": {
          "type": "string",
          "description": "The access mode to the disk resource. By default a disk is attached in `READ_WRITE` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "deviceName"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupInstanceTemplateBootDiskInitializeParams:ComputeInstanceGroupInstanceTemplateBootDiskInitializeParams": {
      "properties": {
        "description": {
          "type": "string",
          "description": "A description of the boot disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "imageId": {
          "type": "string",
          "description": "The disk image to initialize this disk from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "size": {
          "type": "integer",
          "description": "The number of instances in the instance group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "snapshotId": {
          "type": "string",
          "description": "The snapshot to initialize this disk from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Network acceleration type. By default a network is in `STANDARD` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "imageId",
            "size",
            "snapshotId"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupInstanceTemplateNetworkInterface:ComputeInstanceGroupInstanceTemplateNetworkInterface": {
      "properties": {
        "dnsRecords": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplateNetworkInterfaceDnsRecord:ComputeInstanceGroupInstanceTemplateNetworkInterfaceDnsRecord"
          },
          "description": "List of dns records.  The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "type": "string",
          "description": "Manual set static IP address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv4": {
          "type": "boolean",
          "description": "True if IPv4 address allocated for the network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6Address": {
          "type": "string",
          "description": "Manual set static IPv6 address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6DnsRecords": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplateNetworkInterfaceIpv6DnsRecord:ComputeInstanceGroupInstanceTemplateNetworkInterfaceIpv6DnsRecord"
          },
          "description": "List of ipv6 dns records.  The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nat": {
          "type": "boolean",
          "description": "Flag for using NAT.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natDnsRecords": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplateNetworkInterfaceNatDnsRecord:ComputeInstanceGroupInstanceTemplateNetworkInterfaceNatDnsRecord"
          },
          "description": "List of nat dns records.  The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natIpAddress": {
          "type": "string",
          "description": "A public address that can be used to access the internet over NAT. Use `variables` to set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "networkId": {
          "type": "string",
          "description": "The ID of the network.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Security group ids for network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The ID of the subnets to attach this interface to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "ipAddress",
            "ipv6",
            "ipv6Address",
            "nat"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupInstanceTemplateNetworkInterfaceDnsRecord:ComputeInstanceGroupInstanceTemplateNetworkInterfaceDnsRecord": {
      "properties": {
        "dnsZoneId": {
          "type": "string",
          "description": "DNS zone id (if not set, private zone used).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "DNS record fqdn (must have dot at the end).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ptr": {
          "type": "boolean",
          "description": "When set to true, also create PTR DNS record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ttl": {
          "type": "integer",
          "description": "DNS record TTL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fqdn"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fqdn",
            "ptr"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupInstanceTemplateNetworkInterfaceIpv6DnsRecord:ComputeInstanceGroupInstanceTemplateNetworkInterfaceIpv6DnsRecord": {
      "properties": {
        "dnsZoneId": {
          "type": "string",
          "description": "DNS zone id (if not set, private zone used).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "DNS record fqdn (must have dot at the end).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ptr": {
          "type": "boolean",
          "description": "When set to true, also create PTR DNS record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ttl": {
          "type": "integer",
          "description": "DNS record TTL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fqdn"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fqdn",
            "ptr"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupInstanceTemplateNetworkInterfaceNatDnsRecord:ComputeInstanceGroupInstanceTemplateNetworkInterfaceNatDnsRecord": {
      "properties": {
        "dnsZoneId": {
          "type": "string",
          "description": "DNS zone id (if not set, private zone used).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "DNS record fqdn (must have dot at the end).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ptr": {
          "type": "boolean",
          "description": "When set to true, also create PTR DNS record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ttl": {
          "type": "integer",
          "description": "DNS record TTL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fqdn"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fqdn",
            "ptr"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupInstanceTemplateNetworkSetting:ComputeInstanceGroupInstanceTemplateNetworkSetting": {
      "properties": {
        "type": {
          "type": "string",
          "description": "Network acceleration type. By default a network is in `STANDARD` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/ComputeInstanceGroupInstanceTemplatePlacementPolicy:ComputeInstanceGroupInstanceTemplatePlacementPolicy": {
      "properties": {
        "placementGroupId": {
          "type": "string",
          "description": "Specifies the id of the Placement Group to assign to the instances.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "placementGroupId"
      ]
    },
    "yandex:index/ComputeInstanceGroupInstanceTemplateResources:ComputeInstanceGroupInstanceTemplateResources": {
      "properties": {
        "coreFraction": {
          "type": "integer",
          "description": "If provided, specifies baseline core performance as a percent.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cores": {
          "type": "integer",
          "description": "The number of CPU cores for the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "gpus": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "memory": {
          "type": "number",
          "description": "The memory size in GB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cores",
        "memory"
      ]
    },
    "yandex:index/ComputeInstanceGroupInstanceTemplateSchedulingPolicy:ComputeInstanceGroupInstanceTemplateSchedulingPolicy": {
      "properties": {
        "preemptible": {
          "type": "boolean",
          "description": "Specifies if the instance is preemptible. Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/ComputeInstanceGroupInstanceTemplateSecondaryDisk:ComputeInstanceGroupInstanceTemplateSecondaryDisk": {
      "properties": {
        "deviceName": {
          "type": "string",
          "description": "This value can be used to reference the device under `/dev/disk/by-id/`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskId": {
          "type": "string",
          "description": "ID of the existing disk. To set use variables.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "initializeParams": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplateSecondaryDiskInitializeParams:ComputeInstanceGroupInstanceTemplateSecondaryDiskInitializeParams",
          "description": "Parameters for creating a disk alongside the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mode": {
          "type": "string",
          "description": "The access mode to the disk resource. By default a disk is attached in `READ_WRITE` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/ComputeInstanceGroupInstanceTemplateSecondaryDiskInitializeParams:ComputeInstanceGroupInstanceTemplateSecondaryDiskInitializeParams": {
      "properties": {
        "description": {
          "type": "string",
          "description": "A description of the boot disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "imageId": {
          "type": "string",
          "description": "The disk image to initialize this disk from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "size": {
          "type": "integer",
          "description": "The number of instances in the instance group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "snapshotId": {
          "type": "string",
          "description": "The snapshot to initialize this disk from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Network acceleration type. By default a network is in `STANDARD` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/ComputeInstanceGroupLoadBalancer:ComputeInstanceGroupLoadBalancer": {
      "properties": {
        "maxOpeningTrafficDuration": {
          "type": "integer",
          "description": "Timeout for waiting for the VM to be checked by the load balancer. If the timeout is exceeded, the VM will be turned off based on the deployment policy. Specified in seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "statusMessage": {
          "type": "string",
          "description": "The status message of the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupDescription": {
          "type": "string",
          "description": "A description of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupLabels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupName": {
          "type": "string",
          "description": "The name of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "statusMessage",
            "targetGroupId"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupScalePolicy:ComputeInstanceGroupScalePolicy": {
      "properties": {
        "autoScale": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupScalePolicyAutoScale:ComputeInstanceGroupScalePolicyAutoScale",
          "description": "The auto scaling policy of the instance group. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fixedScale": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupScalePolicyFixedScale:ComputeInstanceGroupScalePolicyFixedScale",
          "description": "The fixed scaling policy of the instance group. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "testAutoScale": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupScalePolicyTestAutoScale:ComputeInstanceGroupScalePolicyTestAutoScale",
          "description": "The test auto scaling policy of the instance group. Use it to test how the auto scale works. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/ComputeInstanceGroupScalePolicyAutoScale:ComputeInstanceGroupScalePolicyAutoScale": {
      "properties": {
        "cpuUtilizationTarget": {
          "type": "number",
          "description": "Target CPU load level.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "customRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupScalePolicyAutoScaleCustomRule:ComputeInstanceGroupScalePolicyAutoScaleCustomRule"
          },
          "description": "A list of custom rules. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "initialSize": {
          "type": "integer",
          "description": "The initial number of instances in the instance group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxSize": {
          "type": "integer",
          "description": "The maximum number of virtual machines in the group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "measurementDuration": {
          "type": "integer",
          "description": "The amount of time, in seconds, that metrics are averaged for.\nIf the average value at the end of the interval is higher than the `cpu_utilization_target`,\nthe instance group will increase the number of virtual machines in the group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minZoneSize": {
          "type": "integer",
          "description": "The minimum number of virtual machines in a single availability zone.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "stabilizationDuration": {
          "type": "integer",
          "description": "The minimum time interval, in seconds, to monitor the load before\nan instance group can reduce the number of virtual machines in the group. During this time, the group\nwill not decrease even if the average load falls below the value of `cpu_utilization_target`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "warmupDuration": {
          "type": "integer",
          "description": "The warm-up time of the virtual machine, in seconds. During this time,\ntraffic is fed to the virtual machine, but load metrics are not taken into account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "initialSize",
        "measurementDuration"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "initialSize",
            "measurementDuration",
            "stabilizationDuration",
            "warmupDuration"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupScalePolicyAutoScaleCustomRule:ComputeInstanceGroupScalePolicyAutoScaleCustomRule": {
      "properties": {
        "folderId": {
          "type": "string",
          "description": "Folder ID of custom metric in Yandex Monitoring that should be used for scaling.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of labels of metric.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricName": {
          "type": "string",
          "description": "The name of metric.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricType": {
          "type": "string",
          "description": "Metric type, `GAUGE` or `COUNTER`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ruleType": {
          "type": "string",
          "description": "Rule type: `UTILIZATION` - This type means that the metric applies to one instance.\nFirst, Instance Groups calculates the average metric value for each instance,\nthen averages the values for instances in one availability zone.\nThis type of metric must have the `instance_id` label. `WORKLOAD` - This type means that the metric applies to instances in one availability zone.\nThis type of metric must have the `zone_id` label.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "service": {
          "type": "string",
          "description": "Service of custom metric in Yandex Monitoring that should be used for scaling.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "target": {
          "type": "number",
          "description": "Target metric value level.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "metricName",
        "metricType",
        "ruleType",
        "target"
      ]
    },
    "yandex:index/ComputeInstanceGroupScalePolicyFixedScale:ComputeInstanceGroupScalePolicyFixedScale": {
      "properties": {
        "size": {
          "type": "integer",
          "description": "The number of instances in the instance group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "size"
      ]
    },
    "yandex:index/ComputeInstanceGroupScalePolicyTestAutoScale:ComputeInstanceGroupScalePolicyTestAutoScale": {
      "properties": {
        "cpuUtilizationTarget": {
          "type": "number",
          "description": "Target CPU load level.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "customRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupScalePolicyTestAutoScaleCustomRule:ComputeInstanceGroupScalePolicyTestAutoScaleCustomRule"
          },
          "description": "A list of custom rules. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "initialSize": {
          "type": "integer",
          "description": "The initial number of instances in the instance group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxSize": {
          "type": "integer",
          "description": "The maximum number of virtual machines in the group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "measurementDuration": {
          "type": "integer",
          "description": "The amount of time, in seconds, that metrics are averaged for.\nIf the average value at the end of the interval is higher than the `cpu_utilization_target`,\nthe instance group will increase the number of virtual machines in the group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minZoneSize": {
          "type": "integer",
          "description": "The minimum number of virtual machines in a single availability zone.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "stabilizationDuration": {
          "type": "integer",
          "description": "The minimum time interval, in seconds, to monitor the load before\nan instance group can reduce the number of virtual machines in the group. During this time, the group\nwill not decrease even if the average load falls below the value of `cpu_utilization_target`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "warmupDuration": {
          "type": "integer",
          "description": "The warm-up time of the virtual machine, in seconds. During this time,\ntraffic is fed to the virtual machine, but load metrics are not taken into account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "initialSize",
        "measurementDuration"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "initialSize",
            "measurementDuration",
            "stabilizationDuration",
            "warmupDuration"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceGroupScalePolicyTestAutoScaleCustomRule:ComputeInstanceGroupScalePolicyTestAutoScaleCustomRule": {
      "properties": {
        "folderId": {
          "type": "string",
          "description": "Folder ID of custom metric in Yandex Monitoring that should be used for scaling.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of labels of metric.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricName": {
          "type": "string",
          "description": "The name of metric.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricType": {
          "type": "string",
          "description": "Metric type, `GAUGE` or `COUNTER`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ruleType": {
          "type": "string",
          "description": "Rule type: `UTILIZATION` - This type means that the metric applies to one instance.\nFirst, Instance Groups calculates the average metric value for each instance,\nthen averages the values for instances in one availability zone.\nThis type of metric must have the `instance_id` label. `WORKLOAD` - This type means that the metric applies to instances in one availability zone.\nThis type of metric must have the `zone_id` label.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "service": {
          "type": "string",
          "description": "Service of custom metric in Yandex Monitoring that should be used for scaling.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "target": {
          "type": "number",
          "description": "Target metric value level.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "metricName",
        "metricType",
        "ruleType",
        "target"
      ]
    },
    "yandex:index/ComputeInstanceNetworkInterface:ComputeInstanceNetworkInterface": {
      "properties": {
        "dnsRecords": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceNetworkInterfaceDnsRecord:ComputeInstanceNetworkInterfaceDnsRecord"
          },
          "description": "List of configurations for creating ipv4 DNS records. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "index": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "type": "string",
          "description": "The private IP address to assign to the instance. If\nempty, the address will be automatically assigned from the specified subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv4": {
          "type": "boolean",
          "description": "Allocate an IPv4 address for the interface. The default value is `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6": {
          "type": "boolean",
          "description": "If true, allocate an IPv6 address for the interface.\nThe address will be automatically assigned from the specified subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6Address": {
          "type": "string",
          "description": "The private IPv6 address to assign to the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6DnsRecords": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceNetworkInterfaceIpv6DnsRecord:ComputeInstanceNetworkInterfaceIpv6DnsRecord"
          },
          "description": "List of configurations for creating ipv6 DNS records. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "macAddress": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nat": {
          "type": "boolean",
          "description": "Provide a public address, for instance, to access the internet over NAT.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natDnsRecords": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceNetworkInterfaceNatDnsRecord:ComputeInstanceNetworkInterfaceNatDnsRecord"
          },
          "description": "List of configurations for creating ipv4 NAT DNS records. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natIpAddress": {
          "type": "string",
          "description": "Provide a public address, for instance, to access the internet over NAT. Address should be already reserved in web UI.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natIpVersion": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Security group ids for network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "ID of the subnet to attach this\ninterface to. The subnet must exist in the same zone where this instance will be\ncreated.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "index",
            "ipAddress",
            "ipv6",
            "ipv6Address",
            "macAddress",
            "nat",
            "natIpAddress",
            "natIpVersion",
            "securityGroupIds",
            "subnetId"
          ]
        }
      }
    },
    "yandex:index/ComputeInstanceNetworkInterfaceDnsRecord:ComputeInstanceNetworkInterfaceDnsRecord": {
      "properties": {
        "dnsZoneId": {
          "type": "string",
          "description": "DNS zone ID (if not set, private zone used).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "DNS record FQDN (must have a dot at the end).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ptr": {
          "type": "boolean",
          "description": "When set to true, also create a PTR DNS record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ttl": {
          "type": "integer",
          "description": "DNS record TTL. in seconds\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fqdn"
      ]
    },
    "yandex:index/ComputeInstanceNetworkInterfaceIpv6DnsRecord:ComputeInstanceNetworkInterfaceIpv6DnsRecord": {
      "properties": {
        "dnsZoneId": {
          "type": "string",
          "description": "DNS zone ID (if not set, private zone used).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "DNS record FQDN (must have a dot at the end).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ptr": {
          "type": "boolean",
          "description": "When set to true, also create a PTR DNS record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ttl": {
          "type": "integer",
          "description": "DNS record TTL. in seconds\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fqdn"
      ]
    },
    "yandex:index/ComputeInstanceNetworkInterfaceNatDnsRecord:ComputeInstanceNetworkInterfaceNatDnsRecord": {
      "properties": {
        "dnsZoneId": {
          "type": "string",
          "description": "DNS zone ID (if not set, private zone used).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "DNS record FQDN (must have a dot at the end).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ptr": {
          "type": "boolean",
          "description": "When set to true, also create a PTR DNS record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ttl": {
          "type": "integer",
          "description": "DNS record TTL. in seconds\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fqdn"
      ]
    },
    "yandex:index/ComputeInstancePlacementPolicy:ComputeInstancePlacementPolicy": {
      "properties": {
        "placementGroupId": {
          "type": "string",
          "description": "Specifies the id of the Placement Group to assign to the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "placementGroupId"
      ]
    },
    "yandex:index/ComputeInstanceResources:ComputeInstanceResources": {
      "properties": {
        "coreFraction": {
          "type": "integer",
          "description": "If provided, specifies baseline performance for a core as a percent.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cores": {
          "type": "integer",
          "description": "CPU cores for the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "gpus": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "memory": {
          "type": "number",
          "description": "Memory size in GB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cores",
        "memory"
      ]
    },
    "yandex:index/ComputeInstanceSchedulingPolicy:ComputeInstanceSchedulingPolicy": {
      "properties": {
        "preemptible": {
          "type": "boolean",
          "description": "Specifies if the instance is preemptible. Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/ComputeInstanceSecondaryDisk:ComputeInstanceSecondaryDisk": {
      "properties": {
        "autoDelete": {
          "type": "boolean",
          "description": "Whether the disk is auto-deleted when the instance\nis deleted. The default value is false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "deviceName": {
          "type": "string",
          "description": "Name that can be used to access an attached disk\nunder `/dev/disk/by-id/`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskId": {
          "type": "string",
          "description": "ID of the disk that is attached to the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mode": {
          "type": "string",
          "description": "Type of access to the disk resource. By default, a disk is attached in `READ_WRITE` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskId"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "deviceName",
            "diskId"
          ]
        }
      }
    },
    "yandex:index/DataprocClusterClusterConfig:DataprocClusterClusterConfig": {
      "properties": {
        "hadoop": {
          "$ref": "#/types/yandex:index%2FDataprocClusterClusterConfigHadoop:DataprocClusterClusterConfigHadoop",
          "description": "Data Proc specific options. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subclusterSpecs": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FDataprocClusterClusterConfigSubclusterSpec:DataprocClusterClusterConfigSubclusterSpec"
          },
          "description": "Configuration of the Data Proc subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "versionId": {
          "type": "string",
          "description": "Version of Data Proc image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "subclusterSpecs"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "subclusterSpecs",
            "versionId"
          ]
        }
      }
    },
    "yandex:index/DataprocClusterClusterConfigHadoop:DataprocClusterClusterConfigHadoop": {
      "properties": {
        "properties": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value pairs that are used to configure cluster services.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "services": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of services to run on Data Proc cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sshPublicKeys": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of SSH public keys to put to the hosts of the cluster. For information on how to connect to the cluster, see [the official documentation](https://cloud.yandex.com/docs/data-proc/operations/connect).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DataprocClusterClusterConfigSubclusterSpec:DataprocClusterClusterConfigSubclusterSpec": {
      "properties": {
        "autoscalingConfig": {
          "$ref": "#/types/yandex:index%2FDataprocClusterClusterConfigSubclusterSpecAutoscalingConfig:DataprocClusterClusterConfigSubclusterSpecAutoscalingConfig",
          "description": "Autoscaling configuration for compute subclusters.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hostsCount": {
          "type": "integer",
          "description": "Number of hosts within Data Proc subcluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "id": {
          "type": "string",
          "description": "(Computed) ID of a new Data Proc cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the Data Proc subcluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FDataprocClusterClusterConfigSubclusterSpecResources:DataprocClusterClusterConfigSubclusterSpecResources",
          "description": "Resources allocated to each host of the Data Proc subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "role": {
          "type": "string",
          "description": "Role of the subcluster in the Data Proc cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which hosts of the subcluster belong. Subnets of all the subclusters must belong to the same VPC network.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "hostsCount",
        "name",
        "resources",
        "role",
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "hostsCount",
            "id",
            "name",
            "resources",
            "role",
            "subnetId"
          ]
        }
      }
    },
    "yandex:index/DataprocClusterClusterConfigSubclusterSpecAutoscalingConfig:DataprocClusterClusterConfigSubclusterSpecAutoscalingConfig": {
      "properties": {
        "cpuUtilizationTarget": {
          "type": "number",
          "description": "Defines an autoscaling rule based on the average CPU utilization of the instance group. If not set default autoscaling metric will be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "decommissionTimeout": {
          "type": "integer",
          "description": "Timeout to gracefully decommission nodes during downscaling. In seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxHostsCount": {
          "type": "integer",
          "description": "Maximum number of nodes in autoscaling subclusters.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "measurementDuration": {
          "type": "integer",
          "description": "Time in seconds allotted for averaging metrics.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "preemptible": {
          "type": "boolean",
          "description": "Bool flag -- whether to use preemptible compute instances. Preemptible instances are stopped at least once every 24 hours, and can be stopped at any time if their resources are needed by Compute. For more information, see [Preemptible Virtual Machines](https://cloud.yandex.com/docs/compute/concepts/preemptible-vm).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "stabilizationDuration": {
          "type": "integer",
          "description": "Minimum amount of time in seconds allotted for monitoring before Instance Groups can reduce the number of instances in the group. During this time, the group size doesn't decrease, even if the new metric values indicate that it should.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "warmupDuration": {
          "type": "integer",
          "description": "The warmup time of the instance in seconds. During this time, traffic is sent to the instance, but instance metrics are not collected.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "maxHostsCount"
      ]
    },
    "yandex:index/DataprocClusterClusterConfigSubclusterSpecResources:DataprocClusterClusterConfigSubclusterSpecResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of a host. One of `network-hdd` (default) or `network-ssd`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "description": "The ID of the preset for computational resources available to a host. All available presets are listed in the [documentation](https://cloud.yandex.com/docs/data-proc/concepts/instance-types).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "resourcePresetId"
      ]
    },
    "yandex:index/DatatransferEndpointSettings:DatatransferEndpointSettings": {
      "properties": {
        "mysqlSource": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlSource:DatatransferEndpointSettingsMysqlSource",
          "description": "Settings specific to the MySQL source endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mysqlTarget": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlTarget:DatatransferEndpointSettingsMysqlTarget",
          "description": "Settings specific to the MySQL target endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "postgresSource": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresSource:DatatransferEndpointSettingsPostgresSource",
          "description": "Settings specific to the PostgreSQL source endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "postgresTarget": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresTarget:DatatransferEndpointSettingsPostgresTarget",
          "description": "Settings specific to the PostgreSQL target endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsMysqlSource:DatatransferEndpointSettingsMysqlSource": {
      "properties": {
        "connection": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlSourceConnection:DatatransferEndpointSettingsMysqlSourceConnection",
          "description": "Connection settings. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "database": {
          "type": "string",
          "description": "Name of the database to transfer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "excludeTablesRegexes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Opposite of `include_table_regex`. The tables matching the specified regular expressions will not be transferred.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "includeTablesRegexes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of regular expressions of table names which should be transferred. A table name is formatted as schemaname.tablename. For example, a single regular expression may look like `^mydb.employees$`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "objectTransferSettings": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlSourceObjectTransferSettings:DatatransferEndpointSettingsMysqlSourceObjectTransferSettings",
          "description": "Defines which database schema objects should be transferred, e.g. views, functions, etc.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlSourcePassword:DatatransferEndpointSettingsMysqlSourcePassword",
          "description": "Password for the database access. This is a block with a single field named `raw` which should contain the password.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timezone": {
          "type": "string",
          "description": "Timezone to use for parsing timestamps for saving source timezones. Accepts values from IANA timezone database. Default: local timezone.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "user": {
          "type": "string",
          "description": "User for the database access.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "excludeTablesRegexes",
            "includeTablesRegexes",
            "objectTransferSettings",
            "timezone"
          ]
        }
      }
    },
    "yandex:index/DatatransferEndpointSettingsMysqlSourceConnection:DatatransferEndpointSettingsMysqlSourceConnection": {
      "properties": {
        "mdbClusterId": {
          "type": "string",
          "description": "Identifier of the Managed MySQL cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "onPremise": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlSourceConnectionOnPremise:DatatransferEndpointSettingsMysqlSourceConnectionOnPremise",
          "description": "Connection settings of the on-premise MySQL server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsMysqlSourceConnectionOnPremise:DatatransferEndpointSettingsMysqlSourceConnectionOnPremise": {
      "properties": {
        "caCertificate": {
          "type": "string",
          "description": "X.509 certificate of the certificate authority which issued the server's certificate, in PEM format. If empty, the server's certificate must be signed by a well-known CA.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of host names of the PostgreSQL server. Exactly one host is expected currently.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for the database connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "Identifier of the Yandex Cloud VPC subnetwork to user for accessing the database. If omitted, the server has to be accessible via Internet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tlsMode": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlSourceConnectionOnPremiseTlsMode:DatatransferEndpointSettingsMysqlSourceConnectionOnPremiseTlsMode",
          "description": "TLS settings for the server connection. Empty implies plaintext connection. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "tlsMode"
          ]
        }
      }
    },
    "yandex:index/DatatransferEndpointSettingsMysqlSourceConnectionOnPremiseTlsMode:DatatransferEndpointSettingsMysqlSourceConnectionOnPremiseTlsMode": {
      "properties": {
        "disabled": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlSourceConnectionOnPremiseTlsModeDisabled:DatatransferEndpointSettingsMysqlSourceConnectionOnPremiseTlsModeDisabled",
          "description": "Empty block designating that the connection is not secured, i.e. plaintext connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enabled": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlSourceConnectionOnPremiseTlsModeEnabled:DatatransferEndpointSettingsMysqlSourceConnectionOnPremiseTlsModeEnabled",
          "description": "If this attribute is not an empty block, then TLS is used for the server connection. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsMysqlSourceConnectionOnPremiseTlsModeDisabled:DatatransferEndpointSettingsMysqlSourceConnectionOnPremiseTlsModeDisabled": {
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsMysqlSourceConnectionOnPremiseTlsModeEnabled:DatatransferEndpointSettingsMysqlSourceConnectionOnPremiseTlsModeEnabled": {
      "properties": {
        "caCertificate": {
          "type": "string",
          "description": "X.509 certificate of the certificate authority which issued the server's certificate, in PEM format. If empty, the server's certificate must be signed by a well-known CA.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsMysqlSourceObjectTransferSettings:DatatransferEndpointSettingsMysqlSourceObjectTransferSettings": {
      "properties": {
        "routine": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "trigger": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "view": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsMysqlSourcePassword:DatatransferEndpointSettingsMysqlSourcePassword": {
      "properties": {
        "raw": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsMysqlTarget:DatatransferEndpointSettingsMysqlTarget": {
      "properties": {
        "connection": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlTargetConnection:DatatransferEndpointSettingsMysqlTargetConnection",
          "description": "Connection settings. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "database": {
          "type": "string",
          "description": "Name of the database to transfer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlTargetPassword:DatatransferEndpointSettingsMysqlTargetPassword",
          "description": "Password for the database access. This is a block with a single field named `raw` which should contain the password.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serviceSchema": {
          "type": "string",
          "description": "Name of the database schema in which auxiliary tables needed for the transfer will be created. Empty `service_schema` implies schema \"public\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "skipConstraintChecks": {
          "type": "boolean",
          "description": "When true, disables foreign key checks. See [foreign_key_checks](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_foreign_key_checks). False by default.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sqlMode": {
          "type": "string",
          "description": "[sql_mode](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html) to use when interacting with the server. Defaults to \"NO_AUTO_VALUE_ON_ZERO,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timezone": {
          "type": "string",
          "description": "Timezone to use for parsing timestamps for saving source timezones. Accepts values from IANA timezone database. Default: local timezone.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "user": {
          "type": "string",
          "description": "User for the database access.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsMysqlTargetConnection:DatatransferEndpointSettingsMysqlTargetConnection": {
      "properties": {
        "mdbClusterId": {
          "type": "string",
          "description": "Identifier of the Managed MySQL cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "onPremise": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlTargetConnectionOnPremise:DatatransferEndpointSettingsMysqlTargetConnectionOnPremise",
          "description": "Connection settings of the on-premise MySQL server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsMysqlTargetConnectionOnPremise:DatatransferEndpointSettingsMysqlTargetConnectionOnPremise": {
      "properties": {
        "caCertificate": {
          "type": "string",
          "description": "X.509 certificate of the certificate authority which issued the server's certificate, in PEM format. If empty, the server's certificate must be signed by a well-known CA.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of host names of the PostgreSQL server. Exactly one host is expected currently.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for the database connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "Identifier of the Yandex Cloud VPC subnetwork to user for accessing the database. If omitted, the server has to be accessible via Internet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tlsMode": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlTargetConnectionOnPremiseTlsMode:DatatransferEndpointSettingsMysqlTargetConnectionOnPremiseTlsMode",
          "description": "TLS settings for the server connection. Empty implies plaintext connection. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "tlsMode"
          ]
        }
      }
    },
    "yandex:index/DatatransferEndpointSettingsMysqlTargetConnectionOnPremiseTlsMode:DatatransferEndpointSettingsMysqlTargetConnectionOnPremiseTlsMode": {
      "properties": {
        "disabled": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlTargetConnectionOnPremiseTlsModeDisabled:DatatransferEndpointSettingsMysqlTargetConnectionOnPremiseTlsModeDisabled",
          "description": "Empty block designating that the connection is not secured, i.e. plaintext connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enabled": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsMysqlTargetConnectionOnPremiseTlsModeEnabled:DatatransferEndpointSettingsMysqlTargetConnectionOnPremiseTlsModeEnabled",
          "description": "If this attribute is not an empty block, then TLS is used for the server connection. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsMysqlTargetConnectionOnPremiseTlsModeDisabled:DatatransferEndpointSettingsMysqlTargetConnectionOnPremiseTlsModeDisabled": {
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsMysqlTargetConnectionOnPremiseTlsModeEnabled:DatatransferEndpointSettingsMysqlTargetConnectionOnPremiseTlsModeEnabled": {
      "properties": {
        "caCertificate": {
          "type": "string",
          "description": "X.509 certificate of the certificate authority which issued the server's certificate, in PEM format. If empty, the server's certificate must be signed by a well-known CA.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsMysqlTargetPassword:DatatransferEndpointSettingsMysqlTargetPassword": {
      "properties": {
        "raw": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsPostgresSource:DatatransferEndpointSettingsPostgresSource": {
      "properties": {
        "collapseInheritTable": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "connection": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresSourceConnection:DatatransferEndpointSettingsPostgresSourceConnection",
          "description": "Connection settings. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "database": {
          "type": "string",
          "description": "Name of the database to transfer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "excludeTables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of tables which will not be transfered, formatted as `schemaname.tablename`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "includeTables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of tables to transfer, formatted as `schemaname.tablename`. If omitted or an empty list is specified, all tables will be transferred.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "objectTransferSettings": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresSourceObjectTransferSettings:DatatransferEndpointSettingsPostgresSourceObjectTransferSettings",
          "description": "Defines which database schema objects should be transferred, e.g. views, functions, etc.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresSourcePassword:DatatransferEndpointSettingsPostgresSourcePassword",
          "description": "Password for the database access. This is a block with a single field named `raw` which should contain the password.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serviceSchema": {
          "type": "string",
          "description": "Name of the database schema in which auxiliary tables needed for the transfer will be created. Empty `service_schema` implies schema \"public\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "slotGigabyteLagLimit": {
          "type": "integer",
          "description": "Maximum WAL size held by the replication slot, in gigabytes. Exceeding this limit will result in a replication failure and deletion of the replication slot. Unlimited by default.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "user": {
          "type": "string",
          "description": "User for the database access.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "objectTransferSettings",
            "serviceSchema",
            "slotGigabyteLagLimit"
          ]
        }
      }
    },
    "yandex:index/DatatransferEndpointSettingsPostgresSourceConnection:DatatransferEndpointSettingsPostgresSourceConnection": {
      "properties": {
        "mdbClusterId": {
          "type": "string",
          "description": "Identifier of the Managed MySQL cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "onPremise": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresSourceConnectionOnPremise:DatatransferEndpointSettingsPostgresSourceConnectionOnPremise",
          "description": "Connection settings of the on-premise MySQL server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsPostgresSourceConnectionOnPremise:DatatransferEndpointSettingsPostgresSourceConnectionOnPremise": {
      "properties": {
        "caCertificate": {
          "type": "string",
          "description": "X.509 certificate of the certificate authority which issued the server's certificate, in PEM format. If empty, the server's certificate must be signed by a well-known CA.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of host names of the PostgreSQL server. Exactly one host is expected currently.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for the database connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "Identifier of the Yandex Cloud VPC subnetwork to user for accessing the database. If omitted, the server has to be accessible via Internet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tlsMode": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresSourceConnectionOnPremiseTlsMode:DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseTlsMode",
          "description": "TLS settings for the server connection. Empty implies plaintext connection. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "tlsMode"
          ]
        }
      }
    },
    "yandex:index/DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseTlsMode:DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseTlsMode": {
      "properties": {
        "disabled": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresSourceConnectionOnPremiseTlsModeDisabled:DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseTlsModeDisabled",
          "description": "Empty block designating that the connection is not secured, i.e. plaintext connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enabled": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresSourceConnectionOnPremiseTlsModeEnabled:DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseTlsModeEnabled",
          "description": "If this attribute is not an empty block, then TLS is used for the server connection. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseTlsModeDisabled:DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseTlsModeDisabled": {
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseTlsModeEnabled:DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseTlsModeEnabled": {
      "properties": {
        "caCertificate": {
          "type": "string",
          "description": "X.509 certificate of the certificate authority which issued the server's certificate, in PEM format. If empty, the server's certificate must be signed by a well-known CA.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsPostgresSourceObjectTransferSettings:DatatransferEndpointSettingsPostgresSourceObjectTransferSettings": {
      "properties": {
        "cast": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "collation": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "constraint": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "defaultValues": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fkConstraint": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "function": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "index": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "policy": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "primaryKey": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "rule": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sequence": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sequenceOwnedBy": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "table": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "trigger": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "view": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsPostgresSourcePassword:DatatransferEndpointSettingsPostgresSourcePassword": {
      "properties": {
        "raw": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsPostgresTarget:DatatransferEndpointSettingsPostgresTarget": {
      "properties": {
        "connection": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresTargetConnection:DatatransferEndpointSettingsPostgresTargetConnection",
          "description": "Connection settings. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "database": {
          "type": "string",
          "description": "Name of the database to transfer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresTargetPassword:DatatransferEndpointSettingsPostgresTargetPassword",
          "description": "Password for the database access. This is a block with a single field named `raw` which should contain the password.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "user": {
          "type": "string",
          "description": "User for the database access.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsPostgresTargetConnection:DatatransferEndpointSettingsPostgresTargetConnection": {
      "properties": {
        "mdbClusterId": {
          "type": "string",
          "description": "Identifier of the Managed MySQL cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "onPremise": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresTargetConnectionOnPremise:DatatransferEndpointSettingsPostgresTargetConnectionOnPremise",
          "description": "Connection settings of the on-premise MySQL server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsPostgresTargetConnectionOnPremise:DatatransferEndpointSettingsPostgresTargetConnectionOnPremise": {
      "properties": {
        "caCertificate": {
          "type": "string",
          "description": "X.509 certificate of the certificate authority which issued the server's certificate, in PEM format. If empty, the server's certificate must be signed by a well-known CA.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of host names of the PostgreSQL server. Exactly one host is expected currently.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for the database connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "Identifier of the Yandex Cloud VPC subnetwork to user for accessing the database. If omitted, the server has to be accessible via Internet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tlsMode": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresTargetConnectionOnPremiseTlsMode:DatatransferEndpointSettingsPostgresTargetConnectionOnPremiseTlsMode",
          "description": "TLS settings for the server connection. Empty implies plaintext connection. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "tlsMode"
          ]
        }
      }
    },
    "yandex:index/DatatransferEndpointSettingsPostgresTargetConnectionOnPremiseTlsMode:DatatransferEndpointSettingsPostgresTargetConnectionOnPremiseTlsMode": {
      "properties": {
        "disabled": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresTargetConnectionOnPremiseTlsModeDisabled:DatatransferEndpointSettingsPostgresTargetConnectionOnPremiseTlsModeDisabled",
          "description": "Empty block designating that the connection is not secured, i.e. plaintext connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enabled": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettingsPostgresTargetConnectionOnPremiseTlsModeEnabled:DatatransferEndpointSettingsPostgresTargetConnectionOnPremiseTlsModeEnabled",
          "description": "If this attribute is not an empty block, then TLS is used for the server connection. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsPostgresTargetConnectionOnPremiseTlsModeDisabled:DatatransferEndpointSettingsPostgresTargetConnectionOnPremiseTlsModeDisabled": {
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsPostgresTargetConnectionOnPremiseTlsModeEnabled:DatatransferEndpointSettingsPostgresTargetConnectionOnPremiseTlsModeEnabled": {
      "properties": {
        "caCertificate": {
          "type": "string",
          "description": "X.509 certificate of the certificate authority which issued the server's certificate, in PEM format. If empty, the server's certificate must be signed by a well-known CA.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/DatatransferEndpointSettingsPostgresTargetPassword:DatatransferEndpointSettingsPostgresTargetPassword": {
      "properties": {
        "raw": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/FunctionContent:FunctionContent": {
      "properties": {
        "zipFilename": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "zipFilename"
      ]
    },
    "yandex:index/FunctionPackage:FunctionPackage": {
      "properties": {
        "bucketName": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "objectName": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sha256": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "bucketName",
        "objectName"
      ]
    },
    "yandex:index/FunctionScalingPolicyPolicy:FunctionScalingPolicyPolicy": {
      "properties": {
        "tag": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneInstancesLimit": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneRequestsLimit": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "tag"
      ]
    },
    "yandex:index/FunctionTriggerDlq:FunctionTriggerDlq": {
      "properties": {
        "queueId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serviceAccountId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "queueId",
        "serviceAccountId"
      ]
    },
    "yandex:index/FunctionTriggerFunction:FunctionTriggerFunction": {
      "properties": {
        "id": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retryAttempts": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retryInterval": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serviceAccountId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tag": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "yandex:index/FunctionTriggerIot:FunctionTriggerIot": {
      "properties": {
        "deviceId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "registryId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "topic": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "registryId"
      ]
    },
    "yandex:index/FunctionTriggerLogGroup:FunctionTriggerLogGroup": {
      "properties": {
        "batchCutoff": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "batchSize": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "batchCutoff",
        "logGroupIds"
      ]
    },
    "yandex:index/FunctionTriggerLogging:FunctionTriggerLogging": {
      "properties": {
        "batchCutoff": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "batchSize": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "groupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "levels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourceIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourceTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "batchCutoff",
        "groupId",
        "levels",
        "resourceIds",
        "resourceTypes"
      ]
    },
    "yandex:index/FunctionTriggerMessageQueue:FunctionTriggerMessageQueue": {
      "properties": {
        "batchCutoff": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "batchSize": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queueId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serviceAccountId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "visibilityTimeout": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "batchCutoff",
        "queueId",
        "serviceAccountId"
      ]
    },
    "yandex:index/FunctionTriggerObjectStorage:FunctionTriggerObjectStorage": {
      "properties": {
        "bucketId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "create": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "delete": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "prefix": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "suffix": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "update": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "bucketId"
      ]
    },
    "yandex:index/FunctionTriggerTimer:FunctionTriggerTimer": {
      "properties": {
        "cronExpression": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cronExpression"
      ]
    },
    "yandex:index/KubernetesClusterKmsProvider:KubernetesClusterKmsProvider": {
      "properties": {
        "keyId": {
          "type": "string",
          "description": "KMS key ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/KubernetesClusterMaster:KubernetesClusterMaster": {
      "properties": {
        "clusterCaCertificate": {
          "type": "string",
          "description": "(Computed) PEM-encoded public certificate that is the root of trust for the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "externalV4Address": {
          "type": "string",
          "description": "(Computed) An IPv4 external network address that is assigned to the master.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "externalV4Endpoint": {
          "type": "string",
          "description": "(Computed) External endpoint that can be used to access Kubernetes cluster API from the internet (outside of the cloud).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "internalV4Address": {
          "type": "string",
          "description": "(Computed) An IPv4 internal network address that is assigned to the master.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "internalV4Endpoint": {
          "type": "string",
          "description": "(Computed) Internal endpoint that can be used to connect to the master from cloud networks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maintenancePolicy": {
          "$ref": "#/types/yandex:index%2FKubernetesClusterMasterMaintenancePolicy:KubernetesClusterMasterMaintenancePolicy",
          "description": "(Optional) (Computed) Maintenance policy for Kubernetes master.\nIf policy is omitted, automatic revision upgrades of the kubernetes master are enabled and could happen at any time.\nRevision upgrades are performed only within the same minor version, e.g. 1.13.\nMinor version upgrades (e.g. 1.13->1.14) should be performed manually. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "publicIp": {
          "type": "boolean",
          "description": "(Optional) (Computed) Boolean flag. When `true`, Kubernetes master will have visible ipv4 address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "regional": {
          "$ref": "#/types/yandex:index%2FKubernetesClusterMasterRegional:KubernetesClusterMasterRegional",
          "description": "(Optional) Initialize parameters for Regional Master (highly available master). The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "(Optional) List of security group IDs to which the Kubernetes cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "version": {
          "type": "string",
          "description": "(Optional) (Computed) Version of Kubernetes that will be used for master.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "versionInfos": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FKubernetesClusterMasterVersionInfo:KubernetesClusterMasterVersionInfo"
          },
          "description": "(Computed) Information about cluster version. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zonal": {
          "$ref": "#/types/yandex:index%2FKubernetesClusterMasterZonal:KubernetesClusterMasterZonal",
          "description": "(Optional) Initialize parameters for Zonal Master (single node master). The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "clusterCaCertificate",
            "externalV4Address",
            "externalV4Endpoint",
            "internalV4Address",
            "internalV4Endpoint",
            "maintenancePolicy",
            "publicIp",
            "regional",
            "version",
            "versionInfos",
            "zonal"
          ]
        }
      }
    },
    "yandex:index/KubernetesClusterMasterMaintenancePolicy:KubernetesClusterMasterMaintenancePolicy": {
      "properties": {
        "autoUpgrade": {
          "type": "boolean",
          "description": "(Required) Boolean flag that specifies if master can be upgraded automatically. When omitted, default value is TRUE.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maintenanceWindows": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FKubernetesClusterMasterMaintenancePolicyMaintenanceWindow:KubernetesClusterMasterMaintenancePolicyMaintenanceWindow"
          },
          "description": "(Optional) (Computed) This structure specifies maintenance window, when update for master is allowed. When omitted, it defaults to any time.\nTo specify time of day interval, for all days, one element should be provided, with two fields set, `start_time` and `duration`.\nPlease see `zonal_cluster_resource_name` config example.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "autoUpgrade"
      ]
    },
    "yandex:index/KubernetesClusterMasterMaintenancePolicyMaintenanceWindow:KubernetesClusterMasterMaintenancePolicyMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "duration": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "startTime": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "duration",
        "startTime"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "day",
            "duration",
            "startTime"
          ]
        }
      }
    },
    "yandex:index/KubernetesClusterMasterRegional:KubernetesClusterMasterRegional": {
      "properties": {
        "locations": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FKubernetesClusterMasterRegionalLocation:KubernetesClusterMasterRegionalLocation"
          },
          "description": "Array of locations, where master instances will be allocated. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "region": {
          "type": "string",
          "description": "(Required) Name of availability region (e.g. \"ru-central1\"), where master instances will be allocated.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "region"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "locations",
            "region"
          ]
        }
      }
    },
    "yandex:index/KubernetesClusterMasterRegionalLocation:KubernetesClusterMasterRegionalLocation": {
      "properties": {
        "subnetId": {
          "type": "string",
          "description": "(Optional) ID of the subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "(Optional) ID of the availability zone.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/KubernetesClusterMasterVersionInfo:KubernetesClusterMasterVersionInfo": {
      "properties": {
        "currentVersion": {
          "type": "string",
          "description": "Current Kubernetes version, major.minor (e.g. 1.15).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "newRevisionAvailable": {
          "type": "boolean",
          "description": "Boolean flag.\nNewer revisions may include Kubernetes patches (e.g 1.15.1 > 1.15.2) as well\nas some internal component updates - new features or bug fixes in yandex-specific\ncomponents either on the master or nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "newRevisionSummary": {
          "type": "string",
          "description": "Human readable description of the changes to be applied\nwhen updating to the latest revision. Empty if new_revision_available is false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "versionDeprecated": {
          "type": "boolean",
          "description": "Boolean flag. The current version is on the deprecation schedule,\ncomponent (master or node group) should be upgraded.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "currentVersion",
            "newRevisionAvailable",
            "newRevisionSummary",
            "versionDeprecated"
          ]
        }
      }
    },
    "yandex:index/KubernetesClusterMasterZonal:KubernetesClusterMasterZonal": {
      "properties": {
        "subnetId": {
          "type": "string",
          "description": "(Optional) ID of the subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "(Optional) ID of the availability zone.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "zone"
          ]
        }
      }
    },
    "yandex:index/KubernetesClusterNetworkImplementation:KubernetesClusterNetworkImplementation": {
      "properties": {
        "cilium": {
          "$ref": "#/types/yandex:index%2FKubernetesClusterNetworkImplementationCilium:KubernetesClusterNetworkImplementationCilium",
          "description": "(Optional) Cilium network implementation configuration. No options exist.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/KubernetesClusterNetworkImplementationCilium:KubernetesClusterNetworkImplementationCilium": {
      "type": "object"
    },
    "yandex:index/KubernetesNodeGroupAllocationPolicy:KubernetesNodeGroupAllocationPolicy": {
      "properties": {
        "locations": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FKubernetesNodeGroupAllocationPolicyLocation:KubernetesNodeGroupAllocationPolicyLocation"
          },
          "description": "Repeated field, that specify subnets (zones), that will be used by node group compute instances. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "locations"
          ]
        }
      }
    },
    "yandex:index/KubernetesNodeGroupAllocationPolicyLocation:KubernetesNodeGroupAllocationPolicyLocation": {
      "properties": {
        "subnetId": {
          "type": "string",
          "description": "ID of the subnet, that will be used by one compute instance in node group.\n",
          "deprecationMessage": "The 'subnet_id' field has been deprecated. Please use 'subnet_ids under network_interface' instead.",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "ID of the availability zone where for one compute instance in node group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "subnetId",
            "zone"
          ]
        }
      }
    },
    "yandex:index/KubernetesNodeGroupDeployPolicy:KubernetesNodeGroupDeployPolicy": {
      "properties": {
        "maxExpansion": {
          "type": "integer",
          "description": "The maximum number of instances that can be temporarily allocated above the group's target size during the update.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxUnavailable": {
          "type": "integer",
          "description": "The maximum number of running instances that can be taken offline during update.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "maxExpansion",
        "maxUnavailable"
      ]
    },
    "yandex:index/KubernetesNodeGroupInstanceTemplate:KubernetesNodeGroupInstanceTemplate": {
      "properties": {
        "bootDisk": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupInstanceTemplateBootDisk:KubernetesNodeGroupInstanceTemplateBootDisk",
          "description": "The specifications for boot disks that will be attached to the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "containerRuntime": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupInstanceTemplateContainerRuntime:KubernetesNodeGroupInstanceTemplateContainerRuntime",
          "description": "Container runtime configuration. The structure is documented below.\n---\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The set of metadata `key:value` pairs assigned to this instance template. This includes custom metadata and predefined keys.\n* `resources.0.memory` - The memory size allocated to the instance.\n* `resources.0.cores` - Number of CPU cores allocated to the instance.\n* `resources.0.core_fraction` - Baseline core performance as a percent.\n* `resources.0.gpus` - Number of GPU cores allocated to the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nat": {
          "type": "boolean",
          "description": "A public address that can be used to access the internet over NAT.\n",
          "deprecationMessage": "The 'nat' field has been deprecated. Please use 'nat under network_interface' instead.",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "networkAccelerationType": {
          "type": "string",
          "description": "Type of network acceleration. Values: `standard`, `software_accelerated`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "networkInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FKubernetesNodeGroupInstanceTemplateNetworkInterface:KubernetesNodeGroupInstanceTemplateNetworkInterface"
          },
          "description": "An array with the network interfaces that will be attached to the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "placementPolicy": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupInstanceTemplatePlacementPolicy:KubernetesNodeGroupInstanceTemplatePlacementPolicy",
          "description": "The placement policy configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "platformId": {
          "type": "string",
          "description": "The ID of the hardware platform configuration for the node group compute instances.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupInstanceTemplateResources:KubernetesNodeGroupInstanceTemplateResources",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "schedulingPolicy": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupInstanceTemplateSchedulingPolicy:KubernetesNodeGroupInstanceTemplateSchedulingPolicy",
          "description": "The scheduling policy for the instances in node group. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "bootDisk",
            "containerRuntime",
            "metadata",
            "nat",
            "networkAccelerationType",
            "networkInterfaces",
            "platformId",
            "resources",
            "schedulingPolicy"
          ]
        }
      }
    },
    "yandex:index/KubernetesNodeGroupInstanceTemplateBootDisk:KubernetesNodeGroupInstanceTemplateBootDisk": {
      "properties": {
        "size": {
          "type": "integer",
          "description": "The number of instances in the node group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of container runtime. Values: `docker`, `containerd`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "size",
            "type"
          ]
        }
      }
    },
    "yandex:index/KubernetesNodeGroupInstanceTemplateContainerRuntime:KubernetesNodeGroupInstanceTemplateContainerRuntime": {
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of container runtime. Values: `docker`, `containerd`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "type"
      ]
    },
    "yandex:index/KubernetesNodeGroupInstanceTemplateNetworkInterface:KubernetesNodeGroupInstanceTemplateNetworkInterface": {
      "properties": {
        "ipv4": {
          "type": "boolean",
          "description": "Allocate an IPv4 address for the interface. The default value is `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6": {
          "type": "boolean",
          "description": "If true, allocate an IPv6 address for the interface. The address will be automatically assigned from the specified subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nat": {
          "type": "boolean",
          "description": "A public address that can be used to access the internet over NAT.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Security group ids for network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The IDs of the subnets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "subnetIds"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "ipv6",
            "nat",
            "subnetIds"
          ]
        }
      }
    },
    "yandex:index/KubernetesNodeGroupInstanceTemplatePlacementPolicy:KubernetesNodeGroupInstanceTemplatePlacementPolicy": {
      "properties": {
        "placementGroupId": {
          "type": "string",
          "description": "Specifies the id of the Placement Group to assign to the instances.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "placementGroupId"
      ]
    },
    "yandex:index/KubernetesNodeGroupInstanceTemplateResources:KubernetesNodeGroupInstanceTemplateResources": {
      "properties": {
        "coreFraction": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cores": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "gpus": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "memory": {
          "type": "number",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "coreFraction",
            "cores",
            "memory"
          ]
        }
      }
    },
    "yandex:index/KubernetesNodeGroupInstanceTemplateSchedulingPolicy:KubernetesNodeGroupInstanceTemplateSchedulingPolicy": {
      "properties": {
        "preemptible": {
          "type": "boolean",
          "description": "Specifies if the instance is preemptible. Defaults to false.\n---\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "preemptible"
          ]
        }
      }
    },
    "yandex:index/KubernetesNodeGroupMaintenancePolicy:KubernetesNodeGroupMaintenancePolicy": {
      "properties": {
        "autoRepair": {
          "type": "boolean",
          "description": "Boolean flag that specifies if node group can be repaired automatically. When omitted, default value is TRUE.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "autoUpgrade": {
          "type": "boolean",
          "description": "Boolean flag that specifies if node group can be upgraded automatically. When omitted, default value is TRUE.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maintenanceWindows": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FKubernetesNodeGroupMaintenancePolicyMaintenanceWindow:KubernetesNodeGroupMaintenancePolicyMaintenanceWindow"
          },
          "description": "(Computed) Set of day intervals, when maintenance is allowed for this node group. When omitted, it defaults to any time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "autoRepair",
        "autoUpgrade"
      ]
    },
    "yandex:index/KubernetesNodeGroupMaintenancePolicyMaintenanceWindow:KubernetesNodeGroupMaintenancePolicyMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "duration": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "startTime": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "duration",
        "startTime"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "day",
            "duration",
            "startTime"
          ]
        }
      }
    },
    "yandex:index/KubernetesNodeGroupScalePolicy:KubernetesNodeGroupScalePolicy": {
      "properties": {
        "autoScale": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupScalePolicyAutoScale:KubernetesNodeGroupScalePolicyAutoScale",
          "description": "Scale policy for an autoscaled node group. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fixedScale": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupScalePolicyFixedScale:KubernetesNodeGroupScalePolicyFixedScale",
          "description": "Scale policy for a fixed scale node group. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/KubernetesNodeGroupScalePolicyAutoScale:KubernetesNodeGroupScalePolicyAutoScale": {
      "properties": {
        "initial": {
          "type": "integer",
          "description": "Initial number of instances in the node group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "max": {
          "type": "integer",
          "description": "Maximum number of instances in the node group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "min": {
          "type": "integer",
          "description": "Minimum number of instances in the node group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "initial",
        "max",
        "min"
      ]
    },
    "yandex:index/KubernetesNodeGroupScalePolicyFixedScale:KubernetesNodeGroupScalePolicyFixedScale": {
      "properties": {
        "size": {
          "type": "integer",
          "description": "The number of instances in the node group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "size"
          ]
        }
      }
    },
    "yandex:index/KubernetesNodeGroupVersionInfo:KubernetesNodeGroupVersionInfo": {
      "properties": {
        "currentVersion": {
          "type": "string",
          "description": "Current Kubernetes version, major.minor (e.g. 1.15).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "newRevisionAvailable": {
          "type": "boolean",
          "description": "True/false flag.\nNewer revisions may include Kubernetes patches (e.g 1.15.1 > 1.15.2) as well\nas some internal component updates - new features or bug fixes in yandex-specific\ncomponents either on the master or nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "newRevisionSummary": {
          "type": "string",
          "description": "Human readable description of the changes to be applied\nwhen updating to the latest revision. Empty if new_revision_available is false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "versionDeprecated": {
          "type": "boolean",
          "description": "True/false flag. The current version is on the deprecation schedule,\ncomponent (master or node group) should be upgraded.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "currentVersion",
            "newRevisionAvailable",
            "newRevisionSummary",
            "versionDeprecated"
          ]
        }
      }
    },
    "yandex:index/LbNetworkLoadBalancerAttachedTargetGroup:LbNetworkLoadBalancerAttachedTargetGroup": {
      "properties": {
        "healthchecks": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FLbNetworkLoadBalancerAttachedTargetGroupHealthcheck:LbNetworkLoadBalancerAttachedTargetGroupHealthcheck"
          },
          "description": "A HealthCheck resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupId": {
          "type": "string",
          "description": "ID of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "healthchecks",
        "targetGroupId"
      ]
    },
    "yandex:index/LbNetworkLoadBalancerAttachedTargetGroupHealthcheck:LbNetworkLoadBalancerAttachedTargetGroupHealthcheck": {
      "properties": {
        "healthyThreshold": {
          "type": "integer",
          "description": "Number of successful health checks required in order to set the `HEALTHY` status for the target.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpOptions": {
          "$ref": "#/types/yandex:index%2FLbNetworkLoadBalancerAttachedTargetGroupHealthcheckHttpOptions:LbNetworkLoadBalancerAttachedTargetGroupHealthcheckHttpOptions",
          "description": "Options for HTTP health check. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interval": {
          "type": "integer",
          "description": "The interval between health checks. The default is 2 seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the listener. The name must be unique for each listener on a single load balancer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tcpOptions": {
          "$ref": "#/types/yandex:index%2FLbNetworkLoadBalancerAttachedTargetGroupHealthcheckTcpOptions:LbNetworkLoadBalancerAttachedTargetGroupHealthcheckTcpOptions",
          "description": "Options for TCP health check. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "integer",
          "description": "Timeout for a target to return a response for the health check. The default is 1 second.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unhealthyThreshold": {
          "type": "integer",
          "description": "Number of failed health checks before changing the status to `UNHEALTHY`. The default is 2.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "yandex:index/LbNetworkLoadBalancerAttachedTargetGroupHealthcheckHttpOptions:LbNetworkLoadBalancerAttachedTargetGroupHealthcheckHttpOptions": {
      "properties": {
        "path": {
          "type": "string",
          "description": "URL path to set for health checking requests for every target in the target group. For example `/ping`. The default path is `/`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for incoming traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "port"
      ]
    },
    "yandex:index/LbNetworkLoadBalancerAttachedTargetGroupHealthcheckTcpOptions:LbNetworkLoadBalancerAttachedTargetGroupHealthcheckTcpOptions": {
      "properties": {
        "port": {
          "type": "integer",
          "description": "Port for incoming traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "port"
      ]
    },
    "yandex:index/LbNetworkLoadBalancerListener:LbNetworkLoadBalancerListener": {
      "properties": {
        "externalAddressSpec": {
          "$ref": "#/types/yandex:index%2FLbNetworkLoadBalancerListenerExternalAddressSpec:LbNetworkLoadBalancerListenerExternalAddressSpec",
          "description": "External IP address specification. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "internalAddressSpec": {
          "$ref": "#/types/yandex:index%2FLbNetworkLoadBalancerListenerInternalAddressSpec:LbNetworkLoadBalancerListenerInternalAddressSpec",
          "description": "Internal IP address specification. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the listener. The name must be unique for each listener on a single load balancer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for incoming traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "description": "Protocol for incoming traffic. TCP or UDP and the default is TCP.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetPort": {
          "type": "integer",
          "description": "Port of a target. The default is the same as listener's port.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "port"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "port",
            "protocol",
            "targetPort"
          ]
        }
      }
    },
    "yandex:index/LbNetworkLoadBalancerListenerExternalAddressSpec:LbNetworkLoadBalancerListenerExternalAddressSpec": {
      "properties": {
        "address": {
          "type": "string",
          "description": "Internal IP address for a listener. Must belong to the subnet that is referenced in subnet_id. IP address will be allocated if it wasn't been set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipVersion": {
          "type": "string",
          "description": "IP version of the internal addresses that the load balancer works with. Must be one of ipv4 or ipv6. The default is ipv4.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "address"
          ]
        }
      }
    },
    "yandex:index/LbNetworkLoadBalancerListenerInternalAddressSpec:LbNetworkLoadBalancerListenerInternalAddressSpec": {
      "properties": {
        "address": {
          "type": "string",
          "description": "Internal IP address for a listener. Must belong to the subnet that is referenced in subnet_id. IP address will be allocated if it wasn't been set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipVersion": {
          "type": "string",
          "description": "IP version of the internal addresses that the load balancer works with. Must be one of ipv4 or ipv6. The default is ipv4.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "ID of the subnet to which the internal IP address belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "address",
            "subnetId"
          ]
        }
      }
    },
    "yandex:index/LbTargetGroupTarget:LbTargetGroupTarget": {
      "properties": {
        "address": {
          "type": "string",
          "description": "IP address of the target.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "ID of the subnet that targets are connected to. \nAll targets in the target group must be connected to the same subnet within a single availability zone.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "address",
        "subnetId"
      ]
    },
    "yandex:index/MdbClickhouseClusterAccess:MdbClickhouseClusterAccess": {
      "properties": {
        "dataLens": {
          "type": "boolean",
          "description": "Allow access for DataLens. Can be either `true` or `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metrika": {
          "type": "boolean",
          "description": "Allow access for Yandex.Metrika. Can be either `true` or `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serverless": {
          "type": "boolean",
          "description": "Allow access for Serverless. Can be either `true` or `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "webSql": {
          "type": "boolean",
          "description": "Allow access for Web SQL. Can be either `true` or `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/MdbClickhouseClusterBackupWindowStart:MdbClickhouseClusterBackupWindowStart": {
      "properties": {
        "hours": {
          "type": "integer",
          "description": "The hour at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minutes": {
          "type": "integer",
          "description": "The minute at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/MdbClickhouseClusterClickhouse:MdbClickhouseClusterClickhouse": {
      "properties": {
        "config": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouseConfig:MdbClickhouseClusterClickhouseConfig",
          "description": "Main ClickHouse cluster configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouseResources:MdbClickhouseClusterClickhouseResources",
          "description": "Resources allocated to hosts of the ZooKeeper subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "resources"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "config",
            "resources"
          ]
        }
      }
    },
    "yandex:index/MdbClickhouseClusterClickhouseConfig:MdbClickhouseClusterClickhouseConfig": {
      "properties": {
        "backgroundPoolSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "backgroundSchedulePoolSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "compressions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouseConfigCompression:MdbClickhouseClusterClickhouseConfigCompression"
          },
          "description": "Data compression configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "geobaseUri": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "graphiteRollups": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouseConfigGraphiteRollup:MdbClickhouseClusterClickhouseConfigGraphiteRollup"
          },
          "description": "Graphite rollup configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "kafka": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouseConfigKafka:MdbClickhouseClusterClickhouseConfigKafka",
          "description": "Kafka connection configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "kafkaTopics": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouseConfigKafkaTopic:MdbClickhouseClusterClickhouseConfigKafkaTopic"
          },
          "description": "Kafka topic connection configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "keepAliveTimeout": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logLevel": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "markCacheSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxConcurrentQueries": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxConnections": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxPartitionSizeToDrop": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxTableSizeToDrop": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mergeTree": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouseConfigMergeTree:MdbClickhouseClusterClickhouseConfigMergeTree",
          "description": "MergeTree engine configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricLogEnabled": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricLogRetentionSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricLogRetentionTime": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "partLogRetentionSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "partLogRetentionTime": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryLogRetentionSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryLogRetentionTime": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryThreadLogEnabled": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryThreadLogRetentionSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryThreadLogRetentionTime": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "rabbitmq": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouseConfigRabbitmq:MdbClickhouseClusterClickhouseConfigRabbitmq",
          "description": "RabbitMQ connection configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "textLogEnabled": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "textLogLevel": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "textLogRetentionSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "textLogRetentionTime": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timezone": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "traceLogEnabled": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "traceLogRetentionSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "traceLogRetentionTime": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "uncompressedCacheSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "backgroundPoolSize",
            "backgroundSchedulePoolSize",
            "geobaseUri",
            "kafka",
            "keepAliveTimeout",
            "logLevel",
            "markCacheSize",
            "maxConcurrentQueries",
            "maxConnections",
            "maxPartitionSizeToDrop",
            "maxTableSizeToDrop",
            "mergeTree",
            "metricLogEnabled",
            "metricLogRetentionSize",
            "metricLogRetentionTime",
            "partLogRetentionSize",
            "partLogRetentionTime",
            "queryLogRetentionSize",
            "queryLogRetentionTime",
            "queryThreadLogEnabled",
            "queryThreadLogRetentionSize",
            "queryThreadLogRetentionTime",
            "rabbitmq",
            "textLogEnabled",
            "textLogLevel",
            "textLogRetentionSize",
            "textLogRetentionTime",
            "timezone",
            "traceLogEnabled",
            "traceLogRetentionSize",
            "traceLogRetentionTime",
            "uncompressedCacheSize"
          ]
        }
      }
    },
    "yandex:index/MdbClickhouseClusterClickhouseConfigCompression:MdbClickhouseClusterClickhouseConfigCompression": {
      "properties": {
        "method": {
          "type": "string",
          "description": "Method: Compression method. Two methods are available: LZ4 and zstd.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minPartSize": {
          "type": "integer",
          "description": "Min part size: Minimum size (in bytes) of a data part in a table. ClickHouse only applies the rule to tables with data parts greater than or equal to the Min part size value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minPartSizeRatio": {
          "type": "number",
          "description": "Min part size ratio: Minimum table part size to total table size ratio. ClickHouse only applies the rule to tables in which this ratio is greater than or equal to the Min part size ratio value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "method",
        "minPartSize",
        "minPartSizeRatio"
      ]
    },
    "yandex:index/MdbClickhouseClusterClickhouseConfigGraphiteRollup:MdbClickhouseClusterClickhouseConfigGraphiteRollup": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Graphite rollup configuration name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "patterns": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouseConfigGraphiteRollupPattern:MdbClickhouseClusterClickhouseConfigGraphiteRollupPattern"
          },
          "description": "Set of thinning rules.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "yandex:index/MdbClickhouseClusterClickhouseConfigGraphiteRollupPattern:MdbClickhouseClusterClickhouseConfigGraphiteRollupPattern": {
      "properties": {
        "function": {
          "type": "string",
          "description": "Aggregation function name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "regexp": {
          "type": "string",
          "description": "Regular expression that the metric name must match.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retentions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouseConfigGraphiteRollupPatternRetention:MdbClickhouseClusterClickhouseConfigGraphiteRollupPatternRetention"
          },
          "description": "Retain parameters.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "function"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "function",
            "regexp"
          ]
        }
      }
    },
    "yandex:index/MdbClickhouseClusterClickhouseConfigGraphiteRollupPatternRetention:MdbClickhouseClusterClickhouseConfigGraphiteRollupPatternRetention": {
      "properties": {
        "age": {
          "type": "integer",
          "description": "Minimum data age in seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "precision": {
          "type": "integer",
          "description": "Accuracy of determining the age of the data in seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "age",
        "precision"
      ]
    },
    "yandex:index/MdbClickhouseClusterClickhouseConfigKafka:MdbClickhouseClusterClickhouseConfigKafka": {
      "properties": {
        "saslMechanism": {
          "type": "string",
          "description": "SASL mechanism used in kafka authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "saslPassword": {
          "type": "string",
          "description": "User password on kafka server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "saslUsername": {
          "type": "string",
          "description": "Username on kafka server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityProtocol": {
          "type": "string",
          "description": "Security protocol used to connect to kafka server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "saslMechanism",
            "saslPassword",
            "saslUsername",
            "securityProtocol"
          ]
        }
      }
    },
    "yandex:index/MdbClickhouseClusterClickhouseConfigKafkaTopic:MdbClickhouseClusterClickhouseConfigKafkaTopic": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Graphite rollup configuration name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "settings": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouseConfigKafkaTopicSettings:MdbClickhouseClusterClickhouseConfigKafkaTopicSettings",
          "description": "Kafka connection settngs sanem as `kafka` block.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "yandex:index/MdbClickhouseClusterClickhouseConfigKafkaTopicSettings:MdbClickhouseClusterClickhouseConfigKafkaTopicSettings": {
      "properties": {
        "saslMechanism": {
          "type": "string",
          "description": "SASL mechanism used in kafka authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "saslPassword": {
          "type": "string",
          "description": "User password on kafka server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "saslUsername": {
          "type": "string",
          "description": "Username on kafka server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityProtocol": {
          "type": "string",
          "description": "Security protocol used to connect to kafka server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/MdbClickhouseClusterClickhouseConfigMergeTree:MdbClickhouseClusterClickhouseConfigMergeTree": {
      "properties": {
        "maxBytesToMergeAtMinSpaceInPool": {
          "type": "integer",
          "description": "Max bytes to merge at min space in pool: Maximum total size of a data part to merge when the number of free threads in the background pool is minimum.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxReplicatedMergesInQueue": {
          "type": "integer",
          "description": "Max replicated merges in queue: Maximum number of merge tasks that can be in the ReplicatedMergeTree queue at the same time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "numberOfFreeEntriesInPoolToLowerMaxSizeOfMerge": {
          "type": "integer",
          "description": "Number of free entries in pool to lower max size of merge: Threshold value of free entries in the pool. If the number of entries in the pool falls below this value, ClickHouse reduces the maximum size of a data part to merge. This helps handle small merges faster, rather than filling the pool with lengthy merges.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "partsToDelayInsert": {
          "type": "integer",
          "description": "Parts to delay insert: Number of active data parts in a table, on exceeding which ClickHouse starts artificially reduce the rate of inserting data into the table.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "partsToThrowInsert": {
          "type": "integer",
          "description": "Parts to throw insert: Threshold value of active data parts in a table, on exceeding which ClickHouse throws the 'Too many parts ...' exception.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replicatedDeduplicationWindow": {
          "type": "integer",
          "description": "Replicated deduplication window: Number of recent hash blocks that ZooKeeper will store (the old ones will be deleted).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replicatedDeduplicationWindowSeconds": {
          "type": "integer",
          "description": "Replicated deduplication window seconds: Time during which ZooKeeper stores the hash blocks (the old ones wil be deleted).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "maxBytesToMergeAtMinSpaceInPool",
            "maxReplicatedMergesInQueue",
            "numberOfFreeEntriesInPoolToLowerMaxSizeOfMerge",
            "partsToDelayInsert",
            "partsToThrowInsert",
            "replicatedDeduplicationWindow",
            "replicatedDeduplicationWindowSeconds"
          ]
        }
      }
    },
    "yandex:index/MdbClickhouseClusterClickhouseConfigRabbitmq:MdbClickhouseClusterClickhouseConfigRabbitmq": {
      "properties": {
        "password": {
          "type": "string",
          "description": "RabbitMQ user password.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "username": {
          "type": "string",
          "description": "RabbitMQ username.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "password",
            "username"
          ]
        }
      }
    },
    "yandex:index/MdbClickhouseClusterClickhouseResources:MdbClickhouseClusterClickhouseResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a ZooKeeper host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of ZooKeeper hosts.\nFor more information see [the official documentation](https://cloud.yandex.com/docs/managed-clickhouse/concepts/storage).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ]
    },
    "yandex:index/MdbClickhouseClusterCloudStorage:MdbClickhouseClusterCloudStorage": {
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Whether to use Yandex Object Storage for storing ClickHouse data. Can be either `true` or `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "enabled"
      ]
    },
    "yandex:index/MdbClickhouseClusterDatabase:MdbClickhouseClusterDatabase": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Graphite rollup configuration name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "yandex:index/MdbClickhouseClusterFormatSchema:MdbClickhouseClusterFormatSchema": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Graphite rollup configuration name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "uri": {
          "type": "string",
          "description": "Model file URL. You can only use models stored in Yandex Object Storage.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "type",
        "uri"
      ]
    },
    "yandex:index/MdbClickhouseClusterHost:MdbClickhouseClusterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "Sets whether the host should get a public IP address on creation. Can be either `true` or `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "The fully qualified domain name of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "shardName": {
          "type": "string",
          "description": "The name of the shard to which the host belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs. The subnet must be a part of the network to which the cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the ClickHouse host will be created.\nFor more information see [the official documentation](https://cloud.yandex.com/docs/overview/concepts/geo-scope).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "type",
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fqdn",
            "shardName",
            "subnetId",
            "type",
            "zone"
          ]
        }
      }
    },
    "yandex:index/MdbClickhouseClusterMaintenanceWindow:MdbClickhouseClusterMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "description": "Day of week for maintenance window if window type is weekly. Possible values: `MON`, `TUE`, `WED`, `THU`, `FRI`, `SAT`, `SUN`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hour": {
          "type": "integer",
          "description": "Hour of day in UTC time zone (1-24) for maintenance window if window type is weekly.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "type"
      ]
    },
    "yandex:index/MdbClickhouseClusterMlModel:MdbClickhouseClusterMlModel": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Graphite rollup configuration name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "uri": {
          "type": "string",
          "description": "Model file URL. You can only use models stored in Yandex Object Storage.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "type",
        "uri"
      ]
    },
    "yandex:index/MdbClickhouseClusterShardGroup:MdbClickhouseClusterShardGroup": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Description of the shard group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Graphite rollup configuration name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "shardNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of shards names that belong to the shard group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "shardNames"
      ]
    },
    "yandex:index/MdbClickhouseClusterUser:MdbClickhouseClusterUser": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Graphite rollup configuration name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "type": "string",
          "description": "RabbitMQ user password.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "permissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterUserPermission:MdbClickhouseClusterUserPermission"
          },
          "description": "Set of permissions granted to the user. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "quotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterUserQuota:MdbClickhouseClusterUserQuota"
          },
          "description": "Set of user quotas. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "settings": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterUserSettings:MdbClickhouseClusterUserSettings",
          "description": "Kafka connection settngs sanem as `kafka` block.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "password"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "password",
            "permissions",
            "quotas",
            "settings"
          ]
        }
      }
    },
    "yandex:index/MdbClickhouseClusterUserPermission:MdbClickhouseClusterUserPermission": {
      "properties": {
        "databaseName": {
          "type": "string",
          "description": "The name of the database that the permission grants access to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "databaseName"
      ]
    },
    "yandex:index/MdbClickhouseClusterUserQuota:MdbClickhouseClusterUserQuota": {
      "properties": {
        "errors": {
          "type": "integer",
          "description": "The number of queries that threw exception.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "executionTime": {
          "type": "integer",
          "description": "The total query execution time, in milliseconds (wall time).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "intervalDuration": {
          "type": "integer",
          "description": "Duration of interval for quota in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queries": {
          "type": "integer",
          "description": "The total number of queries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "readRows": {
          "type": "integer",
          "description": "The total number of source rows read from tables for running the query, on all remote servers.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resultRows": {
          "type": "integer",
          "description": "The total number of rows given as the result.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "intervalDuration"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "errors",
            "executionTime",
            "intervalDuration",
            "queries",
            "readRows",
            "resultRows"
          ]
        }
      }
    },
    "yandex:index/MdbClickhouseClusterUserSettings:MdbClickhouseClusterUserSettings": {
      "properties": {
        "addHttpCorsHeader": {
          "type": "boolean",
          "description": "Include CORS headers in HTTP responces.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "allowDdl": {
          "type": "boolean",
          "description": "Allows or denies DDL queries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "compile": {
          "type": "boolean",
          "description": "Enable compilation of queries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "compileExpressions": {
          "type": "boolean",
          "description": "Turn on expression compilation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "connectTimeout": {
          "type": "integer",
          "description": "Connect timeout in milliseconds on the socket used for communicating with the client.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "countDistinctImplementation": {
          "type": "string",
          "description": "Specifies which of the uniq* functions should be used to perform the COUNT(DISTINCT …) construction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "distinctOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow when using DISTINCT. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "distributedAggregationMemoryEfficient": {
          "type": "boolean",
          "description": "Determine the behavior of distributed subqueries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "distributedDdlTaskTimeout": {
          "type": "integer",
          "description": "Timeout for DDL queries, in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "distributedProductMode": {
          "type": "string",
          "description": "Changes the behaviour of distributed subqueries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "emptyResultForAggregationByEmptySet": {
          "type": "boolean",
          "description": "Allows to retunr empty result.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableHttpCompression": {
          "type": "boolean",
          "description": "Enables or disables data compression in the response to an HTTP request.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fallbackToStaleReplicasForDistributedQueries": {
          "type": "boolean",
          "description": "Forces a query to an out-of-date replica if updated data is not available.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "forceIndexByDate": {
          "type": "boolean",
          "description": "Disables query execution if the index can’t be used by date.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "forcePrimaryKey": {
          "type": "boolean",
          "description": "Disables query execution if indexing by the primary key is not possible.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "groupByOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow while GROUP BY operation. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "groupByTwoLevelThreshold": {
          "type": "integer",
          "description": "Sets the threshold of the number of keys, after that the two-level aggregation should be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "groupByTwoLevelThresholdBytes": {
          "type": "integer",
          "description": "Sets the threshold of the number of bytes, after that the two-level aggregation should be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpConnectionTimeout": {
          "type": "integer",
          "description": "Timeout for HTTP connection in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpHeadersProgressInterval": {
          "type": "integer",
          "description": "Sets minimal interval between notifications about request process in HTTP header X-ClickHouse-Progress.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpReceiveTimeout": {
          "type": "integer",
          "description": "Timeout for HTTP connection in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpSendTimeout": {
          "type": "integer",
          "description": "Timeout for HTTP connection in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "inputFormatDefaultsForOmittedFields": {
          "type": "boolean",
          "description": "When performing INSERT queries, replace omitted input column values with default values of the respective columns.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "inputFormatValuesInterpretExpressions": {
          "type": "boolean",
          "description": "Enables or disables the full SQL parser if the fast stream parser can’t parse the data.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "insertQuorum": {
          "type": "integer",
          "description": "Enables the quorum writes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "insertQuorumTimeout": {
          "type": "integer",
          "description": "Write to a quorum timeout in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "joinOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow in JOIN. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "joinUseNulls": {
          "type": "boolean",
          "description": "Sets the type of JOIN behaviour. When merging tables, empty cells may appear. ClickHouse fills them differently based on this setting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "joinedSubqueryRequiresAlias": {
          "type": "boolean",
          "description": "Require aliases for subselects and table functions in FROM that more than one table is present.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "lowCardinalityAllowInNativeFormat": {
          "type": "boolean",
          "description": "Allows or restricts using the LowCardinality data type with the Native format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxAstDepth": {
          "type": "integer",
          "description": "Maximum abstract syntax tree depth.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxAstElements": {
          "type": "integer",
          "description": "Maximum abstract syntax tree elements.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBlockSize": {
          "type": "integer",
          "description": "A recommendation for what size of the block (in a count of rows) to load from tables.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesBeforeExternalGroupBy": {
          "type": "integer",
          "description": "Limit in bytes for using memoru for GROUP BY before using swap on disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesBeforeExternalSort": {
          "type": "integer",
          "description": "This setting is equivalent of the max_bytes_before_external_group_by setting, except for it is for sort operation (ORDER BY), not aggregation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesInDistinct": {
          "type": "integer",
          "description": "Limits the maximum size of a hash table in bytes (uncompressed data) when using DISTINCT.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesInJoin": {
          "type": "integer",
          "description": "Limit on maximum size of the hash table for JOIN, in bytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesInSet": {
          "type": "integer",
          "description": "Limit on the number of bytes in the set resulting from the execution of the IN section.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesToRead": {
          "type": "integer",
          "description": "Limits the maximum number of bytes (uncompressed data) that can be read from a table when running a query.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesToSort": {
          "type": "integer",
          "description": "Limits the maximum number of bytes (uncompressed data) that can be read from a table for sorting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesToTransfer": {
          "type": "integer",
          "description": "Limits the maximum number of bytes (uncompressed data) that can be passed to a remote server or saved in a temporary table when using GLOBAL IN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxColumnsToRead": {
          "type": "integer",
          "description": "Limits the maximum number of columns that can be read from a table in a single query.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxExecutionTime": {
          "type": "integer",
          "description": "Limits the maximum query execution time in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxExpandedAstElements": {
          "type": "integer",
          "description": "Maximum abstract syntax tree depth after after expansion of aliases.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxInsertBlockSize": {
          "type": "integer",
          "description": "The size of blocks (in a count of rows) to form for insertion into a table.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxMemoryUsage": {
          "type": "integer",
          "description": "Limits the maximum memory usage (in bytes) for processing queries on a single server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxMemoryUsageForUser": {
          "type": "integer",
          "description": "Limits the maximum memory usage (in bytes) for processing of user's queries on a single server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxNetworkBandwidth": {
          "type": "integer",
          "description": "Limits the speed of the data exchange over the network in bytes per second.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxNetworkBandwidthForUser": {
          "type": "integer",
          "description": "Limits the speed of the data exchange over the network in bytes per second.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxQuerySize": {
          "type": "integer",
          "description": "The maximum part of a query that can be taken to RAM for parsing with the SQL parser.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxReplicaDelayForDistributedQueries": {
          "type": "integer",
          "description": "Disables lagging replicas for distributed queries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxResultBytes": {
          "type": "integer",
          "description": "Limits the number of bytes in the result.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxResultRows": {
          "type": "integer",
          "description": "Limits the number of rows in the result.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsInDistinct": {
          "type": "integer",
          "description": "Limits the maximum number of different rows when using DISTINCT.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsInJoin": {
          "type": "integer",
          "description": "Limit on maximum size of the hash table for JOIN, in rows.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsInSet": {
          "type": "integer",
          "description": "Limit on the number of rows in the set resulting from the execution of the IN section.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsToGroupBy": {
          "type": "integer",
          "description": "Limits the maximum number of unique keys received from aggregation function.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsToRead": {
          "type": "integer",
          "description": "Limits the maximum number of rows that can be read from a table when running a query.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsToSort": {
          "type": "integer",
          "description": "Limits the maximum number of rows that can be read from a table for sorting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsToTransfer": {
          "type": "integer",
          "description": "Limits the maximum number of rows that can be passed to a remote server or saved in a temporary table when using GLOBAL IN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxTemporaryColumns": {
          "type": "integer",
          "description": "Limits the maximum number of temporary columns that must be kept in RAM at the same time when running a query, including constant columns.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxTemporaryNonConstColumns": {
          "type": "integer",
          "description": "Limits the maximum number of temporary columns that must be kept in RAM at the same time when running a query, excluding constant columns.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxThreads": {
          "type": "integer",
          "description": "The maximum number of query processing threads, excluding threads for retrieving data from remote servers.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mergeTreeMaxBytesToUseCache": {
          "type": "integer",
          "description": "If ClickHouse should read more than merge_tree_max_bytes_to_use_cache bytes in one query, it doesn’t use the cache of uncompressed blocks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mergeTreeMaxRowsToUseCache": {
          "type": "integer",
          "description": "If ClickHouse should read more than merge_tree_max_rows_to_use_cache rows in one query, it doesn’t use the cache of uncompressed blocks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mergeTreeMinBytesForConcurrentRead": {
          "type": "integer",
          "description": "If the number of bytes to read from one file of a MergeTree-engine table exceeds merge_tree_min_bytes_for_concurrent_read, then ClickHouse tries to concurrently read from this file in several threads.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mergeTreeMinRowsForConcurrentRead": {
          "type": "integer",
          "description": "If the number of rows to be read from a file of a MergeTree table exceeds merge_tree_min_rows_for_concurrent_read then ClickHouse tries to perform a concurrent reading from this file on several threads.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minBytesToUseDirectIo": {
          "type": "integer",
          "description": "The minimum data volume required for using direct I/O access to the storage disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minCountToCompile": {
          "type": "integer",
          "description": "How many times to potentially use a compiled chunk of code before running compilation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minCountToCompileExpression": {
          "type": "integer",
          "description": "A query waits for expression compilation process to complete prior to continuing execution.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minExecutionSpeed": {
          "type": "integer",
          "description": "Minimal execution speed in rows per second.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minExecutionSpeedBytes": {
          "type": "integer",
          "description": "Minimal execution speed in bytes per second.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minInsertBlockSizeBytes": {
          "type": "integer",
          "description": "Sets the minimum number of bytes in the block which can be inserted into a table by an INSERT query.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minInsertBlockSizeRows": {
          "type": "integer",
          "description": "Sets the minimum number of rows in the block which can be inserted into a table by an INSERT query.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "outputFormatJsonQuote64bitIntegers": {
          "type": "boolean",
          "description": "If the value is true, integers appear in quotes when using JSON* Int64 and UInt64 formats (for compatibility with most JavaScript implementations); otherwise, integers are output without the quotes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "outputFormatJsonQuoteDenormals": {
          "type": "boolean",
          "description": "Enables +nan, -nan, +inf, -inf outputs in JSON output format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "priority": {
          "type": "integer",
          "description": "Query priority.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "quotaMode": {
          "type": "string",
          "description": "Quota accounting mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "readOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow while read. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "readonly": {
          "type": "integer",
          "description": "Restricts permissions for reading data, write data and change settings queries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "receiveTimeout": {
          "type": "integer",
          "description": "Receive timeout in milliseconds on the socket used for communicating with the client.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replicationAlterPartitionsSync": {
          "type": "integer",
          "description": "For ALTER ... ATTACH|DETACH|DROP queries, you can use the replication_alter_partitions_sync setting to set up waiting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resultOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow in result. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "selectSequentialConsistency": {
          "type": "boolean",
          "description": "Enables or disables sequential consistency for SELECT queries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sendProgressInHttpHeaders": {
          "type": "boolean",
          "description": "Enables or disables X-ClickHouse-Progress HTTP response headers in clickhouse-server responses.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sendTimeout": {
          "type": "integer",
          "description": "Send timeout in milliseconds on the socket used for communicating with the client.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "setOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow in the set resulting. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "skipUnavailableShards": {
          "type": "boolean",
          "description": "Enables or disables silently skipping of unavailable shards.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sortOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow while sort. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeoutOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "transferOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "transformNullIn": {
          "type": "boolean",
          "description": "Enables equality of NULL values for IN operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "useUncompressedCache": {
          "type": "boolean",
          "description": "Whether to use a cache of uncompressed blocks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "addHttpCorsHeader",
            "allowDdl",
            "compile",
            "compileExpressions",
            "connectTimeout",
            "countDistinctImplementation",
            "distinctOverflowMode",
            "distributedAggregationMemoryEfficient",
            "distributedDdlTaskTimeout",
            "distributedProductMode",
            "emptyResultForAggregationByEmptySet",
            "enableHttpCompression",
            "fallbackToStaleReplicasForDistributedQueries",
            "forceIndexByDate",
            "forcePrimaryKey",
            "groupByOverflowMode",
            "groupByTwoLevelThreshold",
            "groupByTwoLevelThresholdBytes",
            "httpConnectionTimeout",
            "httpHeadersProgressInterval",
            "httpReceiveTimeout",
            "httpSendTimeout",
            "inputFormatDefaultsForOmittedFields",
            "inputFormatValuesInterpretExpressions",
            "insertQuorum",
            "insertQuorumTimeout",
            "joinOverflowMode",
            "joinUseNulls",
            "joinedSubqueryRequiresAlias",
            "lowCardinalityAllowInNativeFormat",
            "maxAstDepth",
            "maxAstElements",
            "maxBlockSize",
            "maxBytesBeforeExternalGroupBy",
            "maxBytesBeforeExternalSort",
            "maxBytesInDistinct",
            "maxBytesInJoin",
            "maxBytesInSet",
            "maxBytesToRead",
            "maxBytesToSort",
            "maxBytesToTransfer",
            "maxColumnsToRead",
            "maxExecutionTime",
            "maxExpandedAstElements",
            "maxInsertBlockSize",
            "maxMemoryUsage",
            "maxMemoryUsageForUser",
            "maxNetworkBandwidth",
            "maxNetworkBandwidthForUser",
            "maxQuerySize",
            "maxReplicaDelayForDistributedQueries",
            "maxResultBytes",
            "maxResultRows",
            "maxRowsInDistinct",
            "maxRowsInJoin",
            "maxRowsInSet",
            "maxRowsToGroupBy",
            "maxRowsToRead",
            "maxRowsToSort",
            "maxRowsToTransfer",
            "maxTemporaryColumns",
            "maxTemporaryNonConstColumns",
            "maxThreads",
            "mergeTreeMaxBytesToUseCache",
            "mergeTreeMaxRowsToUseCache",
            "mergeTreeMinBytesForConcurrentRead",
            "mergeTreeMinRowsForConcurrentRead",
            "minBytesToUseDirectIo",
            "minCountToCompile",
            "minCountToCompileExpression",
            "minExecutionSpeed",
            "minExecutionSpeedBytes",
            "minInsertBlockSizeBytes",
            "minInsertBlockSizeRows",
            "outputFormatJsonQuote64bitIntegers",
            "outputFormatJsonQuoteDenormals",
            "priority",
            "quotaMode",
            "readOverflowMode",
            "readonly",
            "receiveTimeout",
            "replicationAlterPartitionsSync",
            "resultOverflowMode",
            "selectSequentialConsistency",
            "sendProgressInHttpHeaders",
            "sendTimeout",
            "setOverflowMode",
            "skipUnavailableShards",
            "sortOverflowMode",
            "timeoutOverflowMode",
            "transferOverflowMode",
            "transformNullIn",
            "useUncompressedCache"
          ]
        }
      }
    },
    "yandex:index/MdbClickhouseClusterZookeeper:MdbClickhouseClusterZookeeper": {
      "properties": {
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterZookeeperResources:MdbClickhouseClusterZookeeperResources",
          "description": "Resources allocated to hosts of the ZooKeeper subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "resources"
          ]
        }
      }
    },
    "yandex:index/MdbClickhouseClusterZookeeperResources:MdbClickhouseClusterZookeeperResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a ZooKeeper host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of ZooKeeper hosts.\nFor more information see [the official documentation](https://cloud.yandex.com/docs/managed-clickhouse/concepts/storage).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "diskSize",
            "diskTypeId",
            "resourcePresetId"
          ]
        }
      }
    },
    "yandex:index/MdbElasticSearchClusterConfig:MdbElasticSearchClusterConfig": {
      "properties": {
        "adminPassword": {
          "type": "string",
          "description": "Password for admin user of Elasticsearch.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dataNode": {
          "$ref": "#/types/yandex:index%2FMdbElasticSearchClusterConfigDataNode:MdbElasticSearchClusterConfigDataNode",
          "description": "Configuration for Elasticsearch data nodes subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "edition": {
          "type": "string",
          "description": "Edition of Elasticsearch. For more information, see [the official documentation](https://cloud.yandex.com/en-ru/docs/managed-elasticsearch/concepts/es-editions).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "masterNode": {
          "$ref": "#/types/yandex:index%2FMdbElasticSearchClusterConfigMasterNode:MdbElasticSearchClusterConfigMasterNode",
          "description": "Configuration for Elasticsearch master nodes subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "plugins": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of Elasticsearch plugins to install.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "version": {
          "type": "string",
          "description": "Version of Elasticsearch.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "adminPassword",
        "dataNode"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "adminPassword",
            "dataNode",
            "edition",
            "version"
          ]
        }
      }
    },
    "yandex:index/MdbElasticSearchClusterConfigDataNode:MdbElasticSearchClusterConfigDataNode": {
      "properties": {
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbElasticSearchClusterConfigDataNodeResources:MdbElasticSearchClusterConfigDataNodeResources",
          "description": "Resources allocated to hosts of the Elasticsearch master nodes subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "resources"
      ]
    },
    "yandex:index/MdbElasticSearchClusterConfigDataNodeResources:MdbElasticSearchClusterConfigDataNodeResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of Elasticsearch hosts.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ]
    },
    "yandex:index/MdbElasticSearchClusterConfigMasterNode:MdbElasticSearchClusterConfigMasterNode": {
      "properties": {
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbElasticSearchClusterConfigMasterNodeResources:MdbElasticSearchClusterConfigMasterNodeResources",
          "description": "Resources allocated to hosts of the Elasticsearch master nodes subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "resources"
      ]
    },
    "yandex:index/MdbElasticSearchClusterConfigMasterNodeResources:MdbElasticSearchClusterConfigMasterNodeResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of Elasticsearch hosts.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ]
    },
    "yandex:index/MdbElasticSearchClusterHost:MdbElasticSearchClusterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "Sets whether the host should get a public IP address on creation. Can be either `true` or `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "The fully qualified domain name of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "User defined host name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs. The subnet must\nbe a part of the network to which the cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the Elasticsearch host will be created.\nFor more information see [the official documentation](https://cloud.yandex.com/docs/overview/concepts/geo-scope).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "type",
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fqdn",
            "name",
            "subnetId",
            "type",
            "zone"
          ]
        }
      }
    },
    "yandex:index/MdbElasticSearchClusterMaintenanceWindow:MdbElasticSearchClusterMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "description": "Day of week for maintenance window if window type is weekly. Possible values: `MON`, `TUE`, `WED`, `THU`, `FRI`, `SAT`, `SUN`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hour": {
          "type": "integer",
          "description": "Hour of day in UTC time zone (1-24) for maintenance window if window type is weekly.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "type"
      ]
    },
    "yandex:index/MdbGreenplumClusterAccess:MdbGreenplumClusterAccess": {
      "properties": {
        "dataLens": {
          "type": "boolean",
          "description": "Allow access for [Yandex DataLens](https://cloud.yandex.com/services/datalens).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "webSql": {
          "type": "boolean",
          "description": "Allows access for SQL queries in the management console\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/MdbGreenplumClusterBackupWindowStart:MdbGreenplumClusterBackupWindowStart": {
      "properties": {
        "hours": {
          "type": "integer",
          "description": "The hour at which backup will be started (UTC).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minutes": {
          "type": "integer",
          "description": "The minute at which backup will be started (UTC).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/MdbGreenplumClusterMasterHost:MdbGreenplumClusterMasterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "Sets whether the master hosts should get a public IP address on creation. Changing this parameter for an existing host is not supported at the moment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "(Computed) The fully qualified domain name of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "assignPublicIp",
            "fqdn"
          ]
        }
      }
    },
    "yandex:index/MdbGreenplumClusterMasterSubcluster:MdbGreenplumClusterMasterSubcluster": {
      "properties": {
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbGreenplumClusterMasterSubclusterResources:MdbGreenplumClusterMasterSubclusterResources",
          "description": "Resources allocated to hosts for segment subcluster of the Greenplum cluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "resources"
      ]
    },
    "yandex:index/MdbGreenplumClusterMasterSubclusterResources:MdbGreenplumClusterMasterSubclusterResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ]
    },
    "yandex:index/MdbGreenplumClusterSegmentHost:MdbGreenplumClusterSegmentHost": {
      "properties": {
        "fqdn": {
          "type": "string",
          "description": "(Computed) The fully qualified domain name of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fqdn"
          ]
        }
      }
    },
    "yandex:index/MdbGreenplumClusterSegmentSubcluster:MdbGreenplumClusterSegmentSubcluster": {
      "properties": {
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbGreenplumClusterSegmentSubclusterResources:MdbGreenplumClusterSegmentSubclusterResources",
          "description": "Resources allocated to hosts for segment subcluster of the Greenplum cluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "resources"
      ]
    },
    "yandex:index/MdbGreenplumClusterSegmentSubclusterResources:MdbGreenplumClusterSegmentSubclusterResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ]
    },
    "yandex:index/MdbKafkaClusterConfig:MdbKafkaClusterConfig": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "Determines whether each broker will be assigned a public IP address. The default is `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "brokersCount": {
          "type": "integer",
          "description": "Count of brokers per availability zone. The default is `1`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "kafka": {
          "$ref": "#/types/yandex:index%2FMdbKafkaClusterConfigKafka:MdbKafkaClusterConfigKafka",
          "description": "Configuration of the Kafka subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "schemaRegistry": {
          "type": "boolean",
          "description": "Enables managed schema registry on cluster. The default is `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unmanagedTopics": {
          "type": "boolean",
          "description": "Allows to use Kafka AdminAPI to manage topics. The default is `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "version": {
          "type": "string",
          "description": "Version of the Kafka server software.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of availability zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zookeeper": {
          "$ref": "#/types/yandex:index%2FMdbKafkaClusterConfigZookeeper:MdbKafkaClusterConfigZookeeper",
          "description": "Configuration of the ZooKeeper subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "kafka",
        "version",
        "zones"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "kafka",
            "version",
            "zones",
            "zookeeper"
          ]
        }
      }
    },
    "yandex:index/MdbKafkaClusterConfigKafka:MdbKafkaClusterConfigKafka": {
      "properties": {
        "kafkaConfig": {
          "$ref": "#/types/yandex:index%2FMdbKafkaClusterConfigKafkaKafkaConfig:MdbKafkaClusterConfigKafkaKafkaConfig",
          "description": "User-defined settings for the Kafka cluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbKafkaClusterConfigKafkaResources:MdbKafkaClusterConfigKafkaResources",
          "description": "Resources allocated to hosts of the ZooKeeper subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "resources"
      ]
    },
    "yandex:index/MdbKafkaClusterConfigKafkaKafkaConfig:MdbKafkaClusterConfigKafkaKafkaConfig": {
      "properties": {
        "autoCreateTopicsEnable": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "compressionType": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "defaultReplicationFactor": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logFlushIntervalMessages": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logFlushIntervalMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logFlushSchedulerIntervalMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logPreallocate": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logRetentionBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logRetentionHours": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logRetentionMinutes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logRetentionMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logSegmentBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "numPartitions": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "socketReceiveBufferBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "socketSendBufferBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/MdbKafkaClusterConfigKafkaResources:MdbKafkaClusterConfigKafkaResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a ZooKeeper host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of ZooKeeper hosts.\nFor more information see [the official documentation](https://cloud.yandex.com/docs/managed-kafka/concepts/storage).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ]
    },
    "yandex:index/MdbKafkaClusterConfigZookeeper:MdbKafkaClusterConfigZookeeper": {
      "properties": {
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbKafkaClusterConfigZookeeperResources:MdbKafkaClusterConfigZookeeperResources",
          "description": "Resources allocated to hosts of the ZooKeeper subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "resources"
          ]
        }
      }
    },
    "yandex:index/MdbKafkaClusterConfigZookeeperResources:MdbKafkaClusterConfigZookeeperResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a ZooKeeper host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of ZooKeeper hosts.\nFor more information see [the official documentation](https://cloud.yandex.com/docs/managed-kafka/concepts/storage).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "diskSize",
            "diskTypeId",
            "resourcePresetId"
          ]
        }
      }
    },
    "yandex:index/MdbKafkaClusterHost:MdbKafkaClusterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "Determines whether each broker will be assigned a public IP address. The default is `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "health": {
          "type": "string",
          "description": "Health of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "The name of the topic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "role": {
          "type": "string",
          "description": "The role type to grant to the topic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneId": {
          "type": "string",
          "description": "The availability zone where the Kafka host was created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "assignPublicIp",
            "health",
            "name",
            "role",
            "subnetId",
            "zoneId"
          ]
        }
      }
    },
    "yandex:index/MdbKafkaClusterMaintenanceWindow:MdbKafkaClusterMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "description": "Day of the week (in `DDD` format). Allowed values: \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\", \"SUN\"\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hour": {
          "type": "integer",
          "description": "Hour of the day in UTC (in `HH` format). Allowed value is between 1 and 24.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "type"
      ]
    },
    "yandex:index/MdbKafkaClusterTopic:MdbKafkaClusterTopic": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the topic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "partitions": {
          "type": "integer",
          "description": "The number of the topic's partitions.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replicationFactor": {
          "type": "integer",
          "description": "Amount of data copies (replicas) for the topic in the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "topicConfig": {
          "$ref": "#/types/yandex:index%2FMdbKafkaClusterTopicTopicConfig:MdbKafkaClusterTopicTopicConfig",
          "description": "User-defined settings for the topic. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "partitions",
        "replicationFactor"
      ]
    },
    "yandex:index/MdbKafkaClusterTopicTopicConfig:MdbKafkaClusterTopicTopicConfig": {
      "properties": {
        "cleanupPolicy": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "compressionType": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "deleteRetentionMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fileDeleteDelayMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "flushMessages": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "flushMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxMessageBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minCompactionLagMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minInsyncReplicas": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "preallocate": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retentionBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retentionMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "segmentBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/MdbKafkaClusterUser:MdbKafkaClusterUser": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the topic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "type": "string",
          "description": "The password of the user.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "permissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbKafkaClusterUserPermission:MdbKafkaClusterUserPermission"
          },
          "description": "Set of permissions granted to the user. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "password"
      ]
    },
    "yandex:index/MdbKafkaClusterUserPermission:MdbKafkaClusterUserPermission": {
      "properties": {
        "role": {
          "type": "string",
          "description": "The role type to grant to the topic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "topicName": {
          "type": "string",
          "description": "The name of the topic that the permission grants access to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "role",
        "topicName"
      ]
    },
    "yandex:index/MdbKafkaTopicTopicConfig:MdbKafkaTopicTopicConfig": {
      "properties": {
        "cleanupPolicy": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "compressionType": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "deleteRetentionMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fileDeleteDelayMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "flushMessages": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "flushMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxMessageBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minCompactionLagMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minInsyncReplicas": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "preallocate": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retentionBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retentionMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "segmentBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/MdbMongodbClusterClusterConfig:MdbMongodbClusterClusterConfig": {
      "properties": {
        "access": {
          "$ref": "#/types/yandex:index%2FMdbMongodbClusterClusterConfigAccess:MdbMongodbClusterClusterConfigAccess",
          "description": "Shows whether cluster has access to data lens. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "backupWindowStart": {
          "$ref": "#/types/yandex:index%2FMdbMongodbClusterClusterConfigBackupWindowStart:MdbMongodbClusterClusterConfigBackupWindowStart",
          "description": "Time to start the daily backup, in the UTC timezone. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "featureCompatibilityVersion": {
          "type": "string",
          "description": "Feature compatibility version of MongoDB. If not provided version is taken. Can be either `5.0`, `4.4`, `4.2` and `4.0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "version": {
          "type": "string",
          "description": "Version of MongoDB (either 5.0, 4.4, 4.2 or 4.0).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "access",
            "backupWindowStart",
            "featureCompatibilityVersion",
            "version"
          ]
        }
      }
    },
    "yandex:index/MdbMongodbClusterClusterConfigAccess:MdbMongodbClusterClusterConfigAccess": {
      "properties": {
        "dataLens": {
          "type": "boolean",
          "description": "Allow access for DataLens.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dataLens"
          ]
        }
      }
    },
    "yandex:index/MdbMongodbClusterClusterConfigBackupWindowStart:MdbMongodbClusterClusterConfigBackupWindowStart": {
      "properties": {
        "hours": {
          "type": "integer",
          "description": "The hour at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minutes": {
          "type": "integer",
          "description": "The minute at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/MdbMongodbClusterDatabase:MdbMongodbClusterDatabase": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The fully qualified domain name of the host. Computed on server side.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "yandex:index/MdbMongodbClusterHost:MdbMongodbClusterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "-(Optional)  Should this host have assigned public IP assigned. Can be either `true` or `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "health": {
          "type": "string",
          "description": "The health of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "The fully qualified domain name of the host. Computed on server side.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "role": {
          "type": "string",
          "description": "The role of the cluster (either PRIMARY or SECONDARY).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "shardName": {
          "type": "string",
          "description": "The name of the shard to which the host belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs. The subnet must\nbe a part of the network to which the cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneId": {
          "type": "string",
          "description": "The availability zone where the MongoDB host will be created.\nFor more information see [the official documentation](https://cloud.yandex.com/docs/overview/concepts/geo-scope).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "subnetId",
        "zoneId"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "assignPublicIp",
            "health",
            "name",
            "role",
            "shardName",
            "subnetId",
            "type",
            "zoneId"
          ]
        }
      }
    },
    "yandex:index/MdbMongodbClusterMaintenanceWindow:MdbMongodbClusterMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "description": "Day of week for maintenance window if window type is weekly. Possible values: `MON`, `TUE`, `WED`, `THU`, `FRI`, `SAT`, `SUN`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hour": {
          "type": "integer",
          "description": "Hour of day in UTC time zone (1-24) for maintenance window if window type is weekly.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "type"
      ]
    },
    "yandex:index/MdbMongodbClusterResources:MdbMongodbClusterResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a MongoDB host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of MongoDB hosts.\nFor more information see [the official documentation](https://cloud.yandex.com/docs/managed-clickhouse/concepts/storage).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ]
    },
    "yandex:index/MdbMongodbClusterUser:MdbMongodbClusterUser": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The fully qualified domain name of the host. Computed on server side.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "type": "string",
          "description": "The password of the user.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "permissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMongodbClusterUserPermission:MdbMongodbClusterUserPermission"
          },
          "description": "Set of permissions granted to the user. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "password"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "password",
            "permissions"
          ]
        }
      }
    },
    "yandex:index/MdbMongodbClusterUserPermission:MdbMongodbClusterUserPermission": {
      "properties": {
        "databaseName": {
          "type": "string",
          "description": "The name of the database that the permission grants access to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The roles of the user in this database. For more information see [the official documentation](https://cloud.yandex.com/docs/managed-mongodb/concepts/users-and-roles).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "databaseName"
      ]
    },
    "yandex:index/MdbMysqlClusterAccess:MdbMysqlClusterAccess": {
      "properties": {
        "dataLens": {
          "type": "boolean",
          "description": "Allow access for [Yandex DataLens](https://cloud.yandex.com/services/datalens).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "webSql": {
          "type": "boolean",
          "description": "Allows access for [SQL queries in the management console](https://cloud.yandex.com/docs/managed-mysql/operations/web-sql-query).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/MdbMysqlClusterBackupWindowStart:MdbMysqlClusterBackupWindowStart": {
      "properties": {
        "hours": {
          "type": "integer",
          "description": "The hour at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minutes": {
          "type": "integer",
          "description": "The minute at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/MdbMysqlClusterDatabase:MdbMysqlClusterDatabase": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Host state name. It should be set for all hosts or unset for all hosts. This field can be used by another host, to select which host will be its replication source. Please refer to `replication_source_name` parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "yandex:index/MdbMysqlClusterHost:MdbMysqlClusterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "Sets whether the host should get a public IP address. It can be changed on the fly only when `name` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "The fully qualified domain name of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Host state name. It should be set for all hosts or unset for all hosts. This field can be used by another host, to select which host will be its replication source. Please refer to `replication_source_name` parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replicationSource": {
          "type": "string",
          "description": "Host replication source (fqdn), when replication_source is empty then host is in HA group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replicationSourceName": {
          "type": "string",
          "description": "Host replication source name points to host's `name` from which this host should replicate. When not set then host in HA group. It works only when `name` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs. The subnet must be a part of the network to which the cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the MySQL host will be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fqdn",
            "replicationSource",
            "subnetId",
            "zone"
          ]
        }
      }
    },
    "yandex:index/MdbMysqlClusterMaintenanceWindow:MdbMysqlClusterMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "description": "Day of the week (in `DDD` format). Allowed values: \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\", \"SUN\"\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hour": {
          "type": "integer",
          "description": "Hour of the day in UTC (in `HH` format). Allowed value is between 0 and 23.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "type"
      ]
    },
    "yandex:index/MdbMysqlClusterResources:MdbMysqlClusterResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a MySQL host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of MySQL hosts.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ]
    },
    "yandex:index/MdbMysqlClusterRestore:MdbMysqlClusterRestore": {
      "properties": {
        "backupId": {
          "type": "string",
          "description": "Backup ID. The cluster will be created from the specified backup. [How to get a list of MySQL backups](https://cloud.yandex.com/docs/managed-mysql/operations/cluster-backups).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "time": {
          "type": "string",
          "description": "Timestamp of the moment to which the MySQL cluster should be restored. (Format: \"2006-01-02T15:04:05\" - UTC). When not set, current time is used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "backupId"
      ]
    },
    "yandex:index/MdbMysqlClusterUser:MdbMysqlClusterUser": {
      "properties": {
        "authenticationPlugin": {
          "type": "string",
          "description": "Authentication plugin. Allowed values: `MYSQL_NATIVE_PASSWORD`, `CACHING_SHA2_PASSWORD`, `SHA256_PASSWORD` (for version 5.7 `MYSQL_NATIVE_PASSWORD`, `SHA256_PASSWORD`)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "connectionLimits": {
          "$ref": "#/types/yandex:index%2FMdbMysqlClusterUserConnectionLimits:MdbMysqlClusterUserConnectionLimits",
          "description": "User's connection limits. The structure is documented below.\nIf the attribute is not specified there will be no changes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "globalPermissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List user's global permissions     \nAllowed permissions:  `REPLICATION_CLIENT`, `REPLICATION_SLAVE`, `PROCESS` for clear list use empty list.\nIf the attribute is not specified there will be no changes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Host state name. It should be set for all hosts or unset for all hosts. This field can be used by another host, to select which host will be its replication source. Please refer to `replication_source_name` parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "type": "string",
          "description": "The password of the user.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "permissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMysqlClusterUserPermission:MdbMysqlClusterUserPermission"
          },
          "description": "Set of permissions granted to the user. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "password"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "authenticationPlugin",
            "connectionLimits",
            "globalPermissions",
            "name",
            "password",
            "permissions"
          ]
        }
      }
    },
    "yandex:index/MdbMysqlClusterUserConnectionLimits:MdbMysqlClusterUserConnectionLimits": {
      "properties": {
        "maxConnectionsPerHour": {
          "type": "integer",
          "description": "Max connections per hour.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxQuestionsPerHour": {
          "type": "integer",
          "description": "Max questions per hour.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxUpdatesPerHour": {
          "type": "integer",
          "description": "Max updates per hour.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxUserConnections": {
          "type": "integer",
          "description": "Max user connections.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/MdbMysqlClusterUserPermission:MdbMysqlClusterUserPermission": {
      "properties": {
        "databaseName": {
          "type": "string",
          "description": "The name of the database that the permission grants access to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List user's roles in the database.\nAllowed roles: `ALL`,`ALTER`,`ALTER_ROUTINE`,`CREATE`,`CREATE_ROUTINE`,`CREATE_TEMPORARY_TABLES`,\n`CREATE_VIEW`,`DELETE`,`DROP`,`EVENT`,`EXECUTE`,`INDEX`,`INSERT`,`LOCK_TABLES`,`SELECT`,`SHOW_VIEW`,`TRIGGER`,`UPDATE`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "databaseName"
      ]
    },
    "yandex:index/MdbRedisClusterConfig:MdbRedisClusterConfig": {
      "properties": {
        "databases": {
          "type": "integer",
          "description": "Number of databases (changing requires redis-server restart).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxmemoryPolicy": {
          "type": "string",
          "description": "Redis key eviction policy for a dataset that reaches maximum memory.\nCan be any of the listed in [the official RedisDB documentation](https://docs.redislabs.com/latest/rs/administering/database-operations/eviction-policy/).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "notifyKeyspaceEvents": {
          "type": "string",
          "description": "Select the events that Redis will notify among a set of classes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "type": "string",
          "description": "Password for the Redis cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "slowlogLogSlowerThan": {
          "type": "integer",
          "description": "Log slow queries below this number in microseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "slowlogMaxLen": {
          "type": "integer",
          "description": "Slow queries log length.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "integer",
          "description": "Close the connection after a client is idle for N seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "version": {
          "type": "string",
          "description": "Version of Redis (5.0, 6.0 or 6.2).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "password",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "databases",
            "maxmemoryPolicy",
            "notifyKeyspaceEvents",
            "password",
            "slowlogLogSlowerThan",
            "slowlogMaxLen",
            "timeout",
            "version"
          ]
        }
      }
    },
    "yandex:index/MdbRedisClusterHost:MdbRedisClusterHost": {
      "properties": {
        "fqdn": {
          "type": "string",
          "description": "The fully qualified domain name of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "shardName": {
          "type": "string",
          "description": "The name of the shard to which the host belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs. The subnet must\nbe a part of the network to which the cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the Redis host will be created.\nFor more information see [the official documentation](https://cloud.yandex.com/docs/overview/concepts/geo-scope).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fqdn",
            "shardName",
            "subnetId",
            "zone"
          ]
        }
      }
    },
    "yandex:index/MdbRedisClusterMaintenanceWindow:MdbRedisClusterMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "description": "Day of week for maintenance window if window type is weekly. Possible values: `MON`, `TUE`, `WED`, `THU`, `FRI`, `SAT`, `SUN`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hour": {
          "type": "integer",
          "description": "Hour of day in UTC time zone (1-24) for maintenance window if window type is weekly.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "type"
      ]
    },
    "yandex:index/MdbRedisClusterResources:MdbRedisClusterResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of Redis hosts - environment default is used if missing.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "diskSize",
            "diskTypeId",
            "resourcePresetId"
          ]
        }
      }
    },
    "yandex:index/MdbSqlServerClusterBackupWindowStart:MdbSqlServerClusterBackupWindowStart": {
      "properties": {
        "hours": {
          "type": "integer",
          "description": "The hour at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minutes": {
          "type": "integer",
          "description": "The minute at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/MdbSqlServerClusterDatabase:MdbSqlServerClusterDatabase": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the database.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "yandex:index/MdbSqlServerClusterHost:MdbSqlServerClusterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "Sets whether the host should get a public IP address on creation. Changing this parameter for an existing host is not supported at the moment\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "The fully qualified domain name of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs. The subnet must be a part of the network to which the cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the SQLServer host will be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fqdn",
            "subnetId",
            "zone"
          ]
        }
      }
    },
    "yandex:index/MdbSqlServerClusterResources:MdbSqlServerClusterResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a SQLServer host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of SQLServer hosts.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ]
    },
    "yandex:index/MdbSqlServerClusterUser:MdbSqlServerClusterUser": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the database.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "type": "string",
          "description": "The password of the user.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "permissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbSqlServerClusterUserPermission:MdbSqlServerClusterUserPermission"
          },
          "description": "Set of permissions granted to the user. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "password"
      ]
    },
    "yandex:index/MdbSqlServerClusterUserPermission:MdbSqlServerClusterUserPermission": {
      "properties": {
        "databaseName": {
          "type": "string",
          "description": "The name of the database that the permission grants access to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List user's roles in the database.\nAllowed roles: `OWNER`, `SECURITYADMIN`, `ACCESSADMIN`, `BACKUPOPERATOR`, `DDLADMIN`, `DATAWRITER`, `DATAREADER`, `DENYDATAWRITER`, `DENYDATAREADER`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "databaseName"
      ]
    },
    "yandex:index/OrganizationmanagerSamlFederationSecuritySettings:OrganizationmanagerSamlFederationSecuritySettings": {
      "properties": {
        "encryptedAssertions": {
          "type": "boolean",
          "description": "Enable encrypted assertions.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "encryptedAssertions"
      ]
    },
    "yandex:index/ServerlessContainerImage:ServerlessContainerImage": {
      "properties": {
        "args": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "digest": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "environment": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "url": {
          "type": "string",
          "description": "Invoke URL for the Yandex Cloud Serverless Container\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "workDir": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "url"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "digest",
            "url"
          ]
        }
      }
    },
    "yandex:index/StorageBucketCorsRule:StorageBucketCorsRule": {
      "properties": {
        "allowedHeaders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies which headers are allowed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "allowedMethods": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies which methods are allowed. Can be `GET`, `PUT`, `POST`, `DELETE` or `HEAD`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "allowedOrigins": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies which origins are allowed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "exposeHeaders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies expose header in the response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxAgeSeconds": {
          "type": "integer",
          "description": "Specifies time in seconds that browser can cache the response for a preflight request.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "allowedMethods",
        "allowedOrigins"
      ]
    },
    "yandex:index/StorageBucketGrant:StorageBucketGrant": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier for the rule. Must be less than or equal to 255 characters in length.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "permissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "uri": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "permissions",
        "type"
      ]
    },
    "yandex:index/StorageBucketLifecycleRule:StorageBucketLifecycleRule": {
      "properties": {
        "abortIncompleteMultipartUploadDays": {
          "type": "integer",
          "description": "Specifies the number of days after initiating a multipart upload when the multipart upload must be completed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies lifecycle rule status.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "expiration": {
          "$ref": "#/types/yandex:index%2FStorageBucketLifecycleRuleExpiration:StorageBucketLifecycleRuleExpiration",
          "description": "Specifies a period in the object's expire (documented below).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "id": {
          "type": "string",
          "description": "Unique identifier for the rule. Must be less than or equal to 255 characters in length.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "noncurrentVersionExpiration": {
          "$ref": "#/types/yandex:index%2FStorageBucketLifecycleRuleNoncurrentVersionExpiration:StorageBucketLifecycleRuleNoncurrentVersionExpiration",
          "description": "Specifies when noncurrent object versions expire (documented below).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "noncurrentVersionTransitions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FStorageBucketLifecycleRuleNoncurrentVersionTransition:StorageBucketLifecycleRuleNoncurrentVersionTransition"
          },
          "description": "Specifies when noncurrent object versions transitions (documented below).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "prefix": {
          "type": "string",
          "description": "Object key prefix identifying one or more objects to which the rule applies.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "transitions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FStorageBucketLifecycleRuleTransition:StorageBucketLifecycleRuleTransition"
          },
          "description": "Specifies a period in the object's transitions (documented below).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "enabled"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "enabled",
            "id"
          ]
        }
      }
    },
    "yandex:index/StorageBucketLifecycleRuleExpiration:StorageBucketLifecycleRuleExpiration": {
      "properties": {
        "date": {
          "type": "string",
          "description": "Specifies the date after which you want the corresponding action to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "days": {
          "type": "integer",
          "description": "Specifies the number of days after object creation when the specific rule action takes effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "expiredObjectDeleteMarker": {
          "type": "boolean",
          "description": "On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct Object Storage to delete expired object delete markers.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/StorageBucketLifecycleRuleNoncurrentVersionExpiration:StorageBucketLifecycleRuleNoncurrentVersionExpiration": {
      "properties": {
        "days": {
          "type": "integer",
          "description": "Specifies the number of days noncurrent object versions expire.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/StorageBucketLifecycleRuleNoncurrentVersionTransition:StorageBucketLifecycleRuleNoncurrentVersionTransition": {
      "properties": {
        "days": {
          "type": "integer",
          "description": "Specifies the number of days noncurrent object versions transition.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "storageClass": {
          "type": "string",
          "description": "Specifies the storage class to which you want the noncurrent object versions to transition. Can only be `COLD` or `STANDARD_IA`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "storageClass"
      ]
    },
    "yandex:index/StorageBucketLifecycleRuleTransition:StorageBucketLifecycleRuleTransition": {
      "properties": {
        "date": {
          "type": "string",
          "description": "Specifies the date after which you want the corresponding action to take effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "days": {
          "type": "integer",
          "description": "Specifies the number of days after object creation when the specific rule action takes effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "storageClass": {
          "type": "string",
          "description": "Specifies the storage class to which you want the object to transition. Can only be `COLD` or `STANDARD_IA`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "storageClass"
      ]
    },
    "yandex:index/StorageBucketLogging:StorageBucketLogging": {
      "properties": {
        "targetBucket": {
          "type": "string",
          "description": "The name of the bucket that will receive the log objects.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetPrefix": {
          "type": "string",
          "description": "To specify a key prefix for log objects.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "targetBucket"
      ]
    },
    "yandex:index/StorageBucketServerSideEncryptionConfiguration:StorageBucketServerSideEncryptionConfiguration": {
      "properties": {
        "rule": {
          "$ref": "#/types/yandex:index%2FStorageBucketServerSideEncryptionConfigurationRule:StorageBucketServerSideEncryptionConfigurationRule",
          "description": "A single object for server-side encryption by default configuration. (documented below)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "rule"
      ]
    },
    "yandex:index/StorageBucketServerSideEncryptionConfigurationRule:StorageBucketServerSideEncryptionConfigurationRule": {
      "properties": {
        "applyServerSideEncryptionByDefault": {
          "$ref": "#/types/yandex:index%2FStorageBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault:StorageBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault",
          "description": "A single object for setting server-side encryption by default. (documented below)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "applyServerSideEncryptionByDefault"
      ]
    },
    "yandex:index/StorageBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault:StorageBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault": {
      "properties": {
        "kmsMasterKeyId": {
          "type": "string",
          "description": "The KMS master key ID used for the SSE-KMS encryption.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sseAlgorithm": {
          "type": "string",
          "description": "The server-side encryption algorithm to use. Single valid value is `aws:kms`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "kmsMasterKeyId",
        "sseAlgorithm"
      ]
    },
    "yandex:index/StorageBucketVersioning:StorageBucketVersioning": {
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/StorageBucketWebsite:StorageBucketWebsite": {
      "properties": {
        "errorDocument": {
          "type": "string",
          "description": "An absolute path to the document to return in case of a 4XX error.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "indexDocument": {
          "type": "string",
          "description": "Storage returns this index document when requests are made to the root domain or any of the subfolders.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "redirectAllRequestsTo": {
          "type": "string",
          "description": "A hostname to redirect all website requests for this bucket to. Hostname can optionally be prefixed with a protocol (`http://` or `https://`) to use when redirecting requests. The default is the protocol that is used in the original request.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "routingRules": {
          "type": "string",
          "description": "A json array containing [routing rules](https://cloud.yandex.com/docs/storage/s3/api-ref/hosting/upload#request-scheme) describing redirect behavior and when redirects are applied.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/VpcAddressExternalIpv4Address:VpcAddressExternalIpv4Address": {
      "properties": {
        "address": {
          "type": "string",
          "description": "- Desired IP.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ddosProtectionProvider": {
          "type": "string",
          "description": "Enable DDOS protection. Possible values are: \"qrator\"\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "outgoingSmtpCapability": {
          "type": "string",
          "description": "Wanted outgoing smtp capability.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneId": {
          "type": "string",
          "description": "- Zone for allocating address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "address",
            "ddosProtectionProvider",
            "outgoingSmtpCapability",
            "zoneId"
          ]
        }
      }
    },
    "yandex:index/VpcDefaultSecurityGroupEgress:VpcDefaultSecurityGroupEgress": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Description of the security group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fromPort": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "id": {
          "type": "string",
          "description": "Id of the security group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this security group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "predefinedTarget": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "toPort": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "v4CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "v6CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "protocol"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "labels",
            "protocol"
          ]
        }
      }
    },
    "yandex:index/VpcDefaultSecurityGroupIngress:VpcDefaultSecurityGroupIngress": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Description of the security group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fromPort": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "id": {
          "type": "string",
          "description": "Id of the security group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this security group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "predefinedTarget": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "toPort": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "v4CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "v6CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "protocol"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "labels",
            "protocol"
          ]
        }
      }
    },
    "yandex:index/VpcRouteTableStaticRoute:VpcRouteTableStaticRoute": {
      "properties": {
        "destinationPrefix": {
          "type": "string",
          "description": "Route prefix in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nextHopAddress": {
          "type": "string",
          "description": "Address of the next hop.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/VpcSecurityGroupEgress:VpcSecurityGroupEgress": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Description of the security group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fromPort": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "id": {
          "type": "string",
          "description": "Id of the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this security group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "predefinedTarget": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "toPort": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "v4CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "v6CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "protocol"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "labels",
            "protocol"
          ]
        }
      }
    },
    "yandex:index/VpcSecurityGroupIngress:VpcSecurityGroupIngress": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Description of the security group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fromPort": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "id": {
          "type": "string",
          "description": "Id of the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this security group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "predefinedTarget": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "toPort": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "v4CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "v6CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "protocol"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "labels",
            "protocol"
          ]
        }
      }
    },
    "yandex:index/VpcSubnetDhcpOptions:VpcSubnetDhcpOptions": {
      "properties": {
        "domainName": {
          "type": "string",
          "description": "Domain name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "domainNameServers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Domain name server IP addresses.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ntpServers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "NTP server IP addresses.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/YdbDatabaseDedicatedLocation:YdbDatabaseDedicatedLocation": {
      "properties": {
        "region": {
          "$ref": "#/types/yandex:index%2FYdbDatabaseDedicatedLocationRegion:YdbDatabaseDedicatedLocationRegion",
          "description": "Region for the Yandex Database cluster.\nThe structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/YdbDatabaseDedicatedLocationRegion:YdbDatabaseDedicatedLocationRegion": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Region ID for the Yandex Database cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "yandex:index/YdbDatabaseDedicatedScalePolicy:YdbDatabaseDedicatedScalePolicy": {
      "properties": {
        "fixedScale": {
          "$ref": "#/types/yandex:index%2FYdbDatabaseDedicatedScalePolicyFixedScale:YdbDatabaseDedicatedScalePolicyFixedScale",
          "description": "Fixed scaling policy for the Yandex Database cluster.\nThe structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fixedScale"
      ]
    },
    "yandex:index/YdbDatabaseDedicatedScalePolicyFixedScale:YdbDatabaseDedicatedScalePolicyFixedScale": {
      "properties": {
        "size": {
          "type": "integer",
          "description": "Number of instances for the Yandex Database cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "size"
      ]
    },
    "yandex:index/YdbDatabaseDedicatedStorageConfig:YdbDatabaseDedicatedStorageConfig": {
      "properties": {
        "groupCount": {
          "type": "integer",
          "description": "Amount of storage groups of selected type for the Yandex Database cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "storageTypeId": {
          "type": "string",
          "description": "Storage type ID for the Yandex Database cluster.\nAvailable presets can be obtained via `yc ydb storage-type list` command.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "groupCount",
        "storageTypeId"
      ]
    },
    "yandex:index/getAlbBackendGroupGrpcBackend:getAlbBackendGroupGrpcBackend": {
      "properties": {
        "healthcheck": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupGrpcBackendHealthcheck:getAlbBackendGroupGrpcBackendHealthcheck",
          "description": "Healthcheck specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "loadBalancingConfig": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupGrpcBackendLoadBalancingConfig:getAlbBackendGroupGrpcBackendLoadBalancingConfig",
          "description": "Load Balancing Config specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "- Name of the Backend Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for incoming traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "References target groups for the backend.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tls": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupGrpcBackendTls:getAlbBackendGroupGrpcBackendTls",
          "description": "Tls specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "weight": {
          "type": "integer",
          "description": "Weight of the backend. Traffic will be split between backends of the same BackendGroup according to their weights.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "healthcheck",
        "loadBalancingConfig",
        "name",
        "port",
        "targetGroupIds",
        "tls",
        "weight"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupGrpcBackendHealthcheck:getAlbBackendGroupGrpcBackendHealthcheck": {
      "properties": {
        "grpcHealthcheck": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupGrpcBackendHealthcheckGrpcHealthcheck:getAlbBackendGroupGrpcBackendHealthcheckGrpcHealthcheck",
          "description": "Grpc Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "healthcheckPort": {
          "type": "integer",
          "description": "Optional alternative port for health checking.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "healthyThreshold": {
          "type": "integer",
          "description": "Number of consecutive successful health checks required to promote endpoint into the healthy state. 0 means 1. Note that during startup, only a single successful health check is required to mark a host healthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpHealthcheck": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupGrpcBackendHealthcheckHttpHealthcheck:getAlbBackendGroupGrpcBackendHealthcheckHttpHealthcheck",
          "description": "Http Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interval": {
          "type": "string",
          "description": "Interval between health checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "intervalJitterPercent": {
          "type": "number",
          "description": "An optional jitter amount as a percentage of interval. If specified, during every interval value of (interval_ms * interval_jitter_percent / 100) will be added to the wait time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "streamHealthcheck": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupGrpcBackendHealthcheckStreamHealthcheck:getAlbBackendGroupGrpcBackendHealthcheckStreamHealthcheck",
          "description": "Stream Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "string",
          "description": "Time to wait for a health check response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unhealthyThreshold": {
          "type": "integer",
          "description": "Number of consecutive failed health checks required to demote endpoint into the unhealthy state. 0 means 1. Note that for HTTP health checks, a single 503 immediately makes endpoint unhealthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "grpcHealthcheck",
        "healthcheckPort",
        "healthyThreshold",
        "httpHealthcheck",
        "interval",
        "intervalJitterPercent",
        "streamHealthcheck",
        "timeout",
        "unhealthyThreshold"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupGrpcBackendHealthcheckGrpcHealthcheck:getAlbBackendGroupGrpcBackendHealthcheckGrpcHealthcheck": {
      "properties": {
        "serviceName": {
          "type": "string",
          "description": "Optional service name for grpc.health.v1.HealthCheckRequest message.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "serviceName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupGrpcBackendHealthcheckHttpHealthcheck:getAlbBackendGroupGrpcBackendHealthcheckHttpHealthcheck": {
      "properties": {
        "host": {
          "type": "string",
          "description": "Optional \"Host\" HTTP header value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2": {
          "type": "boolean",
          "description": "If set, health checks will use HTTP2.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "path": {
          "type": "string",
          "description": "HTTP path.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "host",
        "http2",
        "path"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupGrpcBackendHealthcheckStreamHealthcheck:getAlbBackendGroupGrpcBackendHealthcheckStreamHealthcheck": {
      "properties": {
        "receive": {
          "type": "string",
          "description": "Optional text to search in reply.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "send": {
          "type": "string",
          "description": "Optional message to send. If empty, it's a connect-only health check.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "receive",
        "send"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupGrpcBackendLoadBalancingConfig:getAlbBackendGroupGrpcBackendLoadBalancingConfig": {
      "properties": {
        "localityAwareRoutingPercent": {
          "type": "integer",
          "description": "Percent of traffic to be sent to the same availability zone. The rest will be equally divided between other zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "panicThreshold": {
          "type": "integer",
          "description": "If percentage of healthy hosts in the backend is lower than panic_threshold, traffic will be routed to all backends no matter what the health status is. This helps to avoid healthy backends overloading  when everything is bad. Zero means no panic threshold.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "strictLocality": {
          "type": "boolean",
          "description": "If set, will route requests only to the same availability zone. Balancer won't know about endpoints in other zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "localityAwareRoutingPercent",
        "panicThreshold",
        "strictLocality"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupGrpcBackendTls:getAlbBackendGroupGrpcBackendTls": {
      "properties": {
        "sni": {
          "type": "string",
          "description": "[SNI](https://en.wikipedia.org/wiki/Server_Name_Indication) string for TLS connections.\n* `validation_context.0.trusted_ca_id` - Trusted CA certificate ID in the Certificate Manager.\n* `validation_context.0.trusted_ca_bytes` - PEM-encoded trusted CA certificate chain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "validationContext": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupGrpcBackendTlsValidationContext:getAlbBackendGroupGrpcBackendTlsValidationContext",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "sni",
        "validationContext"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupGrpcBackendTlsValidationContext:getAlbBackendGroupGrpcBackendTlsValidationContext": {
      "properties": {
        "trustedCaBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "trustedCaId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "trustedCaBytes",
        "trustedCaId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupHttpBackend:getAlbBackendGroupHttpBackend": {
      "properties": {
        "healthcheck": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupHttpBackendHealthcheck:getAlbBackendGroupHttpBackendHealthcheck",
          "description": "Healthcheck specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2": {
          "type": "boolean",
          "description": "If set, health checks will use HTTP2.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "loadBalancingConfig": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupHttpBackendLoadBalancingConfig:getAlbBackendGroupHttpBackendLoadBalancingConfig",
          "description": "Load Balancing Config specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "- Name of the Backend Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for incoming traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "References target groups for the backend.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tls": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupHttpBackendTls:getAlbBackendGroupHttpBackendTls",
          "description": "Tls specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "weight": {
          "type": "integer",
          "description": "Weight of the backend. Traffic will be split between backends of the same BackendGroup according to their weights.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "healthcheck",
        "http2",
        "loadBalancingConfig",
        "name",
        "port",
        "targetGroupIds",
        "tls",
        "weight"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupHttpBackendHealthcheck:getAlbBackendGroupHttpBackendHealthcheck": {
      "properties": {
        "grpcHealthcheck": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupHttpBackendHealthcheckGrpcHealthcheck:getAlbBackendGroupHttpBackendHealthcheckGrpcHealthcheck",
          "description": "Grpc Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "healthcheckPort": {
          "type": "integer",
          "description": "Optional alternative port for health checking.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "healthyThreshold": {
          "type": "integer",
          "description": "Number of consecutive successful health checks required to promote endpoint into the healthy state. 0 means 1. Note that during startup, only a single successful health check is required to mark a host healthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpHealthcheck": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupHttpBackendHealthcheckHttpHealthcheck:getAlbBackendGroupHttpBackendHealthcheckHttpHealthcheck",
          "description": "Http Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interval": {
          "type": "string",
          "description": "Interval between health checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "intervalJitterPercent": {
          "type": "number",
          "description": "An optional jitter amount as a percentage of interval. If specified, during every interval value of (interval_ms * interval_jitter_percent / 100) will be added to the wait time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "streamHealthcheck": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupHttpBackendHealthcheckStreamHealthcheck:getAlbBackendGroupHttpBackendHealthcheckStreamHealthcheck",
          "description": "Stream Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "string",
          "description": "Time to wait for a health check response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unhealthyThreshold": {
          "type": "integer",
          "description": "Number of consecutive failed health checks required to demote endpoint into the unhealthy state. 0 means 1. Note that for HTTP health checks, a single 503 immediately makes endpoint unhealthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "grpcHealthcheck",
        "healthcheckPort",
        "healthyThreshold",
        "httpHealthcheck",
        "interval",
        "intervalJitterPercent",
        "streamHealthcheck",
        "timeout",
        "unhealthyThreshold"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupHttpBackendHealthcheckGrpcHealthcheck:getAlbBackendGroupHttpBackendHealthcheckGrpcHealthcheck": {
      "properties": {
        "serviceName": {
          "type": "string",
          "description": "Optional service name for grpc.health.v1.HealthCheckRequest message.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "serviceName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupHttpBackendHealthcheckHttpHealthcheck:getAlbBackendGroupHttpBackendHealthcheckHttpHealthcheck": {
      "properties": {
        "host": {
          "type": "string",
          "description": "Optional \"Host\" HTTP header value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2": {
          "type": "boolean",
          "description": "If set, health checks will use HTTP2.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "path": {
          "type": "string",
          "description": "HTTP path.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "host",
        "http2",
        "path"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupHttpBackendHealthcheckStreamHealthcheck:getAlbBackendGroupHttpBackendHealthcheckStreamHealthcheck": {
      "properties": {
        "receive": {
          "type": "string",
          "description": "Optional text to search in reply.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "send": {
          "type": "string",
          "description": "Optional message to send. If empty, it's a connect-only health check.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "receive",
        "send"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupHttpBackendLoadBalancingConfig:getAlbBackendGroupHttpBackendLoadBalancingConfig": {
      "properties": {
        "localityAwareRoutingPercent": {
          "type": "integer",
          "description": "Percent of traffic to be sent to the same availability zone. The rest will be equally divided between other zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "panicThreshold": {
          "type": "integer",
          "description": "If percentage of healthy hosts in the backend is lower than panic_threshold, traffic will be routed to all backends no matter what the health status is. This helps to avoid healthy backends overloading  when everything is bad. Zero means no panic threshold.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "strictLocality": {
          "type": "boolean",
          "description": "If set, will route requests only to the same availability zone. Balancer won't know about endpoints in other zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "localityAwareRoutingPercent",
        "panicThreshold",
        "strictLocality"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupHttpBackendTls:getAlbBackendGroupHttpBackendTls": {
      "properties": {
        "sni": {
          "type": "string",
          "description": "[SNI](https://en.wikipedia.org/wiki/Server_Name_Indication) string for TLS connections.\n* `validation_context.0.trusted_ca_id` - Trusted CA certificate ID in the Certificate Manager.\n* `validation_context.0.trusted_ca_bytes` - PEM-encoded trusted CA certificate chain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "validationContext": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupHttpBackendTlsValidationContext:getAlbBackendGroupHttpBackendTlsValidationContext",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "sni",
        "validationContext"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupHttpBackendTlsValidationContext:getAlbBackendGroupHttpBackendTlsValidationContext": {
      "properties": {
        "trustedCaBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "trustedCaId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "trustedCaBytes",
        "trustedCaId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupStreamBackend:getAlbBackendGroupStreamBackend": {
      "properties": {
        "healthcheck": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupStreamBackendHealthcheck:getAlbBackendGroupStreamBackendHealthcheck",
          "description": "Healthcheck specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "loadBalancingConfig": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupStreamBackendLoadBalancingConfig:getAlbBackendGroupStreamBackendLoadBalancingConfig",
          "description": "Load Balancing Config specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "- Name of the Backend Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for incoming traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "References target groups for the backend.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tls": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupStreamBackendTls:getAlbBackendGroupStreamBackendTls",
          "description": "Tls specification that will be used by this backend. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "weight": {
          "type": "integer",
          "description": "Weight of the backend. Traffic will be split between backends of the same BackendGroup according to their weights.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "healthcheck",
        "loadBalancingConfig",
        "name",
        "port",
        "targetGroupIds",
        "tls",
        "weight"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupStreamBackendHealthcheck:getAlbBackendGroupStreamBackendHealthcheck": {
      "properties": {
        "grpcHealthcheck": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupStreamBackendHealthcheckGrpcHealthcheck:getAlbBackendGroupStreamBackendHealthcheckGrpcHealthcheck",
          "description": "Grpc Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "healthcheckPort": {
          "type": "integer",
          "description": "Optional alternative port for health checking.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "healthyThreshold": {
          "type": "integer",
          "description": "Number of consecutive successful health checks required to promote endpoint into the healthy state. 0 means 1. Note that during startup, only a single successful health check is required to mark a host healthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpHealthcheck": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupStreamBackendHealthcheckHttpHealthcheck:getAlbBackendGroupStreamBackendHealthcheckHttpHealthcheck",
          "description": "Http Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interval": {
          "type": "string",
          "description": "Interval between health checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "intervalJitterPercent": {
          "type": "number",
          "description": "An optional jitter amount as a percentage of interval. If specified, during every interval value of (interval_ms * interval_jitter_percent / 100) will be added to the wait time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "streamHealthcheck": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupStreamBackendHealthcheckStreamHealthcheck:getAlbBackendGroupStreamBackendHealthcheckStreamHealthcheck",
          "description": "Stream Healthcheck specification that will be used by this healthcheck. Structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "string",
          "description": "Time to wait for a health check response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unhealthyThreshold": {
          "type": "integer",
          "description": "Number of consecutive failed health checks required to demote endpoint into the unhealthy state. 0 means 1. Note that for HTTP health checks, a single 503 immediately makes endpoint unhealthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "grpcHealthcheck",
        "healthcheckPort",
        "healthyThreshold",
        "httpHealthcheck",
        "interval",
        "intervalJitterPercent",
        "streamHealthcheck",
        "timeout",
        "unhealthyThreshold"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupStreamBackendHealthcheckGrpcHealthcheck:getAlbBackendGroupStreamBackendHealthcheckGrpcHealthcheck": {
      "properties": {
        "serviceName": {
          "type": "string",
          "description": "Optional service name for grpc.health.v1.HealthCheckRequest message.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "serviceName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupStreamBackendHealthcheckHttpHealthcheck:getAlbBackendGroupStreamBackendHealthcheckHttpHealthcheck": {
      "properties": {
        "host": {
          "type": "string",
          "description": "Optional \"Host\" HTTP header value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2": {
          "type": "boolean",
          "description": "If set, health checks will use HTTP2.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "path": {
          "type": "string",
          "description": "HTTP path.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "host",
        "http2",
        "path"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupStreamBackendHealthcheckStreamHealthcheck:getAlbBackendGroupStreamBackendHealthcheckStreamHealthcheck": {
      "properties": {
        "receive": {
          "type": "string",
          "description": "Optional text to search in reply.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "send": {
          "type": "string",
          "description": "Optional message to send. If empty, it's a connect-only health check.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "receive",
        "send"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupStreamBackendLoadBalancingConfig:getAlbBackendGroupStreamBackendLoadBalancingConfig": {
      "properties": {
        "localityAwareRoutingPercent": {
          "type": "integer",
          "description": "Percent of traffic to be sent to the same availability zone. The rest will be equally divided between other zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "panicThreshold": {
          "type": "integer",
          "description": "If percentage of healthy hosts in the backend is lower than panic_threshold, traffic will be routed to all backends no matter what the health status is. This helps to avoid healthy backends overloading  when everything is bad. Zero means no panic threshold.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "strictLocality": {
          "type": "boolean",
          "description": "If set, will route requests only to the same availability zone. Balancer won't know about endpoints in other zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "localityAwareRoutingPercent",
        "panicThreshold",
        "strictLocality"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupStreamBackendTls:getAlbBackendGroupStreamBackendTls": {
      "properties": {
        "sni": {
          "type": "string",
          "description": "[SNI](https://en.wikipedia.org/wiki/Server_Name_Indication) string for TLS connections.\n* `validation_context.0.trusted_ca_id` - Trusted CA certificate ID in the Certificate Manager.\n* `validation_context.0.trusted_ca_bytes` - PEM-encoded trusted CA certificate chain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "validationContext": {
          "$ref": "#/types/yandex:index%2FgetAlbBackendGroupStreamBackendTlsValidationContext:getAlbBackendGroupStreamBackendTlsValidationContext",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "sni",
        "validationContext"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbBackendGroupStreamBackendTlsValidationContext:getAlbBackendGroupStreamBackendTlsValidationContext": {
      "properties": {
        "trustedCaBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "trustedCaId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "trustedCaBytes",
        "trustedCaId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerAllocationPolicy:getAlbLoadBalancerAllocationPolicy": {
      "properties": {
        "locations": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerAllocationPolicyLocation:getAlbLoadBalancerAllocationPolicyLocation"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "locations"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerAllocationPolicyLocation:getAlbLoadBalancerAllocationPolicyLocation": {
      "properties": {
        "disableTraffic": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "disableTraffic",
        "subnetId",
        "zoneId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListener:getAlbLoadBalancerListener": {
      "properties": {
        "endpoints": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerEndpoint:getAlbLoadBalancerListenerEndpoint"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "https": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerHttp:getAlbLoadBalancerListenerHttp"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "stream": {
          "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerStream:getAlbLoadBalancerListenerStream",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tls": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerTl:getAlbLoadBalancerListenerTl"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "endpoints",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerEndpoint:getAlbLoadBalancerListenerEndpoint": {
      "properties": {
        "addresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerEndpointAddress:getAlbLoadBalancerListenerEndpointAddress"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ports": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "addresses",
        "ports"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerEndpointAddress:getAlbLoadBalancerListenerEndpointAddress": {
      "properties": {
        "externalIpv4Addresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerEndpointAddressExternalIpv4Address:getAlbLoadBalancerListenerEndpointAddressExternalIpv4Address"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "externalIpv6Addresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerEndpointAddressExternalIpv6Address:getAlbLoadBalancerListenerEndpointAddressExternalIpv6Address"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "internalIpv4Addresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerEndpointAddressInternalIpv4Address:getAlbLoadBalancerListenerEndpointAddressInternalIpv4Address"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "externalIpv4Addresses",
        "externalIpv6Addresses",
        "internalIpv4Addresses"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerEndpointAddressExternalIpv4Address:getAlbLoadBalancerListenerEndpointAddressExternalIpv4Address": {
      "properties": {
        "address": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "address"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerEndpointAddressExternalIpv6Address:getAlbLoadBalancerListenerEndpointAddressExternalIpv6Address": {
      "properties": {
        "address": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "address"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerEndpointAddressInternalIpv4Address:getAlbLoadBalancerListenerEndpointAddressInternalIpv4Address": {
      "properties": {
        "address": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "address",
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerHttp:getAlbLoadBalancerListenerHttp": {
      "properties": {
        "handlers": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerHttpHandler:getAlbLoadBalancerListenerHttpHandler"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "redirects": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerHttpRedirect:getAlbLoadBalancerListenerHttpRedirect"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/getAlbLoadBalancerListenerHttpHandler:getAlbLoadBalancerListenerHttpHandler": {
      "properties": {
        "allowHttp10": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2Options": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerHttpHandlerHttp2Option:getAlbLoadBalancerListenerHttpHandlerHttp2Option"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpRouterId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "http2Options",
        "httpRouterId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerHttpHandlerHttp2Option:getAlbLoadBalancerListenerHttpHandlerHttp2Option": {
      "properties": {
        "maxConcurrentStreams": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "maxConcurrentStreams"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerHttpRedirect:getAlbLoadBalancerListenerHttpRedirect": {
      "properties": {
        "httpToHttps": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "httpToHttps"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerStream:getAlbLoadBalancerListenerStream": {
      "properties": {
        "handlers": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerStreamHandler:getAlbLoadBalancerListenerStreamHandler"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/getAlbLoadBalancerListenerStreamHandler:getAlbLoadBalancerListenerStreamHandler": {
      "properties": {
        "backendGroupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "backendGroupId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerTl:getAlbLoadBalancerListenerTl": {
      "properties": {
        "defaultHandlers": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerTlDefaultHandler:getAlbLoadBalancerListenerTlDefaultHandler"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sniHandlers": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerTlSniHandler:getAlbLoadBalancerListenerTlSniHandler"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "defaultHandlers",
        "sniHandlers"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerTlDefaultHandler:getAlbLoadBalancerListenerTlDefaultHandler": {
      "properties": {
        "certificateIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpHandlers": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerTlDefaultHandlerHttpHandler:getAlbLoadBalancerListenerTlDefaultHandlerHttpHandler"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "streamHandlers": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerTlDefaultHandlerStreamHandler:getAlbLoadBalancerListenerTlDefaultHandlerStreamHandler"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "certificateIds"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerTlDefaultHandlerHttpHandler:getAlbLoadBalancerListenerTlDefaultHandlerHttpHandler": {
      "properties": {
        "allowHttp10": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2Options": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerTlDefaultHandlerHttpHandlerHttp2Option:getAlbLoadBalancerListenerTlDefaultHandlerHttpHandlerHttp2Option"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpRouterId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "http2Options",
        "httpRouterId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerTlDefaultHandlerHttpHandlerHttp2Option:getAlbLoadBalancerListenerTlDefaultHandlerHttpHandlerHttp2Option": {
      "properties": {
        "maxConcurrentStreams": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "maxConcurrentStreams"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerTlDefaultHandlerStreamHandler:getAlbLoadBalancerListenerTlDefaultHandlerStreamHandler": {
      "properties": {
        "backendGroupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "backendGroupId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerTlSniHandler:getAlbLoadBalancerListenerTlSniHandler": {
      "properties": {
        "handlers": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerTlSniHandlerHandler:getAlbLoadBalancerListenerTlSniHandlerHandler"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serverNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "handlers",
        "name",
        "serverNames"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerTlSniHandlerHandler:getAlbLoadBalancerListenerTlSniHandlerHandler": {
      "properties": {
        "certificateIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpHandlers": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerTlSniHandlerHandlerHttpHandler:getAlbLoadBalancerListenerTlSniHandlerHandlerHttpHandler"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "streamHandlers": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerTlSniHandlerHandlerStreamHandler:getAlbLoadBalancerListenerTlSniHandlerHandlerStreamHandler"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "certificateIds"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerTlSniHandlerHandlerHttpHandler:getAlbLoadBalancerListenerTlSniHandlerHandlerHttpHandler": {
      "properties": {
        "allowHttp10": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "http2Options": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListenerTlSniHandlerHandlerHttpHandlerHttp2Option:getAlbLoadBalancerListenerTlSniHandlerHandlerHttpHandlerHttp2Option"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpRouterId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "http2Options",
        "httpRouterId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerTlSniHandlerHandlerHttpHandlerHttp2Option:getAlbLoadBalancerListenerTlSniHandlerHandlerHttpHandlerHttp2Option": {
      "properties": {
        "maxConcurrentStreams": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "maxConcurrentStreams"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbLoadBalancerListenerTlSniHandlerHandlerStreamHandler:getAlbLoadBalancerListenerTlSniHandlerHandlerStreamHandler": {
      "properties": {
        "backendGroupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "backendGroupId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbTargetGroupTarget:getAlbTargetGroupTarget": {
      "properties": {
        "ipAddress": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "privateIpv4Address": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "ipAddress"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostModifyRequestHeader:getAlbVirtualHostModifyRequestHeader": {
      "properties": {
        "append": {
          "type": "string",
          "description": "Append string to the header value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the Virtual Host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "remove": {
          "type": "boolean",
          "description": "If set, remove the header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replace": {
          "type": "string",
          "description": "New value for a header. Header values support the following\n[formatters](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/headers#custom-request-response-headers).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "append",
        "name",
        "remove",
        "replace"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostModifyResponseHeader:getAlbVirtualHostModifyResponseHeader": {
      "properties": {
        "append": {
          "type": "string",
          "description": "Append string to the header value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the Virtual Host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "remove": {
          "type": "boolean",
          "description": "If set, remove the header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replace": {
          "type": "string",
          "description": "New value for a header. Header values support the following\n[formatters](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/headers#custom-request-response-headers).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "append",
        "name",
        "remove",
        "replace"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostRoute:getAlbVirtualHostRoute": {
      "properties": {
        "grpcRoutes": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbVirtualHostRouteGrpcRoute:getAlbVirtualHostRouteGrpcRoute"
          },
          "description": "GRPC route resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpRoutes": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbVirtualHostRouteHttpRoute:getAlbVirtualHostRouteHttpRoute"
          },
          "description": "HTTP route resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the Virtual Host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "grpcRoutes",
        "httpRoutes",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostRouteGrpcRoute:getAlbVirtualHostRouteGrpcRoute": {
      "properties": {
        "grpcMatches": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbVirtualHostRouteGrpcRouteGrpcMatch:getAlbVirtualHostRouteGrpcRouteGrpcMatch"
          },
          "description": "Checks \"/\" prefix by default. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "grpcRouteActions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbVirtualHostRouteGrpcRouteGrpcRouteAction:getAlbVirtualHostRouteGrpcRouteGrpcRouteAction"
          },
          "description": "GRPC route action resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "grpcStatusResponseActions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbVirtualHostRouteGrpcRouteGrpcStatusResponseAction:getAlbVirtualHostRouteGrpcRouteGrpcStatusResponseAction"
          },
          "description": "(Required) GRPC status response action resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "grpcMatches",
        "grpcRouteActions",
        "grpcStatusResponseActions"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostRouteGrpcRouteGrpcMatch:getAlbVirtualHostRouteGrpcRouteGrpcMatch": {
      "properties": {
        "fqmns": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbVirtualHostRouteGrpcRouteGrpcMatchFqmn:getAlbVirtualHostRouteGrpcRouteGrpcMatchFqmn"
          },
          "description": "If not set, all services/methods are assumed. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fqmns"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostRouteGrpcRouteGrpcMatchFqmn:getAlbVirtualHostRouteGrpcRouteGrpcMatchFqmn": {
      "properties": {
        "exact": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "prefix": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "exact",
        "prefix"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostRouteGrpcRouteGrpcRouteAction:getAlbVirtualHostRouteGrpcRouteGrpcRouteAction": {
      "properties": {
        "autoHostRewrite": {
          "type": "boolean",
          "description": "If set, will automatically rewrite host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "backendGroupId": {
          "type": "string",
          "description": "Backend group to route requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hostRewrite": {
          "type": "string",
          "description": "Host rewrite specifier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "idleTimeout": {
          "type": "string",
          "description": "Specifies the idle timeout (time without any data transfer for the active request) for the route. It\nis useful for streaming scenarios - one should set idle_timeout to something meaningful and max_timeout to the maximum\ntime the stream is allowed to be alive. If not specified, there is no per-route idle timeout.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxTimeout": {
          "type": "string",
          "description": "Lower timeout may be specified by the client (using grpc-timeout header). If not set, default is 60\nseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "autoHostRewrite",
        "backendGroupId",
        "hostRewrite",
        "idleTimeout",
        "maxTimeout"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostRouteGrpcRouteGrpcStatusResponseAction:getAlbVirtualHostRouteGrpcRouteGrpcStatusResponseAction": {
      "properties": {
        "status": {
          "type": "string",
          "description": "The status of the response. Supported values are: ok, invalid_argumet, not_found, permission_denied,\nunauthenticated, unimplemented, internal, unavailable.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "status"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostRouteHttpRoute:getAlbVirtualHostRouteHttpRoute": {
      "properties": {
        "directResponseActions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbVirtualHostRouteHttpRouteDirectResponseAction:getAlbVirtualHostRouteHttpRouteDirectResponseAction"
          },
          "description": "(Required) Direct response action resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpMatches": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbVirtualHostRouteHttpRouteHttpMatch:getAlbVirtualHostRouteHttpRouteHttpMatch"
          },
          "description": "Checks \"/\" prefix by default. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpRouteActions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbVirtualHostRouteHttpRouteHttpRouteAction:getAlbVirtualHostRouteHttpRouteHttpRouteAction"
          },
          "description": "HTTP route action resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "redirectActions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbVirtualHostRouteHttpRouteRedirectAction:getAlbVirtualHostRouteHttpRouteRedirectAction"
          },
          "description": "Redirect action resource. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "directResponseActions",
        "httpMatches",
        "httpRouteActions",
        "redirectActions"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostRouteHttpRouteDirectResponseAction:getAlbVirtualHostRouteHttpRouteDirectResponseAction": {
      "properties": {
        "body": {
          "type": "string",
          "description": "Response body text.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "status": {
          "type": "integer",
          "description": "The status of the response. Supported values are: ok, invalid_argumet, not_found, permission_denied,\nunauthenticated, unimplemented, internal, unavailable.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "body",
        "status"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostRouteHttpRouteHttpMatch:getAlbVirtualHostRouteHttpRouteHttpMatch": {
      "properties": {
        "httpMethods": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of methods(strings).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "paths": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetAlbVirtualHostRouteHttpRouteHttpMatchPath:getAlbVirtualHostRouteHttpRouteHttpMatchPath"
          },
          "description": "If not set, '/' is assumed. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "httpMethods",
        "paths"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostRouteHttpRouteHttpMatchPath:getAlbVirtualHostRouteHttpRouteHttpMatchPath": {
      "properties": {
        "exact": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "prefix": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "exact",
        "prefix"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostRouteHttpRouteHttpRouteAction:getAlbVirtualHostRouteHttpRouteHttpRouteAction": {
      "properties": {
        "autoHostRewrite": {
          "type": "boolean",
          "description": "If set, will automatically rewrite host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "backendGroupId": {
          "type": "string",
          "description": "Backend group to route requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hostRewrite": {
          "type": "string",
          "description": "Host rewrite specifier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "idleTimeout": {
          "type": "string",
          "description": "Specifies the idle timeout (time without any data transfer for the active request) for the route. It\nis useful for streaming scenarios - one should set idle_timeout to something meaningful and max_timeout to the maximum\ntime the stream is allowed to be alive. If not specified, there is no per-route idle timeout.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "prefixRewrite": {
          "type": "string",
          "description": "If not empty, matched path prefix will be replaced by this value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "string",
          "description": "Specifies the request timeout (overall time request processing is allowed to take) for the route. If not\nset, default is 60 seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "upgradeTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of upgrade types. Only specified upgrade types will be allowed. For example,\n\"websocket\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "autoHostRewrite",
        "backendGroupId",
        "hostRewrite",
        "idleTimeout",
        "prefixRewrite",
        "timeout",
        "upgradeTypes"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getAlbVirtualHostRouteHttpRouteRedirectAction:getAlbVirtualHostRouteHttpRouteRedirectAction": {
      "properties": {
        "removeQuery": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replaceHost": {
          "type": "string",
          "description": "Replaces hostname.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replacePath": {
          "type": "string",
          "description": "Replace path.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replacePort": {
          "type": "integer",
          "description": "Replaces port.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replacePrefix": {
          "type": "string",
          "description": "Replace only matched prefix. Example:<br/> match:{ prefix_match: \"/some\" } <br/>\nredirect: { replace_prefix: \"/other\" } <br/> will redirect \"/something\" to \"/otherthing\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replaceScheme": {
          "type": "string",
          "description": "Replaces scheme. If the original scheme is `http` or `https`, will also remove the 80 or 443 port,\nif present.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "responseCode": {
          "type": "string",
          "description": "The HTTP status code to use in the redirect response. Supported values are:\nmoved_permanently, found, see_other, temporary_redirect, permanent_redirect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "removeQuery",
        "replaceHost",
        "replacePath",
        "replacePort",
        "replacePrefix",
        "replaceScheme",
        "responseCode"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getCdnOriginGroupOrigin:getCdnOriginGroupOrigin": {
      "properties": {
        "backup": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enabled": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "originGroupId": {
          "type": "integer",
          "description": "The ID of a specific origin group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "source": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "originGroupId",
        "source"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getCdnResourceOptions:getCdnResourceOptions": {
      "properties": {
        "allowedHttpMethods": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "HTTP methods for your CDN content. By default the following methods are allowed: GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS. In case some methods are not allowed to the user, they will get the 405 (Method Not Allowed) response. If the method is not supported, the user gets the 501 (Not Implemented) response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "browserCacheSettings": {
          "type": "integer",
          "description": "set up a cache period for the end-users browser. Content will be cached due to origin settings. If there are no cache settings on your origin, the content will not be cached. The list of HTTP response codes that can be cached in browsers: 200, 201, 204, 206, 301, 302, 303, 304, 307, 308. Other response codes will not be cached. The default value is 4 days.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cacheHttpHeaders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "list HTTP headers that must be included in responses to clients.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cors": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "parameter that lets browsers get access to selected resources from a domain different to a domain from which the request is received.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "customHostHeader": {
          "type": "string",
          "description": "custom value for the Host header. Your server must be able to process requests with the chosen header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "customServerName": {
          "type": "string",
          "description": "wildcard additional CNAME. If a resource has a wildcard additional CNAME, you can use your own certificate for content delivery via HTTPS. Read-only.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "disableCache": {
          "type": "boolean",
          "description": "setup a cache status.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "disableProxyForceRanges": {
          "type": "boolean",
          "description": "disabling proxy force ranges.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "edgeCacheSettings": {
          "type": "integer",
          "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",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fetchedCompressed": {
          "type": "boolean",
          "description": "option helps you to reduce the bandwidth between origin and CDN servers. Also, content delivery speed becomes higher because of reducing the time for compressing files in a CDN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "forwardHostHeader": {
          "type": "boolean",
          "description": "choose the Forward Host header option if is important to send in the request to the Origin the same Host header as was sent in the request to CDN server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "gzipOn": {
          "type": "boolean",
          "description": "GZip compression at CDN servers reduces file size by 70% and can be as high as 90%.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ignoreCookie": {
          "type": "boolean",
          "description": "set for ignoring cookie.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ignoreQueryParams": {
          "type": "boolean",
          "description": "files with different query parameters are cached as objects with the same key regardless of the parameter value. selected by default.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "proxyCacheMethodsSet": {
          "type": "boolean",
          "description": "allows caching for GET, HEAD and POST requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryParamsBlacklists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "files with the specified query parameters are cached as objects with the same key, files with other parameters are cached as objects with different keys.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryParamsWhitelists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "files with the specified query parameters are cached as objects with different keys, files with other parameters are cached as objects with the same key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "redirectHttpToHttps": {
          "type": "boolean",
          "description": "set up a redirect from HTTPS to HTTP.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "redirectHttpsToHttp": {
          "type": "boolean",
          "description": "set up a redirect from HTTP to HTTPS.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "slice": {
          "type": "boolean",
          "description": "files larger than 10 MB will be requested and cached in parts (no larger than 10 MB each part). It reduces time to first byte. The origin must support HTTP Range requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "staticRequestHeaders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "set up custom headers that CDN servers send in requests to origins.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "staticResponseHeaders": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "allowedHttpMethods",
        "browserCacheSettings",
        "cacheHttpHeaders",
        "cors",
        "customHostHeader",
        "customServerName",
        "disableCache",
        "disableProxyForceRanges",
        "edgeCacheSettings",
        "fetchedCompressed",
        "forwardHostHeader",
        "gzipOn",
        "ignoreCookie",
        "ignoreQueryParams",
        "proxyCacheMethodsSet",
        "queryParamsBlacklists",
        "queryParamsWhitelists",
        "redirectHttpToHttps",
        "redirectHttpsToHttp",
        "slice",
        "staticRequestHeaders",
        "staticResponseHeaders"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getCdnResourceSslCertificate:getCdnResourceSslCertificate": {
      "properties": {
        "certificateManagerId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "status": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "status",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": [
            "type"
          ]
        }
      }
    },
    "yandex:index/getComputeDiskDiskPlacementPolicy:getComputeDiskDiskPlacementPolicy": {
      "properties": {
        "diskPlacementGroupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskPlacementGroupId"
      ]
    },
    "yandex:index/getComputeInstanceBootDisk:getComputeInstanceBootDisk": {
      "properties": {
        "autoDelete": {
          "type": "boolean",
          "description": "Specifies whether the disk is auto-deleted when the instance is deleted.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "deviceName": {
          "type": "string",
          "description": "This value can be used to reference the device from within the instance for mounting, resizing, and so on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskId": {
          "type": "string",
          "description": "ID of the disk that is attached to the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "initializeParams": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceBootDiskInitializeParam:getComputeInstanceBootDiskInitializeParam"
          },
          "description": "Parameters used for creating a disk alongside the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mode": {
          "type": "string",
          "description": "Access to the Disk resource. By default, a disk is attached in `READ_WRITE` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "autoDelete",
        "deviceName",
        "diskId",
        "initializeParams",
        "mode"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceBootDiskInitializeParam:getComputeInstanceBootDiskInitializeParam": {
      "properties": {
        "blockSize": {
          "type": "integer",
          "description": "The block size of the disk in bytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "description": {
          "type": "string",
          "description": "Description of the boot disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "imageId": {
          "type": "string",
          "description": "A disk image to initialize this disk from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "size": {
          "type": "integer",
          "description": "Size of the disk in GB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "snapshotId": {
          "type": "string",
          "description": "A snapshot to initialize this disk from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Disk type.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "blockSize",
        "description",
        "imageId",
        "name",
        "size",
        "snapshotId",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupAllocationPolicy:getComputeInstanceGroupAllocationPolicy": {
      "properties": {
        "zones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of availability zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "zones"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupApplicationBalancerState:getComputeInstanceGroupApplicationBalancerState": {
      "properties": {
        "statusMessage": {
          "type": "string",
          "description": "The status message of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupId": {
          "type": "string",
          "description": "The ID of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "statusMessage",
        "targetGroupId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupApplicationLoadBalancer:getComputeInstanceGroupApplicationLoadBalancer": {
      "properties": {
        "maxOpeningTrafficDuration": {
          "type": "integer",
          "description": "Timeout for waiting for the VM to be checked by the load balancer. If the timeout is exceeded, the VM will be turned off based on the deployment policy. Specified in seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "statusMessage": {
          "type": "string",
          "description": "The status message of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupDescription": {
          "type": "string",
          "description": "A description of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupId": {
          "type": "string",
          "description": "The ID of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupLabels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupName": {
          "type": "string",
          "description": "The name of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "maxOpeningTrafficDuration",
        "statusMessage",
        "targetGroupDescription",
        "targetGroupId",
        "targetGroupLabels",
        "targetGroupName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupDeployPolicy:getComputeInstanceGroupDeployPolicy": {
      "properties": {
        "maxCreating": {
          "type": "integer",
          "description": "The maximum number of instances that can be created at the same time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxDeleting": {
          "type": "integer",
          "description": "The maximum number of instances that can be deleted at the same time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxExpansion": {
          "type": "integer",
          "description": "The maximum number of instances that can be temporarily allocated above the group's target size during the update process.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxUnavailable": {
          "type": "integer",
          "description": "The maximum number of running instances that can be taken offline (stopped or deleted) at the same time\nduring the update process.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "startupDuration": {
          "type": "integer",
          "description": "The amount of time in seconds to allow for an instance to start.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "strategy": {
          "type": "string",
          "description": "Affects the lifecycle of the instance during deployment. If set to `proactive` (default), Instance Groups\ncan forcefully stop a running instance. If `opportunistic`, Instance Groups does not stop a running instance. Instead,\nit will wait until the instance stops itself or becomes unhealthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "maxCreating",
        "maxDeleting",
        "maxExpansion",
        "maxUnavailable",
        "startupDuration",
        "strategy"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupHealthCheck:getComputeInstanceGroupHealthCheck": {
      "properties": {
        "healthyThreshold": {
          "type": "integer",
          "description": "The number of successful health checks before the managed instance is declared healthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpOptions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupHealthCheckHttpOption:getComputeInstanceGroupHealthCheckHttpOption"
          },
          "description": "HTTP check options. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interval": {
          "type": "integer",
          "description": "The interval between health checks in seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tcpOptions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupHealthCheckTcpOption:getComputeInstanceGroupHealthCheckTcpOption"
          },
          "description": "TCP check options. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "integer",
          "description": "Timeout for the managed instance to return a response for the health check in seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unhealthyThreshold": {
          "type": "integer",
          "description": "The number of failed health checks before the managed instance is declared unhealthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "healthyThreshold",
        "httpOptions",
        "interval",
        "tcpOptions",
        "timeout",
        "unhealthyThreshold"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupHealthCheckHttpOption:getComputeInstanceGroupHealthCheckHttpOption": {
      "properties": {
        "path": {
          "type": "string",
          "description": "The URL path used for health check requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "The port to use for TCP health checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "path",
        "port"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupHealthCheckTcpOption:getComputeInstanceGroupHealthCheckTcpOption": {
      "properties": {
        "port": {
          "type": "integer",
          "description": "The port to use for TCP health checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "port"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstance:getComputeInstanceGroupInstance": {
      "properties": {
        "fqdn": {
          "type": "string",
          "description": "The Fully Qualified Domain Name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "instanceId": {
          "type": "string",
          "description": "The ID of the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "The name of the managed instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "networkInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceNetworkInterface:getComputeInstanceGroupInstanceNetworkInterface"
          },
          "description": "An array with the network interfaces attached to the managed instance. The structure is documented below.\n* `status_changed_at` -The timestamp when the status of the managed instance was last changed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "status": {
          "type": "string",
          "description": "The status of the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "statusChangedAt": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "statusMessage": {
          "type": "string",
          "description": "The status message of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneId": {
          "type": "string",
          "description": "The ID of the availability zone where the instance resides.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fqdn",
        "instanceId",
        "name",
        "networkInterfaces",
        "status",
        "statusChangedAt",
        "statusMessage",
        "zoneId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceNetworkInterface:getComputeInstanceGroupInstanceNetworkInterface": {
      "properties": {
        "index": {
          "type": "integer",
          "description": "The index of the network interface as generated by the server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "type": "string",
          "description": "The private IP address to assign to the instance. If empty, the address is automatically assigned from the specified subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv4": {
          "type": "boolean",
          "description": "Is IPv4 address assigned.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6Address": {
          "type": "string",
          "description": "Manual set static IPv6 address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "macAddress": {
          "type": "string",
          "description": "The MAC address assigned to the network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nat": {
          "type": "boolean",
          "description": "The instance's public address for accessing the internet over NAT.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natIpAddress": {
          "type": "string",
          "description": "The public IP address of the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natIpVersion": {
          "type": "string",
          "description": "The IP version for the public address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet to attach this interface to. The subnet must reside in the same zone where this instance was created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "index",
        "ipAddress",
        "ipv4",
        "ipv6",
        "ipv6Address",
        "macAddress",
        "nat",
        "natIpAddress",
        "natIpVersion",
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceTemplate:getComputeInstanceGroupInstanceTemplate": {
      "properties": {
        "bootDisks": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceTemplateBootDisk:getComputeInstanceGroupInstanceTemplateBootDisk"
          },
          "description": "The specifications for boot disk that will be attached to the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "description": {
          "type": "string",
          "description": "A description of the boot disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hostname": {
          "type": "string",
          "description": "Hostname temaplate for the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of labels applied to this instance.\n* `resources.0.memory` - The memory size allocated to the instance.\n* `resources.0.cores` - Number of CPU cores allocated to the instance.\n* `resources.0.core_fraction` - Baseline core performance as a percent.\n* `resources.0.gpus` - Number of GPU cores allocated to the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The set of metadata `key:value` pairs assigned to this instance template. This includes custom metadata and predefined keys.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "The name of the managed instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "networkInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceTemplateNetworkInterface:getComputeInstanceGroupInstanceTemplateNetworkInterface"
          },
          "description": "An array with the network interfaces attached to the managed instance. The structure is documented below.\n* `status_changed_at` -The timestamp when the status of the managed instance was last changed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "networkSettings": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceTemplateNetworkSetting:getComputeInstanceGroupInstanceTemplateNetworkSetting"
          },
          "description": "Network acceleration settings. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "placementPolicy": {
          "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceTemplatePlacementPolicy:getComputeInstanceGroupInstanceTemplatePlacementPolicy",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "platformId": {
          "type": "string",
          "description": "The ID of the hardware platform configuration for the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceTemplateResource:getComputeInstanceGroupInstanceTemplateResource"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "schedulingPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceTemplateSchedulingPolicy:getComputeInstanceGroupInstanceTemplateSchedulingPolicy"
          },
          "description": "The scheduling policy for the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "secondaryDisks": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceTemplateSecondaryDisk:getComputeInstanceGroupInstanceTemplateSecondaryDisk"
          },
          "description": "An array with the secondary disks that will be attached to the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serviceAccountId": {
          "type": "string",
          "description": "The service account ID for the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "bootDisks",
        "description",
        "hostname",
        "labels",
        "metadata",
        "name",
        "networkInterfaces",
        "networkSettings",
        "platformId",
        "resources",
        "schedulingPolicies",
        "secondaryDisks",
        "serviceAccountId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceTemplateBootDisk:getComputeInstanceGroupInstanceTemplateBootDisk": {
      "properties": {
        "deviceName": {
          "type": "string",
          "description": "This value can be used to reference the device under `/dev/disk/by-id/`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskId": {
          "type": "string",
          "description": "ID of the existing disk. To set use variables.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "initializeParams": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceTemplateBootDiskInitializeParam:getComputeInstanceGroupInstanceTemplateBootDiskInitializeParam"
          },
          "description": "The parameters used for creating a disk alongside the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mode": {
          "type": "string",
          "description": "The access mode to the disk resource. By default a disk is attached in `READ_WRITE` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "deviceName",
        "diskId",
        "initializeParams",
        "mode"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceTemplateBootDiskInitializeParam:getComputeInstanceGroupInstanceTemplateBootDiskInitializeParam": {
      "properties": {
        "description": {
          "type": "string",
          "description": "A description of the boot disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "imageId": {
          "type": "string",
          "description": "The disk image to initialize this disk from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "size": {
          "type": "integer",
          "description": "The size of the disk in GB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "snapshotId": {
          "type": "string",
          "description": "The snapshot to initialize this disk from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Network acceleration type. By default a network is in `STANDARD` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "description",
        "imageId",
        "size",
        "snapshotId",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceTemplateNetworkInterface:getComputeInstanceGroupInstanceTemplateNetworkInterface": {
      "properties": {
        "dnsRecords": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceTemplateNetworkInterfaceDnsRecord:getComputeInstanceGroupInstanceTemplateNetworkInterfaceDnsRecord"
          },
          "description": "List of dns records.  The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "type": "string",
          "description": "The private IP address to assign to the instance. If empty, the address is automatically assigned from the specified subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv4": {
          "type": "boolean",
          "description": "Is IPv4 address assigned.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6Address": {
          "type": "string",
          "description": "Manual set static IPv6 address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6DnsRecords": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceTemplateNetworkInterfaceIpv6DnsRecord:getComputeInstanceGroupInstanceTemplateNetworkInterfaceIpv6DnsRecord"
          },
          "description": "List of ipv6 dns records.  The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nat": {
          "type": "boolean",
          "description": "The instance's public address for accessing the internet over NAT.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natDnsRecords": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceTemplateNetworkInterfaceNatDnsRecord:getComputeInstanceGroupInstanceTemplateNetworkInterfaceNatDnsRecord"
          },
          "description": "List of nat dns records.  The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natIpAddress": {
          "type": "string",
          "description": "The public IP address of the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "networkId": {
          "type": "string",
          "description": "The ID of the network.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Security group ids for network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The IDs of the subnets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "dnsRecords",
        "ipAddress",
        "ipv4",
        "ipv6",
        "ipv6Address",
        "ipv6DnsRecords",
        "nat",
        "natDnsRecords",
        "natIpAddress",
        "networkId",
        "securityGroupIds",
        "subnetIds"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceTemplateNetworkInterfaceDnsRecord:getComputeInstanceGroupInstanceTemplateNetworkInterfaceDnsRecord": {
      "properties": {
        "dnsZoneId": {
          "type": "string",
          "description": "DNS zone id (if not set, private zone is used).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "The Fully Qualified Domain Name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ptr": {
          "type": "boolean",
          "description": "When set to true, also create PTR DNS record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ttl": {
          "type": "integer",
          "description": "DNS record TTL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "dnsZoneId",
        "fqdn",
        "ptr",
        "ttl"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceTemplateNetworkInterfaceIpv6DnsRecord:getComputeInstanceGroupInstanceTemplateNetworkInterfaceIpv6DnsRecord": {
      "properties": {
        "dnsZoneId": {
          "type": "string",
          "description": "DNS zone id (if not set, private zone is used).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "The Fully Qualified Domain Name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ptr": {
          "type": "boolean",
          "description": "When set to true, also create PTR DNS record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ttl": {
          "type": "integer",
          "description": "DNS record TTL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "dnsZoneId",
        "fqdn",
        "ptr",
        "ttl"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceTemplateNetworkInterfaceNatDnsRecord:getComputeInstanceGroupInstanceTemplateNetworkInterfaceNatDnsRecord": {
      "properties": {
        "dnsZoneId": {
          "type": "string",
          "description": "DNS zone id (if not set, private zone is used).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "The Fully Qualified Domain Name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ptr": {
          "type": "boolean",
          "description": "When set to true, also create PTR DNS record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ttl": {
          "type": "integer",
          "description": "DNS record TTL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "dnsZoneId",
        "fqdn",
        "ptr",
        "ttl"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceTemplateNetworkSetting:getComputeInstanceGroupInstanceTemplateNetworkSetting": {
      "properties": {
        "type": {
          "type": "string",
          "description": "Network acceleration type. By default a network is in `STANDARD` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceTemplatePlacementPolicy:getComputeInstanceGroupInstanceTemplatePlacementPolicy": {
      "properties": {
        "placementGroupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "placementGroupId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceTemplateResource:getComputeInstanceGroupInstanceTemplateResource": {
      "properties": {
        "coreFraction": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cores": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "gpus": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "memory": {
          "type": "number",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "coreFraction",
        "cores",
        "gpus",
        "memory"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceTemplateSchedulingPolicy:getComputeInstanceGroupInstanceTemplateSchedulingPolicy": {
      "properties": {
        "preemptible": {
          "type": "boolean",
          "description": "Specifies if the instance is preemptible. Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "preemptible"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceTemplateSecondaryDisk:getComputeInstanceGroupInstanceTemplateSecondaryDisk": {
      "properties": {
        "deviceName": {
          "type": "string",
          "description": "This value can be used to reference the device under `/dev/disk/by-id/`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskId": {
          "type": "string",
          "description": "ID of the existing disk. To set use variables.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "initializeParams": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceTemplateSecondaryDiskInitializeParam:getComputeInstanceGroupInstanceTemplateSecondaryDiskInitializeParam"
          },
          "description": "The parameters used for creating a disk alongside the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mode": {
          "type": "string",
          "description": "The access mode to the disk resource. By default a disk is attached in `READ_WRITE` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "deviceName",
        "diskId",
        "initializeParams",
        "mode"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupInstanceTemplateSecondaryDiskInitializeParam:getComputeInstanceGroupInstanceTemplateSecondaryDiskInitializeParam": {
      "properties": {
        "description": {
          "type": "string",
          "description": "A description of the boot disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "imageId": {
          "type": "string",
          "description": "The disk image to initialize this disk from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "size": {
          "type": "integer",
          "description": "The size of the disk in GB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "snapshotId": {
          "type": "string",
          "description": "The snapshot to initialize this disk from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Network acceleration type. By default a network is in `STANDARD` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "description",
        "imageId",
        "size",
        "snapshotId",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupLoadBalancer:getComputeInstanceGroupLoadBalancer": {
      "properties": {
        "maxOpeningTrafficDuration": {
          "type": "integer",
          "description": "Timeout for waiting for the VM to be checked by the load balancer. If the timeout is exceeded, the VM will be turned off based on the deployment policy. Specified in seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "statusMessage": {
          "type": "string",
          "description": "The status message of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupDescription": {
          "type": "string",
          "description": "A description of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupId": {
          "type": "string",
          "description": "The ID of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupLabels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupName": {
          "type": "string",
          "description": "The name of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "maxOpeningTrafficDuration",
        "statusMessage",
        "targetGroupDescription",
        "targetGroupId",
        "targetGroupLabels",
        "targetGroupName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupLoadBalancerState:getComputeInstanceGroupLoadBalancerState": {
      "properties": {
        "statusMessage": {
          "type": "string",
          "description": "The status message of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupId": {
          "type": "string",
          "description": "The ID of the target group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "statusMessage",
        "targetGroupId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupScalePolicy:getComputeInstanceGroupScalePolicy": {
      "properties": {
        "autoScales": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupScalePolicyAutoScale:getComputeInstanceGroupScalePolicyAutoScale"
          },
          "description": "The auto scaling policy of the instance group. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fixedScales": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupScalePolicyFixedScale:getComputeInstanceGroupScalePolicyFixedScale"
          },
          "description": "The fixed scaling policy of the instance group. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "testAutoScales": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupScalePolicyTestAutoScale:getComputeInstanceGroupScalePolicyTestAutoScale"
          },
          "description": "The test auto scaling policy of the instance group. Use it to test how the auto scale works. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "autoScales",
        "fixedScales",
        "testAutoScales"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupScalePolicyAutoScale:getComputeInstanceGroupScalePolicyAutoScale": {
      "properties": {
        "cpuUtilizationTarget": {
          "type": "number",
          "description": "Target CPU load level.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "customRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupScalePolicyAutoScaleCustomRule:getComputeInstanceGroupScalePolicyAutoScaleCustomRule"
          },
          "description": "A list of custom rules. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "initialSize": {
          "type": "integer",
          "description": "The initial number of instances in the instance group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxSize": {
          "type": "integer",
          "description": "The maximum number of virtual machines in the group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "measurementDuration": {
          "type": "integer",
          "description": "The amount of time, in seconds, that metrics are averaged for.\nIf the average value at the end of the interval is higher than the `cpu_utilization_target`,\nthe instance group will increase the number of virtual machines in the group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minZoneSize": {
          "type": "integer",
          "description": "The minimum number of virtual machines in a single availability zone.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "stabilizationDuration": {
          "type": "integer",
          "description": "The minimum time interval, in seconds, to monitor the load before\nan instance group can reduce the number of virtual machines in the group. During this time, the group\nwill not decrease even if the average load falls below the value of `cpu_utilization_target`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "warmupDuration": {
          "type": "integer",
          "description": "The warm-up time of the virtual machine, in seconds. During this time,\ntraffic is fed to the virtual machine, but load metrics are not taken into account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cpuUtilizationTarget",
        "customRules",
        "initialSize",
        "maxSize",
        "measurementDuration",
        "minZoneSize",
        "stabilizationDuration",
        "warmupDuration"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupScalePolicyAutoScaleCustomRule:getComputeInstanceGroupScalePolicyAutoScaleCustomRule": {
      "properties": {
        "folderId": {
          "type": "string",
          "description": "Folder ID of custom metric in Yandex Monitoring that should be used for scaling.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of labels applied to this instance.\n* `resources.0.memory` - The memory size allocated to the instance.\n* `resources.0.cores` - Number of CPU cores allocated to the instance.\n* `resources.0.core_fraction` - Baseline core performance as a percent.\n* `resources.0.gpus` - Number of GPU cores allocated to the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricName": {
          "type": "string",
          "description": "The name of metric.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricType": {
          "type": "string",
          "description": "Metric type, `GAUGE` or `COUNTER`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ruleType": {
          "type": "string",
          "description": "Rule type: `UTILIZATION` - This type means that the metric applies to one instance.\nFirst, Instance Groups calculates the average metric value for each instance,\nthen averages the values for instances in one availability zone.\nThis type of metric must have the `instance_id` label. `WORKLOAD` - This type means that the metric applies to instances in one availability zone.\nThis type of metric must have the `zone_id` label.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "service": {
          "type": "string",
          "description": "Service of custom metric in Yandex Monitoring that should be used for scaling.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "target": {
          "type": "number",
          "description": "Target metric value level.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "folderId",
        "labels",
        "metricName",
        "metricType",
        "ruleType",
        "service",
        "target"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupScalePolicyFixedScale:getComputeInstanceGroupScalePolicyFixedScale": {
      "properties": {
        "size": {
          "type": "integer",
          "description": "The size of the disk in GB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "size"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupScalePolicyTestAutoScale:getComputeInstanceGroupScalePolicyTestAutoScale": {
      "properties": {
        "cpuUtilizationTarget": {
          "type": "number",
          "description": "Target CPU load level.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "customRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupScalePolicyTestAutoScaleCustomRule:getComputeInstanceGroupScalePolicyTestAutoScaleCustomRule"
          },
          "description": "A list of custom rules. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "initialSize": {
          "type": "integer",
          "description": "The initial number of instances in the instance group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxSize": {
          "type": "integer",
          "description": "The maximum number of virtual machines in the group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "measurementDuration": {
          "type": "integer",
          "description": "The amount of time, in seconds, that metrics are averaged for.\nIf the average value at the end of the interval is higher than the `cpu_utilization_target`,\nthe instance group will increase the number of virtual machines in the group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minZoneSize": {
          "type": "integer",
          "description": "The minimum number of virtual machines in a single availability zone.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "stabilizationDuration": {
          "type": "integer",
          "description": "The minimum time interval, in seconds, to monitor the load before\nan instance group can reduce the number of virtual machines in the group. During this time, the group\nwill not decrease even if the average load falls below the value of `cpu_utilization_target`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "warmupDuration": {
          "type": "integer",
          "description": "The warm-up time of the virtual machine, in seconds. During this time,\ntraffic is fed to the virtual machine, but load metrics are not taken into account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cpuUtilizationTarget",
        "customRules",
        "initialSize",
        "maxSize",
        "measurementDuration",
        "minZoneSize",
        "stabilizationDuration",
        "warmupDuration"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceGroupScalePolicyTestAutoScaleCustomRule:getComputeInstanceGroupScalePolicyTestAutoScaleCustomRule": {
      "properties": {
        "folderId": {
          "type": "string",
          "description": "Folder ID of custom metric in Yandex Monitoring that should be used for scaling.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of labels applied to this instance.\n* `resources.0.memory` - The memory size allocated to the instance.\n* `resources.0.cores` - Number of CPU cores allocated to the instance.\n* `resources.0.core_fraction` - Baseline core performance as a percent.\n* `resources.0.gpus` - Number of GPU cores allocated to the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricName": {
          "type": "string",
          "description": "The name of metric.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricType": {
          "type": "string",
          "description": "Metric type, `GAUGE` or `COUNTER`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ruleType": {
          "type": "string",
          "description": "Rule type: `UTILIZATION` - This type means that the metric applies to one instance.\nFirst, Instance Groups calculates the average metric value for each instance,\nthen averages the values for instances in one availability zone.\nThis type of metric must have the `instance_id` label. `WORKLOAD` - This type means that the metric applies to instances in one availability zone.\nThis type of metric must have the `zone_id` label.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "service": {
          "type": "string",
          "description": "Service of custom metric in Yandex Monitoring that should be used for scaling.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "target": {
          "type": "number",
          "description": "Target metric value level.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "folderId",
        "labels",
        "metricName",
        "metricType",
        "ruleType",
        "service",
        "target"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceNetworkInterface:getComputeInstanceNetworkInterface": {
      "properties": {
        "dnsRecords": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceNetworkInterfaceDnsRecord:getComputeInstanceNetworkInterfaceDnsRecord"
          },
          "description": "List of configurations for creating ipv4 DNS records. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "index": {
          "type": "integer",
          "description": "The index of the network interface, generated by the server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "type": "string",
          "description": "The assignd private IP address to the network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv4": {
          "type": "boolean",
          "description": "Show if IPv4 address is assigned to the network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6Address": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6DnsRecords": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceNetworkInterfaceIpv6DnsRecord:getComputeInstanceNetworkInterfaceIpv6DnsRecord"
          },
          "description": "List of configurations for creating ipv6 DNS records. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "macAddress": {
          "type": "string",
          "description": "MAC address that is assigned to the network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nat": {
          "type": "boolean",
          "description": "Assigned for the instance's public address that is used to access the internet over NAT.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natDnsRecords": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetComputeInstanceNetworkInterfaceNatDnsRecord:getComputeInstanceNetworkInterfaceNatDnsRecord"
          },
          "description": "List of configurations for creating ipv4 NAT DNS records. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natIpAddress": {
          "type": "string",
          "description": "Public IP address of the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "natIpVersion": {
          "type": "string",
          "description": "IP version for the public address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Security group ids for network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "ID of the subnet to attach this interface to. The subnet must reside in the same zone where this instance was created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "dnsRecords",
        "index",
        "ipAddress",
        "ipv4",
        "ipv6",
        "ipv6Address",
        "ipv6DnsRecords",
        "macAddress",
        "nat",
        "natDnsRecords",
        "natIpAddress",
        "natIpVersion",
        "securityGroupIds",
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceNetworkInterfaceDnsRecord:getComputeInstanceNetworkInterfaceDnsRecord": {
      "properties": {
        "dnsZoneId": {
          "type": "string",
          "description": "DNS zone ID (if not set, private zone is used).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "DNS record FQDN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ptr": {
          "type": "boolean",
          "description": "When set to true, also create a TR DNS record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ttl": {
          "type": "integer",
          "description": "DNS record TTL. in seconds\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "dnsZoneId",
        "fqdn",
        "ptr",
        "ttl"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceNetworkInterfaceIpv6DnsRecord:getComputeInstanceNetworkInterfaceIpv6DnsRecord": {
      "properties": {
        "dnsZoneId": {
          "type": "string",
          "description": "DNS zone ID (if not set, private zone is used).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "DNS record FQDN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ptr": {
          "type": "boolean",
          "description": "When set to true, also create a TR DNS record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ttl": {
          "type": "integer",
          "description": "DNS record TTL. in seconds\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "dnsZoneId",
        "fqdn",
        "ptr",
        "ttl"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceNetworkInterfaceNatDnsRecord:getComputeInstanceNetworkInterfaceNatDnsRecord": {
      "properties": {
        "dnsZoneId": {
          "type": "string",
          "description": "DNS zone ID (if not set, private zone is used).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "DNS record FQDN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ptr": {
          "type": "boolean",
          "description": "When set to true, also create a TR DNS record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ttl": {
          "type": "integer",
          "description": "DNS record TTL. in seconds\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "dnsZoneId",
        "fqdn",
        "ptr",
        "ttl"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstancePlacementPolicy:getComputeInstancePlacementPolicy": {
      "properties": {
        "placementGroupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "placementGroupId"
      ]
    },
    "yandex:index/getComputeInstanceResource:getComputeInstanceResource": {
      "properties": {
        "coreFraction": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cores": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "gpus": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "memory": {
          "type": "number",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "coreFraction",
        "cores",
        "gpus",
        "memory"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getComputeInstanceSchedulingPolicy:getComputeInstanceSchedulingPolicy": {
      "properties": {
        "preemptible": {
          "type": "boolean",
          "description": "(Optional) Specifies if the instance is preemptible. Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/getComputeInstanceSecondaryDisk:getComputeInstanceSecondaryDisk": {
      "properties": {
        "autoDelete": {
          "type": "boolean",
          "description": "Specifies whether the disk is auto-deleted when the instance is deleted.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "deviceName": {
          "type": "string",
          "description": "This value can be used to reference the device from within the instance for mounting, resizing, and so on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskId": {
          "type": "string",
          "description": "ID of the disk that is attached to the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mode": {
          "type": "string",
          "description": "Access to the Disk resource. By default, a disk is attached in `READ_WRITE` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "autoDelete",
        "deviceName",
        "diskId",
        "mode"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getDataprocClusterClusterConfig:getDataprocClusterClusterConfig": {
      "properties": {
        "hadoops": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetDataprocClusterClusterConfigHadoop:getDataprocClusterClusterConfigHadoop"
          },
          "description": "Data Proc specific options. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subclusterSpecs": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetDataprocClusterClusterConfigSubclusterSpec:getDataprocClusterClusterConfigSubclusterSpec"
          },
          "description": "Configuration of the Data Proc subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "versionId": {
          "type": "string",
          "description": "Version of Data Proc image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "hadoops",
        "subclusterSpecs",
        "versionId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getDataprocClusterClusterConfigHadoop:getDataprocClusterClusterConfigHadoop": {
      "properties": {
        "properties": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value pairs used to configure cluster services.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "services": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of services launched on Data Proc cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sshPublicKeys": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of SSH public keys distributed to the hosts of the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "properties",
        "services",
        "sshPublicKeys"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getDataprocClusterClusterConfigSubclusterSpec:getDataprocClusterClusterConfigSubclusterSpec": {
      "properties": {
        "autoscalingConfigs": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetDataprocClusterClusterConfigSubclusterSpecAutoscalingConfig:getDataprocClusterClusterConfigSubclusterSpecAutoscalingConfig"
          },
          "description": "Optional autoscaling configuration for compute subclusters.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hostsCount": {
          "type": "integer",
          "description": "Number of hosts within Data Proc subcluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "id": {
          "type": "string",
          "description": "ID of the Data Proc subcluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "The name of the Data Proc cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetDataprocClusterClusterConfigSubclusterSpecResource:getDataprocClusterClusterConfigSubclusterSpecResource"
          },
          "description": "Resources allocated to each host of the Data Proc subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "role": {
          "type": "string",
          "description": "Role of the subcluster in the Data Proc cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which hosts of the subcluster belong.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "autoscalingConfigs",
        "hostsCount",
        "id",
        "name",
        "resources",
        "role",
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getDataprocClusterClusterConfigSubclusterSpecAutoscalingConfig:getDataprocClusterClusterConfigSubclusterSpecAutoscalingConfig": {
      "properties": {
        "cpuUtilizationTarget": {
          "type": "number",
          "description": "Defines an autoscaling rule based on the average CPU utilization of the instance group. If not set default autoscaling metric will be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "decommissionTimeout": {
          "type": "integer",
          "description": "Timeout to gracefully decommission nodes during downscaling. In seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxHostsCount": {
          "type": "integer",
          "description": "Maximum number of nodes in autoscaling subclusters.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "measurementDuration": {
          "type": "integer",
          "description": "Time in seconds allotted for averaging metrics.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "preemptible": {
          "type": "boolean",
          "description": "Bool flag -- whether to use preemptible compute instances. Preemptible instances are stopped at least once every 24 hours, and can be stopped at any time if their resources are needed by Compute. For more information, see [Preemptible Virtual Machines](https://cloud.yandex.com/docs/compute/concepts/preemptible-vm).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "stabilizationDuration": {
          "type": "integer",
          "description": "Minimum amount of time in seconds allotted for monitoring before Instance Groups can reduce the number of instances in the group. During this time, the group size doesn't decrease, even if the new metric values indicate that it should.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "warmupDuration": {
          "type": "integer",
          "description": "The warmup time of the instance in seconds. During this time, traffic is sent to the instance, but instance metrics are not collected.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cpuUtilizationTarget",
        "decommissionTimeout",
        "maxHostsCount",
        "measurementDuration",
        "preemptible",
        "stabilizationDuration",
        "warmupDuration"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getDataprocClusterClusterConfigSubclusterSpecResource:getDataprocClusterClusterConfigSubclusterSpecResource": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of a host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "description": "The ID of the preset for computational resources available to a host. All available presets are listed in the [documentation](https://cloud.yandex.com/docs/data-proc/concepts/instance-types).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getFunctionScalingPolicyPolicy:getFunctionScalingPolicyPolicy": {
      "properties": {
        "tag": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneInstancesLimit": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneRequestsLimit": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "tag"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getFunctionTriggerDlq:getFunctionTriggerDlq": {
      "properties": {
        "queueId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serviceAccountId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "queueId",
        "serviceAccountId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getFunctionTriggerFunction:getFunctionTriggerFunction": {
      "properties": {
        "id": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retryAttempts": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retryInterval": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serviceAccountId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tag": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "id",
        "retryAttempts",
        "retryInterval",
        "serviceAccountId",
        "tag"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getFunctionTriggerIot:getFunctionTriggerIot": {
      "properties": {
        "deviceId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "registryId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "topic": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "deviceId",
        "registryId",
        "topic"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getFunctionTriggerLogGroup:getFunctionTriggerLogGroup": {
      "properties": {
        "batchCutoff": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "batchSize": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "batchCutoff",
        "batchSize",
        "logGroupIds"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getFunctionTriggerLogging:getFunctionTriggerLogging": {
      "properties": {
        "batchCutoff": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "batchSize": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "groupId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "levels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourceIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourceTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "batchCutoff",
        "batchSize",
        "groupId",
        "levels",
        "resourceIds",
        "resourceTypes"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getFunctionTriggerMessageQueue:getFunctionTriggerMessageQueue": {
      "properties": {
        "batchCutoff": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "batchSize": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queueId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serviceAccountId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "visibilityTimeout": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "batchCutoff",
        "batchSize",
        "queueId",
        "serviceAccountId",
        "visibilityTimeout"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getFunctionTriggerObjectStorage:getFunctionTriggerObjectStorage": {
      "properties": {
        "bucketId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "create": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "delete": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "prefix": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "suffix": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "update": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "bucketId",
        "create",
        "delete",
        "prefix",
        "suffix",
        "update"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getFunctionTriggerTimer:getFunctionTriggerTimer": {
      "properties": {
        "cronExpression": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cronExpression"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getIamPolicyBinding:getIamPolicyBinding": {
      "properties": {
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of identities that will be granted the privilege in the `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "role": {
          "type": "string",
          "description": "The role/permission that will be granted to the members.\nSee the [IAM Roles] documentation for a complete list of roles.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "members",
        "role"
      ]
    },
    "yandex:index/getKubernetesClusterKmsProvider:getKubernetesClusterKmsProvider": {
      "properties": {
        "keyId": {
          "type": "string",
          "description": "KMS key ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "keyId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesClusterMaster:getKubernetesClusterMaster": {
      "properties": {
        "clusterCaCertificate": {
          "type": "string",
          "description": "PEM-encoded public certificate that is the root of trust for the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "externalV4Address": {
          "type": "string",
          "description": "An IPv4 external network address that is assigned to the master.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "externalV4Endpoint": {
          "type": "string",
          "description": "External endpoint that can be used to access Kubernetes cluster API from the internet (outside of the cloud).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "internalV4Address": {
          "type": "string",
          "description": "An IPv4 internal network address that is assigned to the master.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "internalV4Endpoint": {
          "type": "string",
          "description": "Internal endpoint that can be used to connect to the master from cloud networks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maintenancePolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesClusterMasterMaintenancePolicy:getKubernetesClusterMasterMaintenancePolicy"
          },
          "description": "Maintenance policy for Kubernetes master. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "publicIp": {
          "type": "boolean",
          "description": "Boolean flag. When `true`, Kubernetes master have visible ipv4 address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "regionals": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesClusterMasterRegional:getKubernetesClusterMasterRegional"
          },
          "description": "Information about cluster regional master. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of security groups IDs of the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "version": {
          "type": "string",
          "description": "Version of Kubernetes master.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "versionInfos": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesClusterMasterVersionInfo:getKubernetesClusterMasterVersionInfo"
          },
          "description": "Information about cluster version. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zonals": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesClusterMasterZonal:getKubernetesClusterMasterZonal"
          },
          "description": "Information about cluster zonal master. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "clusterCaCertificate",
        "externalV4Address",
        "externalV4Endpoint",
        "internalV4Address",
        "internalV4Endpoint",
        "maintenancePolicies",
        "publicIp",
        "regionals",
        "securityGroupIds",
        "version",
        "versionInfos",
        "zonals"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesClusterMasterMaintenancePolicy:getKubernetesClusterMasterMaintenancePolicy": {
      "properties": {
        "autoUpgrade": {
          "type": "boolean",
          "description": "Boolean flag that specifies if master can be upgraded automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maintenanceWindows": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesClusterMasterMaintenancePolicyMaintenanceWindow:getKubernetesClusterMasterMaintenancePolicyMaintenanceWindow"
          },
          "description": "Set of day intervals, when maintenance is allowed, when update for master is allowed.\nWhen omitted, it defaults to any time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "autoUpgrade",
        "maintenanceWindows"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesClusterMasterMaintenancePolicyMaintenanceWindow:getKubernetesClusterMasterMaintenancePolicyMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "duration": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "startTime": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "day",
        "duration",
        "startTime"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesClusterMasterRegional:getKubernetesClusterMasterRegional": {
      "properties": {
        "region": {
          "type": "string",
          "description": "ID of the availability region where the master compute instances resides.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "region"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesClusterMasterVersionInfo:getKubernetesClusterMasterVersionInfo": {
      "properties": {
        "currentVersion": {
          "type": "string",
          "description": "Current Kubernetes version, major.minor (e.g. 1.15).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "newRevisionAvailable": {
          "type": "boolean",
          "description": "True/false flag.\nNewer revisions may include Kubernetes patches (e.g 1.15.1 > 1.15.2) as well\nas some internal component updates - new features or bug fixes in yandex-specific\ncomponents either on the master or nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "newRevisionSummary": {
          "type": "string",
          "description": "Human readable description of the changes to be applied\nwhen updating to the latest revision. Empty if new_revision_available is false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "versionDeprecated": {
          "type": "boolean",
          "description": "True/false flag. The current version is on the deprecation schedule,\ncomponent (master or node group) should be upgraded.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "currentVersion",
        "newRevisionAvailable",
        "newRevisionSummary",
        "versionDeprecated"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesClusterMasterZonal:getKubernetesClusterMasterZonal": {
      "properties": {
        "zone": {
          "type": "string",
          "description": "ID of the availability zone where the master compute instance resides.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesClusterNetworkImplementation:getKubernetesClusterNetworkImplementation": {
      "properties": {
        "cilias": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesClusterNetworkImplementationCilia:getKubernetesClusterNetworkImplementationCilia"
          },
          "description": "Cilium network implementation configuration. No options exist.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cilias"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesClusterNetworkImplementationCilia:getKubernetesClusterNetworkImplementationCilia": {
      "properties": {
        "routingMode": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "routingMode"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupAllocationPolicy:getKubernetesNodeGroupAllocationPolicy": {
      "properties": {
        "locations": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupAllocationPolicyLocation:getKubernetesNodeGroupAllocationPolicyLocation"
          },
          "description": "Repeated field, that specify subnets (zones), that will be used by node group compute instances. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "locations"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupAllocationPolicyLocation:getKubernetesNodeGroupAllocationPolicyLocation": {
      "properties": {
        "subnetId": {
          "type": "string",
          "description": "ID of the subnet, that will be used by one compute instance in node group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "ID of the availability zone where for one compute instance in node group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "subnetId",
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupDeployPolicy:getKubernetesNodeGroupDeployPolicy": {
      "properties": {
        "maxExpansion": {
          "type": "integer",
          "description": "The maximum number of instances that can be temporarily allocated above the group's target size during the update.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxUnavailable": {
          "type": "integer",
          "description": "The maximum number of running instances that can be taken offline during update.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "maxExpansion",
        "maxUnavailable"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupInstanceTemplate:getKubernetesNodeGroupInstanceTemplate": {
      "properties": {
        "bootDisks": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupInstanceTemplateBootDisk:getKubernetesNodeGroupInstanceTemplateBootDisk"
          },
          "description": "The specifications for boot disks that will be attached to the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "containerRuntime": {
          "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupInstanceTemplateContainerRuntime:getKubernetesNodeGroupInstanceTemplateContainerRuntime",
          "description": "Container runtime configuration. The structure is documented below.\n---\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The set of metadata `key:value` pairs assigned to this instance template. This includes custom metadata and predefined keys.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nat": {
          "type": "boolean",
          "description": "A public address that can be used to access the internet over NAT.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "networkAccelerationType": {
          "type": "string",
          "description": "Type of network acceleration. Values: `standard`, `software_accelerated`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "networkInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupInstanceTemplateNetworkInterface:getKubernetesNodeGroupInstanceTemplateNetworkInterface"
          },
          "description": "An array with the network interfaces that will be attached to the instance. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "placementPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupInstanceTemplatePlacementPolicy:getKubernetesNodeGroupInstanceTemplatePlacementPolicy"
          },
          "description": "(Optional) The placement policy configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "platformId": {
          "type": "string",
          "description": "The ID of the hardware platform configuration for the instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupInstanceTemplateResource:getKubernetesNodeGroupInstanceTemplateResource"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "schedulingPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupInstanceTemplateSchedulingPolicy:getKubernetesNodeGroupInstanceTemplateSchedulingPolicy"
          },
          "description": "The scheduling policy for the instances in node group. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "bootDisks",
        "containerRuntime",
        "metadata",
        "nat",
        "networkAccelerationType",
        "networkInterfaces",
        "platformId",
        "resources",
        "schedulingPolicies"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupInstanceTemplateBootDisk:getKubernetesNodeGroupInstanceTemplateBootDisk": {
      "properties": {
        "size": {
          "type": "integer",
          "description": "The number of instances in the node group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of container runtime. Values: `docker`, `containerd`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "size",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupInstanceTemplateContainerRuntime:getKubernetesNodeGroupInstanceTemplateContainerRuntime": {
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of container runtime. Values: `docker`, `containerd`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupInstanceTemplateNetworkInterface:getKubernetesNodeGroupInstanceTemplateNetworkInterface": {
      "properties": {
        "ipv4": {
          "type": "boolean",
          "description": "Indicates whether the IPv4 address has been assigned.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipv6": {
          "type": "boolean",
          "description": "Indicates whether the IPv6 address has been assigned.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nat": {
          "type": "boolean",
          "description": "A public address that can be used to access the internet over NAT.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Security group ids for network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The IDs of the subnets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "ipv4",
        "ipv6",
        "nat",
        "securityGroupIds",
        "subnetIds"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupInstanceTemplatePlacementPolicy:getKubernetesNodeGroupInstanceTemplatePlacementPolicy": {
      "properties": {
        "placementGroupId": {
          "type": "string",
          "description": "(Optional) Specifies the id of the Placement Group to assign to the instances.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "placementGroupId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupInstanceTemplateResource:getKubernetesNodeGroupInstanceTemplateResource": {
      "properties": {
        "coreFraction": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cores": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "gpus": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "memory": {
          "type": "number",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "coreFraction",
        "cores",
        "gpus",
        "memory"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupInstanceTemplateSchedulingPolicy:getKubernetesNodeGroupInstanceTemplateSchedulingPolicy": {
      "properties": {
        "preemptible": {
          "type": "boolean",
          "description": "Specifies if the instance is preemptible. Defaults to false.\n---\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "preemptible"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupMaintenancePolicy:getKubernetesNodeGroupMaintenancePolicy": {
      "properties": {
        "autoRepair": {
          "type": "boolean",
          "description": "Boolean flag.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "autoUpgrade": {
          "type": "boolean",
          "description": "Boolean flag.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maintenanceWindows": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupMaintenancePolicyMaintenanceWindow:getKubernetesNodeGroupMaintenancePolicyMaintenanceWindow"
          },
          "description": "Set of day intervals, when maintenance is allowed for this node group.\nWhen omitted, it defaults to any time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "autoRepair",
        "autoUpgrade",
        "maintenanceWindows"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupMaintenancePolicyMaintenanceWindow:getKubernetesNodeGroupMaintenancePolicyMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "duration": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "startTime": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "day",
        "duration",
        "startTime"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupScalePolicy:getKubernetesNodeGroupScalePolicy": {
      "properties": {
        "autoScales": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupScalePolicyAutoScale:getKubernetesNodeGroupScalePolicyAutoScale"
          },
          "description": "Scale policy for an autoscaled node group. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fixedScales": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupScalePolicyFixedScale:getKubernetesNodeGroupScalePolicyFixedScale"
          },
          "description": "Scale policy for a fixed scale node group. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "autoScales",
        "fixedScales"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupScalePolicyAutoScale:getKubernetesNodeGroupScalePolicyAutoScale": {
      "properties": {
        "initial": {
          "type": "integer",
          "description": "Initial number of instances in the node group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "max": {
          "type": "integer",
          "description": "Maximum number of instances in the node group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "min": {
          "type": "integer",
          "description": "Minimum number of instances in the node group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "initial",
        "max",
        "min"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupScalePolicyFixedScale:getKubernetesNodeGroupScalePolicyFixedScale": {
      "properties": {
        "size": {
          "type": "integer",
          "description": "The number of instances in the node group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "size"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getKubernetesNodeGroupVersionInfo:getKubernetesNodeGroupVersionInfo": {
      "properties": {
        "currentVersion": {
          "type": "string",
          "description": "Current Kubernetes version, major.minor (e.g. 1.15).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "newRevisionAvailable": {
          "type": "boolean",
          "description": "True/false flag.\nNewer revisions may include Kubernetes patches (e.g 1.15.1 > 1.15.2) as well\nas some internal component updates - new features or bug fixes in yandex-specific\ncomponents either on the master or nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "newRevisionSummary": {
          "type": "string",
          "description": "Human readable description of the changes to be applied\nwhen updating to the latest revision. Empty if new_revision_available is false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "versionDeprecated": {
          "type": "boolean",
          "description": "True/false flag. The current version is on the deprecation schedule,\ncomponent (master or node group) should be upgraded.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "currentVersion",
        "newRevisionAvailable",
        "newRevisionSummary",
        "versionDeprecated"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getLbNetworkLoadBalancerAttachedTargetGroup:getLbNetworkLoadBalancerAttachedTargetGroup": {
      "properties": {
        "healthchecks": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetLbNetworkLoadBalancerAttachedTargetGroupHealthcheck:getLbNetworkLoadBalancerAttachedTargetGroupHealthcheck"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetGroupId": {
          "type": "string",
          "description": "ID of the target group that attached to the network load balancer.\n* `healthcheck.0.name` - Name of the health check.\n* `healthcheck.0.interval` - The interval between health checks.\n* `healthcheck.0.timeout` - Timeout for a target to return a response for the health check.\n* `healthcheck.0.unhealthy_threshold` - Number of failed health checks before changing the status to `UNHEALTHY`.\n* `healthcheck.0.healthy_threshold` - Number of successful health checks required in order to set the `HEALTHY` status for the target.\n* `healthcheck.0.tcp_options.0.port` - Port to use for TCP health checks.\n* `healthcheck.0.http_options.0.port` - Port to use for HTTP health checks.\n* `healthcheck.0.http_options.0.path` - URL path to use for HTTP health checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "healthchecks",
        "targetGroupId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getLbNetworkLoadBalancerAttachedTargetGroupHealthcheck:getLbNetworkLoadBalancerAttachedTargetGroupHealthcheck": {
      "properties": {
        "healthyThreshold": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpOptions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetLbNetworkLoadBalancerAttachedTargetGroupHealthcheckHttpOption:getLbNetworkLoadBalancerAttachedTargetGroupHealthcheckHttpOption"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "interval": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "- Name of the network load balancer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tcpOptions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetLbNetworkLoadBalancerAttachedTargetGroupHealthcheckTcpOption:getLbNetworkLoadBalancerAttachedTargetGroupHealthcheckTcpOption"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unhealthyThreshold": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "healthyThreshold",
        "httpOptions",
        "interval",
        "name",
        "tcpOptions",
        "timeout",
        "unhealthyThreshold"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getLbNetworkLoadBalancerAttachedTargetGroupHealthcheckHttpOption:getLbNetworkLoadBalancerAttachedTargetGroupHealthcheckHttpOption": {
      "properties": {
        "path": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for incoming traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "path",
        "port"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getLbNetworkLoadBalancerAttachedTargetGroupHealthcheckTcpOption:getLbNetworkLoadBalancerAttachedTargetGroupHealthcheckTcpOption": {
      "properties": {
        "port": {
          "type": "integer",
          "description": "Port for incoming traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "port"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getLbNetworkLoadBalancerListener:getLbNetworkLoadBalancerListener": {
      "properties": {
        "externalAddressSpecs": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetLbNetworkLoadBalancerListenerExternalAddressSpec:getLbNetworkLoadBalancerListenerExternalAddressSpec"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "internalAddressSpecs": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetLbNetworkLoadBalancerListenerInternalAddressSpec:getLbNetworkLoadBalancerListenerInternalAddressSpec"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "- Name of the network load balancer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port for incoming traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "description": "Protocol for incoming traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetPort": {
          "type": "integer",
          "description": "Port of a target. \n* `external_address_spec.0.address` - External IP address of a listener.\n* `external_address_spec.0.ip_version` - IP version of the external addresses.\n* `internal_address_spec.0.subnet_id` - Subnet ID to which the internal IP address belongs\n* `internal_address_spec.0.address` - Internal IP address of a listener.\n* `internal_address_spec.0.ip_version` - IP version of the internal addresses.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "externalAddressSpecs",
        "internalAddressSpecs",
        "name",
        "port",
        "protocol",
        "targetPort"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getLbNetworkLoadBalancerListenerExternalAddressSpec:getLbNetworkLoadBalancerListenerExternalAddressSpec": {
      "properties": {
        "address": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipVersion": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "address",
        "ipVersion"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getLbNetworkLoadBalancerListenerInternalAddressSpec:getLbNetworkLoadBalancerListenerInternalAddressSpec": {
      "properties": {
        "address": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipVersion": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "address",
        "ipVersion",
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getLbTargetGroupTarget:getLbTargetGroupTarget": {
      "properties": {
        "address": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "address",
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterAccess:getMdbClickhouseClusterAccess": {
      "properties": {
        "dataLens": {
          "type": "boolean",
          "description": "Allow access for Web SQL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metrika": {
          "type": "boolean",
          "description": "Allow access for Yandex.Metrika.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "serverless": {
          "type": "boolean",
          "description": "Allow access for Serverless.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "webSql": {
          "type": "boolean",
          "description": "Allow access for DataLens.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "dataLens",
        "metrika",
        "serverless",
        "webSql"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterBackupWindowStart:getMdbClickhouseClusterBackupWindowStart": {
      "properties": {
        "hours": {
          "type": "integer",
          "description": "The hour at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minutes": {
          "type": "integer",
          "description": "The minute at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "hours",
        "minutes"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterClickhouse:getMdbClickhouseClusterClickhouse": {
      "properties": {
        "config": {
          "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterClickhouseConfig:getMdbClickhouseClusterClickhouseConfig",
          "description": "Main ClickHouse cluster configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterClickhouseResource:getMdbClickhouseClusterClickhouseResource"
          },
          "description": "Resources allocated to hosts of the ZooKeeper subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "config",
        "resources"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterClickhouseConfig:getMdbClickhouseClusterClickhouseConfig": {
      "properties": {
        "backgroundPoolSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "backgroundSchedulePoolSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "compressions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterClickhouseConfigCompression:getMdbClickhouseClusterClickhouseConfigCompression"
          },
          "description": "Data compression configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "geobaseUri": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "graphiteRollups": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterClickhouseConfigGraphiteRollup:getMdbClickhouseClusterClickhouseConfigGraphiteRollup"
          },
          "description": "Graphite rollup configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "kafkaTopics": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterClickhouseConfigKafkaTopic:getMdbClickhouseClusterClickhouseConfigKafkaTopic"
          },
          "description": "Kafka topic connection configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "kafkas": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterClickhouseConfigKafka:getMdbClickhouseClusterClickhouseConfigKafka"
          },
          "description": "Kafka connection configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "keepAliveTimeout": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logLevel": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "markCacheSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxConcurrentQueries": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxConnections": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxPartitionSizeToDrop": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxTableSizeToDrop": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mergeTree": {
          "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterClickhouseConfigMergeTree:getMdbClickhouseClusterClickhouseConfigMergeTree",
          "description": "MergeTree engine configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricLogEnabled": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricLogRetentionSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "metricLogRetentionTime": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "partLogRetentionSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "partLogRetentionTime": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryLogRetentionSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryLogRetentionTime": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryThreadLogEnabled": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryThreadLogRetentionSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queryThreadLogRetentionTime": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "rabbitmq": {
          "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterClickhouseConfigRabbitmq:getMdbClickhouseClusterClickhouseConfigRabbitmq",
          "description": "RabbitMQ connection configuration. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "textLogEnabled": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "textLogLevel": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "textLogRetentionSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "textLogRetentionTime": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timezone": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "traceLogEnabled": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "traceLogRetentionSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "traceLogRetentionTime": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "uncompressedCacheSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "kafkas",
        "mergeTree",
        "rabbitmq"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterClickhouseConfigCompression:getMdbClickhouseClusterClickhouseConfigCompression": {
      "properties": {
        "method": {
          "type": "string",
          "description": "Method: Compression method. Two methods are available: LZ4 and zstd.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minPartSize": {
          "type": "integer",
          "description": "Min part size: Minimum size (in bytes) of a data part in a table. ClickHouse only applies the rule to tables with data parts greater than or equal to the Min part size value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minPartSizeRatio": {
          "type": "number",
          "description": "Min part size ratio: Minimum table part size to total table size ratio. ClickHouse only applies the rule to tables in which this ratio is greater than or equal to the Min part size ratio value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "method",
        "minPartSize",
        "minPartSizeRatio"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterClickhouseConfigGraphiteRollup:getMdbClickhouseClusterClickhouseConfigGraphiteRollup": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the ClickHouse cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "patterns": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterClickhouseConfigGraphiteRollupPattern:getMdbClickhouseClusterClickhouseConfigGraphiteRollupPattern"
          },
          "description": "Set of thinning rules.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterClickhouseConfigGraphiteRollupPattern:getMdbClickhouseClusterClickhouseConfigGraphiteRollupPattern": {
      "properties": {
        "function": {
          "type": "string",
          "description": "Aggregation function name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "regexp": {
          "type": "string",
          "description": "Regular expression that the metric name must match.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retentions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterClickhouseConfigGraphiteRollupPatternRetention:getMdbClickhouseClusterClickhouseConfigGraphiteRollupPatternRetention"
          },
          "description": "Retain parameters.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "function"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterClickhouseConfigGraphiteRollupPatternRetention:getMdbClickhouseClusterClickhouseConfigGraphiteRollupPatternRetention": {
      "properties": {
        "age": {
          "type": "integer",
          "description": "Minimum data age in seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "precision": {
          "type": "integer",
          "description": "Accuracy of determining the age of the data in seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "age",
        "precision"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterClickhouseConfigKafka:getMdbClickhouseClusterClickhouseConfigKafka": {
      "properties": {
        "saslMechanism": {
          "type": "string",
          "description": "SASL mechanism used in kafka authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "saslPassword": {
          "type": "string",
          "description": "User password on kafka server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "saslUsername": {
          "type": "string",
          "description": "Username on kafka server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityProtocol": {
          "type": "string",
          "description": "Security protocol used to connect to kafka server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/getMdbClickhouseClusterClickhouseConfigKafkaTopic:getMdbClickhouseClusterClickhouseConfigKafkaTopic": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the ClickHouse cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "settings": {
          "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterClickhouseConfigKafkaTopicSettings:getMdbClickhouseClusterClickhouseConfigKafkaTopicSettings",
          "description": "Kafka connection settngs sanem as `kafka` block.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterClickhouseConfigKafkaTopicSettings:getMdbClickhouseClusterClickhouseConfigKafkaTopicSettings": {
      "properties": {
        "saslMechanism": {
          "type": "string",
          "description": "SASL mechanism used in kafka authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "saslPassword": {
          "type": "string",
          "description": "User password on kafka server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "saslUsername": {
          "type": "string",
          "description": "Username on kafka server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityProtocol": {
          "type": "string",
          "description": "Security protocol used to connect to kafka server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/getMdbClickhouseClusterClickhouseConfigMergeTree:getMdbClickhouseClusterClickhouseConfigMergeTree": {
      "properties": {
        "maxBytesToMergeAtMinSpaceInPool": {
          "type": "integer",
          "description": "Max bytes to merge at min space in pool: Maximum total size of a data part to merge when the number of free threads in the background pool is minimum.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxReplicatedMergesInQueue": {
          "type": "integer",
          "description": "Max replicated merges in queue: Maximum number of merge tasks that can be in the ReplicatedMergeTree queue at the same time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "numberOfFreeEntriesInPoolToLowerMaxSizeOfMerge": {
          "type": "integer",
          "description": "Number of free entries in pool to lower max size of merge: Threshold value of free entries in the pool. If the number of entries in the pool falls below this value, ClickHouse reduces the maximum size of a data part to merge. This helps handle small merges faster, rather than filling the pool with lengthy merges.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "partsToDelayInsert": {
          "type": "integer",
          "description": "Parts to delay insert: Number of active data parts in a table, on exceeding which ClickHouse starts artificially reduce the rate of inserting data into the table.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "partsToThrowInsert": {
          "type": "integer",
          "description": "Parts to throw insert: Threshold value of active data parts in a table, on exceeding which ClickHouse throws the 'Too many parts ...' exception.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replicatedDeduplicationWindow": {
          "type": "integer",
          "description": "Replicated deduplication window: Number of recent hash blocks that ZooKeeper will store (the old ones will be deleted).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replicatedDeduplicationWindowSeconds": {
          "type": "integer",
          "description": "Replicated deduplication window seconds: Time during which ZooKeeper stores the hash blocks (the old ones wil be deleted).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/getMdbClickhouseClusterClickhouseConfigRabbitmq:getMdbClickhouseClusterClickhouseConfigRabbitmq": {
      "properties": {
        "password": {
          "type": "string",
          "description": "RabbitMQ user password.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "username": {
          "type": "string",
          "description": "RabbitMQ username.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/getMdbClickhouseClusterClickhouseResource:getMdbClickhouseClusterClickhouseResource": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a ClickHouse or ZooKeeper host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of ClickHouse or ZooKeeper hosts.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterCloudStorage:getMdbClickhouseClusterCloudStorage": {
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "(Required) Whether to use Yandex Object Storage for storing ClickHouse data. Can be either `true` or `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "enabled"
      ]
    },
    "yandex:index/getMdbClickhouseClusterDatabase:getMdbClickhouseClusterDatabase": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the ClickHouse cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterFormatSchema:getMdbClickhouseClusterFormatSchema": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the ClickHouse cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "uri": {
          "type": "string",
          "description": "Model file URL. You can only use models stored in Yandex Object Storage.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "type",
        "uri"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterHost:getMdbClickhouseClusterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "Sets whether the host should get a public IP address on creation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "The fully qualified domain name of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "shardName": {
          "type": "string",
          "description": "The name of the shard to which the host belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs. The subnet must be a part of the network to which the cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the ClickHouse host will be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "assignPublicIp",
        "fqdn",
        "shardName",
        "subnetId",
        "type",
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterMaintenanceWindow:getMdbClickhouseClusterMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "description": "Day of week for maintenance window if window type is weekly. Possible values: `MON`, `TUE`, `WED`, `THU`, `FRI`, `SAT`, `SUN`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hour": {
          "type": "integer",
          "description": "Hour of day in UTC time zone (1-24) for maintenance window if window type is weekly.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "day",
        "hour",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterMlModel:getMdbClickhouseClusterMlModel": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the ClickHouse cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "uri": {
          "type": "string",
          "description": "Model file URL. You can only use models stored in Yandex Object Storage.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "type",
        "uri"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterShardGroup:getMdbClickhouseClusterShardGroup": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Description of the shard group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "The name of the ClickHouse cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "shardNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of shards names that belong to the shard group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "description",
        "name",
        "shardNames"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterUser:getMdbClickhouseClusterUser": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the ClickHouse cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "permissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterUserPermission:getMdbClickhouseClusterUserPermission"
          },
          "description": "Set of permissions granted to the user. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "quotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterUserQuota:getMdbClickhouseClusterUserQuota"
          },
          "description": "Set of user quotas. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "settings": {
          "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterUserSettings:getMdbClickhouseClusterUserSettings",
          "description": "Kafka connection settngs sanem as `kafka` block.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "permissions",
        "quotas",
        "settings"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterUserPermission:getMdbClickhouseClusterUserPermission": {
      "properties": {
        "databaseName": {
          "type": "string",
          "description": "The name of the database that the permission grants access to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "databaseName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterUserQuota:getMdbClickhouseClusterUserQuota": {
      "properties": {
        "errors": {
          "type": "integer",
          "description": "The number of queries that threw exception.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "executionTime": {
          "type": "integer",
          "description": "The total query execution time, in milliseconds (wall time).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "intervalDuration": {
          "type": "integer",
          "description": "Duration of interval for quota in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "queries": {
          "type": "integer",
          "description": "The total number of queries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "readRows": {
          "type": "integer",
          "description": "The total number of source rows read from tables for running the query, on all remote servers.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resultRows": {
          "type": "integer",
          "description": "The total number of rows given as the result.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "errors",
        "executionTime",
        "intervalDuration",
        "queries",
        "readRows",
        "resultRows"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterUserSettings:getMdbClickhouseClusterUserSettings": {
      "properties": {
        "addHttpCorsHeader": {
          "type": "boolean",
          "description": "Include CORS headers in HTTP responces.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "allowDdl": {
          "type": "boolean",
          "description": "Allows or denies DDL queries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "compile": {
          "type": "boolean",
          "description": "Enable compilation of queries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "compileExpressions": {
          "type": "boolean",
          "description": "Turn on expression compilation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "connectTimeout": {
          "type": "integer",
          "description": "Connect timeout in milliseconds on the socket used for communicating with the client.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "countDistinctImplementation": {
          "type": "string",
          "description": "Specifies which of the uniq* functions should be used to perform the COUNT(DISTINCT …) construction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "distinctOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow when using DISTINCT. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "distributedAggregationMemoryEfficient": {
          "type": "boolean",
          "description": "Determine the behavior of distributed subqueries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "distributedDdlTaskTimeout": {
          "type": "integer",
          "description": "Timeout for DDL queries, in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "distributedProductMode": {
          "type": "string",
          "description": "Changes the behaviour of distributed subqueries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "emptyResultForAggregationByEmptySet": {
          "type": "boolean",
          "description": "Allows to retunr empty result.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enableHttpCompression": {
          "type": "boolean",
          "description": "Enables or disables data compression in the response to an HTTP request.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fallbackToStaleReplicasForDistributedQueries": {
          "type": "boolean",
          "description": "Forces a query to an out-of-date replica if updated data is not available.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "forceIndexByDate": {
          "type": "boolean",
          "description": "Disables query execution if the index can’t be used by date.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "forcePrimaryKey": {
          "type": "boolean",
          "description": "Disables query execution if indexing by the primary key is not possible.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "groupByOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow while GROUP BY operation. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "groupByTwoLevelThreshold": {
          "type": "integer",
          "description": "Sets the threshold of the number of keys, after that the two-level aggregation should be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "groupByTwoLevelThresholdBytes": {
          "type": "integer",
          "description": "Sets the threshold of the number of bytes, after that the two-level aggregation should be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpConnectionTimeout": {
          "type": "integer",
          "description": "Timeout for HTTP connection in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpHeadersProgressInterval": {
          "type": "integer",
          "description": "Sets minimal interval between notifications about request process in HTTP header X-ClickHouse-Progress.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpReceiveTimeout": {
          "type": "integer",
          "description": "Timeout for HTTP connection in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpSendTimeout": {
          "type": "integer",
          "description": "Timeout for HTTP connection in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "inputFormatDefaultsForOmittedFields": {
          "type": "boolean",
          "description": "When performing INSERT queries, replace omitted input column values with default values of the respective columns.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "inputFormatValuesInterpretExpressions": {
          "type": "boolean",
          "description": "Enables or disables the full SQL parser if the fast stream parser can’t parse the data.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "insertQuorum": {
          "type": "integer",
          "description": "Enables the quorum writes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "insertQuorumTimeout": {
          "type": "integer",
          "description": "Write to a quorum timeout in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "joinOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow in JOIN. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "joinUseNulls": {
          "type": "boolean",
          "description": "Sets the type of JOIN behaviour. When merging tables, empty cells may appear. ClickHouse fills them differently based on this setting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "joinedSubqueryRequiresAlias": {
          "type": "boolean",
          "description": "Require aliases for subselects and table functions in FROM that more than one table is present.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "lowCardinalityAllowInNativeFormat": {
          "type": "boolean",
          "description": "Allows or restricts using the LowCardinality data type with the Native format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxAstDepth": {
          "type": "integer",
          "description": "Maximum abstract syntax tree depth.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxAstElements": {
          "type": "integer",
          "description": "Maximum abstract syntax tree elements.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBlockSize": {
          "type": "integer",
          "description": "A recommendation for what size of the block (in a count of rows) to load from tables.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesBeforeExternalGroupBy": {
          "type": "integer",
          "description": "Limit in bytes for using memoru for GROUP BY before using swap on disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesBeforeExternalSort": {
          "type": "integer",
          "description": "This setting is equivalent of the max_bytes_before_external_group_by setting, except for it is for sort operation (ORDER BY), not aggregation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesInDistinct": {
          "type": "integer",
          "description": "Limits the maximum size of a hash table in bytes (uncompressed data) when using DISTINCT.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesInJoin": {
          "type": "integer",
          "description": "Limit on maximum size of the hash table for JOIN, in bytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesInSet": {
          "type": "integer",
          "description": "Limit on the number of bytes in the set resulting from the execution of the IN section.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesToRead": {
          "type": "integer",
          "description": "Limits the maximum number of bytes (uncompressed data) that can be read from a table when running a query.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesToSort": {
          "type": "integer",
          "description": "Limits the maximum number of bytes (uncompressed data) that can be read from a table for sorting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxBytesToTransfer": {
          "type": "integer",
          "description": "Limits the maximum number of bytes (uncompressed data) that can be passed to a remote server or saved in a temporary table when using GLOBAL IN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxColumnsToRead": {
          "type": "integer",
          "description": "Limits the maximum number of columns that can be read from a table in a single query.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxExecutionTime": {
          "type": "integer",
          "description": "Limits the maximum query execution time in milliseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxExpandedAstElements": {
          "type": "integer",
          "description": "Maximum abstract syntax tree depth after after expansion of aliases.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxInsertBlockSize": {
          "type": "integer",
          "description": "The size of blocks (in a count of rows) to form for insertion into a table.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxMemoryUsage": {
          "type": "integer",
          "description": "Limits the maximum memory usage (in bytes) for processing queries on a single server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxMemoryUsageForUser": {
          "type": "integer",
          "description": "Limits the maximum memory usage (in bytes) for processing of user's queries on a single server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxNetworkBandwidth": {
          "type": "integer",
          "description": "Limits the speed of the data exchange over the network in bytes per second.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxNetworkBandwidthForUser": {
          "type": "integer",
          "description": "Limits the speed of the data exchange over the network in bytes per second.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxQuerySize": {
          "type": "integer",
          "description": "The maximum part of a query that can be taken to RAM for parsing with the SQL parser.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxReplicaDelayForDistributedQueries": {
          "type": "integer",
          "description": "Disables lagging replicas for distributed queries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxResultBytes": {
          "type": "integer",
          "description": "Limits the number of bytes in the result.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxResultRows": {
          "type": "integer",
          "description": "Limits the number of rows in the result.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsInDistinct": {
          "type": "integer",
          "description": "Limits the maximum number of different rows when using DISTINCT.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsInJoin": {
          "type": "integer",
          "description": "Limit on maximum size of the hash table for JOIN, in rows.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsInSet": {
          "type": "integer",
          "description": "Limit on the number of rows in the set resulting from the execution of the IN section.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsToGroupBy": {
          "type": "integer",
          "description": "Limits the maximum number of unique keys received from aggregation function.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsToRead": {
          "type": "integer",
          "description": "Limits the maximum number of rows that can be read from a table when running a query.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsToSort": {
          "type": "integer",
          "description": "Limits the maximum number of rows that can be read from a table for sorting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxRowsToTransfer": {
          "type": "integer",
          "description": "Limits the maximum number of rows that can be passed to a remote server or saved in a temporary table when using GLOBAL IN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxTemporaryColumns": {
          "type": "integer",
          "description": "Limits the maximum number of temporary columns that must be kept in RAM at the same time when running a query, including constant columns.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxTemporaryNonConstColumns": {
          "type": "integer",
          "description": "Limits the maximum number of temporary columns that must be kept in RAM at the same time when running a query, excluding constant columns.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxThreads": {
          "type": "integer",
          "description": "The maximum number of query processing threads, excluding threads for retrieving data from remote servers.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mergeTreeMaxBytesToUseCache": {
          "type": "integer",
          "description": "If ClickHouse should read more than merge_tree_max_bytes_to_use_cache bytes in one query, it doesn’t use the cache of uncompressed blocks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mergeTreeMaxRowsToUseCache": {
          "type": "integer",
          "description": "If ClickHouse should read more than merge_tree_max_rows_to_use_cache rows in one query, it doesn’t use the cache of uncompressed blocks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mergeTreeMinBytesForConcurrentRead": {
          "type": "integer",
          "description": "If the number of bytes to read from one file of a MergeTree-engine table exceeds merge_tree_min_bytes_for_concurrent_read, then ClickHouse tries to concurrently read from this file in several threads.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mergeTreeMinRowsForConcurrentRead": {
          "type": "integer",
          "description": "If the number of rows to be read from a file of a MergeTree table exceeds merge_tree_min_rows_for_concurrent_read then ClickHouse tries to perform a concurrent reading from this file on several threads.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minBytesToUseDirectIo": {
          "type": "integer",
          "description": "The minimum data volume required for using direct I/O access to the storage disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minCountToCompile": {
          "type": "integer",
          "description": "How many times to potentially use a compiled chunk of code before running compilation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minCountToCompileExpression": {
          "type": "integer",
          "description": "A query waits for expression compilation process to complete prior to continuing execution.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minExecutionSpeed": {
          "type": "integer",
          "description": "Minimal execution speed in rows per second.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minExecutionSpeedBytes": {
          "type": "integer",
          "description": "Minimal execution speed in bytes per second.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minInsertBlockSizeBytes": {
          "type": "integer",
          "description": "Sets the minimum number of bytes in the block which can be inserted into a table by an INSERT query.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minInsertBlockSizeRows": {
          "type": "integer",
          "description": "Sets the minimum number of rows in the block which can be inserted into a table by an INSERT query.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "outputFormatJsonQuote64bitIntegers": {
          "type": "boolean",
          "description": "If the value is true, integers appear in quotes when using JSON* Int64 and UInt64 formats (for compatibility with most JavaScript implementations); otherwise, integers are output without the quotes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "outputFormatJsonQuoteDenormals": {
          "type": "boolean",
          "description": "Enables +nan, -nan, +inf, -inf outputs in JSON output format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "priority": {
          "type": "integer",
          "description": "Query priority.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "quotaMode": {
          "type": "string",
          "description": "Quota accounting mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "readOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow while read. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "readonly": {
          "type": "integer",
          "description": "Restricts permissions for reading data, write data and change settings queries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "receiveTimeout": {
          "type": "integer",
          "description": "Receive timeout in milliseconds on the socket used for communicating with the client.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replicationAlterPartitionsSync": {
          "type": "integer",
          "description": "For ALTER ... ATTACH|DETACH|DROP queries, you can use the replication_alter_partitions_sync setting to set up waiting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resultOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow in result. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "selectSequentialConsistency": {
          "type": "boolean",
          "description": "Enables or disables sequential consistency for SELECT queries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sendProgressInHttpHeaders": {
          "type": "boolean",
          "description": "Enables or disables X-ClickHouse-Progress HTTP response headers in clickhouse-server responses.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sendTimeout": {
          "type": "integer",
          "description": "Send timeout in milliseconds on the socket used for communicating with the client.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "setOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow in the set resulting. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "skipUnavailableShards": {
          "type": "boolean",
          "description": "Enables or disables silently skipping of unavailable shards.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sortOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow while sort. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeoutOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "transferOverflowMode": {
          "type": "string",
          "description": "Sets behaviour on overflow. Possible values:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "transformNullIn": {
          "type": "boolean",
          "description": "Enables equality of NULL values for IN operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "useUncompressedCache": {
          "type": "boolean",
          "description": "Whether to use a cache of uncompressed blocks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "addHttpCorsHeader",
        "allowDdl",
        "compile",
        "compileExpressions",
        "connectTimeout",
        "countDistinctImplementation",
        "distinctOverflowMode",
        "distributedAggregationMemoryEfficient",
        "distributedDdlTaskTimeout",
        "distributedProductMode",
        "emptyResultForAggregationByEmptySet",
        "enableHttpCompression",
        "fallbackToStaleReplicasForDistributedQueries",
        "forceIndexByDate",
        "forcePrimaryKey",
        "groupByOverflowMode",
        "groupByTwoLevelThreshold",
        "groupByTwoLevelThresholdBytes",
        "httpConnectionTimeout",
        "httpHeadersProgressInterval",
        "httpReceiveTimeout",
        "httpSendTimeout",
        "inputFormatDefaultsForOmittedFields",
        "inputFormatValuesInterpretExpressions",
        "insertQuorum",
        "insertQuorumTimeout",
        "joinOverflowMode",
        "joinUseNulls",
        "joinedSubqueryRequiresAlias",
        "lowCardinalityAllowInNativeFormat",
        "maxAstDepth",
        "maxAstElements",
        "maxBlockSize",
        "maxBytesBeforeExternalGroupBy",
        "maxBytesBeforeExternalSort",
        "maxBytesInDistinct",
        "maxBytesInJoin",
        "maxBytesInSet",
        "maxBytesToRead",
        "maxBytesToSort",
        "maxBytesToTransfer",
        "maxColumnsToRead",
        "maxExecutionTime",
        "maxExpandedAstElements",
        "maxInsertBlockSize",
        "maxMemoryUsage",
        "maxMemoryUsageForUser",
        "maxNetworkBandwidth",
        "maxNetworkBandwidthForUser",
        "maxQuerySize",
        "maxReplicaDelayForDistributedQueries",
        "maxResultBytes",
        "maxResultRows",
        "maxRowsInDistinct",
        "maxRowsInJoin",
        "maxRowsInSet",
        "maxRowsToGroupBy",
        "maxRowsToRead",
        "maxRowsToSort",
        "maxRowsToTransfer",
        "maxTemporaryColumns",
        "maxTemporaryNonConstColumns",
        "maxThreads",
        "mergeTreeMaxBytesToUseCache",
        "mergeTreeMaxRowsToUseCache",
        "mergeTreeMinBytesForConcurrentRead",
        "mergeTreeMinRowsForConcurrentRead",
        "minBytesToUseDirectIo",
        "minCountToCompile",
        "minCountToCompileExpression",
        "minExecutionSpeed",
        "minExecutionSpeedBytes",
        "minInsertBlockSizeBytes",
        "minInsertBlockSizeRows",
        "outputFormatJsonQuote64bitIntegers",
        "outputFormatJsonQuoteDenormals",
        "priority",
        "quotaMode",
        "readOverflowMode",
        "readonly",
        "receiveTimeout",
        "replicationAlterPartitionsSync",
        "resultOverflowMode",
        "selectSequentialConsistency",
        "sendProgressInHttpHeaders",
        "sendTimeout",
        "setOverflowMode",
        "skipUnavailableShards",
        "sortOverflowMode",
        "timeoutOverflowMode",
        "transferOverflowMode",
        "transformNullIn",
        "useUncompressedCache"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterZookeeper:getMdbClickhouseClusterZookeeper": {
      "properties": {
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterZookeeperResource:getMdbClickhouseClusterZookeeperResource"
          },
          "description": "Resources allocated to hosts of the ZooKeeper subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "resources"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbClickhouseClusterZookeeperResource:getMdbClickhouseClusterZookeeperResource": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a ClickHouse or ZooKeeper host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of ClickHouse or ZooKeeper hosts.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbElasticSearchClusterConfig:getMdbElasticSearchClusterConfig": {
      "properties": {
        "adminPassword": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dataNodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbElasticSearchClusterConfigDataNode:getMdbElasticSearchClusterConfigDataNode"
          },
          "description": "Configuration for Elasticsearch data nodes subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "edition": {
          "type": "string",
          "description": "Edition of Elasticsearch. For more information, see [the official documentation](https://cloud.yandex.com/en-ru/docs/managed-elasticsearch/concepts/es-editions).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "masterNode": {
          "$ref": "#/types/yandex:index%2FgetMdbElasticSearchClusterConfigMasterNode:getMdbElasticSearchClusterConfigMasterNode",
          "description": "Configuration for Elasticsearch master nodes subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "plugins": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of requested Elasticsearch plugins.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "version": {
          "type": "string",
          "description": "Version of Elasticsearch.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "adminPassword",
        "dataNodes",
        "edition",
        "masterNode",
        "plugins",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbElasticSearchClusterConfigDataNode:getMdbElasticSearchClusterConfigDataNode": {
      "properties": {
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbElasticSearchClusterConfigDataNodeResource:getMdbElasticSearchClusterConfigDataNodeResource"
          },
          "description": "Resources allocated to hosts of the Elasticsearch master nodes subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "resources"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbElasticSearchClusterConfigDataNodeResource:getMdbElasticSearchClusterConfigDataNodeResource": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a Elasticsearch host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of Elasticsearch hosts.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbElasticSearchClusterConfigMasterNode:getMdbElasticSearchClusterConfigMasterNode": {
      "properties": {
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbElasticSearchClusterConfigMasterNodeResource:getMdbElasticSearchClusterConfigMasterNodeResource"
          },
          "description": "Resources allocated to hosts of the Elasticsearch master nodes subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "resources"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbElasticSearchClusterConfigMasterNodeResource:getMdbElasticSearchClusterConfigMasterNodeResource": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a Elasticsearch host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of Elasticsearch hosts.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbElasticSearchClusterHost:getMdbElasticSearchClusterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "Sets whether the host should get a public IP address on creation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "The fully qualified domain name of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "The name of the Elasticsearch cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs. The subnet must be a part of the network to which the cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of a maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour need to be specified with the weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the Elasticsearch host will be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "assignPublicIp",
        "fqdn",
        "name",
        "subnetId",
        "type",
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbElasticSearchClusterMaintenanceWindow:getMdbElasticSearchClusterMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "description": "Day of the week for a maintenance window if the window type is weekly. Possible values: `MON`, `TUE`, `WED`, `THU`, `FRI`, `SAT`, `SUN`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hour": {
          "type": "integer",
          "description": "Hour of the day in UTC time zone (1-24) for a maintenance window if the window type is weekly.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of a maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour need to be specified with the weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "day",
        "hour",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbGreenplumClusterAccess:getMdbGreenplumClusterAccess": {
      "properties": {
        "dataLens": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "webSql": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "dataLens",
        "webSql"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbGreenplumClusterBackupWindowStart:getMdbGreenplumClusterBackupWindowStart": {
      "properties": {
        "hours": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minutes": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "hours",
        "minutes"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbGreenplumClusterMasterHost:getMdbGreenplumClusterMasterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "assignPublicIp",
        "fqdn"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbGreenplumClusterMasterSubcluster:getMdbGreenplumClusterMasterSubcluster": {
      "properties": {
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbGreenplumClusterMasterSubclusterResource:getMdbGreenplumClusterMasterSubclusterResource"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "resources"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbGreenplumClusterMasterSubclusterResource:getMdbGreenplumClusterMasterSubclusterResource": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbGreenplumClusterSegmentHost:getMdbGreenplumClusterSegmentHost": {
      "properties": {
        "fqdn": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fqdn"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbGreenplumClusterSegmentSubcluster:getMdbGreenplumClusterSegmentSubcluster": {
      "properties": {
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbGreenplumClusterSegmentSubclusterResource:getMdbGreenplumClusterSegmentSubclusterResource"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "resources"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbGreenplumClusterSegmentSubclusterResource:getMdbGreenplumClusterSegmentSubclusterResource": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbKafkaClusterConfig:getMdbKafkaClusterConfig": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "The flag that defines whether a public IP address is assigned to the node.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "brokersCount": {
          "type": "integer",
          "description": "(Optional) Count of brokers per availability zone.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "kafka": {
          "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterConfigKafka:getMdbKafkaClusterConfigKafka",
          "description": "(Optional) Configuration of the Kafka subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "schemaRegistry": {
          "type": "boolean",
          "description": "(Optional) Enables managed schema registry on cluster. Can be either `true` or `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unmanagedTopics": {
          "type": "boolean",
          "description": "(Optional) Allows to use Kafka AdminAPI to manage topics. Can be either `true` or `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "version": {
          "type": "string",
          "description": "(Required) Version of the Kafka server software.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "(Optional) List of availability zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zookeeper": {
          "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterConfigZookeeper:getMdbKafkaClusterConfigZookeeper",
          "description": "(Optional) Configuration of the ZooKeeper subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "kafka",
        "version",
        "zones",
        "zookeeper"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": [
            "kafka",
            "version",
            "zones"
          ]
        }
      }
    },
    "yandex:index/getMdbKafkaClusterConfigKafka:getMdbKafkaClusterConfigKafka": {
      "properties": {
        "kafkaConfig": {
          "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterConfigKafkaKafkaConfig:getMdbKafkaClusterConfigKafkaKafkaConfig",
          "description": "(Optional) User-defined settings for the Kafka cluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterConfigKafkaResources:getMdbKafkaClusterConfigKafkaResources",
          "description": "(Optional) Resources allocated to hosts of the ZooKeeper subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "resources"
      ]
    },
    "yandex:index/getMdbKafkaClusterConfigKafkaKafkaConfig:getMdbKafkaClusterConfigKafkaKafkaConfig": {
      "properties": {
        "autoCreateTopicsEnable": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "compressionType": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "defaultReplicationFactor": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logFlushIntervalMessages": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logFlushIntervalMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logFlushSchedulerIntervalMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logPreallocate": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logRetentionBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logRetentionHours": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logRetentionMinutes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logRetentionMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logSegmentBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "numPartitions": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "socketReceiveBufferBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "socketSendBufferBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/getMdbKafkaClusterConfigKafkaResources:getMdbKafkaClusterConfigKafkaResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "(Optional) Volume of the storage available to a ZooKeeper host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "(Optional) Type of the storage of ZooKeeper hosts.\nFor more information see [the official documentation](https://cloud.yandex.com/docs/managed-kafka/concepts/storage).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ]
    },
    "yandex:index/getMdbKafkaClusterConfigZookeeper:getMdbKafkaClusterConfigZookeeper": {
      "properties": {
        "resources": {
          "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterConfigZookeeperResources:getMdbKafkaClusterConfigZookeeperResources",
          "description": "(Optional) Resources allocated to hosts of the ZooKeeper subcluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "resources"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbKafkaClusterConfigZookeeperResources:getMdbKafkaClusterConfigZookeeperResources": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "(Optional) Volume of the storage available to a ZooKeeper host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "(Optional) Type of the storage of ZooKeeper hosts.\nFor more information see [the official documentation](https://cloud.yandex.com/docs/managed-kafka/concepts/storage).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbKafkaClusterHost:getMdbKafkaClusterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "The flag that defines whether a public IP address is assigned to the node.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "health": {
          "type": "string",
          "description": "Health of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "The name of the Kafka cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "role": {
          "type": "string",
          "description": "Role of the host in the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneId": {
          "type": "string",
          "description": "The availability zone where the Kafka host was created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "assignPublicIp",
        "health",
        "name",
        "role",
        "subnetId",
        "zoneId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbKafkaClusterMaintenanceWindow:getMdbKafkaClusterMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "description": "Day of the week (in `DDD` format). Value is one of: \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\", \"SUN\"\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hour": {
          "type": "integer",
          "description": "Hour of the day in UTC (in `HH` format). Value is between 1 and 24.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "day",
        "hour",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbKafkaClusterTopic:getMdbKafkaClusterTopic": {
      "properties": {
        "clusterId": {
          "type": "string",
          "description": "The ID of the Kafka cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "The name of the Kafka cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "partitions": {
          "type": "integer",
          "description": "(Required) The number of the topic's partitions.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replicationFactor": {
          "type": "integer",
          "description": "(Required) Amount of data copies (replicas) for the topic in the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "topicConfig": {
          "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterTopicTopicConfig:getMdbKafkaClusterTopicTopicConfig",
          "description": "(Required) User-defined settings for the topic. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "clusterId",
        "name",
        "partitions",
        "replicationFactor"
      ]
    },
    "yandex:index/getMdbKafkaClusterTopicTopicConfig:getMdbKafkaClusterTopicTopicConfig": {
      "properties": {
        "cleanupPolicy": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "compressionType": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "deleteRetentionMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fileDeleteDelayMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "flushMessages": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "flushMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxMessageBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minCompactionLagMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minInsyncReplicas": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "preallocate": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retentionBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retentionMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "segmentBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/getMdbKafkaClusterUser:getMdbKafkaClusterUser": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the Kafka cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "type": "string",
          "description": "(Required) The password of the user.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "permissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterUserPermission:getMdbKafkaClusterUserPermission"
          },
          "description": "(Optional) Set of permissions granted to the user. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "password"
      ]
    },
    "yandex:index/getMdbKafkaClusterUserPermission:getMdbKafkaClusterUserPermission": {
      "properties": {
        "role": {
          "type": "string",
          "description": "Role of the host in the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "topicName": {
          "type": "string",
          "description": "(Required) The name of the topic that the permission grants access to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "role",
        "topicName"
      ]
    },
    "yandex:index/getMdbKafkaTopicTopicConfig:getMdbKafkaTopicTopicConfig": {
      "properties": {
        "cleanupPolicy": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "compressionType": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "deleteRetentionMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fileDeleteDelayMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "flushMessages": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "flushMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxMessageBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minCompactionLagMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minInsyncReplicas": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "preallocate": {
          "type": "boolean",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retentionBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retentionMs": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "segmentBytes": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "cleanupPolicy",
        "compressionType",
        "deleteRetentionMs",
        "fileDeleteDelayMs",
        "flushMessages",
        "flushMs",
        "maxMessageBytes",
        "minCompactionLagMs",
        "minInsyncReplicas",
        "preallocate",
        "retentionBytes",
        "retentionMs",
        "segmentBytes"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMongodbClusterClusterConfig:getMdbMongodbClusterClusterConfig": {
      "properties": {
        "accesses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbMongodbClusterClusterConfigAccess:getMdbMongodbClusterClusterConfigAccess"
          },
          "description": "Access policy to MongoDB cluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "backupWindowStarts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbMongodbClusterClusterConfigBackupWindowStart:getMdbMongodbClusterClusterConfigBackupWindowStart"
          },
          "description": "Time to start the daily backup, in the UTC timezone. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "featureCompatibilityVersion": {
          "type": "string",
          "description": "Feature compatibility version of MongoDB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "version": {
          "type": "string",
          "description": "Version of MongoDB (either 5.0, 4.4, 4.2, 4.0 or 3.6).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "accesses",
        "backupWindowStarts",
        "featureCompatibilityVersion",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMongodbClusterClusterConfigAccess:getMdbMongodbClusterClusterConfigAccess": {
      "properties": {
        "dataLens": {
          "type": "boolean",
          "description": "Shows whether cluster has access to data lens.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "dataLens"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMongodbClusterClusterConfigBackupWindowStart:getMdbMongodbClusterClusterConfigBackupWindowStart": {
      "properties": {
        "hours": {
          "type": "integer",
          "description": "The hour at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minutes": {
          "type": "integer",
          "description": "The minute at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/getMdbMongodbClusterDatabase:getMdbMongodbClusterDatabase": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the MongoDB cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMongodbClusterHost:getMdbMongodbClusterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "Has assigned public IP.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "health": {
          "type": "string",
          "description": "The health of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "The name of the MongoDB cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "role": {
          "type": "string",
          "description": "The role of the cluster (either PRIMARY or SECONDARY).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "shardName": {
          "type": "string",
          "description": "The name of the shard to which the host belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs. The subnet must\nbe a part of the network to which the cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneId": {
          "type": "string",
          "description": "The availability zone where the MongoDB host will be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "assignPublicIp",
        "health",
        "name",
        "role",
        "shardName",
        "subnetId",
        "type",
        "zoneId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMongodbClusterMaintenanceWindow:getMdbMongodbClusterMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "description": "Day of week for maintenance window if window type is weekly. Possible values: `MON`, `TUE`, `WED`, `THU`, `FRI`, `SAT`, `SUN`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hour": {
          "type": "integer",
          "description": "Hour of day in UTC time zone (1-24) for maintenance window if window type is weekly.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "day",
        "hour",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMongodbClusterResource:getMdbMongodbClusterResource": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "The ID of the storage type. For more information, see [the official documentation](https://cloud.yandex.com/docs/managed-mongodb/concepts/storage)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMongodbClusterUser:getMdbMongodbClusterUser": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the MongoDB cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "permissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbMongodbClusterUserPermission:getMdbMongodbClusterUserPermission"
          },
          "description": "Set of permissions granted to the user. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "permissions"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMongodbClusterUserPermission:getMdbMongodbClusterUserPermission": {
      "properties": {
        "databaseName": {
          "type": "string",
          "description": "The name of the database that the permission grants access to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "(Optional) List of strings. The roles of the user in this database. For more information see [the official documentation](https://cloud.yandex.com/docs/managed-mongodb/concepts/users-and-roles).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "databaseName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMysqlClusterAccess:getMdbMysqlClusterAccess": {
      "properties": {
        "dataLens": {
          "type": "boolean",
          "description": "Allow access for [Yandex DataLens](https://cloud.yandex.com/services/datalens).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "webSql": {
          "type": "boolean",
          "description": "Allows access for [SQL queries in the management console](https://cloud.yandex.com/docs/managed-mysql/operations/web-sql-query).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "dataLens",
        "webSql"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMysqlClusterBackupWindowStart:getMdbMysqlClusterBackupWindowStart": {
      "properties": {
        "hours": {
          "type": "integer",
          "description": "The hour at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minutes": {
          "type": "integer",
          "description": "The minute at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "yandex:index/getMdbMysqlClusterDatabase:getMdbMysqlClusterDatabase": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the MySQL cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMysqlClusterHost:getMdbMysqlClusterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "Sets whether the host should get a public IP address on creation. Changing this parameter for an existing host is not supported at the moment\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "The fully qualified domain name of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replicationSource": {
          "type": "string",
          "description": "Host replication source (fqdn), case when replication_source is empty then host in HA group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs. The subnet must be a part of the network to which the cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the MySQL host will be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fqdn",
        "replicationSource",
        "subnetId",
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMysqlClusterMaintenanceWindow:getMdbMysqlClusterMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "description": "Day of the week (in `DDD` format). Value is one of: \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\", \"SUN\"\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hour": {
          "type": "integer",
          "description": "Hour of the day in UTC (in `HH` format). Value is between 1 and 24.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "day",
        "hour",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMysqlClusterResource:getMdbMysqlClusterResource": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a MySQL host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage for MySQL hosts.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMysqlClusterUser:getMdbMysqlClusterUser": {
      "properties": {
        "authenticationPlugin": {
          "type": "string",
          "description": "Authentication plugin. Allowed values: `MYSQL_NATIVE_PASSWORD`, `CACHING_SHA2_PASSWORD`, `SHA256_PASSWORD`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "connectionLimits": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbMysqlClusterUserConnectionLimit:getMdbMysqlClusterUserConnectionLimit"
          },
          "description": "User's connection limits. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "globalPermissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List user's global permissions. Allowed values: `REPLICATION_CLIENT`, `REPLICATION_SLAVE`, `PROCESS` or empty list.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "The name of the MySQL cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "type": "string",
          "description": "The password of the user.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "permissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbMysqlClusterUserPermission:getMdbMysqlClusterUserPermission"
          },
          "description": "Set of permissions granted to the user. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "authenticationPlugin",
        "connectionLimits",
        "globalPermissions",
        "name",
        "password",
        "permissions"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMysqlClusterUserConnectionLimit:getMdbMysqlClusterUserConnectionLimit": {
      "properties": {
        "maxConnectionsPerHour": {
          "type": "integer",
          "description": "Max connections per hour.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxQuestionsPerHour": {
          "type": "integer",
          "description": "Max questions per hour.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxUpdatesPerHour": {
          "type": "integer",
          "description": "Max updates per hour.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxUserConnections": {
          "type": "integer",
          "description": "Max user connections.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "maxConnectionsPerHour",
        "maxQuestionsPerHour",
        "maxUpdatesPerHour",
        "maxUserConnections"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbMysqlClusterUserPermission:getMdbMysqlClusterUserPermission": {
      "properties": {
        "databaseName": {
          "type": "string",
          "description": "The name of the database that the permission grants access to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List user's roles in the database.\nAllowed roles: `ALL`,`ALTER`,`ALTER_ROUTINE`,`CREATE`,`CREATE_ROUTINE`,`CREATE_TEMPORARY_TABLES`,\n`CREATE_VIEW`,`DELETE`,`DROP`,`EVENT`,`EXECUTE`,`INDEX`,`INSERT`,`LOCK_TABLES`,`SELECT`,`SHOW_VIEW`,`TRIGGER`,`UPDATE`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "databaseName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbPostgresqlClusterConfig:getMdbPostgresqlClusterConfig": {
      "properties": {
        "accesses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbPostgresqlClusterConfigAccess:getMdbPostgresqlClusterConfigAccess"
          },
          "description": "Access policy to the PostgreSQL cluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "autofailover": {
          "type": "boolean",
          "description": "Configuration setting which enables/disables autofailover in cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "backupRetainPeriodDays": {
          "type": "integer",
          "description": "The period in days during which backups are stored.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "backupWindowStarts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbPostgresqlClusterConfigBackupWindowStart:getMdbPostgresqlClusterConfigBackupWindowStart"
          },
          "description": "Time to start the daily backup, in the UTC timezone. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "performanceDiagnostics": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbPostgresqlClusterConfigPerformanceDiagnostic:getMdbPostgresqlClusterConfigPerformanceDiagnostic"
          },
          "description": "Cluster performance diagnostics settings. The structure is documented below. [YC Documentation](https://cloud.yandex.com/docs/managed-postgresql/grpc/cluster_service#PerformanceDiagnostics)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "poolerConfigs": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbPostgresqlClusterConfigPoolerConfig:getMdbPostgresqlClusterConfigPoolerConfig"
          },
          "description": "Configuration of the connection pooler. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "postgresqlConfig": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "PostgreSQL cluster config.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbPostgresqlClusterConfigResource:getMdbPostgresqlClusterConfigResource"
          },
          "description": "Resources allocated to hosts of the PostgreSQL cluster. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "version": {
          "type": "string",
          "description": "Version of the extension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "accesses",
        "autofailover",
        "backupRetainPeriodDays",
        "backupWindowStarts",
        "performanceDiagnostics",
        "poolerConfigs",
        "postgresqlConfig",
        "resources",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbPostgresqlClusterConfigAccess:getMdbPostgresqlClusterConfigAccess": {
      "properties": {
        "dataLens": {
          "type": "boolean",
          "description": "Allow access for [Yandex DataLens](https://cloud.yandex.com/services/datalens).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "webSql": {
          "type": "boolean",
          "description": "Allows access for [SQL queries in the management console](https://cloud.yandex.com/docs/managed-postgresql/operations/web-sql-query)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "dataLens",
        "webSql"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbPostgresqlClusterConfigBackupWindowStart:getMdbPostgresqlClusterConfigBackupWindowStart": {
      "properties": {
        "hours": {
          "type": "integer",
          "description": "The hour at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minutes": {
          "type": "integer",
          "description": "The minute at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "hours",
        "minutes"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbPostgresqlClusterConfigPerformanceDiagnostic:getMdbPostgresqlClusterConfigPerformanceDiagnostic": {
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Flag, when true, performance diagnostics is enabled\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "sessionsSamplingInterval": {
          "type": "integer",
          "description": "Interval (in seconds) for pg_stat_activity sampling Acceptable values are 1 to 86400, inclusive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "statementsSamplingInterval": {
          "type": "integer",
          "description": "Interval (in seconds) for pg_stat_statements sampling Acceptable values are 1 to 86400, inclusive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "enabled",
        "sessionsSamplingInterval",
        "statementsSamplingInterval"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbPostgresqlClusterConfigPoolerConfig:getMdbPostgresqlClusterConfigPoolerConfig": {
      "properties": {
        "poolDiscard": {
          "type": "boolean",
          "description": "Value for `pool_discard` [parameter in Odyssey](https://github.com/yandex/odyssey/blob/master/documentation/configuration.md#pool_discard-yesno).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "poolingMode": {
          "type": "string",
          "description": "Mode that the connection pooler is working in. See descriptions of all modes in the [documentation for Odyssey](https://github.com/yandex/odyssey/blob/master/documentation/configuration.md#pool-string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "poolDiscard",
        "poolingMode"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbPostgresqlClusterConfigResource:getMdbPostgresqlClusterConfigResource": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a PostgreSQL host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage for PostgreSQL hosts.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbPostgresqlClusterDatabase:getMdbPostgresqlClusterDatabase": {
      "properties": {
        "extensions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbPostgresqlClusterDatabaseExtension:getMdbPostgresqlClusterDatabaseExtension"
          },
          "description": "Set of database extensions. The structure is documented below\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "lcCollate": {
          "type": "string",
          "description": "POSIX locale for string sorting order. Forbidden to change in an existing database.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "lcType": {
          "type": "string",
          "description": "POSIX locale for character classification. Forbidden to change in an existing database.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "The name of the PostgreSQL cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "owner": {
          "type": "string",
          "description": "Name of the user assigned as the owner of the database.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "extensions",
        "lcCollate",
        "lcType",
        "name",
        "owner"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbPostgresqlClusterDatabaseExtension:getMdbPostgresqlClusterDatabaseExtension": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the PostgreSQL cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "version": {
          "type": "string",
          "description": "Version of the extension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbPostgresqlClusterHost:getMdbPostgresqlClusterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "Sets whether the host should get a public IP address on creation. Changing this parameter for an existing host is not supported at the moment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "The fully qualified domain name of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "priority": {
          "type": "integer",
          "description": "Host priority in HA group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "replicationSource": {
          "type": "string",
          "description": "Host replication source (fqdn), case when replication_source is empty then host in HA group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "role": {
          "type": "string",
          "description": "Role of the host in the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs. The subnet must be a part of the network to which the cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the PostgreSQL host will be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "assignPublicIp",
        "fqdn",
        "priority",
        "replicationSource",
        "role",
        "subnetId",
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbPostgresqlClusterMaintenanceWindow:getMdbPostgresqlClusterMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "description": "Day of the week (in `DDD` format). Value is one of: \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\", \"SUN\"\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hour": {
          "type": "integer",
          "description": "Hour of the day in UTC (in `HH` format). Value is between 1 and 24.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "day",
        "hour",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbPostgresqlClusterUser:getMdbPostgresqlClusterUser": {
      "properties": {
        "connLimit": {
          "type": "integer",
          "description": "The maximum number of connections per user.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "grants": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of the user's grants.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "login": {
          "type": "boolean",
          "description": "User's ability to login.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "type": "string",
          "description": "The name of the PostgreSQL cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "type": "string",
          "description": "The password of the user.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "permissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbPostgresqlClusterUserPermission:getMdbPostgresqlClusterUserPermission"
          },
          "description": "Set of permissions granted to the user. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "settings": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of user settings.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "grants",
        "name",
        "password",
        "permissions",
        "settings"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbPostgresqlClusterUserPermission:getMdbPostgresqlClusterUserPermission": {
      "properties": {
        "databaseName": {
          "type": "string",
          "description": "The name of the database that the permission grants access to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "databaseName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbRedisClusterConfig:getMdbRedisClusterConfig": {
      "properties": {
        "databases": {
          "type": "integer",
          "description": "Number of databases (changing requires redis-server restart).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxmemoryPolicy": {
          "type": "string",
          "description": "Redis key eviction policy for a dataset that reaches maximum memory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "notifyKeyspaceEvents": {
          "type": "string",
          "description": "Select the events that Redis will notify among a set of classes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "slowlogLogSlowerThan": {
          "type": "integer",
          "description": "Log slow queries below this number in microseconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "slowlogMaxLen": {
          "type": "integer",
          "description": "Slow queries log length.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "timeout": {
          "type": "integer",
          "description": "Close the connection after a client is idle for N seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "version": {
          "type": "string",
          "description": "Version of Redis (5.0, 6.0 or 6.2).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "databases",
        "maxmemoryPolicy",
        "notifyKeyspaceEvents",
        "slowlogLogSlowerThan",
        "slowlogMaxLen",
        "timeout",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbRedisClusterHost:getMdbRedisClusterHost": {
      "properties": {
        "fqdn": {
          "type": "string",
          "description": "The fully qualified domain name of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "shardName": {
          "type": "string",
          "description": "The name of the shard to which the host belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs. The subnet must\nbe a part of the network to which the cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the Redis host will be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fqdn",
        "shardName",
        "subnetId",
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbRedisClusterMaintenanceWindow:getMdbRedisClusterMaintenanceWindow": {
      "properties": {
        "day": {
          "type": "string",
          "description": "Day of week for maintenance window if window type is weekly. Possible values: `MON`, `TUE`, `WED`, `THU`, `FRI`, `SAT`, `SUN`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hour": {
          "type": "integer",
          "description": "Hour of day in UTC time zone (1-24) for maintenance window if window type is weekly.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "type": {
          "type": "string",
          "description": "Type of maintenance window. Can be either `ANYTIME` or `WEEKLY`. A day and hour of window need to be specified with weekly window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "day",
        "hour",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbRedisClusterResource:getMdbRedisClusterResource": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage of a host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbSqlserverClusterBackupWindowStart:getMdbSqlserverClusterBackupWindowStart": {
      "properties": {
        "hours": {
          "type": "integer",
          "description": "The hour at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minutes": {
          "type": "integer",
          "description": "The minute at which backup will be started.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "hours",
        "minutes"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbSqlserverClusterDatabase:getMdbSqlserverClusterDatabase": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the SQLServer cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbSqlserverClusterHost:getMdbSqlserverClusterHost": {
      "properties": {
        "assignPublicIp": {
          "type": "boolean",
          "description": "Sets whether the host should get a public IP address on creation. Changing this parameter for an existing host is not supported at the moment\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "type": "string",
          "description": "The fully qualified domain name of the host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the host belongs. The subnet must be a part of the network to which the cluster belongs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the SQLServer host will be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "assignPublicIp",
        "fqdn",
        "subnetId",
        "zone"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbSqlserverClusterResource:getMdbSqlserverClusterResource": {
      "properties": {
        "diskSize": {
          "type": "integer",
          "description": "Volume of the storage available to a SQLServer host, in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskTypeId": {
          "type": "string",
          "description": "Type of the storage for SQLServer hosts.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourcePresetId": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "diskTypeId",
        "resourcePresetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbSqlserverClusterUser:getMdbSqlserverClusterUser": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the SQLServer cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "type": "string",
          "description": "The password of the user.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "permissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetMdbSqlserverClusterUserPermission:getMdbSqlserverClusterUserPermission"
          },
          "description": "Set of permissions granted to the user. The structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "password",
        "permissions"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getMdbSqlserverClusterUserPermission:getMdbSqlserverClusterUserPermission": {
      "properties": {
        "databaseName": {
          "type": "string",
          "description": "The name of the database that the permission grants access to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List user's roles in the database.\nAllowed roles: `OWNER`, `SECURITYADMIN`, `ACCESSADMIN`, `BACKUPOPERATOR`, `DDLADMIN`, `DATAWRITER`, `DATAREADER`, `DENYDATAWRITER`, `DENYDATAREADER`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "databaseName",
        "roles"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getOrganizationmanagerSamlFederationSecuritySetting:getOrganizationmanagerSamlFederationSecuritySetting": {
      "properties": {
        "encryptedAssertions": {
          "type": "boolean",
          "description": "Indicates whether encrypted assertions are enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "encryptedAssertions"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getServerlessContainerImage:getServerlessContainerImage": {
      "properties": {
        "args": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "digest": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "environment": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "url": {
          "type": "string",
          "description": "Invoke URL of the Yandex Cloud Serverless Container\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "workDir": {
          "type": "string",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "args",
        "commands",
        "digest",
        "environment",
        "url",
        "workDir"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getVpcAddressExternalIpv4Address:getVpcAddressExternalIpv4Address": {
      "properties": {
        "address": {
          "type": "string",
          "description": "IP address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ddosProtectionProvider": {
          "type": "string",
          "description": "DDOS protection provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "outgoingSmtpCapability": {
          "type": "string",
          "description": "Outgoing smtp capability.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zoneId": {
          "type": "string",
          "description": "Zone for allocating address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "address",
        "ddosProtectionProvider",
        "outgoingSmtpCapability",
        "zoneId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getVpcRouteTableStaticRoute:getVpcRouteTableStaticRoute": {
      "properties": {
        "destinationPrefix": {
          "type": "string",
          "description": "Route prefix in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "nextHopAddress": {
          "type": "string",
          "description": "Address of the next hop.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "destinationPrefix",
        "nextHopAddress"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getVpcSecurityGroupEgress:getVpcSecurityGroupEgress": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Description of the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fromPort": {
          "type": "integer",
          "description": "Minimum port number.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "id": {
          "type": "string",
          "description": "Id of the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port number (if applied to a single port).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "predefinedTarget": {
          "type": "string",
          "description": "Special-purpose targets. `self_security_group` refers to this particular security group. `loadbalancer_healthchecks` represents [loadbalancer health check nodes](https://cloud.yandex.com/docs/network-load-balancer/concepts/health-check).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "description": "One of `ANY`, `TCP`, `UDP`, `ICMP`, `IPV6_ICMP`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupId": {
          "type": "string",
          "description": "Security Group ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "toPort": {
          "type": "integer",
          "description": "Maximum port number.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "v4CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The blocks of  IPv4 addresses for this rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "v6CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The blocks of  IPv6 addresses for this rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "description",
        "fromPort",
        "id",
        "labels",
        "port",
        "predefinedTarget",
        "protocol",
        "securityGroupId",
        "toPort",
        "v4CidrBlocks",
        "v6CidrBlocks"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getVpcSecurityGroupIngress:getVpcSecurityGroupIngress": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Description of the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fromPort": {
          "type": "integer",
          "description": "Minimum port number.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "id": {
          "type": "string",
          "description": "Id of the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "port": {
          "type": "integer",
          "description": "Port number (if applied to a single port).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "predefinedTarget": {
          "type": "string",
          "description": "Special-purpose targets. `self_security_group` refers to this particular security group. `loadbalancer_healthchecks` represents [loadbalancer health check nodes](https://cloud.yandex.com/docs/network-load-balancer/concepts/health-check).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "protocol": {
          "type": "string",
          "description": "One of `ANY`, `TCP`, `UDP`, `ICMP`, `IPV6_ICMP`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "securityGroupId": {
          "type": "string",
          "description": "Security Group ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "toPort": {
          "type": "integer",
          "description": "Maximum port number.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "v4CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The blocks of  IPv4 addresses for this rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "v6CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The blocks of  IPv6 addresses for this rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "description",
        "fromPort",
        "id",
        "labels",
        "port",
        "predefinedTarget",
        "protocol",
        "securityGroupId",
        "toPort",
        "v4CidrBlocks",
        "v6CidrBlocks"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getVpcSubnetDhcpOption:getVpcSubnetDhcpOption": {
      "properties": {
        "domainName": {
          "type": "string",
          "description": "Domain name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "domainNameServers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Domain name server IP addresses.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ntpServers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "NTP server IP addresses.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "domainName",
        "domainNameServers",
        "ntpServers"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getYdbDatabaseDedicatedLocation:getYdbDatabaseDedicatedLocation": {
      "properties": {
        "regions": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetYdbDatabaseDedicatedLocationRegion:getYdbDatabaseDedicatedLocationRegion"
          },
          "description": "Region of the Yandex Database cluster.\nThe structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zones": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetYdbDatabaseDedicatedLocationZone:getYdbDatabaseDedicatedLocationZone"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "regions",
        "zones"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getYdbDatabaseDedicatedLocationRegion:getYdbDatabaseDedicatedLocationRegion": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Region ID of the Yandex Database cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "id"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getYdbDatabaseDedicatedLocationZone:getYdbDatabaseDedicatedLocationZone": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Region ID of the Yandex Database cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "id"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getYdbDatabaseDedicatedScalePolicy:getYdbDatabaseDedicatedScalePolicy": {
      "properties": {
        "fixedScales": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FgetYdbDatabaseDedicatedScalePolicyFixedScale:getYdbDatabaseDedicatedScalePolicyFixedScale"
          },
          "description": "Fixed scaling policy of the Yandex Database cluster.\nThe structure is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "fixedScales"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getYdbDatabaseDedicatedScalePolicyFixedScale:getYdbDatabaseDedicatedScalePolicyFixedScale": {
      "properties": {
        "size": {
          "type": "integer",
          "description": "Number of instances in the Yandex Database cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "size"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "yandex:index/getYdbDatabaseDedicatedStorageConfig:getYdbDatabaseDedicatedStorageConfig": {
      "properties": {
        "groupCount": {
          "type": "integer",
          "description": "Amount of storage groups of selected type in the Yandex Database cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "storageTypeId": {
          "type": "string",
          "description": "Storage type ID of the Yandex Database cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object",
      "required": [
        "groupCount",
        "storageTypeId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    }
  },
  "provider": {
    "description": "The provider type for the yandex 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": {
      "cloudId": {
        "type": "string",
        "description": "ID of Yandex.Cloud tenant.\n"
      },
      "endpoint": {
        "type": "string",
        "description": "The API endpoint for Yandex.Cloud SDK client.\n"
      },
      "folderId": {
        "type": "string",
        "description": "The default folder ID where resources will be placed.\n"
      },
      "organizationId": {
        "type": "string"
      },
      "serviceAccountKeyFile": {
        "type": "string",
        "description": "Either the path to or the contents of a Service Account key file in JSON format.\n"
      },
      "storageAccessKey": {
        "type": "string",
        "description": "Yandex.Cloud storage service access key. Used when a storage data/resource doesn't have an access key explicitly\nspecified.\n"
      },
      "storageEndpoint": {
        "type": "string",
        "description": "Yandex.Cloud storage service endpoint. Default is storage.yandexcloud.net\n"
      },
      "storageSecretKey": {
        "type": "string",
        "description": "Yandex.Cloud storage service secret key. Used when a storage data/resource doesn't have a secret key explicitly\nspecified.\n"
      },
      "token": {
        "type": "string",
        "description": "The access token for API operations.\n"
      },
      "ymqAccessKey": {
        "type": "string",
        "description": "Yandex.Cloud Message Queue service access key. Used when a message queue resource doesn't have an access key explicitly\nspecified.\n"
      },
      "ymqEndpoint": {
        "type": "string",
        "description": "Yandex.Cloud Message Queue service endpoint. Default is message-queue.api.cloud.yandex.net\n"
      },
      "ymqSecretKey": {
        "type": "string",
        "description": "Yandex.Cloud Message Queue service secret key. Used when a message queue resource doesn't have a secret key explicitly\nspecified.\n"
      },
      "zone": {
        "type": "string",
        "description": "The zone where operations will take place. Examples are ru-central1-a, ru-central2-c, etc.\n"
      }
    },
    "type": "object",
    "inputProperties": {
      "cloudId": {
        "type": "string",
        "description": "ID of Yandex.Cloud tenant.\n"
      },
      "endpoint": {
        "type": "string",
        "description": "The API endpoint for Yandex.Cloud SDK client.\n"
      },
      "folderId": {
        "type": "string",
        "description": "The default folder ID where resources will be placed.\n"
      },
      "insecure": {
        "type": "boolean",
        "description": "Explicitly allow the provider to perform \"insecure\" SSL requests. If omitted,default value is `false`.\n"
      },
      "maxRetries": {
        "type": "integer",
        "description": "The maximum number of times an API request is being executed. If the API request still fails, an error is thrown.\n"
      },
      "organizationId": {
        "type": "string"
      },
      "plaintext": {
        "type": "boolean",
        "description": "Disable use of TLS. Default value is `false`.\n"
      },
      "serviceAccountKeyFile": {
        "type": "string",
        "description": "Either the path to or the contents of a Service Account key file in JSON format.\n"
      },
      "storageAccessKey": {
        "type": "string",
        "description": "Yandex.Cloud storage service access key. Used when a storage data/resource doesn't have an access key explicitly\nspecified.\n"
      },
      "storageEndpoint": {
        "type": "string",
        "description": "Yandex.Cloud storage service endpoint. Default is storage.yandexcloud.net\n"
      },
      "storageSecretKey": {
        "type": "string",
        "description": "Yandex.Cloud storage service secret key. Used when a storage data/resource doesn't have a secret key explicitly\nspecified.\n"
      },
      "token": {
        "type": "string",
        "description": "The access token for API operations.\n"
      },
      "ymqAccessKey": {
        "type": "string",
        "description": "Yandex.Cloud Message Queue service access key. Used when a message queue resource doesn't have an access key explicitly\nspecified.\n"
      },
      "ymqEndpoint": {
        "type": "string",
        "description": "Yandex.Cloud Message Queue service endpoint. Default is message-queue.api.cloud.yandex.net\n"
      },
      "ymqSecretKey": {
        "type": "string",
        "description": "Yandex.Cloud Message Queue service secret key. Used when a message queue resource doesn't have a secret key explicitly\nspecified.\n"
      },
      "zone": {
        "type": "string",
        "description": "The zone where operations will take place. Examples are ru-central1-a, ru-central2-c, etc.\n"
      }
    }
  },
  "resources": {
    "yandex:index/albBackendGroup:AlbBackendGroup": {
      "description": "Creates a backend group in the specified folder and adds the specified backends to it.\nFor more information, see [the official documentation](https://cloud.yandex.com/en/docs/application-load-balancer/concepts/backend-group).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst test_backend_group = new yandex.AlbBackendGroup(\"test-backend-group\", {\n    httpBackends: [{\n        healthcheck: {\n            httpHealthcheck: {\n                path: \"/\",\n            },\n            interval: \"1s\",\n            timeout: \"1s\",\n        },\n        http2: true,\n        loadBalancingConfig: {\n            panicThreshold: 50,\n        },\n        name: \"test-http-backend\",\n        port: 8080,\n        targetGroupIds: [yandex_alb_target_group_test_target_group.id],\n        tls: {\n            sni: \"backend-domain.internal\",\n        },\n        weight: 1,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ntest_backend_group = yandex.AlbBackendGroup(\"test-backend-group\", http_backends=[yandex.AlbBackendGroupHttpBackendArgs(\n    healthcheck=yandex.AlbBackendGroupHttpBackendHealthcheckArgs(\n        http_healthcheck=yandex.AlbBackendGroupHttpBackendHealthcheckHttpHealthcheckArgs(\n            path=\"/\",\n        ),\n        interval=\"1s\",\n        timeout=\"1s\",\n    ),\n    http2=True,\n    load_balancing_config=yandex.AlbBackendGroupHttpBackendLoadBalancingConfigArgs(\n        panic_threshold=50,\n    ),\n    name=\"test-http-backend\",\n    port=8080,\n    target_group_ids=[yandex_alb_target_group[\"test-target-group\"][\"id\"]],\n    tls=yandex.AlbBackendGroupHttpBackendTlsArgs(\n        sni=\"backend-domain.internal\",\n    ),\n    weight=1,\n)])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var test_backend_group = new Yandex.AlbBackendGroup(\"test-backend-group\", new Yandex.AlbBackendGroupArgs\n        {\n            HttpBackends = \n            {\n                new Yandex.Inputs.AlbBackendGroupHttpBackendArgs\n                {\n                    Healthcheck = new Yandex.Inputs.AlbBackendGroupHttpBackendHealthcheckArgs\n                    {\n                        HttpHealthcheck = new Yandex.Inputs.AlbBackendGroupHttpBackendHealthcheckHttpHealthcheckArgs\n                        {\n                            Path = \"/\",\n                        },\n                        Interval = \"1s\",\n                        Timeout = \"1s\",\n                    },\n                    Http2 = true,\n                    LoadBalancingConfig = new Yandex.Inputs.AlbBackendGroupHttpBackendLoadBalancingConfigArgs\n                    {\n                        PanicThreshold = 50,\n                    },\n                    Name = \"test-http-backend\",\n                    Port = 8080,\n                    TargetGroupIds = \n                    {\n                        yandex_alb_target_group.Test_target_group.Id,\n                    },\n                    Tls = new Yandex.Inputs.AlbBackendGroupHttpBackendTlsArgs\n                    {\n                        Sni = \"backend-domain.internal\",\n                    },\n                    Weight = 1,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewAlbBackendGroup(ctx, \"test-backend-group\", &yandex.AlbBackendGroupArgs{\n\t\t\tHttpBackends: AlbBackendGroupHttpBackendArray{\n\t\t\t\t&AlbBackendGroupHttpBackendArgs{\n\t\t\t\t\tHealthcheck: &AlbBackendGroupHttpBackendHealthcheckArgs{\n\t\t\t\t\t\tHttpHealthcheck: &AlbBackendGroupHttpBackendHealthcheckHttpHealthcheckArgs{\n\t\t\t\t\t\t\tPath: pulumi.String(\"/\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tInterval: pulumi.String(\"1s\"),\n\t\t\t\t\t\tTimeout:  pulumi.String(\"1s\"),\n\t\t\t\t\t},\n\t\t\t\t\tHttp2: pulumi.Bool(true),\n\t\t\t\t\tLoadBalancingConfig: &AlbBackendGroupHttpBackendLoadBalancingConfigArgs{\n\t\t\t\t\t\tPanicThreshold: pulumi.Int(50),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"test-http-backend\"),\n\t\t\t\t\tPort: pulumi.Int(8080),\n\t\t\t\t\tTargetGroupIds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.Any(yandex_alb_target_group.Test - target - group.Id),\n\t\t\t\t\t},\n\t\t\t\t\tTls: &AlbBackendGroupHttpBackendTlsArgs{\n\t\t\t\t\t\tSni: pulumi.String(\"backend-domain.internal\"),\n\t\t\t\t\t},\n\t\t\t\t\tWeight: pulumi.Int(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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA backend group can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/albBackendGroup:AlbBackendGroup default backend_group_id\n```\n\n ",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The backend group creation timestamp.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the backend group.\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
        },
        "grpcBackends": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbBackendGroupGrpcBackend:AlbBackendGroupGrpcBackend"
          },
          "description": "Grpc backend specification that will be used by the ALB Backend Group. Structure is documented below.\n"
        },
        "httpBackends": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbBackendGroupHttpBackend:AlbBackendGroupHttpBackend"
          },
          "description": "Http backend specification that will be used by the ALB Backend Group. Structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this backend group.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the backend.\n"
        },
        "streamBackends": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbBackendGroupStreamBackend:AlbBackendGroupStreamBackend"
          },
          "description": "Stream backend specification that will be used by the ALB Backend Group. Structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "name"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the backend group.\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
        },
        "grpcBackends": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbBackendGroupGrpcBackend:AlbBackendGroupGrpcBackend"
          },
          "description": "Grpc backend specification that will be used by the ALB Backend Group. Structure is documented below.\n"
        },
        "httpBackends": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbBackendGroupHttpBackend:AlbBackendGroupHttpBackend"
          },
          "description": "Http backend specification that will be used by the ALB Backend Group. Structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this backend group.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the backend.\n"
        },
        "streamBackends": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbBackendGroupStreamBackend:AlbBackendGroupStreamBackend"
          },
          "description": "Stream backend specification that will be used by the ALB Backend Group. Structure is documented below.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AlbBackendGroup resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "The backend group creation timestamp.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the backend group.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "grpcBackends": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FAlbBackendGroupGrpcBackend:AlbBackendGroupGrpcBackend"
            },
            "description": "Grpc backend specification that will be used by the ALB Backend Group. Structure is documented below.\n"
          },
          "httpBackends": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FAlbBackendGroupHttpBackend:AlbBackendGroupHttpBackend"
            },
            "description": "Http backend specification that will be used by the ALB Backend Group. Structure is documented below.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this backend group.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the backend.\n"
          },
          "streamBackends": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FAlbBackendGroupStreamBackend:AlbBackendGroupStreamBackend"
            },
            "description": "Stream backend specification that will be used by the ALB Backend Group. Structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/albHttpRouter:AlbHttpRouter": {
      "description": "Creates an HTTP Router in the specified folder.\nFor more information, see [the official documentation](https://cloud.yandex.com/en/docs/application-load-balancer/concepts/http-router).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst tf_router = new yandex.AlbHttpRouter(\"tf-router\", {\n    labels: {\n        \"empty-label\": \"\",\n        s: [{}],\n        \"tf-label\": \"tf-label-value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ntf_router = yandex.AlbHttpRouter(\"tf-router\", labels={\n    \"empty-label\": \"\",\n    \"s\": [{}],\n    \"tf-label\": \"tf-label-value\",\n})\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var tf_router = new Yandex.AlbHttpRouter(\"tf-router\", new Yandex.AlbHttpRouterArgs\n        {\n            Labels = \n            {\n                { \"empty-label\", \"\" },\n                { \"s\", \n                {\n                    ,\n                } },\n                { \"tf-label\", \"tf-label-value\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewAlbHttpRouter(ctx, \"tf-router\", &yandex.AlbHttpRouterArgs{\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"empty-label\": pulumi.String(\"\"),\n\t\t\t\t\"s\": pulumi.String{\n\t\t\t\t\tnil,\n\t\t\t\t},\n\t\t\t\t\"tf-label\": pulumi.String(\"tf-label-value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn HTTP Router can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/albHttpRouter:AlbHttpRouter default http_router_id\n```\n\n ",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The HTTP Router creation timestamp.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description of the HTTP Router. Provide this property when\nyou create the resource.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this HTTP Router. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the HTTP Router. Provided by the client when the HTTP Router is created.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "name"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "An optional description of the HTTP Router. Provide this property when\nyou create the resource.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this HTTP Router. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the HTTP Router. Provided by the client when the HTTP Router is created.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AlbHttpRouter resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "The HTTP Router creation timestamp.\n"
          },
          "description": {
            "type": "string",
            "description": "An optional description of the HTTP Router. Provide this property when\nyou create the resource.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this HTTP Router. A list of key/value pairs.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the HTTP Router. Provided by the client when the HTTP Router is created.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/albLoadBalancer:AlbLoadBalancer": {
      "description": "Creates an Application Load Balancer in the specified folder. For more information, see\n[the official documentation](https://cloud.yandex.com/en/docs/application-load-balancer/concepts/application-load-balancer)\n.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst test_balancer = new yandex.AlbLoadBalancer(\"test-balancer\", {\n    networkId: yandex_vpc_network[\"test-network\"].id,\n    allocationPolicy: {\n        locations: [{\n            zoneId: \"ru-central1-a\",\n            subnetId: yandex_vpc_subnet[\"test-subnet\"].id,\n        }],\n    },\n    listeners: [{\n        name: \"my-listener\",\n        endpoints: [{\n            addresses: [{\n                externalIpv4Address: {},\n            }],\n            ports: [8080],\n        }],\n        http: {\n            handler: {\n                httpRouterId: yandex_alb_http_router[\"test-router\"].id,\n            },\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ntest_balancer = yandex.AlbLoadBalancer(\"test-balancer\",\n    network_id=yandex_vpc_network[\"test-network\"][\"id\"],\n    allocation_policy=yandex.AlbLoadBalancerAllocationPolicyArgs(\n        locations=[yandex.AlbLoadBalancerAllocationPolicyLocationArgs(\n            zone_id=\"ru-central1-a\",\n            subnet_id=yandex_vpc_subnet[\"test-subnet\"][\"id\"],\n        )],\n    ),\n    listeners=[yandex.AlbLoadBalancerListenerArgs(\n        name=\"my-listener\",\n        endpoints=[yandex.AlbLoadBalancerListenerEndpointArgs(\n            addresses=[yandex.AlbLoadBalancerListenerEndpointAddressArgs(\n                external_ipv4_address=yandex.AlbLoadBalancerListenerEndpointAddressExternalIpv4AddressArgs(),\n            )],\n            ports=[8080],\n        )],\n        http=yandex.AlbLoadBalancerListenerHttpArgs(\n            handler=yandex.AlbLoadBalancerListenerHttpHandlerArgs(\n                http_router_id=yandex_alb_http_router[\"test-router\"][\"id\"],\n            ),\n        ),\n    )])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var test_balancer = new Yandex.AlbLoadBalancer(\"test-balancer\", new Yandex.AlbLoadBalancerArgs\n        {\n            NetworkId = yandex_vpc_network.Test_network.Id,\n            AllocationPolicy = new Yandex.Inputs.AlbLoadBalancerAllocationPolicyArgs\n            {\n                Locations = \n                {\n                    new Yandex.Inputs.AlbLoadBalancerAllocationPolicyLocationArgs\n                    {\n                        ZoneId = \"ru-central1-a\",\n                        SubnetId = yandex_vpc_subnet.Test_subnet.Id,\n                    },\n                },\n            },\n            Listeners = \n            {\n                new Yandex.Inputs.AlbLoadBalancerListenerArgs\n                {\n                    Name = \"my-listener\",\n                    Endpoints = \n                    {\n                        new Yandex.Inputs.AlbLoadBalancerListenerEndpointArgs\n                        {\n                            Addresses = \n                            {\n                                new Yandex.Inputs.AlbLoadBalancerListenerEndpointAddressArgs\n                                {\n                                    ExternalIpv4Address = ,\n                                },\n                            },\n                            Ports = \n                            {\n                                8080,\n                            },\n                        },\n                    },\n                    Http = new Yandex.Inputs.AlbLoadBalancerListenerHttpArgs\n                    {\n                        Handler = new Yandex.Inputs.AlbLoadBalancerListenerHttpHandlerArgs\n                        {\n                            HttpRouterId = yandex_alb_http_router.Test_router.Id,\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewAlbLoadBalancer(ctx, \"test-balancer\", &yandex.AlbLoadBalancerArgs{\n\t\t\tNetworkId: pulumi.Any(yandex_vpc_network.Test - network.Id),\n\t\t\tAllocationPolicy: &AlbLoadBalancerAllocationPolicyArgs{\n\t\t\t\tLocations: AlbLoadBalancerAllocationPolicyLocationArray{\n\t\t\t\t\t&AlbLoadBalancerAllocationPolicyLocationArgs{\n\t\t\t\t\t\tZoneId:   pulumi.String(\"ru-central1-a\"),\n\t\t\t\t\t\tSubnetId: pulumi.Any(yandex_vpc_subnet.Test - subnet.Id),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tListeners: AlbLoadBalancerListenerArray{\n\t\t\t\t&AlbLoadBalancerListenerArgs{\n\t\t\t\t\tName: pulumi.String(\"my-listener\"),\n\t\t\t\t\tEndpoints: AlbLoadBalancerListenerEndpointArray{\n\t\t\t\t\t\t&AlbLoadBalancerListenerEndpointArgs{\n\t\t\t\t\t\t\tAddresses: AlbLoadBalancerListenerEndpointAddressArray{\n\t\t\t\t\t\t\t\t&AlbLoadBalancerListenerEndpointAddressArgs{\n\t\t\t\t\t\t\t\t\tExternalIpv4Address: nil,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tPorts: pulumi.IntArray{\n\t\t\t\t\t\t\t\tpulumi.Int(8080),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tHttp: &AlbLoadBalancerListenerHttpArgs{\n\t\t\t\t\t\tHandler: &AlbLoadBalancerListenerHttpHandlerArgs{\n\t\t\t\t\t\t\tHttpRouterId: pulumi.Any(yandex_alb_http_router.Test - router.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn Application Load Balancer can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/albLoadBalancer:AlbLoadBalancer default load_balancer_id\n```\n\n ",
      "properties": {
        "allocationPolicy": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerAllocationPolicy:AlbLoadBalancerAllocationPolicy",
          "description": "Allocation zones for the Load Balancer instance. The structure is documented below.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The Load Balancer creation timestamp.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description of the Load Balancer.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs. If omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this Load Balancer. A list of key/value pairs.\n"
        },
        "listeners": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbLoadBalancerListener:AlbLoadBalancerListener"
          },
          "description": "List of listeners for the Load Balancer. The structure is documented below.\n"
        },
        "logGroupId": {
          "type": "string",
          "description": "Cloud log group used by the Load Balancer to store access logs.\n"
        },
        "name": {
          "type": "string",
          "description": "name of SNI match.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network that the Load Balancer is located at.\n"
        },
        "regionId": {
          "type": "string",
          "description": "ID of the region that the Load Balancer is located at.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of ID's of security groups attached to the Load Balancer.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the Load Balancer.\n"
        }
      },
      "type": "object",
      "required": [
        "allocationPolicy",
        "createdAt",
        "folderId",
        "logGroupId",
        "name",
        "networkId",
        "status"
      ],
      "inputProperties": {
        "allocationPolicy": {
          "$ref": "#/types/yandex:index%2FAlbLoadBalancerAllocationPolicy:AlbLoadBalancerAllocationPolicy",
          "description": "Allocation zones for the Load Balancer instance. The structure is documented below.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description of the Load Balancer.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs. If omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this Load Balancer. A list of key/value pairs.\n"
        },
        "listeners": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbLoadBalancerListener:AlbLoadBalancerListener"
          },
          "description": "List of listeners for the Load Balancer. The structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "name of SNI match.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network that the Load Balancer is located at.\n"
        },
        "regionId": {
          "type": "string",
          "description": "ID of the region that the Load Balancer is located at.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of ID's of security groups attached to the Load Balancer.\n"
        }
      },
      "requiredInputs": [
        "allocationPolicy",
        "networkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AlbLoadBalancer resources.\n",
        "properties": {
          "allocationPolicy": {
            "$ref": "#/types/yandex:index%2FAlbLoadBalancerAllocationPolicy:AlbLoadBalancerAllocationPolicy",
            "description": "Allocation zones for the Load Balancer instance. The structure is documented below.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The Load Balancer creation timestamp.\n"
          },
          "description": {
            "type": "string",
            "description": "An optional description of the Load Balancer.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder to which the resource belongs. If omitted, the provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this Load Balancer. A list of key/value pairs.\n"
          },
          "listeners": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FAlbLoadBalancerListener:AlbLoadBalancerListener"
            },
            "description": "List of listeners for the Load Balancer. The structure is documented below.\n"
          },
          "logGroupId": {
            "type": "string",
            "description": "Cloud log group used by the Load Balancer to store access logs.\n"
          },
          "name": {
            "type": "string",
            "description": "name of SNI match.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network that the Load Balancer is located at.\n"
          },
          "regionId": {
            "type": "string",
            "description": "ID of the region that the Load Balancer is located at.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of ID's of security groups attached to the Load Balancer.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the Load Balancer.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/albTargetGroup:AlbTargetGroup": {
      "description": "Creates a target group in the specified folder and adds the specified targets to it.\nFor more information, see [the official documentation](https://cloud.yandex.com/en/docs/application-load-balancer/concepts/target-group).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = new yandex.AlbTargetGroup(\"foo\", {\n    targets: [\n        {\n            ipAddress: yandex_compute_instance_my_instance_1.networkInterface.0.ipAddress,\n            subnetId: yandex_vpc_subnet_my_subnet.id,\n        },\n        {\n            ipAddress: yandex_compute_instance_my_instance_2.networkInterface.0.ipAddress,\n            subnetId: yandex_vpc_subnet_my_subnet.id,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.AlbTargetGroup(\"foo\", targets=[\n    yandex.AlbTargetGroupTargetArgs(\n        ip_address=yandex_compute_instance[\"my-instance-1\"][\"network_interface\"][0][\"ip_address\"],\n        subnet_id=yandex_vpc_subnet[\"my-subnet\"][\"id\"],\n    ),\n    yandex.AlbTargetGroupTargetArgs(\n        ip_address=yandex_compute_instance[\"my-instance-2\"][\"network_interface\"][0][\"ip_address\"],\n        subnet_id=yandex_vpc_subnet[\"my-subnet\"][\"id\"],\n    ),\n])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = new Yandex.AlbTargetGroup(\"foo\", new Yandex.AlbTargetGroupArgs\n        {\n            Targets = \n            {\n                new Yandex.Inputs.AlbTargetGroupTargetArgs\n                {\n                    IpAddress = yandex_compute_instance.My_instance_1.Network_interface[0].Ip_address,\n                    SubnetId = yandex_vpc_subnet.My_subnet.Id,\n                },\n                new Yandex.Inputs.AlbTargetGroupTargetArgs\n                {\n                    IpAddress = yandex_compute_instance.My_instance_2.Network_interface[0].Ip_address,\n                    SubnetId = yandex_vpc_subnet.My_subnet.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA target group can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/albTargetGroup:AlbTargetGroup default target_group_id\n```\n\n ",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The target group creation timestamp.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description of the target group. Provide this property when\nyou create the resource.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this target group. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the target group. Provided by the client when the target group is created.\n"
        },
        "targets": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbTargetGroupTarget:AlbTargetGroupTarget"
          },
          "description": "A Target resource. The structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "name"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "An optional description of the target group. Provide this property when\nyou create the resource.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this target group. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the target group. Provided by the client when the target group is created.\n"
        },
        "targets": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbTargetGroupTarget:AlbTargetGroupTarget"
          },
          "description": "A Target resource. The structure is documented below.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AlbTargetGroup resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "The target group creation timestamp.\n"
          },
          "description": {
            "type": "string",
            "description": "An optional description of the target group. Provide this property when\nyou create the resource.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this target group. A list of key/value pairs.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the target group. Provided by the client when the target group is created.\n"
          },
          "targets": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FAlbTargetGroupTarget:AlbTargetGroupTarget"
            },
            "description": "A Target resource. The structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/albVirtualHost:AlbVirtualHost": {
      "description": "Creates a virtual host that belongs to specified HTTP router and adds the specified routes to it. For more information,\nsee [the official documentation](https://cloud.yandex.com/en/docs/application-load-balancer/concepts/http-router).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst my_virtual_host = new yandex.AlbVirtualHost(\"my-virtual-host\", {\n    httpRouterId: yandex_alb_http_router[\"my-router\"].id,\n    routes: [{\n        name: \"my-route\",\n        httpRoute: {\n            httpRouteAction: {\n                backendGroupId: yandex_alb_backend_group[\"my-bg\"].id,\n                timeout: \"3s\",\n            },\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_virtual_host = yandex.AlbVirtualHost(\"my-virtual-host\",\n    http_router_id=yandex_alb_http_router[\"my-router\"][\"id\"],\n    routes=[yandex.AlbVirtualHostRouteArgs(\n        name=\"my-route\",\n        http_route=yandex.AlbVirtualHostRouteHttpRouteArgs(\n            http_route_action=yandex.AlbVirtualHostRouteHttpRouteHttpRouteActionArgs(\n                backend_group_id=yandex_alb_backend_group[\"my-bg\"][\"id\"],\n                timeout=\"3s\",\n            ),\n        ),\n    )])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var my_virtual_host = new Yandex.AlbVirtualHost(\"my-virtual-host\", new Yandex.AlbVirtualHostArgs\n        {\n            HttpRouterId = yandex_alb_http_router.My_router.Id,\n            Routes = \n            {\n                new Yandex.Inputs.AlbVirtualHostRouteArgs\n                {\n                    Name = \"my-route\",\n                    HttpRoute = new Yandex.Inputs.AlbVirtualHostRouteHttpRouteArgs\n                    {\n                        HttpRouteAction = new Yandex.Inputs.AlbVirtualHostRouteHttpRouteHttpRouteActionArgs\n                        {\n                            BackendGroupId = yandex_alb_backend_group.My_bg.Id,\n                            Timeout = \"3s\",\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewAlbVirtualHost(ctx, \"my-virtual-host\", &yandex.AlbVirtualHostArgs{\n\t\t\tHttpRouterId: pulumi.Any(yandex_alb_http_router.My - router.Id),\n\t\t\tRoutes: AlbVirtualHostRouteArray{\n\t\t\t\t&AlbVirtualHostRouteArgs{\n\t\t\t\t\tName: pulumi.String(\"my-route\"),\n\t\t\t\t\tHttpRoute: &AlbVirtualHostRouteHttpRouteArgs{\n\t\t\t\t\t\tHttpRouteAction: &AlbVirtualHostRouteHttpRouteHttpRouteActionArgs{\n\t\t\t\t\t\t\tBackendGroupId: pulumi.Any(yandex_alb_backend_group.My - bg.Id),\n\t\t\t\t\t\t\tTimeout:        pulumi.String(\"3s\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA virtual host can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/albVirtualHost:AlbVirtualHost default virtual_host_id\n```\n\n ",
      "properties": {
        "authorities": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of domains (host/authority header) that will be matched to this virtual host. Wildcard\nhosts are supported in the form of '*.foo.com' or '*-bar.foo.com'. If not specified, all domains will be matched.\n"
        },
        "httpRouterId": {
          "type": "string"
        },
        "modifyRequestHeaders": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbVirtualHostModifyRequestHeader:AlbVirtualHostModifyRequestHeader"
          },
          "description": "Apply the following modifications to the request\nheaders. The structure is documented below.\n"
        },
        "modifyResponseHeaders": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbVirtualHostModifyResponseHeader:AlbVirtualHostModifyResponseHeader"
          },
          "description": "Apply the following modifications to the response\nheaders. The structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "name of the route.\n"
        },
        "routes": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbVirtualHostRoute:AlbVirtualHostRoute"
          },
          "description": "A Route resource. Routes are matched *in-order*. Be careful when adding them to the end. For instance, having\nhttp '/' match first makes all other routes unused. The structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "httpRouterId",
        "name"
      ],
      "inputProperties": {
        "authorities": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of domains (host/authority header) that will be matched to this virtual host. Wildcard\nhosts are supported in the form of '*.foo.com' or '*-bar.foo.com'. If not specified, all domains will be matched.\n"
        },
        "httpRouterId": {
          "type": "string"
        },
        "modifyRequestHeaders": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbVirtualHostModifyRequestHeader:AlbVirtualHostModifyRequestHeader"
          },
          "description": "Apply the following modifications to the request\nheaders. The structure is documented below.\n"
        },
        "modifyResponseHeaders": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbVirtualHostModifyResponseHeader:AlbVirtualHostModifyResponseHeader"
          },
          "description": "Apply the following modifications to the response\nheaders. The structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "name of the route.\n"
        },
        "routes": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FAlbVirtualHostRoute:AlbVirtualHostRoute"
          },
          "description": "A Route resource. Routes are matched *in-order*. Be careful when adding them to the end. For instance, having\nhttp '/' match first makes all other routes unused. The structure is documented below.\n"
        }
      },
      "requiredInputs": [
        "httpRouterId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AlbVirtualHost resources.\n",
        "properties": {
          "authorities": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of domains (host/authority header) that will be matched to this virtual host. Wildcard\nhosts are supported in the form of '*.foo.com' or '*-bar.foo.com'. If not specified, all domains will be matched.\n"
          },
          "httpRouterId": {
            "type": "string"
          },
          "modifyRequestHeaders": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FAlbVirtualHostModifyRequestHeader:AlbVirtualHostModifyRequestHeader"
            },
            "description": "Apply the following modifications to the request\nheaders. The structure is documented below.\n"
          },
          "modifyResponseHeaders": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FAlbVirtualHostModifyResponseHeader:AlbVirtualHostModifyResponseHeader"
            },
            "description": "Apply the following modifications to the response\nheaders. The structure is documented below.\n"
          },
          "name": {
            "type": "string",
            "description": "name of the route.\n"
          },
          "routes": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FAlbVirtualHostRoute:AlbVirtualHostRoute"
            },
            "description": "A Route resource. Routes are matched *in-order*. Be careful when adding them to the end. For instance, having\nhttp '/' match first makes all other routes unused. The structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/apiGateway:ApiGateway": {
      "description": "Allows management of [Yandex Cloud API Gateway](https://cloud.yandex.com/docs/api-gateway/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst test_api_gateway = new yandex.ApiGateway(\"test-api-gateway\", {\n    description: \"any description\",\n    labels: {\n        label: \"label\",\n        \"empty-label\": \"\",\n    },\n    spec: `openapi: \"3.0.0\"\ninfo:\n  version: 1.0.0\n  title: Test API\npaths:\n  /hello:\n    get:\n      summary: Say hello\n      operationId: hello\n      parameters:\n        - name: user\n          in: query\n          description: User name to appear in greetings\n          required: false\n          schema:\n            type: string\n            default: 'world'\n      responses:\n        '200':\n          description: Greeting\n          content:\n            'text/plain':\n              schema:\n                type: \"string\"\n      x-yc-apigateway-integration:\n        type: dummy\n        http_code: 200\n        http_headers:\n          'Content-Type': \"text/plain\"\n        content:\n          'text/plain': \"Hello again, {user}!\\n\"\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ntest_api_gateway = yandex.ApiGateway(\"test-api-gateway\",\n    description=\"any description\",\n    labels={\n        \"label\": \"label\",\n        \"empty-label\": \"\",\n    },\n    spec=\"\"\"openapi: \"3.0.0\"\ninfo:\n  version: 1.0.0\n  title: Test API\npaths:\n  /hello:\n    get:\n      summary: Say hello\n      operationId: hello\n      parameters:\n        - name: user\n          in: query\n          description: User name to appear in greetings\n          required: false\n          schema:\n            type: string\n            default: 'world'\n      responses:\n        '200':\n          description: Greeting\n          content:\n            'text/plain':\n              schema:\n                type: \"string\"\n      x-yc-apigateway-integration:\n        type: dummy\n        http_code: 200\n        http_headers:\n          'Content-Type': \"text/plain\"\n        content:\n          'text/plain': \"Hello again, {user}!\\n\"\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var test_api_gateway = new Yandex.ApiGateway(\"test-api-gateway\", new Yandex.ApiGatewayArgs\n        {\n            Description = \"any description\",\n            Labels = \n            {\n                { \"label\", \"label\" },\n                { \"empty-label\", \"\" },\n            },\n            Spec = @\"openapi: \"\"3.0.0\"\"\ninfo:\n  version: 1.0.0\n  title: Test API\npaths:\n  /hello:\n    get:\n      summary: Say hello\n      operationId: hello\n      parameters:\n        - name: user\n          in: query\n          description: User name to appear in greetings\n          required: false\n          schema:\n            type: string\n            default: 'world'\n      responses:\n        '200':\n          description: Greeting\n          content:\n            'text/plain':\n              schema:\n                type: \"\"string\"\"\n      x-yc-apigateway-integration:\n        type: dummy\n        http_code: 200\n        http_headers:\n          'Content-Type': \"\"text/plain\"\"\n        content:\n          'text/plain': \"\"Hello again, {user}!\\n\"\"\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewApiGateway(ctx, \"test-api-gateway\", &yandex.ApiGatewayArgs{\n\t\t\tDescription: pulumi.String(\"any description\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label\":       pulumi.String(\"label\"),\n\t\t\t\t\"empty-label\": pulumi.String(\"\"),\n\t\t\t},\n\t\t\tSpec: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"openapi: \\\"3.0.0\\\"\\n\", \"info:\\n\", \"  version: 1.0.0\\n\", \"  title: Test API\\n\", \"paths:\\n\", \"  /hello:\\n\", \"    get:\\n\", \"      summary: Say hello\\n\", \"      operationId: hello\\n\", \"      parameters:\\n\", \"        - name: user\\n\", \"          in: query\\n\", \"          description: User name to appear in greetings\\n\", \"          required: false\\n\", \"          schema:\\n\", \"            type: string\\n\", \"            default: 'world'\\n\", \"      responses:\\n\", \"        '200':\\n\", \"          description: Greeting\\n\", \"          content:\\n\", \"            'text/plain':\\n\", \"              schema:\\n\", \"                type: \\\"string\\\"\\n\", \"      x-yc-apigateway-integration:\\n\", \"        type: dummy\\n\", \"        http_code: 200\\n\", \"        http_headers:\\n\", \"          'Content-Type': \\\"text/plain\\\"\\n\", \"        content:\\n\", \"          'text/plain': \\\"Hello again, {user}!\\\\n\\\"\\n\")),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the Yandex Cloud API Gateway.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Yandex Cloud API Gateway.\n"
        },
        "domain": {
          "type": "string",
          "description": "Default domain for the Yandex API Gateway. Generated at creation time.\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder ID for the Yandex Cloud API Gateway. If it is not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Cloud API Gateway.\n"
        },
        "logGroupId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Yandex Cloud API Gateway name used to define API Gateway.\n"
        },
        "spec": {
          "type": "string",
          "description": "OpenAPI specification for Yandex API Gateway.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the Yandex API Gateway.\n"
        },
        "userDomains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of user domains attached to Yandex API Gateway.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "domain",
        "folderId",
        "logGroupId",
        "name",
        "spec",
        "status",
        "userDomains"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the Yandex Cloud API Gateway.\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder ID for the Yandex Cloud API Gateway. If it is not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Cloud API Gateway.\n"
        },
        "name": {
          "type": "string",
          "description": "Yandex Cloud API Gateway name used to define API Gateway.\n"
        },
        "spec": {
          "type": "string",
          "description": "OpenAPI specification for Yandex API Gateway.\n"
        }
      },
      "requiredInputs": [
        "spec"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiGateway resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the Yandex Cloud API Gateway.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the Yandex Cloud API Gateway.\n"
          },
          "domain": {
            "type": "string",
            "description": "Default domain for the Yandex API Gateway. Generated at creation time.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder ID for the Yandex Cloud API Gateway. If it is not provided, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Yandex Cloud API Gateway.\n"
          },
          "logGroupId": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Yandex Cloud API Gateway name used to define API Gateway.\n"
          },
          "spec": {
            "type": "string",
            "description": "OpenAPI specification for Yandex API Gateway.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the Yandex API Gateway.\n"
          },
          "userDomains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of user domains attached to Yandex API Gateway.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/cdnOriginGroup:CdnOriginGroup": {
      "description": "Allows management of [Yandex.Cloud CDN Origin Groups](https://cloud.yandex.ru/docs/cdn/concepts/origins).\n\n> **_NOTE:_**  CDN provider must be activated prior usage of CDN resources, either via UI console or via yc cli command: ```yc cdn provider activate --folder-id <folder-id> --type gcore```\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myGroup = new yandex.CdnOriginGroup(\"my_group\", {\n    origins: [\n        {\n            source: \"ya.ru\",\n        },\n        {\n            source: \"yandex.ru\",\n        },\n        {\n            source: \"goo.gl\",\n        },\n        {\n            backup: false,\n            source: \"amazon.com\",\n        },\n    ],\n    useNext: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_group = yandex.CdnOriginGroup(\"myGroup\",\n    origins=[\n        yandex.CdnOriginGroupOriginArgs(\n            source=\"ya.ru\",\n        ),\n        yandex.CdnOriginGroupOriginArgs(\n            source=\"yandex.ru\",\n        ),\n        yandex.CdnOriginGroupOriginArgs(\n            source=\"goo.gl\",\n        ),\n        yandex.CdnOriginGroupOriginArgs(\n            backup=False,\n            source=\"amazon.com\",\n        ),\n    ],\n    use_next=True)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myGroup = new Yandex.CdnOriginGroup(\"myGroup\", new Yandex.CdnOriginGroupArgs\n        {\n            Origins = \n            {\n                new Yandex.Inputs.CdnOriginGroupOriginArgs\n                {\n                    Source = \"ya.ru\",\n                },\n                new Yandex.Inputs.CdnOriginGroupOriginArgs\n                {\n                    Source = \"yandex.ru\",\n                },\n                new Yandex.Inputs.CdnOriginGroupOriginArgs\n                {\n                    Source = \"goo.gl\",\n                },\n                new Yandex.Inputs.CdnOriginGroupOriginArgs\n                {\n                    Backup = false,\n                    Source = \"amazon.com\",\n                },\n            },\n            UseNext = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewCdnOriginGroup(ctx, \"myGroup\", &yandex.CdnOriginGroupArgs{\n\t\t\tOrigins: CdnOriginGroupOriginArray{\n\t\t\t\t&CdnOriginGroupOriginArgs{\n\t\t\t\t\tSource: pulumi.String(\"ya.ru\"),\n\t\t\t\t},\n\t\t\t\t&CdnOriginGroupOriginArgs{\n\t\t\t\t\tSource: pulumi.String(\"yandex.ru\"),\n\t\t\t\t},\n\t\t\t\t&CdnOriginGroupOriginArgs{\n\t\t\t\t\tSource: pulumi.String(\"goo.gl\"),\n\t\t\t\t},\n\t\t\t\t&CdnOriginGroupOriginArgs{\n\t\t\t\t\tBackup: pulumi.Bool(false),\n\t\t\t\t\tSource: pulumi.String(\"amazon.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUseNext: 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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA origin group can be imported using any of these accepted formats\n\n```sh\n $ pulumi import yandex:index/cdnOriginGroup:CdnOriginGroup default origin_group_id\n```\n\n ",
      "properties": {
        "folderId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "CDN Origin Group name used to define device.\n"
        },
        "origins": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FCdnOriginGroupOrigin:CdnOriginGroupOrigin"
          }
        },
        "useNext": {
          "type": "boolean",
          "description": "If the option is active (has true value), in case the origin responds with 4XX or 5XX codes, use the next origin from the list.\n"
        }
      },
      "type": "object",
      "required": [
        "folderId",
        "name",
        "origins"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "CDN Origin Group name used to define device.\n"
        },
        "origins": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FCdnOriginGroupOrigin:CdnOriginGroupOrigin"
          }
        },
        "useNext": {
          "type": "boolean",
          "description": "If the option is active (has true value), in case the origin responds with 4XX or 5XX codes, use the next origin from the list.\n"
        }
      },
      "requiredInputs": [
        "origins"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CdnOriginGroup resources.\n",
        "properties": {
          "folderId": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "CDN Origin Group name used to define device.\n"
          },
          "origins": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FCdnOriginGroupOrigin:CdnOriginGroupOrigin"
            }
          },
          "useNext": {
            "type": "boolean",
            "description": "If the option is active (has true value), in case the origin responds with 4XX or 5XX codes, use the next origin from the list.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/cdnResource:CdnResource": {
      "description": "Allows management of [Yandex.Cloud CDN Resource](https://cloud.yandex.ru/docs/cdn/concepts/resource).\n\n> **_NOTE:_**  CDN provider must be activated prior usage of CDN resources, either via UI console or via yc cli command: ```yc cdn provider activate --folder-id <folder-id> --type gcore```\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myResource = new yandex.CdnResource(\"myResource\", {\n    cname: \"cdn1.yandex-example.ru\",\n    active: false,\n    originProtocol: \"https\",\n    secondaryHostnames: [\n        \"cdn-example-1.yandex.ru\",\n        \"cdn-example-2.yandex.ru\",\n    ],\n    originGroupId: yandex_cdn_origin_group.foo_cdn_group_by_id.id,\n    options: {\n        edgeCacheSettings: 345600,\n        ignoreCookie: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_resource = yandex.CdnResource(\"myResource\",\n    cname=\"cdn1.yandex-example.ru\",\n    active=False,\n    origin_protocol=\"https\",\n    secondary_hostnames=[\n        \"cdn-example-1.yandex.ru\",\n        \"cdn-example-2.yandex.ru\",\n    ],\n    origin_group_id=yandex_cdn_origin_group[\"foo_cdn_group_by_id\"][\"id\"],\n    options=yandex.CdnResourceOptionsArgs(\n        edge_cache_settings=345600,\n        ignore_cookie=True,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myResource = new Yandex.CdnResource(\"myResource\", new Yandex.CdnResourceArgs\n        {\n            Cname = \"cdn1.yandex-example.ru\",\n            Active = false,\n            OriginProtocol = \"https\",\n            SecondaryHostnames = \n            {\n                \"cdn-example-1.yandex.ru\",\n                \"cdn-example-2.yandex.ru\",\n            },\n            OriginGroupId = yandex_cdn_origin_group.Foo_cdn_group_by_id.Id,\n            Options = new Yandex.Inputs.CdnResourceOptionsArgs\n            {\n                EdgeCacheSettings = 345600,\n                IgnoreCookie = true,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewCdnResource(ctx, \"myResource\", &yandex.CdnResourceArgs{\n\t\t\tCname:          pulumi.String(\"cdn1.yandex-example.ru\"),\n\t\t\tActive:         pulumi.Bool(false),\n\t\t\tOriginProtocol: pulumi.String(\"https\"),\n\t\t\tSecondaryHostnames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cdn-example-1.yandex.ru\"),\n\t\t\t\tpulumi.String(\"cdn-example-2.yandex.ru\"),\n\t\t\t},\n\t\t\tOriginGroupId: pulumi.Any(yandex_cdn_origin_group.Foo_cdn_group_by_id.Id),\n\t\t\tOptions: &CdnResourceOptionsArgs{\n\t\t\t\tEdgeCacheSettings: pulumi.Int(345600),\n\t\t\t\tIgnoreCookie:      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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA origin group can be imported using any of these accepted formats\n\n```sh\n $ pulumi import yandex:index/cdnResource:CdnResource default origin_group_id\n```\n\n ",
      "properties": {
        "active": {
          "type": "boolean",
          "description": "Flag to create Resource either in active or disabled state. True - the content from CDN is available to clients.\n"
        },
        "cname": {
          "type": "string",
          "description": "CDN endpoint CNAME, must be unique among resources.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the IoT Core Device\n"
        },
        "folderId": {
          "type": "string"
        },
        "options": {
          "$ref": "#/types/yandex:index%2FCdnResourceOptions:CdnResourceOptions",
          "description": "CDN Resource settings and options to tune CDN edge behavior.\n"
        },
        "originGroupId": {
          "type": "integer"
        },
        "originGroupName": {
          "type": "string"
        },
        "originProtocol": {
          "type": "string"
        },
        "secondaryHostnames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "list of secondary hostname strings.\n"
        },
        "sslCertificate": {
          "$ref": "#/types/yandex:index%2FCdnResourceSslCertificate:CdnResourceSslCertificate"
        },
        "updatedAt": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "cname",
        "createdAt",
        "folderId",
        "options",
        "updatedAt"
      ],
      "inputProperties": {
        "active": {
          "type": "boolean",
          "description": "Flag to create Resource either in active or disabled state. True - the content from CDN is available to clients.\n"
        },
        "cname": {
          "type": "string",
          "description": "CDN endpoint CNAME, must be unique among resources.\n"
        },
        "options": {
          "$ref": "#/types/yandex:index%2FCdnResourceOptions:CdnResourceOptions",
          "description": "CDN Resource settings and options to tune CDN edge behavior.\n"
        },
        "originGroupId": {
          "type": "integer"
        },
        "originGroupName": {
          "type": "string"
        },
        "originProtocol": {
          "type": "string"
        },
        "secondaryHostnames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "list of secondary hostname strings.\n"
        },
        "sslCertificate": {
          "$ref": "#/types/yandex:index%2FCdnResourceSslCertificate:CdnResourceSslCertificate"
        },
        "updatedAt": {
          "type": "string"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CdnResource resources.\n",
        "properties": {
          "active": {
            "type": "boolean",
            "description": "Flag to create Resource either in active or disabled state. True - the content from CDN is available to clients.\n"
          },
          "cname": {
            "type": "string",
            "description": "CDN endpoint CNAME, must be unique among resources.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the IoT Core Device\n"
          },
          "folderId": {
            "type": "string"
          },
          "options": {
            "$ref": "#/types/yandex:index%2FCdnResourceOptions:CdnResourceOptions",
            "description": "CDN Resource settings and options to tune CDN edge behavior.\n"
          },
          "originGroupId": {
            "type": "integer"
          },
          "originGroupName": {
            "type": "string"
          },
          "originProtocol": {
            "type": "string"
          },
          "secondaryHostnames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "list of secondary hostname strings.\n"
          },
          "sslCertificate": {
            "$ref": "#/types/yandex:index%2FCdnResourceSslCertificate:CdnResourceSslCertificate"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/computeDisk:ComputeDisk": {
      "description": "Persistent disks are used for data storage and function similarly to physical hard and solid state drives.\n\nA disk can be attached or detached from the virtual machine and can be located locally. A disk can be moved between virtual machines within the same availability zone. Each disk can be attached to only one virtual machine at a time.\n\nFor more information about disks in Yandex.Cloud, see:\n\n* [Documentation](https://cloud.yandex.com/docs/compute/concepts/disk)\n* How-to Guides\n    * [Attach and detach a disk](https://cloud.yandex.com/docs/compute/concepts/disk#attach-detach)\n    * [Backup operation](https://cloud.yandex.com/docs/compute/concepts/disk#backup)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst defaultComputeDisk = new yandex.ComputeDisk(\"default\", {\n    imageId: \"ubuntu-16.04-v20180727\",\n    labels: {\n        environment: \"test\",\n    },\n    type: \"network-ssd\",\n    zone: \"ru-central1-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ndefault = yandex.ComputeDisk(\"default\",\n    image_id=\"ubuntu-16.04-v20180727\",\n    labels={\n        \"environment\": \"test\",\n    },\n    type=\"network-ssd\",\n    zone=\"ru-central1-a\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var @default = new Yandex.ComputeDisk(\"default\", new Yandex.ComputeDiskArgs\n        {\n            ImageId = \"ubuntu-16.04-v20180727\",\n            Labels = \n            {\n                { \"environment\", \"test\" },\n            },\n            Type = \"network-ssd\",\n            Zone = \"ru-central1-a\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewComputeDisk(ctx, \"default\", &yandex.ComputeDiskArgs{\n\t\t\tImageId: pulumi.String(\"ubuntu-16.04-v20180727\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"test\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"network-ssd\"),\n\t\t\tZone: pulumi.String(\"ru-central1-a\"),\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{{% /example %}}\n{{% example %}}\n### Non-Replicated Disk\n\n**Note**: Non-replicated disks are at the [Preview](https://cloud.yandex.com/docs/overview/concepts/launch-stages) \n          stage.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst _this = new yandex.ComputeDiskPlacementGroup(\"this\", {zone: \"ru-central1-b\"});\nconst nr = new yandex.ComputeDisk(\"nr\", {\n    size: 93,\n    type: \"network-ssd-nonreplicated\",\n    zone: \"ru-central1-b\",\n    diskPlacementPolicy: {\n        diskPlacementGroupId: _this.id,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nthis = yandex.ComputeDiskPlacementGroup(\"this\", zone=\"ru-central1-b\")\nnr = yandex.ComputeDisk(\"nr\",\n    size=93,\n    type=\"network-ssd-nonreplicated\",\n    zone=\"ru-central1-b\",\n    disk_placement_policy=yandex.ComputeDiskDiskPlacementPolicyArgs(\n        disk_placement_group_id=this.id,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var @this = new Yandex.ComputeDiskPlacementGroup(\"this\", new Yandex.ComputeDiskPlacementGroupArgs\n        {\n            Zone = \"ru-central1-b\",\n        });\n        var nr = new Yandex.ComputeDisk(\"nr\", new Yandex.ComputeDiskArgs\n        {\n            Size = 93,\n            Type = \"network-ssd-nonreplicated\",\n            Zone = \"ru-central1-b\",\n            DiskPlacementPolicy = new Yandex.Inputs.ComputeDiskDiskPlacementPolicyArgs\n            {\n                DiskPlacementGroupId = @this.Id,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := yandex.NewComputeDiskPlacementGroup(ctx, \"this\", &yandex.ComputeDiskPlacementGroupArgs{\n\t\t\tZone: pulumi.String(\"ru-central1-b\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewComputeDisk(ctx, \"nr\", &yandex.ComputeDiskArgs{\n\t\t\tSize: pulumi.Int(93),\n\t\t\tType: pulumi.String(\"network-ssd-nonreplicated\"),\n\t\t\tZone: pulumi.String(\"ru-central1-b\"),\n\t\t\tDiskPlacementPolicy: &ComputeDiskDiskPlacementPolicyArgs{\n\t\t\t\tDiskPlacementGroupId: this.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA disk can be imported using any of these accepted formats\n\n```sh\n $ pulumi import yandex:index/computeDisk:ComputeDisk default disk_id\n```\n\n ",
      "properties": {
        "blockSize": {
          "type": "integer"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the disk.\n"
        },
        "description": {
          "type": "string",
          "description": "-\n(Optional) Description of the disk. Provide this property when\nyou create a resource.\n"
        },
        "diskPlacementPolicy": {
          "$ref": "#/types/yandex:index%2FComputeDiskDiskPlacementPolicy:ComputeDiskDiskPlacementPolicy",
          "description": "Disk placement policy configuration. The structure is documented below.\n"
        },
        "folderId": {
          "type": "string",
          "description": "(Optional) The ID of the folder that the disk belongs to.\nIf it is not provided, the default provider folder is used.\n"
        },
        "imageId": {
          "type": "string",
          "description": "The source image to use for disk creation.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this disk. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the disk. Provide this property when\nyou create a resource.\n"
        },
        "productIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "size": {
          "type": "integer",
          "description": "Size of the persistent disk, specified in GB. You can specify this\nfield when creating a persistent disk using the `image_id` or `snapshot_id`\nparameter, or specify it alone to create an empty persistent disk.\nIf you specify this field along with `image_id` or `snapshot_id`,\nthe size value must not be less than the size of the source image\nor the size of the snapshot.\n"
        },
        "snapshotId": {
          "type": "string",
          "description": "The source snapshot to use for disk creation.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the disk.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of disk to create. Provide this when creating a disk.\n"
        },
        "zone": {
          "type": "string",
          "description": "Availability zone where the disk will reside.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "diskPlacementPolicy",
        "folderId",
        "name",
        "productIds",
        "status",
        "zone"
      ],
      "inputProperties": {
        "blockSize": {
          "type": "integer"
        },
        "description": {
          "type": "string",
          "description": "-\n(Optional) Description of the disk. Provide this property when\nyou create a resource.\n"
        },
        "diskPlacementPolicy": {
          "$ref": "#/types/yandex:index%2FComputeDiskDiskPlacementPolicy:ComputeDiskDiskPlacementPolicy",
          "description": "Disk placement policy configuration. The structure is documented below.\n"
        },
        "folderId": {
          "type": "string",
          "description": "(Optional) The ID of the folder that the disk belongs to.\nIf it is not provided, the default provider folder is used.\n"
        },
        "imageId": {
          "type": "string",
          "description": "The source image to use for disk creation.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this disk. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the disk. Provide this property when\nyou create a resource.\n"
        },
        "size": {
          "type": "integer",
          "description": "Size of the persistent disk, specified in GB. You can specify this\nfield when creating a persistent disk using the `image_id` or `snapshot_id`\nparameter, or specify it alone to create an empty persistent disk.\nIf you specify this field along with `image_id` or `snapshot_id`,\nthe size value must not be less than the size of the source image\nor the size of the snapshot.\n"
        },
        "snapshotId": {
          "type": "string",
          "description": "The source snapshot to use for disk creation.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of disk to create. Provide this when creating a disk.\n"
        },
        "zone": {
          "type": "string",
          "description": "Availability zone where the disk will reside.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeDisk resources.\n",
        "properties": {
          "blockSize": {
            "type": "integer"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the disk.\n"
          },
          "description": {
            "type": "string",
            "description": "-\n(Optional) Description of the disk. Provide this property when\nyou create a resource.\n"
          },
          "diskPlacementPolicy": {
            "$ref": "#/types/yandex:index%2FComputeDiskDiskPlacementPolicy:ComputeDiskDiskPlacementPolicy",
            "description": "Disk placement policy configuration. The structure is documented below.\n"
          },
          "folderId": {
            "type": "string",
            "description": "(Optional) The ID of the folder that the disk belongs to.\nIf it is not provided, the default provider folder is used.\n"
          },
          "imageId": {
            "type": "string",
            "description": "The source image to use for disk creation.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this disk. A list of key/value pairs.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the disk. Provide this property when\nyou create a resource.\n"
          },
          "productIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "size": {
            "type": "integer",
            "description": "Size of the persistent disk, specified in GB. You can specify this\nfield when creating a persistent disk using the `image_id` or `snapshot_id`\nparameter, or specify it alone to create an empty persistent disk.\nIf you specify this field along with `image_id` or `snapshot_id`,\nthe size value must not be less than the size of the source image\nor the size of the snapshot.\n"
          },
          "snapshotId": {
            "type": "string",
            "description": "The source snapshot to use for disk creation.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the disk.\n"
          },
          "type": {
            "type": "string",
            "description": "Type of disk to create. Provide this when creating a disk.\n"
          },
          "zone": {
            "type": "string",
            "description": "Availability zone where the disk will reside.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/computeDiskPlacementGroup:ComputeDiskPlacementGroup": {
      "description": "A Disk Placement Group resource. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/compute/concepts/disk#nr-disks).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst group1 = new yandex.ComputeDiskPlacementGroup(\"group1\", {\n    description: \"my description\",\n    folderId: \"abc*********123\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ngroup1 = yandex.ComputeDiskPlacementGroup(\"group1\",\n    description=\"my description\",\n    folder_id=\"abc*********123\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var group1 = new Yandex.ComputeDiskPlacementGroup(\"group1\", new Yandex.ComputeDiskPlacementGroupArgs\n        {\n            Description = \"my description\",\n            FolderId = \"abc*********123\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewComputeDiskPlacementGroup(ctx, \"group1\", &yandex.ComputeDiskPlacementGroupArgs{\n\t\t\tDescription: pulumi.String(\"my description\"),\n\t\t\tFolderId:    pulumi.String(\"abc*********123\"),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "A description of the Disk Placement Group.\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Disk Placement Group.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the Disk Placement Group.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the Disk Placement Group.\n"
        },
        "zone": {
          "type": "string",
          "description": "ID of the zone where the Disk Placement Group resides.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "name",
        "status"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "A description of the Disk Placement Group.\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Disk Placement Group.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the Disk Placement Group.\n"
        },
        "zone": {
          "type": "string",
          "description": "ID of the zone where the Disk Placement Group resides.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeDiskPlacementGroup resources.\n",
        "properties": {
          "createdAt": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "A description of the Disk Placement Group.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Disk Placement Group.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the Disk Placement Group.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the Disk Placement Group.\n"
          },
          "zone": {
            "type": "string",
            "description": "ID of the zone where the Disk Placement Group resides.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/computeImage:ComputeImage": {
      "description": "Creates a virtual machine image resource for the Yandex Compute Cloud service from an existing\ntarball. For more information, see [the official documentation](https://cloud.yandex.com/docs/compute/concepts/image).\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo_image = new yandex.ComputeImage(\"foo-image\", {\n    sourceUrl: \"https://storage.yandexcloud.net/lucky-images/kube-it.img\",\n});\nconst vm = new yandex.ComputeInstance(\"vm\", {\n    bootDisk: {\n        initializeParams: {\n            imageId: foo_image.id,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_image = yandex.ComputeImage(\"foo-image\", source_url=\"https://storage.yandexcloud.net/lucky-images/kube-it.img\")\nvm = yandex.ComputeInstance(\"vm\", boot_disk=yandex.ComputeInstanceBootDiskArgs(\n    initialize_params=yandex.ComputeInstanceBootDiskInitializeParamsArgs(\n        image_id=foo_image.id,\n    ),\n))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo_image = new Yandex.ComputeImage(\"foo-image\", new Yandex.ComputeImageArgs\n        {\n            SourceUrl = \"https://storage.yandexcloud.net/lucky-images/kube-it.img\",\n        });\n        var vm = new Yandex.ComputeInstance(\"vm\", new Yandex.ComputeInstanceArgs\n        {\n            BootDisk = new Yandex.Inputs.ComputeInstanceBootDiskArgs\n            {\n                InitializeParams = new Yandex.Inputs.ComputeInstanceBootDiskInitializeParamsArgs\n                {\n                    ImageId = foo_image.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewComputeImage(ctx, \"foo-image\", &yandex.ComputeImageArgs{\n\t\t\tSourceUrl: pulumi.String(\"https://storage.yandexcloud.net/lucky-images/kube-it.img\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewComputeInstance(ctx, \"vm\", &yandex.ComputeInstanceArgs{\n\t\t\tBootDisk: &ComputeInstanceBootDiskArgs{\n\t\t\t\tInitializeParams: &ComputeInstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImageId: foo_image.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA VM image can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/computeImage:ComputeImage web-image image_id\n```\n\n ",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the image.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description of the image. Provide this property when\nyou create a resource.\n"
        },
        "family": {
          "type": "string",
          "description": "The name of the image family to which this image belongs.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the image.\n"
        },
        "minDiskSize": {
          "type": "integer",
          "description": "Minimum size in GB of the disk that will be created from this image.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the disk.\n"
        },
        "osType": {
          "type": "string",
          "description": "Operating system type that is contained in the image. Possible values: \"LINUX\", \"WINDOWS\".\n"
        },
        "pooled": {
          "type": "boolean",
          "description": "Optimize the image to create a disk.\n"
        },
        "productIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "License IDs that indicate which licenses are\nattached to this image.\n"
        },
        "size": {
          "type": "integer",
          "description": "The size of the image, specified in GB.\n"
        },
        "sourceDisk": {
          "type": "string",
          "description": "The ID of a disk to use as the source of the\nimage. Changing this ID forces a new resource to be created.\n"
        },
        "sourceFamily": {
          "type": "string",
          "description": "The name of the family to use as the source of the new image.\nThe ID of the latest image is taken from the \"standard-images\" folder. Changing the family forces\na new resource to be created.\n"
        },
        "sourceImage": {
          "type": "string",
          "description": "The ID of an existing image to use as the source of the\nimage. Changing this ID forces a new resource to be created.\n"
        },
        "sourceSnapshot": {
          "type": "string",
          "description": "The ID of a snapshot to use as the source of the\nimage. Changing this ID forces a new resource to be created.\n"
        },
        "sourceUrl": {
          "type": "string",
          "description": "The URL to use as the source of the\nimage. Changing this URL forces a new resource to be created.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the image.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "minDiskSize",
        "name",
        "osType",
        "pooled",
        "productIds",
        "size",
        "sourceDisk",
        "sourceFamily",
        "sourceImage",
        "sourceSnapshot",
        "sourceUrl",
        "status"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "An optional description of the image. Provide this property when\nyou create a resource.\n"
        },
        "family": {
          "type": "string",
          "description": "The name of the image family to which this image belongs.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the image.\n"
        },
        "minDiskSize": {
          "type": "integer",
          "description": "Minimum size in GB of the disk that will be created from this image.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the disk.\n"
        },
        "osType": {
          "type": "string",
          "description": "Operating system type that is contained in the image. Possible values: \"LINUX\", \"WINDOWS\".\n"
        },
        "pooled": {
          "type": "boolean",
          "description": "Optimize the image to create a disk.\n"
        },
        "productIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "License IDs that indicate which licenses are\nattached to this image.\n"
        },
        "sourceDisk": {
          "type": "string",
          "description": "The ID of a disk to use as the source of the\nimage. Changing this ID forces a new resource to be created.\n"
        },
        "sourceFamily": {
          "type": "string",
          "description": "The name of the family to use as the source of the new image.\nThe ID of the latest image is taken from the \"standard-images\" folder. Changing the family forces\na new resource to be created.\n"
        },
        "sourceImage": {
          "type": "string",
          "description": "The ID of an existing image to use as the source of the\nimage. Changing this ID forces a new resource to be created.\n"
        },
        "sourceSnapshot": {
          "type": "string",
          "description": "The ID of a snapshot to use as the source of the\nimage. Changing this ID forces a new resource to be created.\n"
        },
        "sourceUrl": {
          "type": "string",
          "description": "The URL to use as the source of the\nimage. Changing this URL forces a new resource to be created.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeImage resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the image.\n"
          },
          "description": {
            "type": "string",
            "description": "An optional description of the image. Provide this property when\nyou create a resource.\n"
          },
          "family": {
            "type": "string",
            "description": "The name of the image family to which this image belongs.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the image.\n"
          },
          "minDiskSize": {
            "type": "integer",
            "description": "Minimum size in GB of the disk that will be created from this image.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the disk.\n"
          },
          "osType": {
            "type": "string",
            "description": "Operating system type that is contained in the image. Possible values: \"LINUX\", \"WINDOWS\".\n"
          },
          "pooled": {
            "type": "boolean",
            "description": "Optimize the image to create a disk.\n"
          },
          "productIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "License IDs that indicate which licenses are\nattached to this image.\n"
          },
          "size": {
            "type": "integer",
            "description": "The size of the image, specified in GB.\n"
          },
          "sourceDisk": {
            "type": "string",
            "description": "The ID of a disk to use as the source of the\nimage. Changing this ID forces a new resource to be created.\n"
          },
          "sourceFamily": {
            "type": "string",
            "description": "The name of the family to use as the source of the new image.\nThe ID of the latest image is taken from the \"standard-images\" folder. Changing the family forces\na new resource to be created.\n"
          },
          "sourceImage": {
            "type": "string",
            "description": "The ID of an existing image to use as the source of the\nimage. Changing this ID forces a new resource to be created.\n"
          },
          "sourceSnapshot": {
            "type": "string",
            "description": "The ID of a snapshot to use as the source of the\nimage. Changing this ID forces a new resource to be created.\n"
          },
          "sourceUrl": {
            "type": "string",
            "description": "The URL to use as the source of the\nimage. Changing this URL forces a new resource to be created.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the image.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/computeInstance:ComputeInstance": {
      "description": "A VM instance resource. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/compute/concepts/vm).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"foo\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"foo\", {\n    networkId: fooVpcNetwork.id,\n    zone: \"ru-central1-a\",\n});\nconst defaultComputeInstance = new yandex.ComputeInstance(\"default\", {\n    bootDisk: {\n        initializeParams: {\n            imageId: \"image_id\",\n        },\n    },\n    metadata: {\n        foo: \"bar\",\n        \"ssh-keys\": `ubuntu:${fs.readFileSync(\"~/.ssh/id_rsa.pub\", \"utf-8\")}`,\n    },\n    networkInterfaces: [{\n        subnetId: fooVpcSubnet.id,\n    }],\n    platformId: \"standard-v1\",\n    resources: {\n        cores: 2,\n        memory: 4,\n    },\n    zone: \"ru-central1-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    network_id=foo_vpc_network.id,\n    zone=\"ru-central1-a\")\ndefault = yandex.ComputeInstance(\"default\",\n    boot_disk=yandex.ComputeInstanceBootDiskArgs(\n        initialize_params=yandex.ComputeInstanceBootDiskInitializeParamsArgs(\n            image_id=\"image_id\",\n        ),\n    ),\n    metadata={\n        \"foo\": \"bar\",\n        \"ssh-keys\": f\"ubuntu:{(lambda path: open(path).read())('~/.ssh/id_rsa.pub')}\",\n    },\n    network_interfaces=[yandex.ComputeInstanceNetworkInterfaceArgs(\n        subnet_id=foo_vpc_subnet.id,\n    )],\n    platform_id=\"standard-v1\",\n    resources=yandex.ComputeInstanceResourcesArgs(\n        cores=2,\n        memory=4,\n    ),\n    zone=\"ru-central1-a\")\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            Zone = \"ru-central1-a\",\n        });\n        var @default = new Yandex.ComputeInstance(\"default\", new Yandex.ComputeInstanceArgs\n        {\n            BootDisk = new Yandex.Inputs.ComputeInstanceBootDiskArgs\n            {\n                InitializeParams = new Yandex.Inputs.ComputeInstanceBootDiskInitializeParamsArgs\n                {\n                    ImageId = \"image_id\",\n                },\n            },\n            Metadata = \n            {\n                { \"foo\", \"bar\" },\n                { \"ssh-keys\", $\"ubuntu:{File.ReadAllText(\"~/.ssh/id_rsa.pub\")}\" },\n            },\n            NetworkInterfaces = \n            {\n                new Yandex.Inputs.ComputeInstanceNetworkInterfaceArgs\n                {\n                    SubnetId = fooVpcSubnet.Id,\n                },\n            },\n            PlatformId = \"standard-v1\",\n            Resources = new Yandex.Inputs.ComputeInstanceResourcesArgs\n            {\n                Cores = 2,\n                Memory = 4,\n            },\n            Zone = \"ru-central1-a\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tZone:      pulumi.String(\"ru-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewComputeInstance(ctx, \"default\", &yandex.ComputeInstanceArgs{\n\t\t\tBootDisk: &ComputeInstanceBootDiskArgs{\n\t\t\t\tInitializeParams: &ComputeInstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImageId: pulumi.String(\"image_id\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\"foo\":      pulumi.String(\"bar\"),\n\t\t\t\t\"ssh-keys\": pulumi.String(fmt.Sprintf(\"%v%v\", \"ubuntu:\", readFileOrPanic(\"~/.ssh/id_rsa.pub\"))),\n\t\t\t},\n\t\t\tNetworkInterfaces: ComputeInstanceNetworkInterfaceArray{\n\t\t\t\t&ComputeInstanceNetworkInterfaceArgs{\n\t\t\t\t\tSubnetId: fooVpcSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlatformId: pulumi.String(\"standard-v1\"),\n\t\t\tResources: &ComputeInstanceResourcesArgs{\n\t\t\t\tCores:  pulumi.Int(2),\n\t\t\t\tMemory: pulumi.Float64(4),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-a\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `ID` of an instance, e.g.\n\n```sh\n $ pulumi import yandex:index/computeInstance:ComputeInstance default instance_id\n```\n\n ",
      "properties": {
        "allowStoppingForUpdate": {
          "type": "boolean"
        },
        "bootDisk": {
          "$ref": "#/types/yandex:index%2FComputeInstanceBootDisk:ComputeInstanceBootDisk",
          "description": "The boot disk for the instance. The structure is documented below.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the instance.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the boot disk.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "fqdn": {
          "type": "string",
          "description": "DNS record FQDN (must have a dot at the end).\n"
        },
        "hostname": {
          "type": "string",
          "description": "Host name for the instance. This field is used to generate the instance `fqdn` value. \nThe host name must be unique within the network and region. If not specified, the host name will be equal\nto `id` of the instance and `fqdn` will be `<id>.auto.internal`.\nOtherwise FQDN will be `<hostname>.<region_id>.internal`.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the instance.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Metadata key/value pairs to make available from\nwithin the instance.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the boot disk.\n"
        },
        "networkAccelerationType": {
          "type": "string",
          "description": "Type of network acceleration. The default is `standard`. Values: `standard`, `software_accelerated`\n"
        },
        "networkInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceNetworkInterface:ComputeInstanceNetworkInterface"
          },
          "description": "Networks to attach to the instance. This can\nbe specified multiple times. The structure is documented below.\n"
        },
        "placementPolicy": {
          "$ref": "#/types/yandex:index%2FComputeInstancePlacementPolicy:ComputeInstancePlacementPolicy",
          "description": "The placement policy configuration. The structure is documented below.\n"
        },
        "platformId": {
          "type": "string",
          "description": "The type of virtual machine to create. The default is 'standard-v1'.\n"
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FComputeInstanceResources:ComputeInstanceResources",
          "description": "Compute resources that are allocated for the instance. The structure is documented below.\n"
        },
        "schedulingPolicy": {
          "$ref": "#/types/yandex:index%2FComputeInstanceSchedulingPolicy:ComputeInstanceSchedulingPolicy",
          "description": "Scheduling policy configuration. The structure is documented below.\n"
        },
        "secondaryDisks": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceSecondaryDisk:ComputeInstanceSecondaryDisk"
          },
          "description": "A list of disks to attach to the instance. The structure is documented below.\n**Note**: The `allow_stopping_for_update` property must be set to true in order to update this structure.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "ID of the service account authorized for this instance.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of this instance.\n"
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the virtual machine will be created. If it is not provided,\nthe default provider folder is used.\n"
        }
      },
      "type": "object",
      "required": [
        "bootDisk",
        "createdAt",
        "folderId",
        "fqdn",
        "hostname",
        "name",
        "networkInterfaces",
        "placementPolicy",
        "resources",
        "schedulingPolicy",
        "serviceAccountId",
        "status",
        "zone"
      ],
      "inputProperties": {
        "allowStoppingForUpdate": {
          "type": "boolean"
        },
        "bootDisk": {
          "$ref": "#/types/yandex:index%2FComputeInstanceBootDisk:ComputeInstanceBootDisk",
          "description": "The boot disk for the instance. The structure is documented below.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the boot disk.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "hostname": {
          "type": "string",
          "description": "Host name for the instance. This field is used to generate the instance `fqdn` value. \nThe host name must be unique within the network and region. If not specified, the host name will be equal\nto `id` of the instance and `fqdn` will be `<id>.auto.internal`.\nOtherwise FQDN will be `<hostname>.<region_id>.internal`.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the instance.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Metadata key/value pairs to make available from\nwithin the instance.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the boot disk.\n"
        },
        "networkAccelerationType": {
          "type": "string",
          "description": "Type of network acceleration. The default is `standard`. Values: `standard`, `software_accelerated`\n"
        },
        "networkInterfaces": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceNetworkInterface:ComputeInstanceNetworkInterface"
          },
          "description": "Networks to attach to the instance. This can\nbe specified multiple times. The structure is documented below.\n"
        },
        "placementPolicy": {
          "$ref": "#/types/yandex:index%2FComputeInstancePlacementPolicy:ComputeInstancePlacementPolicy",
          "description": "The placement policy configuration. The structure is documented below.\n"
        },
        "platformId": {
          "type": "string",
          "description": "The type of virtual machine to create. The default is 'standard-v1'.\n"
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FComputeInstanceResources:ComputeInstanceResources",
          "description": "Compute resources that are allocated for the instance. The structure is documented below.\n"
        },
        "schedulingPolicy": {
          "$ref": "#/types/yandex:index%2FComputeInstanceSchedulingPolicy:ComputeInstanceSchedulingPolicy",
          "description": "Scheduling policy configuration. The structure is documented below.\n"
        },
        "secondaryDisks": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceSecondaryDisk:ComputeInstanceSecondaryDisk"
          },
          "description": "A list of disks to attach to the instance. The structure is documented below.\n**Note**: The `allow_stopping_for_update` property must be set to true in order to update this structure.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "ID of the service account authorized for this instance.\n"
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the virtual machine will be created. If it is not provided,\nthe default provider folder is used.\n"
        }
      },
      "requiredInputs": [
        "bootDisk",
        "networkInterfaces",
        "resources"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeInstance resources.\n",
        "properties": {
          "allowStoppingForUpdate": {
            "type": "boolean"
          },
          "bootDisk": {
            "$ref": "#/types/yandex:index%2FComputeInstanceBootDisk:ComputeInstanceBootDisk",
            "description": "The boot disk for the instance. The structure is documented below.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the instance.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the boot disk.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
          },
          "fqdn": {
            "type": "string",
            "description": "DNS record FQDN (must have a dot at the end).\n"
          },
          "hostname": {
            "type": "string",
            "description": "Host name for the instance. This field is used to generate the instance `fqdn` value. \nThe host name must be unique within the network and region. If not specified, the host name will be equal\nto `id` of the instance and `fqdn` will be `<id>.auto.internal`.\nOtherwise FQDN will be `<hostname>.<region_id>.internal`.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the instance.\n"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metadata key/value pairs to make available from\nwithin the instance.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the boot disk.\n"
          },
          "networkAccelerationType": {
            "type": "string",
            "description": "Type of network acceleration. The default is `standard`. Values: `standard`, `software_accelerated`\n"
          },
          "networkInterfaces": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FComputeInstanceNetworkInterface:ComputeInstanceNetworkInterface"
            },
            "description": "Networks to attach to the instance. This can\nbe specified multiple times. The structure is documented below.\n"
          },
          "placementPolicy": {
            "$ref": "#/types/yandex:index%2FComputeInstancePlacementPolicy:ComputeInstancePlacementPolicy",
            "description": "The placement policy configuration. The structure is documented below.\n"
          },
          "platformId": {
            "type": "string",
            "description": "The type of virtual machine to create. The default is 'standard-v1'.\n"
          },
          "resources": {
            "$ref": "#/types/yandex:index%2FComputeInstanceResources:ComputeInstanceResources",
            "description": "Compute resources that are allocated for the instance. The structure is documented below.\n"
          },
          "schedulingPolicy": {
            "$ref": "#/types/yandex:index%2FComputeInstanceSchedulingPolicy:ComputeInstanceSchedulingPolicy",
            "description": "Scheduling policy configuration. The structure is documented below.\n"
          },
          "secondaryDisks": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FComputeInstanceSecondaryDisk:ComputeInstanceSecondaryDisk"
            },
            "description": "A list of disks to attach to the instance. The structure is documented below.\n**Note**: The `allow_stopping_for_update` property must be set to true in order to update this structure.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "ID of the service account authorized for this instance.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of this instance.\n"
          },
          "zone": {
            "type": "string",
            "description": "The availability zone where the virtual machine will be created. If it is not provided,\nthe default provider folder is used.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/computeInstanceGroup:ComputeInstanceGroup": {
      "description": "An Instance group resource. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/compute/concepts/instance-groups/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst group1 = new yandex.ComputeInstanceGroup(\"group1\", {\n    allocationPolicy: {\n        zones: [\"ru-central1-a\"],\n    },\n    deletionProtection: true,\n    deployPolicy: {\n        maxCreating: 2,\n        maxDeleting: 2,\n        maxExpansion: 2,\n        maxUnavailable: 2,\n    },\n    folderId: yandex_resourcemanager_folder_test_folder.id,\n    instanceTemplate: {\n        bootDisk: {\n            initializeParams: {\n                imageId: yandex_compute_image_ubuntu.id,\n                size: 4,\n            },\n            mode: \"READ_WRITE\",\n        },\n        labels: {\n            label1: \"label1-value\",\n            label2: \"label2-value\",\n        },\n        metadata: {\n            foo: \"bar\",\n            \"ssh-keys\": `ubuntu:${fs.readFileSync(\"~/.ssh/id_rsa.pub\", \"utf-8\")}`,\n        },\n        networkInterfaces: [{\n            networkId: yandex_vpc_network_my_inst_group_network.id,\n            subnetIds: [yandex_vpc_subnet_my_inst_group_subnet.id],\n        }],\n        networkSettings: [{\n            type: \"STANDARD\",\n        }],\n        platformId: \"standard-v1\",\n        resources: {\n            cores: 2,\n            memory: 1,\n        },\n    },\n    scalePolicy: {\n        fixedScale: {\n            size: 3,\n        },\n    },\n    serviceAccountId: yandex_iam_service_account_test_account.id,\n    variables: {\n        test_key1: \"test_value1\",\n        test_key2: \"test_value2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ngroup1 = yandex.ComputeInstanceGroup(\"group1\",\n    allocation_policy=yandex.ComputeInstanceGroupAllocationPolicyArgs(\n        zones=[\"ru-central1-a\"],\n    ),\n    deletion_protection=True,\n    deploy_policy=yandex.ComputeInstanceGroupDeployPolicyArgs(\n        max_creating=2,\n        max_deleting=2,\n        max_expansion=2,\n        max_unavailable=2,\n    ),\n    folder_id=data[\"yandex_resourcemanager_folder\"][\"test_folder\"][\"id\"],\n    instance_template=yandex.ComputeInstanceGroupInstanceTemplateArgs(\n        boot_disk=yandex.ComputeInstanceGroupInstanceTemplateBootDiskArgs(\n            initialize_params=yandex.ComputeInstanceGroupInstanceTemplateBootDiskInitializeParamsArgs(\n                image_id=data[\"yandex_compute_image\"][\"ubuntu\"][\"id\"],\n                size=4,\n            ),\n            mode=\"READ_WRITE\",\n        ),\n        labels={\n            \"label1\": \"label1-value\",\n            \"label2\": \"label2-value\",\n        },\n        metadata={\n            \"foo\": \"bar\",\n            \"ssh-keys\": f\"ubuntu:{(lambda path: open(path).read())('~/.ssh/id_rsa.pub')}\",\n        },\n        network_interfaces=[yandex.ComputeInstanceGroupInstanceTemplateNetworkInterfaceArgs(\n            network_id=yandex_vpc_network[\"my-inst-group-network\"][\"id\"],\n            subnet_ids=[yandex_vpc_subnet[\"my-inst-group-subnet\"][\"id\"]],\n        )],\n        network_settings=[yandex.ComputeInstanceGroupInstanceTemplateNetworkSettingArgs(\n            type=\"STANDARD\",\n        )],\n        platform_id=\"standard-v1\",\n        resources=yandex.ComputeInstanceGroupInstanceTemplateResourcesArgs(\n            cores=2,\n            memory=1,\n        ),\n    ),\n    scale_policy=yandex.ComputeInstanceGroupScalePolicyArgs(\n        fixed_scale=yandex.ComputeInstanceGroupScalePolicyFixedScaleArgs(\n            size=3,\n        ),\n    ),\n    service_account_id=yandex_iam_service_account[\"test_account\"][\"id\"],\n    variables={\n        \"test_key1\": \"test_value1\",\n        \"test_key2\": \"test_value2\",\n    })\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var group1 = new Yandex.ComputeInstanceGroup(\"group1\", new Yandex.ComputeInstanceGroupArgs\n        {\n            AllocationPolicy = new Yandex.Inputs.ComputeInstanceGroupAllocationPolicyArgs\n            {\n                Zones = \n                {\n                    \"ru-central1-a\",\n                },\n            },\n            DeletionProtection = true,\n            DeployPolicy = new Yandex.Inputs.ComputeInstanceGroupDeployPolicyArgs\n            {\n                MaxCreating = 2,\n                MaxDeleting = 2,\n                MaxExpansion = 2,\n                MaxUnavailable = 2,\n            },\n            FolderId = data.Yandex_resourcemanager_folder.Test_folder.Id,\n            InstanceTemplate = new Yandex.Inputs.ComputeInstanceGroupInstanceTemplateArgs\n            {\n                BootDisk = new Yandex.Inputs.ComputeInstanceGroupInstanceTemplateBootDiskArgs\n                {\n                    InitializeParams = new Yandex.Inputs.ComputeInstanceGroupInstanceTemplateBootDiskInitializeParamsArgs\n                    {\n                        ImageId = data.Yandex_compute_image.Ubuntu.Id,\n                        Size = 4,\n                    },\n                    Mode = \"READ_WRITE\",\n                },\n                Labels = \n                {\n                    { \"label1\", \"label1-value\" },\n                    { \"label2\", \"label2-value\" },\n                },\n                Metadata = \n                {\n                    { \"foo\", \"bar\" },\n                    { \"ssh-keys\", $\"ubuntu:{File.ReadAllText(\"~/.ssh/id_rsa.pub\")}\" },\n                },\n                NetworkInterfaces = \n                {\n                    new Yandex.Inputs.ComputeInstanceGroupInstanceTemplateNetworkInterfaceArgs\n                    {\n                        NetworkId = yandex_vpc_network.My_inst_group_network.Id,\n                        SubnetIds = \n                        {\n                            yandex_vpc_subnet.My_inst_group_subnet.Id,\n                        },\n                    },\n                },\n                NetworkSettings = \n                {\n                    new Yandex.Inputs.ComputeInstanceGroupInstanceTemplateNetworkSettingArgs\n                    {\n                        Type = \"STANDARD\",\n                    },\n                },\n                PlatformId = \"standard-v1\",\n                Resources = new Yandex.Inputs.ComputeInstanceGroupInstanceTemplateResourcesArgs\n                {\n                    Cores = 2,\n                    Memory = 1,\n                },\n            },\n            ScalePolicy = new Yandex.Inputs.ComputeInstanceGroupScalePolicyArgs\n            {\n                FixedScale = new Yandex.Inputs.ComputeInstanceGroupScalePolicyFixedScaleArgs\n                {\n                    Size = 3,\n                },\n            },\n            ServiceAccountId = yandex_iam_service_account.Test_account.Id,\n            Variables = \n            {\n                { \"test_key1\", \"test_value1\" },\n                { \"test_key2\", \"test_value2\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := yandex.NewComputeInstanceGroup(ctx, \"group1\", &yandex.ComputeInstanceGroupArgs{\n\t\t\tAllocationPolicy: &ComputeInstanceGroupAllocationPolicyArgs{\n\t\t\t\tZones: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ru-central1-a\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t\tDeployPolicy: &ComputeInstanceGroupDeployPolicyArgs{\n\t\t\t\tMaxCreating:    pulumi.Int(2),\n\t\t\t\tMaxDeleting:    pulumi.Int(2),\n\t\t\t\tMaxExpansion:   pulumi.Int(2),\n\t\t\t\tMaxUnavailable: pulumi.Int(2),\n\t\t\t},\n\t\t\tFolderId: pulumi.Any(data.Yandex_resourcemanager_folder.Test_folder.Id),\n\t\t\tInstanceTemplate: &ComputeInstanceGroupInstanceTemplateArgs{\n\t\t\t\tBootDisk: &ComputeInstanceGroupInstanceTemplateBootDiskArgs{\n\t\t\t\t\tInitializeParams: &ComputeInstanceGroupInstanceTemplateBootDiskInitializeParamsArgs{\n\t\t\t\t\t\tImageId: pulumi.Any(data.Yandex_compute_image.Ubuntu.Id),\n\t\t\t\t\t\tSize:    pulumi.Int(4),\n\t\t\t\t\t},\n\t\t\t\t\tMode: pulumi.String(\"READ_WRITE\"),\n\t\t\t\t},\n\t\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\t\"label1\": pulumi.String(\"label1-value\"),\n\t\t\t\t\t\"label2\": pulumi.String(\"label2-value\"),\n\t\t\t\t},\n\t\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\t\"foo\":      pulumi.String(\"bar\"),\n\t\t\t\t\t\"ssh-keys\": pulumi.String(fmt.Sprintf(\"%v%v\", \"ubuntu:\", readFileOrPanic(\"~/.ssh/id_rsa.pub\"))),\n\t\t\t\t},\n\t\t\t\tNetworkInterfaces: ComputeInstanceGroupInstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\t&ComputeInstanceGroupInstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\t\tNetworkId: pulumi.Any(yandex_vpc_network.My - inst - group - network.Id),\n\t\t\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.Any(yandex_vpc_subnet.My - inst - group - subnet.Id),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tNetworkSettings: ComputeInstanceGroupInstanceTemplateNetworkSettingArray{\n\t\t\t\t\t&ComputeInstanceGroupInstanceTemplateNetworkSettingArgs{\n\t\t\t\t\t\tType: pulumi.String(\"STANDARD\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPlatformId: pulumi.String(\"standard-v1\"),\n\t\t\t\tResources: &ComputeInstanceGroupInstanceTemplateResourcesArgs{\n\t\t\t\t\tCores:  pulumi.Int(2),\n\t\t\t\t\tMemory: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tScalePolicy: &ComputeInstanceGroupScalePolicyArgs{\n\t\t\t\tFixedScale: &ComputeInstanceGroupScalePolicyFixedScaleArgs{\n\t\t\t\t\tSize: pulumi.Int(3),\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceAccountId: pulumi.Any(yandex_iam_service_account.Test_account.Id),\n\t\t\tVariables: pulumi.StringMap{\n\t\t\t\t\"test_key1\": pulumi.String(\"test_value1\"),\n\t\t\t\t\"test_key2\": pulumi.String(\"test_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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "allocationPolicy": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupAllocationPolicy:ComputeInstanceGroupAllocationPolicy",
          "description": "The allocation policy of the instance group by zone and region. The structure is documented below.\n"
        },
        "applicationLoadBalancer": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupApplicationLoadBalancer:ComputeInstanceGroupApplicationLoadBalancer",
          "description": "Application Load balancing (L7) specifications. The structure is documented below.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The instance group creation timestamp.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Flag that protects the instance group from accidental deletion.\n"
        },
        "deployPolicy": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupDeployPolicy:ComputeInstanceGroupDeployPolicy",
          "description": "The deployment policy of the instance group. The structure is documented below.\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the boot disk.\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder ID of custom metric in Yandex Monitoring that should be used for scaling.\n"
        },
        "healthChecks": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupHealthCheck:ComputeInstanceGroupHealthCheck"
          },
          "description": "Health check specifications. The structure is documented below.\n"
        },
        "instanceTemplate": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplate:ComputeInstanceGroupInstanceTemplate",
          "description": "The template for creating new instances. The structure is documented below.\n"
        },
        "instances": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstance:ComputeInstanceGroupInstance"
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of labels of metric.\n"
        },
        "loadBalancer": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupLoadBalancer:ComputeInstanceGroupLoadBalancer",
          "description": "Load balancing specifications. The structure is documented below.\n"
        },
        "maxCheckingHealthDuration": {
          "type": "integer",
          "description": "Timeout for waiting for the VM to become healthy. If the timeout is exceeded, the VM will be turned off based on the deployment policy. Specified in seconds.\n"
        },
        "name": {
          "type": "string",
          "description": "Name template of the instance.  \nIn order to be unique it must contain at least one of instance unique placeholders:\n{instance.short_id}\n{instance.index}\ncombination of {instance.zone_id} and {instance.index_in_zone}\nExample: my-instance-{instance.index}\nIf not set, default is used: {instance_group.id}-{instance.short_id}\nIt may also contain another placeholders, see metadata doc for full list.\n"
        },
        "scalePolicy": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupScalePolicy:ComputeInstanceGroupScalePolicy",
          "description": "The scaling policy of the instance group. The structure is documented below.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "The ID of the service account authorized for this instance.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the instance.\n"
        },
        "variables": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value  variables pairs to assign to the instance group.\n"
        }
      },
      "type": "object",
      "required": [
        "allocationPolicy",
        "createdAt",
        "deployPolicy",
        "folderId",
        "instanceTemplate",
        "instances",
        "name",
        "scalePolicy",
        "serviceAccountId",
        "status"
      ],
      "inputProperties": {
        "allocationPolicy": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupAllocationPolicy:ComputeInstanceGroupAllocationPolicy",
          "description": "The allocation policy of the instance group by zone and region. The structure is documented below.\n"
        },
        "applicationLoadBalancer": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupApplicationLoadBalancer:ComputeInstanceGroupApplicationLoadBalancer",
          "description": "Application Load balancing (L7) specifications. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Flag that protects the instance group from accidental deletion.\n"
        },
        "deployPolicy": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupDeployPolicy:ComputeInstanceGroupDeployPolicy",
          "description": "The deployment policy of the instance group. The structure is documented below.\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the boot disk.\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder ID of custom metric in Yandex Monitoring that should be used for scaling.\n"
        },
        "healthChecks": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupHealthCheck:ComputeInstanceGroupHealthCheck"
          },
          "description": "Health check specifications. The structure is documented below.\n"
        },
        "instanceTemplate": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplate:ComputeInstanceGroupInstanceTemplate",
          "description": "The template for creating new instances. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of labels of metric.\n"
        },
        "loadBalancer": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupLoadBalancer:ComputeInstanceGroupLoadBalancer",
          "description": "Load balancing specifications. The structure is documented below.\n"
        },
        "maxCheckingHealthDuration": {
          "type": "integer",
          "description": "Timeout for waiting for the VM to become healthy. If the timeout is exceeded, the VM will be turned off based on the deployment policy. Specified in seconds.\n"
        },
        "name": {
          "type": "string",
          "description": "Name template of the instance.  \nIn order to be unique it must contain at least one of instance unique placeholders:\n{instance.short_id}\n{instance.index}\ncombination of {instance.zone_id} and {instance.index_in_zone}\nExample: my-instance-{instance.index}\nIf not set, default is used: {instance_group.id}-{instance.short_id}\nIt may also contain another placeholders, see metadata doc for full list.\n"
        },
        "scalePolicy": {
          "$ref": "#/types/yandex:index%2FComputeInstanceGroupScalePolicy:ComputeInstanceGroupScalePolicy",
          "description": "The scaling policy of the instance group. The structure is documented below.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "The ID of the service account authorized for this instance.\n"
        },
        "variables": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value  variables pairs to assign to the instance group.\n"
        }
      },
      "requiredInputs": [
        "allocationPolicy",
        "deployPolicy",
        "instanceTemplate",
        "scalePolicy",
        "serviceAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeInstanceGroup resources.\n",
        "properties": {
          "allocationPolicy": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupAllocationPolicy:ComputeInstanceGroupAllocationPolicy",
            "description": "The allocation policy of the instance group by zone and region. The structure is documented below.\n"
          },
          "applicationLoadBalancer": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupApplicationLoadBalancer:ComputeInstanceGroupApplicationLoadBalancer",
            "description": "Application Load balancing (L7) specifications. The structure is documented below.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The instance group creation timestamp.\n"
          },
          "deletionProtection": {
            "type": "boolean",
            "description": "Flag that protects the instance group from accidental deletion.\n"
          },
          "deployPolicy": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupDeployPolicy:ComputeInstanceGroupDeployPolicy",
            "description": "The deployment policy of the instance group. The structure is documented below.\n"
          },
          "description": {
            "type": "string",
            "description": "A description of the boot disk.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder ID of custom metric in Yandex Monitoring that should be used for scaling.\n"
          },
          "healthChecks": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FComputeInstanceGroupHealthCheck:ComputeInstanceGroupHealthCheck"
            },
            "description": "Health check specifications. The structure is documented below.\n"
          },
          "instanceTemplate": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstanceTemplate:ComputeInstanceGroupInstanceTemplate",
            "description": "The template for creating new instances. The structure is documented below.\n"
          },
          "instances": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FComputeInstanceGroupInstance:ComputeInstanceGroupInstance"
            }
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of labels of metric.\n"
          },
          "loadBalancer": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupLoadBalancer:ComputeInstanceGroupLoadBalancer",
            "description": "Load balancing specifications. The structure is documented below.\n"
          },
          "maxCheckingHealthDuration": {
            "type": "integer",
            "description": "Timeout for waiting for the VM to become healthy. If the timeout is exceeded, the VM will be turned off based on the deployment policy. Specified in seconds.\n"
          },
          "name": {
            "type": "string",
            "description": "Name template of the instance.  \nIn order to be unique it must contain at least one of instance unique placeholders:\n{instance.short_id}\n{instance.index}\ncombination of {instance.zone_id} and {instance.index_in_zone}\nExample: my-instance-{instance.index}\nIf not set, default is used: {instance_group.id}-{instance.short_id}\nIt may also contain another placeholders, see metadata doc for full list.\n"
          },
          "scalePolicy": {
            "$ref": "#/types/yandex:index%2FComputeInstanceGroupScalePolicy:ComputeInstanceGroupScalePolicy",
            "description": "The scaling policy of the instance group. The structure is documented below.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "The ID of the service account authorized for this instance.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the instance.\n"
          },
          "variables": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value  variables pairs to assign to the instance group.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/computePlacementGroup:ComputePlacementGroup": {
      "description": "A Placement group resource. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/compute/concepts/placement-groups).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst group1 = new yandex.ComputePlacementGroup(\"group1\", {\n    description: \"my description\",\n    folderId: \"abc*********123\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ngroup1 = yandex.ComputePlacementGroup(\"group1\",\n    description=\"my description\",\n    folder_id=\"abc*********123\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var group1 = new Yandex.ComputePlacementGroup(\"group1\", new Yandex.ComputePlacementGroupArgs\n        {\n            Description = \"my description\",\n            FolderId = \"abc*********123\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewComputePlacementGroup(ctx, \"group1\", &yandex.ComputePlacementGroupArgs{\n\t\t\tDescription: pulumi.String(\"my description\"),\n\t\t\tFolderId:    pulumi.String(\"abc*********123\"),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "A description of the Placement Group.\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Placement Group.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the Placement Group.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "name"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "A description of the Placement Group.\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Placement Group.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the Placement Group.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputePlacementGroup resources.\n",
        "properties": {
          "createdAt": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "A description of the Placement Group.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Placement Group.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the Placement Group.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/computeSnapshot:ComputeSnapshot": {
      "description": "Creates a new snapshot of a disk. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/compute/concepts/snapshot).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst defaultComputeSnapshot = new yandex.ComputeSnapshot(\"default\", {\n    labels: {\n        \"my-label\": \"my-label-value\",\n    },\n    sourceDiskId: \"test_disk_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ndefault = yandex.ComputeSnapshot(\"default\",\n    labels={\n        \"my-label\": \"my-label-value\",\n    },\n    source_disk_id=\"test_disk_id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var @default = new Yandex.ComputeSnapshot(\"default\", new Yandex.ComputeSnapshotArgs\n        {\n            Labels = \n            {\n                { \"my-label\", \"my-label-value\" },\n            },\n            SourceDiskId = \"test_disk_id\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewComputeSnapshot(ctx, \"default\", &yandex.ComputeSnapshotArgs{\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"my-label\": pulumi.String(\"my-label-value\"),\n\t\t\t},\n\t\t\tSourceDiskId: pulumi.String(\"test_disk_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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA snapshot can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/computeSnapshot:ComputeSnapshot disk-snapshot shapshot_id\n```\n\n ",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the snapshot.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the resource.\n"
        },
        "diskSize": {
          "type": "integer",
          "description": "Size of the disk when the snapshot was created, specified in GB.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the snapshot.\n"
        },
        "name": {
          "type": "string",
          "description": "A name for the resource.\n"
        },
        "sourceDiskId": {
          "type": "string",
          "description": "ID of the disk to create a snapshot from.\n"
        },
        "storageSize": {
          "type": "integer",
          "description": "Size of the snapshot, specified in GB.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "diskSize",
        "folderId",
        "name",
        "sourceDiskId",
        "storageSize"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the resource.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the snapshot.\n"
        },
        "name": {
          "type": "string",
          "description": "A name for the resource.\n"
        },
        "sourceDiskId": {
          "type": "string",
          "description": "ID of the disk to create a snapshot from.\n"
        }
      },
      "requiredInputs": [
        "sourceDiskId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeSnapshot resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the snapshot.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the resource.\n"
          },
          "diskSize": {
            "type": "integer",
            "description": "Size of the disk when the snapshot was created, specified in GB.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the snapshot.\n"
          },
          "name": {
            "type": "string",
            "description": "A name for the resource.\n"
          },
          "sourceDiskId": {
            "type": "string",
            "description": "ID of the disk to create a snapshot from.\n"
          },
          "storageSize": {
            "type": "integer",
            "description": "Size of the snapshot, specified in GB.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/containerRegistry:ContainerRegistry": {
      "description": "Creates a new container registry. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/container-registry/concepts/registry)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst defaultContainerRegistry = new yandex.ContainerRegistry(\"default\", {\n    folderId: \"test_folder_id\",\n    labels: {\n        \"my-label\": \"my-label-value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ndefault = yandex.ContainerRegistry(\"default\",\n    folder_id=\"test_folder_id\",\n    labels={\n        \"my-label\": \"my-label-value\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var @default = new Yandex.ContainerRegistry(\"default\", new Yandex.ContainerRegistryArgs\n        {\n            FolderId = \"test_folder_id\",\n            Labels = \n            {\n                { \"my-label\", \"my-label-value\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewContainerRegistry(ctx, \"default\", &yandex.ContainerRegistryArgs{\n\t\t\tFolderId: pulumi.String(\"test_folder_id\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"my-label\": pulumi.String(\"my-label-value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA registry can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/containerRegistry:ContainerRegistry default registry_id\n```\n\n ",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the registry.\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the registry.\n"
        },
        "name": {
          "type": "string",
          "description": "A name of the registry.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the registry.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "name",
        "status"
      ],
      "inputProperties": {
        "folderId": {
          "type": "string",
          "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the registry.\n"
        },
        "name": {
          "type": "string",
          "description": "A name of the registry.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ContainerRegistry resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the registry.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the registry.\n"
          },
          "name": {
            "type": "string",
            "description": "A name of the registry.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the registry.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/containerRegistryIamBinding:ContainerRegistryIamBinding": {
      "description": "## yandex\\_container\\_registry\\_iam\\_binding\n\nAllows creation and management of a single binding within IAM policy for\nan existing Yandex Container Registry.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst your_registry = new yandex.ContainerRegistry(\"your-registry\", {folderId: \"your-folder-id\"});\nconst puller = new yandex.ContainerRegistryIamBinding(\"puller\", {\n    registryId: your_registry.id,\n    role: \"container-registry.images.puller\",\n    members: [\"system:allUsers\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nyour_registry = yandex.ContainerRegistry(\"your-registry\", folder_id=\"your-folder-id\")\npuller = yandex.ContainerRegistryIamBinding(\"puller\",\n    registry_id=your_registry.id,\n    role=\"container-registry.images.puller\",\n    members=[\"system:allUsers\"])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var your_registry = new Yandex.ContainerRegistry(\"your-registry\", new Yandex.ContainerRegistryArgs\n        {\n            FolderId = \"your-folder-id\",\n        });\n        var puller = new Yandex.ContainerRegistryIamBinding(\"puller\", new Yandex.ContainerRegistryIamBindingArgs\n        {\n            RegistryId = your_registry.Id,\n            Role = \"container-registry.images.puller\",\n            Members = \n            {\n                \"system:allUsers\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewContainerRegistry(ctx, \"your-registry\", &yandex.ContainerRegistryArgs{\n\t\t\tFolderId: pulumi.String(\"your-folder-id\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewContainerRegistryIamBinding(ctx, \"puller\", &yandex.ContainerRegistryIamBindingArgs{\n\t\t\tRegistryId: your_registry.ID(),\n\t\t\tRole:       pulumi.String(\"container-registry.images.puller\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"system:allUsers\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIAM binding imports use space-delimited identifiers; first the resource in question and then the role. These bindings can be imported using the `registry_id` and role, e.g.\n\n```sh\n $ pulumi import yandex:index/containerRegistryIamBinding:ContainerRegistryIamBinding puller \"registry_id container-registry.images.puller\"\n```\n\n ",
      "properties": {
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **system:{allUsers|allAuthenticatedUsers}**: see [system groups](https://cloud.yandex.com/docs/iam/concepts/access-control/system-group)\n"
        },
        "registryId": {
          "type": "string",
          "description": "The [Yandex Container Registry](https://cloud.yandex.com/docs/container-registry/) ID to apply a binding to.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be applied. See [roles](https://cloud.yandex.com/docs/container-registry/security/).\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "members",
        "registryId",
        "role"
      ],
      "inputProperties": {
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **system:{allUsers|allAuthenticatedUsers}**: see [system groups](https://cloud.yandex.com/docs/iam/concepts/access-control/system-group)\n"
        },
        "registryId": {
          "type": "string",
          "description": "The [Yandex Container Registry](https://cloud.yandex.com/docs/container-registry/) ID to apply a binding to.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be applied. See [roles](https://cloud.yandex.com/docs/container-registry/security/).\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "requiredInputs": [
        "members",
        "registryId",
        "role"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ContainerRegistryIamBinding resources.\n",
        "properties": {
          "members": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **system:{allUsers|allAuthenticatedUsers}**: see [system groups](https://cloud.yandex.com/docs/iam/concepts/access-control/system-group)\n"
          },
          "registryId": {
            "type": "string",
            "description": "The [Yandex Container Registry](https://cloud.yandex.com/docs/container-registry/) ID to apply a binding to.\n"
          },
          "role": {
            "type": "string",
            "description": "The role that should be applied. See [roles](https://cloud.yandex.com/docs/container-registry/security/).\n"
          },
          "sleepAfter": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/containerRepository:ContainerRepository": {
      "description": "Creates a new container repository. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/container-registry/concepts/repository)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst my_registry = new yandex.ContainerRegistry(\"my-registry\", {});\nconst my_repository = new yandex.ContainerRepository(\"my-repository\", {});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_registry = yandex.ContainerRegistry(\"my-registry\")\nmy_repository = yandex.ContainerRepository(\"my-repository\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var my_registry = new Yandex.ContainerRegistry(\"my-registry\", new Yandex.ContainerRegistryArgs\n        {\n        });\n        var my_repository = new Yandex.ContainerRepository(\"my-repository\", new Yandex.ContainerRepositoryArgs\n        {\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewContainerRegistry(ctx, \"my-registry\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewContainerRepository(ctx, \"my-repository\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA repository can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/containerRepository:ContainerRepository my-repository repository_id\n```\n\n ",
      "properties": {
        "name": {
          "type": "string",
          "description": "A name of the repository. The name of the repository should start with id of a container registry and match the name of the images that will be pushed in the repository.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "A name of the repository. The name of the repository should start with id of a container registry and match the name of the images that will be pushed in the repository.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ContainerRepository resources.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "A name of the repository. The name of the repository should start with id of a container registry and match the name of the images that will be pushed in the repository.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/containerRepositoryIamBinding:ContainerRepositoryIamBinding": {
      "description": "## yandex\\_container\\_repository\\_iam\\_binding\n\nAllows creation and management of a single binding within IAM policy for\nan existing Yandex Container Repository.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst your_registry = new yandex.ContainerRegistry(\"your-registry\", {folderId: \"your-folder-id\"});\nconst repo_1 = new yandex.ContainerRepository(\"repo-1\", {});\nconst puller = new yandex.ContainerRepositoryIamBinding(\"puller\", {\n    repositoryId: repo_1.id,\n    role: \"container-registry.images.puller\",\n    members: [\"system:allUsers\"],\n});\nconst repo-2 = yandex.getContainerRepository({\n    name: \"some_repository_name\",\n});\nconst pusher = new yandex.ContainerRepositoryIamBinding(\"pusher\", {\n    repositoryId: repo_2.then(repo_2 => repo_2.id),\n    role: \"container-registry.images.pusher\",\n    members: [\"serviceAccount:your-service-account-id\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nyour_registry = yandex.ContainerRegistry(\"your-registry\", folder_id=\"your-folder-id\")\nrepo_1 = yandex.ContainerRepository(\"repo-1\")\npuller = yandex.ContainerRepositoryIamBinding(\"puller\",\n    repository_id=repo_1.id,\n    role=\"container-registry.images.puller\",\n    members=[\"system:allUsers\"])\nrepo_2 = yandex.get_container_repository(name=\"some_repository_name\")\npusher = yandex.ContainerRepositoryIamBinding(\"pusher\",\n    repository_id=repo_2.id,\n    role=\"container-registry.images.pusher\",\n    members=[\"serviceAccount:your-service-account-id\"])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var your_registry = new Yandex.ContainerRegistry(\"your-registry\", new Yandex.ContainerRegistryArgs\n        {\n            FolderId = \"your-folder-id\",\n        });\n        var repo_1 = new Yandex.ContainerRepository(\"repo-1\", new Yandex.ContainerRepositoryArgs\n        {\n        });\n        var puller = new Yandex.ContainerRepositoryIamBinding(\"puller\", new Yandex.ContainerRepositoryIamBindingArgs\n        {\n            RepositoryId = repo_1.Id,\n            Role = \"container-registry.images.puller\",\n            Members = \n            {\n                \"system:allUsers\",\n            },\n        });\n        var repo_2 = Output.Create(Yandex.GetContainerRepository.InvokeAsync(new Yandex.GetContainerRepositoryArgs\n        {\n            Name = \"some_repository_name\",\n        }));\n        var pusher = new Yandex.ContainerRepositoryIamBinding(\"pusher\", new Yandex.ContainerRepositoryIamBindingArgs\n        {\n            RepositoryId = repo_2.Apply(repo_2 => repo_2.Id),\n            Role = \"container-registry.images.pusher\",\n            Members = \n            {\n                \"serviceAccount:your-service-account-id\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewContainerRegistry(ctx, \"your-registry\", &yandex.ContainerRegistryArgs{\n\t\t\tFolderId: pulumi.String(\"your-folder-id\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewContainerRepository(ctx, \"repo-1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewContainerRepositoryIamBinding(ctx, \"puller\", &yandex.ContainerRepositoryIamBindingArgs{\n\t\t\tRepositoryId: repo_1.ID(),\n\t\t\tRole:         pulumi.String(\"container-registry.images.puller\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"system:allUsers\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\topt0 := \"some_repository_name\"\n\t\trepo_2, err := yandex.LookupContainerRepository(ctx, &GetContainerRepositoryArgs{\n\t\t\tName: &opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewContainerRepositoryIamBinding(ctx, \"pusher\", &yandex.ContainerRepositoryIamBindingArgs{\n\t\t\tRepositoryId: pulumi.String(repo_2.Id),\n\t\t\tRole:         pulumi.String(\"container-registry.images.pusher\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"serviceAccount:your-service-account-id\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIAM binding imports use space-delimited identifiers; first the resource in question and then the role. These bindings can be imported using the `repository_id` and role, e.g.\n\n```sh\n $ pulumi import yandex:index/containerRepositoryIamBinding:ContainerRepositoryIamBinding puller \"repository_id container-registry.images.puller\"\n```\n\n ",
      "properties": {
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **system:{allUsers|allAuthenticatedUsers}**: see [system groups](https://cloud.yandex.com/docs/iam/concepts/access-control/system-group)\n"
        },
        "repositoryId": {
          "type": "string",
          "description": "The [Yandex Container Repository](https://cloud.yandex.com/docs/container-registry/concepts/repository) ID to apply a binding to.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be applied. See [roles](https://cloud.yandex.com/docs/container-registry/security/).\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "members",
        "repositoryId",
        "role"
      ],
      "inputProperties": {
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **system:{allUsers|allAuthenticatedUsers}**: see [system groups](https://cloud.yandex.com/docs/iam/concepts/access-control/system-group)\n"
        },
        "repositoryId": {
          "type": "string",
          "description": "The [Yandex Container Repository](https://cloud.yandex.com/docs/container-registry/concepts/repository) ID to apply a binding to.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be applied. See [roles](https://cloud.yandex.com/docs/container-registry/security/).\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "requiredInputs": [
        "members",
        "repositoryId",
        "role"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ContainerRepositoryIamBinding resources.\n",
        "properties": {
          "members": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **system:{allUsers|allAuthenticatedUsers}**: see [system groups](https://cloud.yandex.com/docs/iam/concepts/access-control/system-group)\n"
          },
          "repositoryId": {
            "type": "string",
            "description": "The [Yandex Container Repository](https://cloud.yandex.com/docs/container-registry/concepts/repository) ID to apply a binding to.\n"
          },
          "role": {
            "type": "string",
            "description": "The role that should be applied. See [roles](https://cloud.yandex.com/docs/container-registry/security/).\n"
          },
          "sleepAfter": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/dataprocCluster:DataprocCluster": {
      "description": "Manages a Data Proc cluster. For more information, see [the official documentation](https://cloud.yandex.com/docs/data-proc/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\nimport * from \"fs\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"fooVpcNetwork\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"fooVpcSubnet\", {\n    zone: \"ru-central1-b\",\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.1.0.0/24\"],\n});\nconst dataprocIamServiceAccount = new yandex.IamServiceAccount(\"dataprocIamServiceAccount\", {description: \"service account to manage Dataproc Cluster\"});\nconst fooResourcemanagerFolder = yandex.getResourcemanagerFolder({\n    folderId: \"some_folder_id\",\n});\nconst dataprocResourcemanagerFolderIamBinding = new yandex.ResourcemanagerFolderIamBinding(\"dataprocResourcemanagerFolderIamBinding\", {\n    folderId: fooResourcemanagerFolder.then(fooResourcemanagerFolder => fooResourcemanagerFolder.id),\n    role: \"mdb.dataproc.agent\",\n    members: [pulumi.interpolate`serviceAccount:${dataprocIamServiceAccount.id}`],\n});\n// required in order to create bucket\nconst bucket_creator = new yandex.ResourcemanagerFolderIamBinding(\"bucket-creator\", {\n    folderId: fooResourcemanagerFolder.then(fooResourcemanagerFolder => fooResourcemanagerFolder.id),\n    role: \"editor\",\n    members: [pulumi.interpolate`serviceAccount:${dataprocIamServiceAccount.id}`],\n});\nconst fooIamServiceAccountStaticAccessKey = new yandex.IamServiceAccountStaticAccessKey(\"fooIamServiceAccountStaticAccessKey\", {serviceAccountId: dataprocIamServiceAccount.id});\nconst fooStorageBucket = new yandex.StorageBucket(\"fooStorageBucket\", {\n    bucket: \"foo\",\n    accessKey: fooIamServiceAccountStaticAccessKey.accessKey,\n    secretKey: fooIamServiceAccountStaticAccessKey.secretKey,\n}, {\n    dependsOn: [bucket_creator],\n});\nconst fooDataprocCluster = new yandex.DataprocCluster(\"fooDataprocCluster\", {\n    bucket: fooStorageBucket.bucket,\n    description: \"Dataproc Cluster created by Terraform\",\n    labels: {\n        created_by: \"terraform\",\n    },\n    serviceAccountId: dataprocIamServiceAccount.id,\n    zoneId: \"ru-central1-b\",\n    clusterConfig: {\n        hadoop: {\n            services: [\n                \"HDFS\",\n                \"YARN\",\n                \"SPARK\",\n                \"TEZ\",\n                \"MAPREDUCE\",\n                \"HIVE\",\n            ],\n            properties: {\n                \"yarn:yarn.resourcemanager.am.max-attempts\": 5,\n            },\n            sshPublicKeys: [fs.readFileSync(\"~/.ssh/id_rsa.pub\")],\n        },\n        subclusterSpecs: [\n            {\n                name: \"main\",\n                role: \"MASTERNODE\",\n                resources: {\n                    resourcePresetId: \"s2.small\",\n                    diskTypeId: \"network-hdd\",\n                    diskSize: 20,\n                },\n                subnetId: fooVpcSubnet.id,\n                hostsCount: 1,\n            },\n            {\n                name: \"data\",\n                role: \"DATANODE\",\n                resources: {\n                    resourcePresetId: \"s2.small\",\n                    diskTypeId: \"network-hdd\",\n                    diskSize: 20,\n                },\n                subnetId: fooVpcSubnet.id,\n                hostsCount: 2,\n            },\n            {\n                name: \"compute\",\n                role: \"COMPUTENODE\",\n                resources: {\n                    resourcePresetId: \"s2.small\",\n                    diskTypeId: \"network-hdd\",\n                    diskSize: 20,\n                },\n                subnetId: fooVpcSubnet.id,\n                hostsCount: 2,\n            },\n            {\n                name: \"compute_autoscaling\",\n                role: \"COMPUTENODE\",\n                resources: {\n                    resourcePresetId: \"s2.small\",\n                    diskTypeId: \"network-hdd\",\n                    diskSize: 20,\n                },\n                subnetId: fooVpcSubnet.id,\n                hostsCount: 2,\n                autoscalingConfig: {\n                    maxHostsCount: 10,\n                    measurementDuration: 60,\n                    warmupDuration: 60,\n                    stabilizationDuration: 120,\n                    preemptible: false,\n                    decommissionTimeout: 60,\n                },\n            },\n        ],\n    },\n}, {\n    dependsOn: [dataprocResourcemanagerFolderIamBinding],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    zone=\"ru-central1-b\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.1.0.0/24\"])\ndataproc_iam_service_account = yandex.IamServiceAccount(\"dataprocIamServiceAccount\", description=\"service account to manage Dataproc Cluster\")\nfoo_resourcemanager_folder = yandex.get_resourcemanager_folder(folder_id=\"some_folder_id\")\ndataproc_resourcemanager_folder_iam_binding = yandex.ResourcemanagerFolderIamBinding(\"dataprocResourcemanagerFolderIamBinding\",\n    folder_id=foo_resourcemanager_folder.id,\n    role=\"mdb.dataproc.agent\",\n    members=[dataproc_iam_service_account.id.apply(lambda id: f\"serviceAccount:{id}\")])\n# required in order to create bucket\nbucket_creator = yandex.ResourcemanagerFolderIamBinding(\"bucket-creator\",\n    folder_id=foo_resourcemanager_folder.id,\n    role=\"editor\",\n    members=[dataproc_iam_service_account.id.apply(lambda id: f\"serviceAccount:{id}\")])\nfoo_iam_service_account_static_access_key = yandex.IamServiceAccountStaticAccessKey(\"fooIamServiceAccountStaticAccessKey\", service_account_id=dataproc_iam_service_account.id)\nfoo_storage_bucket = yandex.StorageBucket(\"fooStorageBucket\",\n    bucket=\"foo\",\n    access_key=foo_iam_service_account_static_access_key.access_key,\n    secret_key=foo_iam_service_account_static_access_key.secret_key,\n    opts=pulumi.ResourceOptions(depends_on=[bucket_creator]))\nfoo_dataproc_cluster = yandex.DataprocCluster(\"fooDataprocCluster\",\n    bucket=foo_storage_bucket.bucket,\n    description=\"Dataproc Cluster created by Terraform\",\n    labels={\n        \"created_by\": \"terraform\",\n    },\n    service_account_id=dataproc_iam_service_account.id,\n    zone_id=\"ru-central1-b\",\n    cluster_config=yandex.DataprocClusterClusterConfigArgs(\n        hadoop=yandex.DataprocClusterClusterConfigHadoopArgs(\n            services=[\n                \"HDFS\",\n                \"YARN\",\n                \"SPARK\",\n                \"TEZ\",\n                \"MAPREDUCE\",\n                \"HIVE\",\n            ],\n            properties={\n                \"yarn:yarn.resourcemanager.am.max-attempts\": \"5\",\n            },\n            ssh_public_keys=[(lambda path: open(path).read())(\"~/.ssh/id_rsa.pub\")],\n        ),\n        subcluster_specs=[\n            yandex.DataprocClusterClusterConfigSubclusterSpecArgs(\n                name=\"main\",\n                role=\"MASTERNODE\",\n                resources=yandex.DataprocClusterClusterConfigSubclusterSpecResourcesArgs(\n                    resource_preset_id=\"s2.small\",\n                    disk_type_id=\"network-hdd\",\n                    disk_size=20,\n                ),\n                subnet_id=foo_vpc_subnet.id,\n                hosts_count=1,\n            ),\n            yandex.DataprocClusterClusterConfigSubclusterSpecArgs(\n                name=\"data\",\n                role=\"DATANODE\",\n                resources=yandex.DataprocClusterClusterConfigSubclusterSpecResourcesArgs(\n                    resource_preset_id=\"s2.small\",\n                    disk_type_id=\"network-hdd\",\n                    disk_size=20,\n                ),\n                subnet_id=foo_vpc_subnet.id,\n                hosts_count=2,\n            ),\n            yandex.DataprocClusterClusterConfigSubclusterSpecArgs(\n                name=\"compute\",\n                role=\"COMPUTENODE\",\n                resources=yandex.DataprocClusterClusterConfigSubclusterSpecResourcesArgs(\n                    resource_preset_id=\"s2.small\",\n                    disk_type_id=\"network-hdd\",\n                    disk_size=20,\n                ),\n                subnet_id=foo_vpc_subnet.id,\n                hosts_count=2,\n            ),\n            yandex.DataprocClusterClusterConfigSubclusterSpecArgs(\n                name=\"compute_autoscaling\",\n                role=\"COMPUTENODE\",\n                resources=yandex.DataprocClusterClusterConfigSubclusterSpecResourcesArgs(\n                    resource_preset_id=\"s2.small\",\n                    disk_type_id=\"network-hdd\",\n                    disk_size=20,\n                ),\n                subnet_id=foo_vpc_subnet.id,\n                hosts_count=2,\n                autoscaling_config=yandex.DataprocClusterClusterConfigSubclusterSpecAutoscalingConfigArgs(\n                    max_hosts_count=10,\n                    measurement_duration=60,\n                    warmup_duration=60,\n                    stabilization_duration=120,\n                    preemptible=False,\n                    decommission_timeout=60,\n                ),\n            ),\n        ],\n    ),\n    opts=pulumi.ResourceOptions(depends_on=[dataproc_resourcemanager_folder_iam_binding]))\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            Zone = \"ru-central1-b\",\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.1.0.0/24\",\n            },\n        });\n        var dataprocIamServiceAccount = new Yandex.IamServiceAccount(\"dataprocIamServiceAccount\", new Yandex.IamServiceAccountArgs\n        {\n            Description = \"service account to manage Dataproc Cluster\",\n        });\n        var fooResourcemanagerFolder = Output.Create(Yandex.GetResourcemanagerFolder.InvokeAsync(new Yandex.GetResourcemanagerFolderArgs\n        {\n            FolderId = \"some_folder_id\",\n        }));\n        var dataprocResourcemanagerFolderIamBinding = new Yandex.ResourcemanagerFolderIamBinding(\"dataprocResourcemanagerFolderIamBinding\", new Yandex.ResourcemanagerFolderIamBindingArgs\n        {\n            FolderId = fooResourcemanagerFolder.Apply(fooResourcemanagerFolder => fooResourcemanagerFolder.Id),\n            Role = \"mdb.dataproc.agent\",\n            Members = \n            {\n                dataprocIamServiceAccount.Id.Apply(id => $\"serviceAccount:{id}\"),\n            },\n        });\n        // required in order to create bucket\n        var bucket_creator = new Yandex.ResourcemanagerFolderIamBinding(\"bucket-creator\", new Yandex.ResourcemanagerFolderIamBindingArgs\n        {\n            FolderId = fooResourcemanagerFolder.Apply(fooResourcemanagerFolder => fooResourcemanagerFolder.Id),\n            Role = \"editor\",\n            Members = \n            {\n                dataprocIamServiceAccount.Id.Apply(id => $\"serviceAccount:{id}\"),\n            },\n        });\n        var fooIamServiceAccountStaticAccessKey = new Yandex.IamServiceAccountStaticAccessKey(\"fooIamServiceAccountStaticAccessKey\", new Yandex.IamServiceAccountStaticAccessKeyArgs\n        {\n            ServiceAccountId = dataprocIamServiceAccount.Id,\n        });\n        var fooStorageBucket = new Yandex.StorageBucket(\"fooStorageBucket\", new Yandex.StorageBucketArgs\n        {\n            Bucket = \"foo\",\n            AccessKey = fooIamServiceAccountStaticAccessKey.AccessKey,\n            SecretKey = fooIamServiceAccountStaticAccessKey.SecretKey,\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                bucket_creator,\n            },\n        });\n        var fooDataprocCluster = new Yandex.DataprocCluster(\"fooDataprocCluster\", new Yandex.DataprocClusterArgs\n        {\n            Bucket = fooStorageBucket.Bucket,\n            Description = \"Dataproc Cluster created by Terraform\",\n            Labels = \n            {\n                { \"created_by\", \"terraform\" },\n            },\n            ServiceAccountId = dataprocIamServiceAccount.Id,\n            ZoneId = \"ru-central1-b\",\n            ClusterConfig = new Yandex.Inputs.DataprocClusterClusterConfigArgs\n            {\n                Hadoop = new Yandex.Inputs.DataprocClusterClusterConfigHadoopArgs\n                {\n                    Services = \n                    {\n                        \"HDFS\",\n                        \"YARN\",\n                        \"SPARK\",\n                        \"TEZ\",\n                        \"MAPREDUCE\",\n                        \"HIVE\",\n                    },\n                    Properties = \n                    {\n                        { \"yarn:yarn.resourcemanager.am.max-attempts\", \"5\" },\n                    },\n                    SshPublicKeys = \n                    {\n                        File.ReadAllText(\"~/.ssh/id_rsa.pub\"),\n                    },\n                },\n                SubclusterSpecs = \n                {\n                    new Yandex.Inputs.DataprocClusterClusterConfigSubclusterSpecArgs\n                    {\n                        Name = \"main\",\n                        Role = \"MASTERNODE\",\n                        Resources = new Yandex.Inputs.DataprocClusterClusterConfigSubclusterSpecResourcesArgs\n                        {\n                            ResourcePresetId = \"s2.small\",\n                            DiskTypeId = \"network-hdd\",\n                            DiskSize = 20,\n                        },\n                        SubnetId = fooVpcSubnet.Id,\n                        HostsCount = 1,\n                    },\n                    new Yandex.Inputs.DataprocClusterClusterConfigSubclusterSpecArgs\n                    {\n                        Name = \"data\",\n                        Role = \"DATANODE\",\n                        Resources = new Yandex.Inputs.DataprocClusterClusterConfigSubclusterSpecResourcesArgs\n                        {\n                            ResourcePresetId = \"s2.small\",\n                            DiskTypeId = \"network-hdd\",\n                            DiskSize = 20,\n                        },\n                        SubnetId = fooVpcSubnet.Id,\n                        HostsCount = 2,\n                    },\n                    new Yandex.Inputs.DataprocClusterClusterConfigSubclusterSpecArgs\n                    {\n                        Name = \"compute\",\n                        Role = \"COMPUTENODE\",\n                        Resources = new Yandex.Inputs.DataprocClusterClusterConfigSubclusterSpecResourcesArgs\n                        {\n                            ResourcePresetId = \"s2.small\",\n                            DiskTypeId = \"network-hdd\",\n                            DiskSize = 20,\n                        },\n                        SubnetId = fooVpcSubnet.Id,\n                        HostsCount = 2,\n                    },\n                    new Yandex.Inputs.DataprocClusterClusterConfigSubclusterSpecArgs\n                    {\n                        Name = \"compute_autoscaling\",\n                        Role = \"COMPUTENODE\",\n                        Resources = new Yandex.Inputs.DataprocClusterClusterConfigSubclusterSpecResourcesArgs\n                        {\n                            ResourcePresetId = \"s2.small\",\n                            DiskTypeId = \"network-hdd\",\n                            DiskSize = 20,\n                        },\n                        SubnetId = fooVpcSubnet.Id,\n                        HostsCount = 2,\n                        AutoscalingConfig = new Yandex.Inputs.DataprocClusterClusterConfigSubclusterSpecAutoscalingConfigArgs\n                        {\n                            MaxHostsCount = 10,\n                            MeasurementDuration = 60,\n                            WarmupDuration = 60,\n                            StabilizationDuration = 120,\n                            Preemptible = false,\n                            DecommissionTimeout = 60,\n                        },\n                    },\n                },\n            },\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                dataprocResourcemanagerFolderIamBinding,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tZone:      pulumi.String(\"ru-central1-b\"),\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdataprocIamServiceAccount, err := yandex.NewIamServiceAccount(ctx, \"dataprocIamServiceAccount\", &yandex.IamServiceAccountArgs{\n\t\t\tDescription: pulumi.String(\"service account to manage Dataproc Cluster\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\topt0 := \"some_folder_id\"\n\t\tfooResourcemanagerFolder, err := yandex.LookupResourcemanagerFolder(ctx, &GetResourcemanagerFolderArgs{\n\t\t\tFolderId: &opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdataprocResourcemanagerFolderIamBinding, err := yandex.NewResourcemanagerFolderIamBinding(ctx, \"dataprocResourcemanagerFolderIamBinding\", &yandex.ResourcemanagerFolderIamBindingArgs{\n\t\t\tFolderId: pulumi.String(fooResourcemanagerFolder.Id),\n\t\t\tRole:     pulumi.String(\"mdb.dataproc.agent\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tdataprocIamServiceAccount.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"%v%v\", \"serviceAccount:\", id), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewResourcemanagerFolderIamBinding(ctx, \"bucket-creator\", &yandex.ResourcemanagerFolderIamBindingArgs{\n\t\t\tFolderId: pulumi.String(fooResourcemanagerFolder.Id),\n\t\t\tRole:     pulumi.String(\"editor\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tdataprocIamServiceAccount.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"%v%v\", \"serviceAccount:\", id), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooIamServiceAccountStaticAccessKey, err := yandex.NewIamServiceAccountStaticAccessKey(ctx, \"fooIamServiceAccountStaticAccessKey\", &yandex.IamServiceAccountStaticAccessKeyArgs{\n\t\t\tServiceAccountId: dataprocIamServiceAccount.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooStorageBucket, err := yandex.NewStorageBucket(ctx, \"fooStorageBucket\", &yandex.StorageBucketArgs{\n\t\t\tBucket:    pulumi.String(\"foo\"),\n\t\t\tAccessKey: fooIamServiceAccountStaticAccessKey.AccessKey,\n\t\t\tSecretKey: fooIamServiceAccountStaticAccessKey.SecretKey,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tbucket_creator,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewDataprocCluster(ctx, \"fooDataprocCluster\", &yandex.DataprocClusterArgs{\n\t\t\tBucket:      fooStorageBucket.Bucket,\n\t\t\tDescription: pulumi.String(\"Dataproc Cluster created by Terraform\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"created_by\": pulumi.String(\"terraform\"),\n\t\t\t},\n\t\t\tServiceAccountId: dataprocIamServiceAccount.ID(),\n\t\t\tZoneId:           pulumi.String(\"ru-central1-b\"),\n\t\t\tClusterConfig: &DataprocClusterClusterConfigArgs{\n\t\t\t\tHadoop: &DataprocClusterClusterConfigHadoopArgs{\n\t\t\t\t\tServices: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"HDFS\"),\n\t\t\t\t\t\tpulumi.String(\"YARN\"),\n\t\t\t\t\t\tpulumi.String(\"SPARK\"),\n\t\t\t\t\t\tpulumi.String(\"TEZ\"),\n\t\t\t\t\t\tpulumi.String(\"MAPREDUCE\"),\n\t\t\t\t\t\tpulumi.String(\"HIVE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProperties: pulumi.StringMap{\n\t\t\t\t\t\t\"yarn:yarn.resourcemanager.am.max-attempts\": pulumi.String(\"5\"),\n\t\t\t\t\t},\n\t\t\t\t\tSshPublicKeys: pulumi.StringArray{\n\t\t\t\t\t\treadFileOrPanic(\"~/.ssh/id_rsa.pub\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSubclusterSpecs: DataprocClusterClusterConfigSubclusterSpecArray{\n\t\t\t\t\t&DataprocClusterClusterConfigSubclusterSpecArgs{\n\t\t\t\t\t\tName: pulumi.String(\"main\"),\n\t\t\t\t\t\tRole: pulumi.String(\"MASTERNODE\"),\n\t\t\t\t\t\tResources: &DataprocClusterClusterConfigSubclusterSpecResourcesArgs{\n\t\t\t\t\t\t\tResourcePresetId: pulumi.String(\"s2.small\"),\n\t\t\t\t\t\t\tDiskTypeId:       pulumi.String(\"network-hdd\"),\n\t\t\t\t\t\t\tDiskSize:         pulumi.Int(20),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSubnetId:   fooVpcSubnet.ID(),\n\t\t\t\t\t\tHostsCount: pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t\t&DataprocClusterClusterConfigSubclusterSpecArgs{\n\t\t\t\t\t\tName: pulumi.String(\"data\"),\n\t\t\t\t\t\tRole: pulumi.String(\"DATANODE\"),\n\t\t\t\t\t\tResources: &DataprocClusterClusterConfigSubclusterSpecResourcesArgs{\n\t\t\t\t\t\t\tResourcePresetId: pulumi.String(\"s2.small\"),\n\t\t\t\t\t\t\tDiskTypeId:       pulumi.String(\"network-hdd\"),\n\t\t\t\t\t\t\tDiskSize:         pulumi.Int(20),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSubnetId:   fooVpcSubnet.ID(),\n\t\t\t\t\t\tHostsCount: pulumi.Int(2),\n\t\t\t\t\t},\n\t\t\t\t\t&DataprocClusterClusterConfigSubclusterSpecArgs{\n\t\t\t\t\t\tName: pulumi.String(\"compute\"),\n\t\t\t\t\t\tRole: pulumi.String(\"COMPUTENODE\"),\n\t\t\t\t\t\tResources: &DataprocClusterClusterConfigSubclusterSpecResourcesArgs{\n\t\t\t\t\t\t\tResourcePresetId: pulumi.String(\"s2.small\"),\n\t\t\t\t\t\t\tDiskTypeId:       pulumi.String(\"network-hdd\"),\n\t\t\t\t\t\t\tDiskSize:         pulumi.Int(20),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSubnetId:   fooVpcSubnet.ID(),\n\t\t\t\t\t\tHostsCount: pulumi.Int(2),\n\t\t\t\t\t},\n\t\t\t\t\t&DataprocClusterClusterConfigSubclusterSpecArgs{\n\t\t\t\t\t\tName: pulumi.String(\"compute_autoscaling\"),\n\t\t\t\t\t\tRole: pulumi.String(\"COMPUTENODE\"),\n\t\t\t\t\t\tResources: &DataprocClusterClusterConfigSubclusterSpecResourcesArgs{\n\t\t\t\t\t\t\tResourcePresetId: pulumi.String(\"s2.small\"),\n\t\t\t\t\t\t\tDiskTypeId:       pulumi.String(\"network-hdd\"),\n\t\t\t\t\t\t\tDiskSize:         pulumi.Int(20),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSubnetId:   fooVpcSubnet.ID(),\n\t\t\t\t\t\tHostsCount: pulumi.Int(2),\n\t\t\t\t\t\tAutoscalingConfig: &DataprocClusterClusterConfigSubclusterSpecAutoscalingConfigArgs{\n\t\t\t\t\t\t\tMaxHostsCount:         pulumi.Int(10),\n\t\t\t\t\t\t\tMeasurementDuration:   pulumi.Int(60),\n\t\t\t\t\t\t\tWarmupDuration:        pulumi.Int(60),\n\t\t\t\t\t\t\tStabilizationDuration: pulumi.Int(120),\n\t\t\t\t\t\t\tPreemptible:           pulumi.Bool(false),\n\t\t\t\t\t\t\tDecommissionTimeout:   pulumi.Int(60),\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}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdataprocResourcemanagerFolderIamBinding,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA cluster can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/dataprocCluster:DataprocCluster foo cluster_id\n```\n\n ",
      "properties": {
        "bucket": {
          "type": "string",
          "description": "Name of the Object Storage bucket to use for Data Proc jobs. Data Proc Agent saves output of job driver's process to specified bucket. In order for this to work service account (specified by the `service_account_id` argument) should be given permission to create objects within this bucket.\n"
        },
        "clusterConfig": {
          "$ref": "#/types/yandex:index%2FDataprocClusterClusterConfig:DataprocClusterClusterConfig",
          "description": "Configuration and resources for hosts that should be created with the cluster. The structure is documented below.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "(Computed) The Data Proc cluster creation timestamp.\n* `cluster_config.0.subcluster_spec.X.id` - (Computed) ID of the subcluster.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Data Proc cluster.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder to create a cluster in. If it is not provided, the default provider folder is used.\n"
        },
        "hostGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of host group IDs to place VMs of the cluster on.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Data Proc cluster.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the Data Proc subcluster.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of security group IDs that the cluster belongs to.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "Service account to be used by the Data Proc agent to access resources of Yandex.Cloud. Selected service account should have `mdb.dataproc.agent` role on the folder where the Data Proc cluster will be located.\n"
        },
        "uiProxy": {
          "type": "boolean",
          "description": "Whether to enable UI Proxy feature.\n"
        },
        "zoneId": {
          "type": "string",
          "description": "ID of the availability zone to create cluster in. If it is not provided, the default provider zone is used.\n"
        }
      },
      "type": "object",
      "required": [
        "clusterConfig",
        "createdAt",
        "deletionProtection",
        "folderId",
        "name",
        "serviceAccountId",
        "zoneId"
      ],
      "inputProperties": {
        "bucket": {
          "type": "string",
          "description": "Name of the Object Storage bucket to use for Data Proc jobs. Data Proc Agent saves output of job driver's process to specified bucket. In order for this to work service account (specified by the `service_account_id` argument) should be given permission to create objects within this bucket.\n"
        },
        "clusterConfig": {
          "$ref": "#/types/yandex:index%2FDataprocClusterClusterConfig:DataprocClusterClusterConfig",
          "description": "Configuration and resources for hosts that should be created with the cluster. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Data Proc cluster.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder to create a cluster in. If it is not provided, the default provider folder is used.\n"
        },
        "hostGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of host group IDs to place VMs of the cluster on.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Data Proc cluster.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the Data Proc subcluster.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of security group IDs that the cluster belongs to.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "Service account to be used by the Data Proc agent to access resources of Yandex.Cloud. Selected service account should have `mdb.dataproc.agent` role on the folder where the Data Proc cluster will be located.\n"
        },
        "uiProxy": {
          "type": "boolean",
          "description": "Whether to enable UI Proxy feature.\n"
        },
        "zoneId": {
          "type": "string",
          "description": "ID of the availability zone to create cluster in. If it is not provided, the default provider zone is used.\n"
        }
      },
      "requiredInputs": [
        "clusterConfig",
        "serviceAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataprocCluster resources.\n",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "Name of the Object Storage bucket to use for Data Proc jobs. Data Proc Agent saves output of job driver's process to specified bucket. In order for this to work service account (specified by the `service_account_id` argument) should be given permission to create objects within this bucket.\n"
          },
          "clusterConfig": {
            "$ref": "#/types/yandex:index%2FDataprocClusterClusterConfig:DataprocClusterClusterConfig",
            "description": "Configuration and resources for hosts that should be created with the cluster. The structure is documented below.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "(Computed) The Data Proc cluster creation timestamp.\n* `cluster_config.0.subcluster_spec.X.id` - (Computed) ID of the subcluster.\n"
          },
          "deletionProtection": {
            "type": "boolean",
            "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the Data Proc cluster.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder to create a cluster in. If it is not provided, the default provider folder is used.\n"
          },
          "hostGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of host group IDs to place VMs of the cluster on.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Data Proc cluster.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the Data Proc subcluster.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of security group IDs that the cluster belongs to.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "Service account to be used by the Data Proc agent to access resources of Yandex.Cloud. Selected service account should have `mdb.dataproc.agent` role on the folder where the Data Proc cluster will be located.\n"
          },
          "uiProxy": {
            "type": "boolean",
            "description": "Whether to enable UI Proxy feature.\n"
          },
          "zoneId": {
            "type": "string",
            "description": "ID of the availability zone to create cluster in. If it is not provided, the default provider zone is used.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/datatransferEndpoint:DatatransferEndpoint": {
      "description": "Manages a Data Transfer endpoint. For more information, see [the official documentation](https://cloud.yandex.com/docs/data-transfer/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst pgSource = new yandex.DatatransferEndpoint(\"pg_source\", {\n    settings: {\n        postgresSource: {\n            connection: {\n                onPremise: {\n                    hosts: [\"example.org\"],\n                    port: 5432,\n                },\n            },\n            database: \"db1\",\n            password: {\n                raw: \"123\",\n            },\n            slotGigabyteLagLimit: 100,\n            user: \"user1\",\n        },\n    },\n});\nconst pgTarget = new yandex.DatatransferEndpoint(\"pg_target\", {\n    folderId: \"some_folder_id\",\n    settings: {\n        postgresTarget: {\n            connection: {\n                mdbClusterId: \"some_cluster_id\",\n            },\n            database: \"db2\",\n            password: {\n                raw: \"321\",\n            },\n            user: \"user2\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\npg_source = yandex.DatatransferEndpoint(\"pgSource\", settings=yandex.DatatransferEndpointSettingsArgs(\n    postgres_source=yandex.DatatransferEndpointSettingsPostgresSourceArgs(\n        connection=yandex.DatatransferEndpointSettingsPostgresSourceConnectionArgs(\n            on_premise=yandex.DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseArgs(\n                hosts=[\"example.org\"],\n                port=5432,\n            ),\n        ),\n        database=\"db1\",\n        password=yandex.DatatransferEndpointSettingsPostgresSourcePasswordArgs(\n            raw=\"123\",\n        ),\n        slot_gigabyte_lag_limit=100,\n        user=\"user1\",\n    ),\n))\npg_target = yandex.DatatransferEndpoint(\"pgTarget\",\n    folder_id=\"some_folder_id\",\n    settings=yandex.DatatransferEndpointSettingsArgs(\n        postgres_target=yandex.DatatransferEndpointSettingsPostgresTargetArgs(\n            connection=yandex.DatatransferEndpointSettingsPostgresTargetConnectionArgs(\n                mdb_cluster_id=\"some_cluster_id\",\n            ),\n            database=\"db2\",\n            password=yandex.DatatransferEndpointSettingsPostgresTargetPasswordArgs(\n                raw=\"321\",\n            ),\n            user=\"user2\",\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var pgSource = new Yandex.DatatransferEndpoint(\"pgSource\", new Yandex.DatatransferEndpointArgs\n        {\n            Settings = new Yandex.Inputs.DatatransferEndpointSettingsArgs\n            {\n                PostgresSource = new Yandex.Inputs.DatatransferEndpointSettingsPostgresSourceArgs\n                {\n                    Connection = new Yandex.Inputs.DatatransferEndpointSettingsPostgresSourceConnectionArgs\n                    {\n                        OnPremise = new Yandex.Inputs.DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseArgs\n                        {\n                            Hosts = \n                            {\n                                \"example.org\",\n                            },\n                            Port = 5432,\n                        },\n                    },\n                    Database = \"db1\",\n                    Password = new Yandex.Inputs.DatatransferEndpointSettingsPostgresSourcePasswordArgs\n                    {\n                        Raw = \"123\",\n                    },\n                    SlotGigabyteLagLimit = 100,\n                    User = \"user1\",\n                },\n            },\n        });\n        var pgTarget = new Yandex.DatatransferEndpoint(\"pgTarget\", new Yandex.DatatransferEndpointArgs\n        {\n            FolderId = \"some_folder_id\",\n            Settings = new Yandex.Inputs.DatatransferEndpointSettingsArgs\n            {\n                PostgresTarget = new Yandex.Inputs.DatatransferEndpointSettingsPostgresTargetArgs\n                {\n                    Connection = new Yandex.Inputs.DatatransferEndpointSettingsPostgresTargetConnectionArgs\n                    {\n                        MdbClusterId = \"some_cluster_id\",\n                    },\n                    Database = \"db2\",\n                    Password = new Yandex.Inputs.DatatransferEndpointSettingsPostgresTargetPasswordArgs\n                    {\n                        Raw = \"321\",\n                    },\n                    User = \"user2\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewDatatransferEndpoint(ctx, \"pgSource\", &yandex.DatatransferEndpointArgs{\n\t\t\tSettings: &DatatransferEndpointSettingsArgs{\n\t\t\t\tPostgresSource: &DatatransferEndpointSettingsPostgresSourceArgs{\n\t\t\t\t\tConnection: &DatatransferEndpointSettingsPostgresSourceConnectionArgs{\n\t\t\t\t\t\tOnPremise: &DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseArgs{\n\t\t\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"example.org\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tPort: pulumi.Int(5432),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tDatabase: pulumi.String(\"db1\"),\n\t\t\t\t\tPassword: &DatatransferEndpointSettingsPostgresSourcePasswordArgs{\n\t\t\t\t\t\tRaw: pulumi.String(\"123\"),\n\t\t\t\t\t},\n\t\t\t\t\tSlotGigabyteLagLimit: pulumi.Int(100),\n\t\t\t\t\tUser:                 pulumi.String(\"user1\"),\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 = yandex.NewDatatransferEndpoint(ctx, \"pgTarget\", &yandex.DatatransferEndpointArgs{\n\t\t\tFolderId: pulumi.String(\"some_folder_id\"),\n\t\t\tSettings: &DatatransferEndpointSettingsArgs{\n\t\t\t\tPostgresTarget: &DatatransferEndpointSettingsPostgresTargetArgs{\n\t\t\t\t\tConnection: &DatatransferEndpointSettingsPostgresTargetConnectionArgs{\n\t\t\t\t\t\tMdbClusterId: pulumi.String(\"some_cluster_id\"),\n\t\t\t\t\t},\n\t\t\t\t\tDatabase: pulumi.String(\"db2\"),\n\t\t\t\t\tPassword: &DatatransferEndpointSettingsPostgresTargetPasswordArgs{\n\t\t\t\t\t\tRaw: pulumi.String(\"321\"),\n\t\t\t\t\t},\n\t\t\t\t\tUser: pulumi.String(\"user2\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn endpoint can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/datatransferEndpoint:DatatransferEndpoint foo endpoint_id\n```\n\n ",
      "properties": {
        "author": {
          "type": "string",
          "description": "(Computed) Identifier of the IAM user account of the user who created the endpoint.\n"
        },
        "description": {
          "type": "string",
          "description": "Arbitrary description text for the endpoint.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder to create the endpoint in. If it is not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Data Transfer endpoint.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the endpoint.\n"
        },
        "settings": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettings:DatatransferEndpointSettings",
          "description": "Settings for the endpoint. The structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "author",
        "folderId",
        "name"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Arbitrary description text for the endpoint.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder to create the endpoint in. If it is not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Data Transfer endpoint.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the endpoint.\n"
        },
        "settings": {
          "$ref": "#/types/yandex:index%2FDatatransferEndpointSettings:DatatransferEndpointSettings",
          "description": "Settings for the endpoint. The structure is documented below.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatatransferEndpoint resources.\n",
        "properties": {
          "author": {
            "type": "string",
            "description": "(Computed) Identifier of the IAM user account of the user who created the endpoint.\n"
          },
          "description": {
            "type": "string",
            "description": "Arbitrary description text for the endpoint.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder to create the endpoint in. If it is not provided, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Data Transfer endpoint.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the endpoint.\n"
          },
          "settings": {
            "$ref": "#/types/yandex:index%2FDatatransferEndpointSettings:DatatransferEndpointSettings",
            "description": "Settings for the endpoint. The structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/datatransferTransfer:DatatransferTransfer": {
      "description": "Manages a Data Transfer transfer. For more information, see [the official documentation](https://cloud.yandex.com/docs/data-transfer/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst pgSource = new yandex.DatatransferEndpoint(\"pgSource\", {settings: {\n    postgresSource: {\n        connection: {\n            onPremise: {\n                hosts: [\"example.org\"],\n                port: 5432,\n            },\n        },\n        slotGigabyteLagLimit: 100,\n        database: \"db1\",\n        user: \"user1\",\n        password: {\n            raw: \"123\",\n        },\n    },\n}});\nconst pgTarget = new yandex.DatatransferEndpoint(\"pgTarget\", {\n    folderId: \"some_folder_id\",\n    settings: {\n        postgresTarget: {\n            connection: {\n                mdbClusterId: \"some_cluster_id\",\n            },\n            database: \"db2\",\n            user: \"user2\",\n            password: {\n                raw: \"321\",\n            },\n        },\n    },\n});\nconst pgpgTransfer = new yandex.DatatransferTransfer(\"pgpgTransfer\", {\n    folderId: \"some_folder_id\",\n    sourceId: pgSource.id,\n    targetId: pgTarget.id,\n    type: \"SNAPSHOT_AND_INCREMENT\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\npg_source = yandex.DatatransferEndpoint(\"pgSource\", settings=yandex.DatatransferEndpointSettingsArgs(\n    postgres_source=yandex.DatatransferEndpointSettingsPostgresSourceArgs(\n        connection=yandex.DatatransferEndpointSettingsPostgresSourceConnectionArgs(\n            on_premise=yandex.DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseArgs(\n                hosts=[\"example.org\"],\n                port=5432,\n            ),\n        ),\n        slot_gigabyte_lag_limit=100,\n        database=\"db1\",\n        user=\"user1\",\n        password=yandex.DatatransferEndpointSettingsPostgresSourcePasswordArgs(\n            raw=\"123\",\n        ),\n    ),\n))\npg_target = yandex.DatatransferEndpoint(\"pgTarget\",\n    folder_id=\"some_folder_id\",\n    settings=yandex.DatatransferEndpointSettingsArgs(\n        postgres_target=yandex.DatatransferEndpointSettingsPostgresTargetArgs(\n            connection=yandex.DatatransferEndpointSettingsPostgresTargetConnectionArgs(\n                mdb_cluster_id=\"some_cluster_id\",\n            ),\n            database=\"db2\",\n            user=\"user2\",\n            password=yandex.DatatransferEndpointSettingsPostgresTargetPasswordArgs(\n                raw=\"321\",\n            ),\n        ),\n    ))\npgpg_transfer = yandex.DatatransferTransfer(\"pgpgTransfer\",\n    folder_id=\"some_folder_id\",\n    source_id=pg_source.id,\n    target_id=pg_target.id,\n    type=\"SNAPSHOT_AND_INCREMENT\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var pgSource = new Yandex.DatatransferEndpoint(\"pgSource\", new Yandex.DatatransferEndpointArgs\n        {\n            Settings = new Yandex.Inputs.DatatransferEndpointSettingsArgs\n            {\n                PostgresSource = new Yandex.Inputs.DatatransferEndpointSettingsPostgresSourceArgs\n                {\n                    Connection = new Yandex.Inputs.DatatransferEndpointSettingsPostgresSourceConnectionArgs\n                    {\n                        OnPremise = new Yandex.Inputs.DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseArgs\n                        {\n                            Hosts = \n                            {\n                                \"example.org\",\n                            },\n                            Port = 5432,\n                        },\n                    },\n                    SlotGigabyteLagLimit = 100,\n                    Database = \"db1\",\n                    User = \"user1\",\n                    Password = new Yandex.Inputs.DatatransferEndpointSettingsPostgresSourcePasswordArgs\n                    {\n                        Raw = \"123\",\n                    },\n                },\n            },\n        });\n        var pgTarget = new Yandex.DatatransferEndpoint(\"pgTarget\", new Yandex.DatatransferEndpointArgs\n        {\n            FolderId = \"some_folder_id\",\n            Settings = new Yandex.Inputs.DatatransferEndpointSettingsArgs\n            {\n                PostgresTarget = new Yandex.Inputs.DatatransferEndpointSettingsPostgresTargetArgs\n                {\n                    Connection = new Yandex.Inputs.DatatransferEndpointSettingsPostgresTargetConnectionArgs\n                    {\n                        MdbClusterId = \"some_cluster_id\",\n                    },\n                    Database = \"db2\",\n                    User = \"user2\",\n                    Password = new Yandex.Inputs.DatatransferEndpointSettingsPostgresTargetPasswordArgs\n                    {\n                        Raw = \"321\",\n                    },\n                },\n            },\n        });\n        var pgpgTransfer = new Yandex.DatatransferTransfer(\"pgpgTransfer\", new Yandex.DatatransferTransferArgs\n        {\n            FolderId = \"some_folder_id\",\n            SourceId = pgSource.Id,\n            TargetId = pgTarget.Id,\n            Type = \"SNAPSHOT_AND_INCREMENT\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpgSource, err := yandex.NewDatatransferEndpoint(ctx, \"pgSource\", &yandex.DatatransferEndpointArgs{\n\t\t\tSettings: &DatatransferEndpointSettingsArgs{\n\t\t\t\tPostgresSource: &DatatransferEndpointSettingsPostgresSourceArgs{\n\t\t\t\t\tConnection: &DatatransferEndpointSettingsPostgresSourceConnectionArgs{\n\t\t\t\t\t\tOnPremise: &DatatransferEndpointSettingsPostgresSourceConnectionOnPremiseArgs{\n\t\t\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"example.org\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tPort: pulumi.Int(5432),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tSlotGigabyteLagLimit: pulumi.Int(100),\n\t\t\t\t\tDatabase:             pulumi.String(\"db1\"),\n\t\t\t\t\tUser:                 pulumi.String(\"user1\"),\n\t\t\t\t\tPassword: &DatatransferEndpointSettingsPostgresSourcePasswordArgs{\n\t\t\t\t\t\tRaw: pulumi.String(\"123\"),\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\tpgTarget, err := yandex.NewDatatransferEndpoint(ctx, \"pgTarget\", &yandex.DatatransferEndpointArgs{\n\t\t\tFolderId: pulumi.String(\"some_folder_id\"),\n\t\t\tSettings: &DatatransferEndpointSettingsArgs{\n\t\t\t\tPostgresTarget: &DatatransferEndpointSettingsPostgresTargetArgs{\n\t\t\t\t\tConnection: &DatatransferEndpointSettingsPostgresTargetConnectionArgs{\n\t\t\t\t\t\tMdbClusterId: pulumi.String(\"some_cluster_id\"),\n\t\t\t\t\t},\n\t\t\t\t\tDatabase: pulumi.String(\"db2\"),\n\t\t\t\t\tUser:     pulumi.String(\"user2\"),\n\t\t\t\t\tPassword: &DatatransferEndpointSettingsPostgresTargetPasswordArgs{\n\t\t\t\t\t\tRaw: pulumi.String(\"321\"),\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 = yandex.NewDatatransferTransfer(ctx, \"pgpgTransfer\", &yandex.DatatransferTransferArgs{\n\t\t\tFolderId: pulumi.String(\"some_folder_id\"),\n\t\t\tSourceId: pgSource.ID(),\n\t\t\tTargetId: pgTarget.ID(),\n\t\t\tType:     pulumi.String(\"SNAPSHOT_AND_INCREMENT\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA transfer can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/datatransferTransfer:DatatransferTransfer foo transfer_id\n```\n\n ",
      "properties": {
        "description": {
          "type": "string",
          "description": "Arbitrary description text for the transfer.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder to create the transfer in. If it is not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Data Transfer transfer.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the transfer.\n"
        },
        "sourceId": {
          "type": "string",
          "description": "ID of the source endpoint for the transfer.\n"
        },
        "targetId": {
          "type": "string",
          "description": "ID of the target endpoint for the transfer.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of the transfer. One of \"SNAPSHOT_ONLY\", \"INCREMENT_ONLY\", \"SNAPSHOT_AND_INCREMENT\".\n"
        },
        "warning": {
          "type": "string",
          "description": "(Computed) Error description if transfer has any errors.\n"
        }
      },
      "type": "object",
      "required": [
        "folderId",
        "name",
        "warning"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Arbitrary description text for the transfer.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder to create the transfer in. If it is not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Data Transfer transfer.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the transfer.\n"
        },
        "sourceId": {
          "type": "string",
          "description": "ID of the source endpoint for the transfer.\n"
        },
        "targetId": {
          "type": "string",
          "description": "ID of the target endpoint for the transfer.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of the transfer. One of \"SNAPSHOT_ONLY\", \"INCREMENT_ONLY\", \"SNAPSHOT_AND_INCREMENT\".\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatatransferTransfer resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Arbitrary description text for the transfer.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder to create the transfer in. If it is not provided, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Data Transfer transfer.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the transfer.\n"
          },
          "sourceId": {
            "type": "string",
            "description": "ID of the source endpoint for the transfer.\n"
          },
          "targetId": {
            "type": "string",
            "description": "ID of the target endpoint for the transfer.\n"
          },
          "type": {
            "type": "string",
            "description": "Type of the transfer. One of \"SNAPSHOT_ONLY\", \"INCREMENT_ONLY\", \"SNAPSHOT_AND_INCREMENT\".\n"
          },
          "warning": {
            "type": "string",
            "description": "(Computed) Error description if transfer has any errors.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/dnsRecordSet:DnsRecordSet": {
      "description": "Manages a DNS Recordset.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = new yandex.VpcNetwork(\"foo\", {});\nconst zone1 = new yandex.DnsZone(\"zone1\", {\n    description: \"desc\",\n    labels: {\n        label1: \"label-1-value\",\n    },\n    zone: \"example.com.\",\n    \"public\": false,\n    privateNetworks: [foo.id],\n});\nconst rs1 = new yandex.DnsRecordSet(\"rs1\", {\n    zoneId: zone1.id,\n    type: \"A\",\n    ttl: 200,\n    datas: [\"10.1.0.1\"],\n});\nconst rs2 = new yandex.DnsRecordSet(\"rs2\", {\n    zoneId: zone1.id,\n    type: \"A\",\n    ttl: 200,\n    datas: [\"10.1.0.2\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.VpcNetwork(\"foo\")\nzone1 = yandex.DnsZone(\"zone1\",\n    description=\"desc\",\n    labels={\n        \"label1\": \"label-1-value\",\n    },\n    zone=\"example.com.\",\n    public=False,\n    private_networks=[foo.id])\nrs1 = yandex.DnsRecordSet(\"rs1\",\n    zone_id=zone1.id,\n    type=\"A\",\n    ttl=200,\n    datas=[\"10.1.0.1\"])\nrs2 = yandex.DnsRecordSet(\"rs2\",\n    zone_id=zone1.id,\n    type=\"A\",\n    ttl=200,\n    datas=[\"10.1.0.2\"])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = new Yandex.VpcNetwork(\"foo\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var zone1 = new Yandex.DnsZone(\"zone1\", new Yandex.DnsZoneArgs\n        {\n            Description = \"desc\",\n            Labels = \n            {\n                { \"label1\", \"label-1-value\" },\n            },\n            Zone = \"example.com.\",\n            Public = false,\n            PrivateNetworks = \n            {\n                foo.Id,\n            },\n        });\n        var rs1 = new Yandex.DnsRecordSet(\"rs1\", new Yandex.DnsRecordSetArgs\n        {\n            ZoneId = zone1.Id,\n            Type = \"A\",\n            Ttl = 200,\n            Datas = \n            {\n                \"10.1.0.1\",\n            },\n        });\n        var rs2 = new Yandex.DnsRecordSet(\"rs2\", new Yandex.DnsRecordSetArgs\n        {\n            ZoneId = zone1.Id,\n            Type = \"A\",\n            Ttl = 200,\n            Datas = \n            {\n                \"10.1.0.2\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := yandex.NewVpcNetwork(ctx, \"foo\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tzone1, err := yandex.NewDnsZone(ctx, \"zone1\", &yandex.DnsZoneArgs{\n\t\t\tDescription: pulumi.String(\"desc\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label1\": pulumi.String(\"label-1-value\"),\n\t\t\t},\n\t\t\tZone:   pulumi.String(\"example.com.\"),\n\t\t\tPublic: pulumi.Bool(false),\n\t\t\tPrivateNetworks: pulumi.StringArray{\n\t\t\t\tfoo.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewDnsRecordSet(ctx, \"rs1\", &yandex.DnsRecordSetArgs{\n\t\t\tZoneId: zone1.ID(),\n\t\t\tType:   pulumi.String(\"A\"),\n\t\t\tTtl:    pulumi.Int(200),\n\t\t\tDatas: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewDnsRecordSet(ctx, \"rs2\", &yandex.DnsRecordSetArgs{\n\t\t\tZoneId: zone1.ID(),\n\t\t\tType:   pulumi.String(\"A\"),\n\t\t\tTtl:    pulumi.Int(200),\n\t\t\tDatas: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.2\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDNS recordset can be imported using this format\n\n```sh\n $ pulumi import yandex:index/dnsRecordSet:DnsRecordSet rs1 {{zone_id}}/{{name}}/{{type}}\n```\n\n ",
      "properties": {
        "datas": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The string data for the records in this record set.\n"
        },
        "name": {
          "type": "string",
          "description": "The DNS name this record set will apply to.\n"
        },
        "ttl": {
          "type": "integer",
          "description": "The time-to-live of this record set (seconds).\n"
        },
        "type": {
          "type": "string",
          "description": "The DNS record set type.\n"
        },
        "zoneId": {
          "type": "string",
          "description": "The id of the zone in which this record set will reside.\n"
        }
      },
      "type": "object",
      "required": [
        "datas",
        "name",
        "ttl",
        "type",
        "zoneId"
      ],
      "inputProperties": {
        "datas": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The string data for the records in this record set.\n"
        },
        "name": {
          "type": "string",
          "description": "The DNS name this record set will apply to.\n"
        },
        "ttl": {
          "type": "integer",
          "description": "The time-to-live of this record set (seconds).\n"
        },
        "type": {
          "type": "string",
          "description": "The DNS record set type.\n"
        },
        "zoneId": {
          "type": "string",
          "description": "The id of the zone in which this record set will reside.\n"
        }
      },
      "requiredInputs": [
        "datas",
        "ttl",
        "type",
        "zoneId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DnsRecordSet resources.\n",
        "properties": {
          "datas": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The string data for the records in this record set.\n"
          },
          "name": {
            "type": "string",
            "description": "The DNS name this record set will apply to.\n"
          },
          "ttl": {
            "type": "integer",
            "description": "The time-to-live of this record set (seconds).\n"
          },
          "type": {
            "type": "string",
            "description": "The DNS record set type.\n"
          },
          "zoneId": {
            "type": "string",
            "description": "The id of the zone in which this record set will reside.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/dnsZone:DnsZone": {
      "description": "Manages a DNS Zone.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = new yandex.VpcNetwork(\"foo\", {});\nconst zone1 = new yandex.DnsZone(\"zone1\", {\n    description: \"desc\",\n    labels: {\n        label1: \"label-1-value\",\n    },\n    zone: \"example.com.\",\n    \"public\": false,\n    privateNetworks: [foo.id],\n});\nconst rs1 = new yandex.DnsRecordSet(\"rs1\", {\n    zoneId: zone1.id,\n    type: \"A\",\n    ttl: 200,\n    datas: [\"10.1.0.1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.VpcNetwork(\"foo\")\nzone1 = yandex.DnsZone(\"zone1\",\n    description=\"desc\",\n    labels={\n        \"label1\": \"label-1-value\",\n    },\n    zone=\"example.com.\",\n    public=False,\n    private_networks=[foo.id])\nrs1 = yandex.DnsRecordSet(\"rs1\",\n    zone_id=zone1.id,\n    type=\"A\",\n    ttl=200,\n    datas=[\"10.1.0.1\"])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = new Yandex.VpcNetwork(\"foo\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var zone1 = new Yandex.DnsZone(\"zone1\", new Yandex.DnsZoneArgs\n        {\n            Description = \"desc\",\n            Labels = \n            {\n                { \"label1\", \"label-1-value\" },\n            },\n            Zone = \"example.com.\",\n            Public = false,\n            PrivateNetworks = \n            {\n                foo.Id,\n            },\n        });\n        var rs1 = new Yandex.DnsRecordSet(\"rs1\", new Yandex.DnsRecordSetArgs\n        {\n            ZoneId = zone1.Id,\n            Type = \"A\",\n            Ttl = 200,\n            Datas = \n            {\n                \"10.1.0.1\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := yandex.NewVpcNetwork(ctx, \"foo\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tzone1, err := yandex.NewDnsZone(ctx, \"zone1\", &yandex.DnsZoneArgs{\n\t\t\tDescription: pulumi.String(\"desc\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label1\": pulumi.String(\"label-1-value\"),\n\t\t\t},\n\t\t\tZone:   pulumi.String(\"example.com.\"),\n\t\t\tPublic: pulumi.Bool(false),\n\t\t\tPrivateNetworks: pulumi.StringArray{\n\t\t\t\tfoo.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewDnsRecordSet(ctx, \"rs1\", &yandex.DnsRecordSetArgs{\n\t\t\tZoneId: zone1.ID(),\n\t\t\tType:   pulumi.String(\"A\"),\n\t\t\tTtl:    pulumi.Int(200),\n\t\t\tDatas: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "(Computed) The DNS zone creation timestamp.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the DNS zone.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder to create a zone in. If it is not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the DNS zone.\n"
        },
        "name": {
          "type": "string",
          "description": "User assigned name of a specific resource. Must be unique within the folder.\n"
        },
        "privateNetworks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.\n"
        },
        "public": {
          "type": "boolean",
          "description": "The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.\n"
        },
        "zone": {
          "type": "string",
          "description": "The DNS name of this zone, e.g. \"example.com.\". Must ends with dot.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "name",
        "privateNetworks",
        "public",
        "zone"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the DNS zone.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder to create a zone in. If it is not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the DNS zone.\n"
        },
        "name": {
          "type": "string",
          "description": "User assigned name of a specific resource. Must be unique within the folder.\n"
        },
        "privateNetworks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.\n"
        },
        "public": {
          "type": "boolean",
          "description": "The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.\n"
        },
        "zone": {
          "type": "string",
          "description": "The DNS name of this zone, e.g. \"example.com.\". Must ends with dot.\n"
        }
      },
      "requiredInputs": [
        "zone"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DnsZone resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "(Computed) The DNS zone creation timestamp.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the DNS zone.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder to create a zone in. If it is not provided, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the DNS zone.\n"
          },
          "name": {
            "type": "string",
            "description": "User assigned name of a specific resource. Must be unique within the folder.\n"
          },
          "privateNetworks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.\n"
          },
          "public": {
            "type": "boolean",
            "description": "The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.\n"
          },
          "zone": {
            "type": "string",
            "description": "The DNS name of this zone, e.g. \"example.com.\". Must ends with dot.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/function:Function": {
      "description": "Allows management of [Yandex Cloud Function](https://cloud.yandex.com/docs/functions/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst test_function = new yandex.Function(\"test-function\", {\n    content: {\n        zipFilename: \"function.zip\",\n    },\n    description: \"any description\",\n    entrypoint: \"main\",\n    executionTimeout: \"10\",\n    memory: 128,\n    runtime: \"python37\",\n    serviceAccountId: \"are1service2account3id\",\n    tags: [\"my_tag\"],\n    userHash: \"any_user_defined_string\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ntest_function = yandex.Function(\"test-function\",\n    content=yandex.FunctionContentArgs(\n        zip_filename=\"function.zip\",\n    ),\n    description=\"any description\",\n    entrypoint=\"main\",\n    execution_timeout=\"10\",\n    memory=128,\n    runtime=\"python37\",\n    service_account_id=\"are1service2account3id\",\n    tags=[\"my_tag\"],\n    user_hash=\"any_user_defined_string\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var test_function = new Yandex.Function(\"test-function\", new Yandex.FunctionArgs\n        {\n            Content = new Yandex.Inputs.FunctionContentArgs\n            {\n                ZipFilename = \"function.zip\",\n            },\n            Description = \"any description\",\n            Entrypoint = \"main\",\n            ExecutionTimeout = \"10\",\n            Memory = 128,\n            Runtime = \"python37\",\n            ServiceAccountId = \"are1service2account3id\",\n            Tags = \n            {\n                \"my_tag\",\n            },\n            UserHash = \"any_user_defined_string\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewFunction(ctx, \"test-function\", &yandex.FunctionArgs{\n\t\t\tContent: &FunctionContentArgs{\n\t\t\t\tZipFilename: pulumi.String(\"function.zip\"),\n\t\t\t},\n\t\t\tDescription:      pulumi.String(\"any description\"),\n\t\t\tEntrypoint:       pulumi.String(\"main\"),\n\t\t\tExecutionTimeout: pulumi.String(\"10\"),\n\t\t\tMemory:           pulumi.Int(128),\n\t\t\tRuntime:          pulumi.String(\"python37\"),\n\t\t\tServiceAccountId: pulumi.String(\"are1service2account3id\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"my_tag\"),\n\t\t\t},\n\t\t\tUserHash: pulumi.String(\"any_user_defined_string\"),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "content": {
          "$ref": "#/types/yandex:index%2FFunctionContent:FunctionContent",
          "description": "Version deployment content for Yandex Cloud Function code. Can be only one `package` or `content` section.\n* `content.0.zip_filename` - Filename to zip archive for the version.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the Yandex Cloud Function.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Yandex Cloud Function\n"
        },
        "entrypoint": {
          "type": "string",
          "description": "Entrypoint for Yandex Cloud Function\n"
        },
        "environment": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value environment variables for Yandex Cloud Function\n"
        },
        "executionTimeout": {
          "type": "string",
          "description": "Execution timeout in seconds for Yandex Cloud Function\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder ID for the Yandex Cloud Function\n"
        },
        "imageSize": {
          "type": "integer",
          "description": "Image size for Yandex Cloud Function.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Cloud Function\n"
        },
        "loggroupId": {
          "type": "string",
          "description": "Loggroup ID size for Yandex Cloud Function.\n"
        },
        "memory": {
          "type": "integer",
          "description": "Memory in megabytes (**aligned to 128MB**) for Yandex Cloud Function\n"
        },
        "name": {
          "type": "string",
          "description": "Yandex Cloud Function name used to define trigger\n"
        },
        "package": {
          "$ref": "#/types/yandex:index%2FFunctionPackage:FunctionPackage",
          "description": "Version deployment package for Yandex Cloud Function code. Can be only one `package` or `content` section.\n* `package.0.sha_256` - SHA256 hash of the version deployment package.\n* `package.0.bucket_name` - Name of the bucket that stores the code for the version.\n* `package.0.object_name` - Name of the object in the bucket that stores the code for the version.\n"
        },
        "runtime": {
          "type": "string",
          "description": "Runtime for Yandex Cloud Function\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "Service account ID for Yandex Cloud Function\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Tags for Yandex Cloud Function. Tag \"$latest\" isn't returned.\n"
        },
        "userHash": {
          "type": "string",
          "description": "User-defined string for current function version. User must change this string any times when function changed. Function will be updated when hash is changed.\n"
        },
        "version": {
          "type": "string",
          "description": "Version for Yandex Cloud Function.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "entrypoint",
        "folderId",
        "imageSize",
        "loggroupId",
        "memory",
        "name",
        "runtime",
        "tags",
        "userHash",
        "version"
      ],
      "inputProperties": {
        "content": {
          "$ref": "#/types/yandex:index%2FFunctionContent:FunctionContent",
          "description": "Version deployment content for Yandex Cloud Function code. Can be only one `package` or `content` section.\n* `content.0.zip_filename` - Filename to zip archive for the version.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Yandex Cloud Function\n"
        },
        "entrypoint": {
          "type": "string",
          "description": "Entrypoint for Yandex Cloud Function\n"
        },
        "environment": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value environment variables for Yandex Cloud Function\n"
        },
        "executionTimeout": {
          "type": "string",
          "description": "Execution timeout in seconds for Yandex Cloud Function\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder ID for the Yandex Cloud Function\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Cloud Function\n"
        },
        "memory": {
          "type": "integer",
          "description": "Memory in megabytes (**aligned to 128MB**) for Yandex Cloud Function\n"
        },
        "name": {
          "type": "string",
          "description": "Yandex Cloud Function name used to define trigger\n"
        },
        "package": {
          "$ref": "#/types/yandex:index%2FFunctionPackage:FunctionPackage",
          "description": "Version deployment package for Yandex Cloud Function code. Can be only one `package` or `content` section.\n* `package.0.sha_256` - SHA256 hash of the version deployment package.\n* `package.0.bucket_name` - Name of the bucket that stores the code for the version.\n* `package.0.object_name` - Name of the object in the bucket that stores the code for the version.\n"
        },
        "runtime": {
          "type": "string",
          "description": "Runtime for Yandex Cloud Function\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "Service account ID for Yandex Cloud Function\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Tags for Yandex Cloud Function. Tag \"$latest\" isn't returned.\n"
        },
        "userHash": {
          "type": "string",
          "description": "User-defined string for current function version. User must change this string any times when function changed. Function will be updated when hash is changed.\n"
        }
      },
      "requiredInputs": [
        "entrypoint",
        "memory",
        "runtime",
        "userHash"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Function resources.\n",
        "properties": {
          "content": {
            "$ref": "#/types/yandex:index%2FFunctionContent:FunctionContent",
            "description": "Version deployment content for Yandex Cloud Function code. Can be only one `package` or `content` section.\n* `content.0.zip_filename` - Filename to zip archive for the version.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the Yandex Cloud Function.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the Yandex Cloud Function\n"
          },
          "entrypoint": {
            "type": "string",
            "description": "Entrypoint for Yandex Cloud Function\n"
          },
          "environment": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value environment variables for Yandex Cloud Function\n"
          },
          "executionTimeout": {
            "type": "string",
            "description": "Execution timeout in seconds for Yandex Cloud Function\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder ID for the Yandex Cloud Function\n"
          },
          "imageSize": {
            "type": "integer",
            "description": "Image size for Yandex Cloud Function.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Yandex Cloud Function\n"
          },
          "loggroupId": {
            "type": "string",
            "description": "Loggroup ID size for Yandex Cloud Function.\n"
          },
          "memory": {
            "type": "integer",
            "description": "Memory in megabytes (**aligned to 128MB**) for Yandex Cloud Function\n"
          },
          "name": {
            "type": "string",
            "description": "Yandex Cloud Function name used to define trigger\n"
          },
          "package": {
            "$ref": "#/types/yandex:index%2FFunctionPackage:FunctionPackage",
            "description": "Version deployment package for Yandex Cloud Function code. Can be only one `package` or `content` section.\n* `package.0.sha_256` - SHA256 hash of the version deployment package.\n* `package.0.bucket_name` - Name of the bucket that stores the code for the version.\n* `package.0.object_name` - Name of the object in the bucket that stores the code for the version.\n"
          },
          "runtime": {
            "type": "string",
            "description": "Runtime for Yandex Cloud Function\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "Service account ID for Yandex Cloud Function\n"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Tags for Yandex Cloud Function. Tag \"$latest\" isn't returned.\n"
          },
          "userHash": {
            "type": "string",
            "description": "User-defined string for current function version. User must change this string any times when function changed. Function will be updated when hash is changed.\n"
          },
          "version": {
            "type": "string",
            "description": "Version for Yandex Cloud Function.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/functionIamBinding:FunctionIamBinding": {
      "description": "## yandex\\_function\\_iam\\_binding\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst function_iam = new yandex.FunctionIamBinding(\"function-iam\", {\n    functionId: \"your-function-id\",\n    members: [\"system:allUsers\"],\n    role: \"serverless.functions.invoker\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfunction_iam = yandex.FunctionIamBinding(\"function-iam\",\n    function_id=\"your-function-id\",\n    members=[\"system:allUsers\"],\n    role=\"serverless.functions.invoker\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var function_iam = new Yandex.FunctionIamBinding(\"function-iam\", new Yandex.FunctionIamBindingArgs\n        {\n            FunctionId = \"your-function-id\",\n            Members = \n            {\n                \"system:allUsers\",\n            },\n            Role = \"serverless.functions.invoker\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewFunctionIamBinding(ctx, \"function-iam\", &yandex.FunctionIamBindingArgs{\n\t\t\tFunctionId: pulumi.String(\"your-function-id\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"system:allUsers\"),\n\t\t\t},\n\t\t\tRole: pulumi.String(\"serverless.functions.invoker\"),\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",
      "properties": {
        "functionId": {
          "type": "string",
          "description": "The [Yandex Cloud Function](https://cloud.yandex.com/docs/functions/) ID to apply a binding to.\n"
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **system:{allUsers|allAuthenticatedUsers}**: see [system groups](https://cloud.yandex.com/docs/iam/concepts/access-control/system-group)\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be applied. See [roles](https://cloud.yandex.com/docs/functions/security/)\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "functionId",
        "members",
        "role"
      ],
      "inputProperties": {
        "functionId": {
          "type": "string",
          "description": "The [Yandex Cloud Function](https://cloud.yandex.com/docs/functions/) ID to apply a binding to.\n"
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **system:{allUsers|allAuthenticatedUsers}**: see [system groups](https://cloud.yandex.com/docs/iam/concepts/access-control/system-group)\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be applied. See [roles](https://cloud.yandex.com/docs/functions/security/)\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "requiredInputs": [
        "functionId",
        "members",
        "role"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FunctionIamBinding resources.\n",
        "properties": {
          "functionId": {
            "type": "string",
            "description": "The [Yandex Cloud Function](https://cloud.yandex.com/docs/functions/) ID to apply a binding to.\n"
          },
          "members": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **system:{allUsers|allAuthenticatedUsers}**: see [system groups](https://cloud.yandex.com/docs/iam/concepts/access-control/system-group)\n"
          },
          "role": {
            "type": "string",
            "description": "The role that should be applied. See [roles](https://cloud.yandex.com/docs/functions/security/)\n"
          },
          "sleepAfter": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/functionScalingPolicy:FunctionScalingPolicy": {
      "description": "Allows management of [Yandex Cloud Function Scaling Policies](https://cloud.yandex.com/docs/functions/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myScalingPolicy = new yandex.FunctionScalingPolicy(\"my_scaling_policy\", {\n    functionId: \"are1samplefunction11\",\n    policies: [\n        {\n            tag: \"$latest\",\n            zoneInstancesLimit: 3,\n            zoneRequestsLimit: 100,\n        },\n        {\n            tag: \"my_tag\",\n            zoneInstancesLimit: 4,\n            zoneRequestsLimit: 150,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_scaling_policy = yandex.FunctionScalingPolicy(\"myScalingPolicy\",\n    function_id=\"are1samplefunction11\",\n    policies=[\n        yandex.FunctionScalingPolicyPolicyArgs(\n            tag=\"$latest\",\n            zone_instances_limit=3,\n            zone_requests_limit=100,\n        ),\n        yandex.FunctionScalingPolicyPolicyArgs(\n            tag=\"my_tag\",\n            zone_instances_limit=4,\n            zone_requests_limit=150,\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myScalingPolicy = new Yandex.FunctionScalingPolicy(\"myScalingPolicy\", new Yandex.FunctionScalingPolicyArgs\n        {\n            FunctionId = \"are1samplefunction11\",\n            Policies = \n            {\n                new Yandex.Inputs.FunctionScalingPolicyPolicyArgs\n                {\n                    Tag = \"$latest\",\n                    ZoneInstancesLimit = 3,\n                    ZoneRequestsLimit = 100,\n                },\n                new Yandex.Inputs.FunctionScalingPolicyPolicyArgs\n                {\n                    Tag = \"my_tag\",\n                    ZoneInstancesLimit = 4,\n                    ZoneRequestsLimit = 150,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewFunctionScalingPolicy(ctx, \"myScalingPolicy\", &yandex.FunctionScalingPolicyArgs{\n\t\t\tFunctionId: pulumi.String(\"are1samplefunction11\"),\n\t\t\tPolicies: FunctionScalingPolicyPolicyArray{\n\t\t\t\t&FunctionScalingPolicyPolicyArgs{\n\t\t\t\t\tTag:                pulumi.String(fmt.Sprintf(\"%v%v\", \"$\", \"latest\")),\n\t\t\t\t\tZoneInstancesLimit: pulumi.Int(3),\n\t\t\t\t\tZoneRequestsLimit:  pulumi.Int(100),\n\t\t\t\t},\n\t\t\t\t&FunctionScalingPolicyPolicyArgs{\n\t\t\t\t\tTag:                pulumi.String(\"my_tag\"),\n\t\t\t\t\tZoneInstancesLimit: pulumi.Int(4),\n\t\t\t\t\tZoneRequestsLimit:  pulumi.Int(150),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "functionId": {
          "type": "string",
          "description": "Yandex Cloud Function id used to define function\n"
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FFunctionScalingPolicyPolicy:FunctionScalingPolicyPolicy"
          },
          "description": "list definition for Yandex Cloud Function scaling policies\n* `policy.#` - number of Yandex Cloud Function scaling policies\n* `policy.{num}.tag` - Yandex.Cloud Function version tag for Yandex Cloud Function scaling policy\n* `policy.{num}.zone_instances_limit` - max number of instances in one zone for Yandex.Cloud Function with tag\n* `policy.{num}.zone_requests_limit` - max number of requests in one zone for Yandex.Cloud Function with tag\n"
        }
      },
      "type": "object",
      "required": [
        "functionId"
      ],
      "inputProperties": {
        "functionId": {
          "type": "string",
          "description": "Yandex Cloud Function id used to define function\n"
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FFunctionScalingPolicyPolicy:FunctionScalingPolicyPolicy"
          },
          "description": "list definition for Yandex Cloud Function scaling policies\n* `policy.#` - number of Yandex Cloud Function scaling policies\n* `policy.{num}.tag` - Yandex.Cloud Function version tag for Yandex Cloud Function scaling policy\n* `policy.{num}.zone_instances_limit` - max number of instances in one zone for Yandex.Cloud Function with tag\n* `policy.{num}.zone_requests_limit` - max number of requests in one zone for Yandex.Cloud Function with tag\n"
        }
      },
      "requiredInputs": [
        "functionId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FunctionScalingPolicy resources.\n",
        "properties": {
          "functionId": {
            "type": "string",
            "description": "Yandex Cloud Function id used to define function\n"
          },
          "policies": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FFunctionScalingPolicyPolicy:FunctionScalingPolicyPolicy"
            },
            "description": "list definition for Yandex Cloud Function scaling policies\n* `policy.#` - number of Yandex Cloud Function scaling policies\n* `policy.{num}.tag` - Yandex.Cloud Function version tag for Yandex Cloud Function scaling policy\n* `policy.{num}.zone_instances_limit` - max number of instances in one zone for Yandex.Cloud Function with tag\n* `policy.{num}.zone_requests_limit` - max number of requests in one zone for Yandex.Cloud Function with tag\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/functionTrigger:FunctionTrigger": {
      "description": "Allows management of [Yandex Cloud Functions Trigger](https://cloud.yandex.com/docs/functions/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myTrigger = new yandex.FunctionTrigger(\"my_trigger\", {\n    description: \"any description\",\n    function: {\n        id: \"tf-test\",\n    },\n    timer: {\n        cronExpression: \"* * * * ? *\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_trigger = yandex.FunctionTrigger(\"myTrigger\",\n    description=\"any description\",\n    function=yandex.FunctionTriggerFunctionArgs(\n        id=\"tf-test\",\n    ),\n    timer=yandex.FunctionTriggerTimerArgs(\n        cron_expression=\"* * * * ? *\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myTrigger = new Yandex.FunctionTrigger(\"myTrigger\", new Yandex.FunctionTriggerArgs\n        {\n            Description = \"any description\",\n            Function = new Yandex.Inputs.FunctionTriggerFunctionArgs\n            {\n                Id = \"tf-test\",\n            },\n            Timer = new Yandex.Inputs.FunctionTriggerTimerArgs\n            {\n                CronExpression = \"* * * * ? *\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewFunctionTrigger(ctx, \"myTrigger\", &yandex.FunctionTriggerArgs{\n\t\t\tDescription: pulumi.String(\"any description\"),\n\t\t\tFunction: &FunctionTriggerFunctionArgs{\n\t\t\t\tId: pulumi.String(\"tf-test\"),\n\t\t\t},\n\t\t\tTimer: &FunctionTriggerTimerArgs{\n\t\t\t\tCronExpression: pulumi.String(\"* * * * ? *\"),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the Yandex Cloud Functions Trigger\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Yandex Cloud Functions Trigger\n"
        },
        "dlq": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerDlq:FunctionTriggerDlq",
          "description": "Dead Letter Queue settings definition for Yandex Cloud Functions Trigger\n* `dlq.0.queue_id` - ID of Dead Letter Queue for Trigger (Queue ARN)\n* `dlq.0.service_account_id` - Service Account ID for Dead Letter Queue for Yandex Cloud Functions Trigger\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder ID for the Yandex Cloud Functions Trigger\n"
        },
        "function": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerFunction:FunctionTriggerFunction",
          "description": "[Yandex.Cloud Function](https://cloud.yandex.com/docs/functions/concepts/function) settings definition for Yandex Cloud Functions Trigger\n* `function.0.id` - Yandex.Cloud Function ID for Yandex Cloud Functions Trigger\n* `function.0.service_account_id` - Service account ID for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n* `function.0.tag` - Tag for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n* `function.0.retry_attempts` - Retry attempts for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n* `function.0.retry_interval` - Retry interval in seconds for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n"
        },
        "iot": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerIot:FunctionTriggerIot",
          "description": "[IoT](https://cloud.yandex.com/docs/functions/concepts/trigger/iot-core-trigger) settings definition for Yandex Cloud Functions Trigger, if present. Only one section `iot` or `message_queue` or `object_storage` or `timer` can be defined.\n* `iot.0.registry_id` - IoT Registry ID for Yandex Cloud Functions Trigger\n* `iot.0.device_id` - IoT Device ID for Yandex Cloud Functions Trigger\n* `iot.0.topic` - IoT Topic for Yandex Cloud Functions Trigger\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Cloud Functions Trigger\n"
        },
        "logGroup": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerLogGroup:FunctionTriggerLogGroup"
        },
        "logging": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerLogging:FunctionTriggerLogging",
          "description": "[Logging](https://cloud.yandex.com/docs/functions/concepts/trigger/logging) settings definition for Yandex Cloud Functions Trigger, if present\n* `logging.0.group_id` - Logging group ID for Yandex Cloud Functions Trigger\n* `logging.0.resource_ids` - Resource ID filter setting for Yandex Cloud Functions Trigger\n* `logging.0.resource_types` - Resource type filter setting for Yandex Cloud Functions Trigger\n* `logging.0.levels` - Logging level filter setting for Yandex Cloud Functions Trigger\n* `logging.0.batch_cutoff` - Batch Duration in seconds for Yandex Cloud Functions Trigger\n* `logging.0.batch_size` - Batch Size for Yandex Cloud Functions Trigger\n"
        },
        "messageQueue": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerMessageQueue:FunctionTriggerMessageQueue",
          "description": "[Message Queue](https://cloud.yandex.com/docs/functions/concepts/trigger/ymq-trigger) settings definition for Yandex Cloud Functions Trigger, if present\n* `message_queue.0.queue_id` - Message Queue ID for Yandex Cloud Functions Trigger\n* `message_queue.0.service_account_id` - Message Queue Service Account ID for Yandex Cloud Functions Trigger\n* `message_queue.0.batch_cutoff` - Batch Duration in seconds for Yandex Cloud Functions Trigger\n* `message_queue.0.batch_size` - Batch Size for Yandex Cloud Functions Trigger\n* `message_queue.0.visibility_timeout` - Visibility timeout for Yandex Cloud Functions Trigger\n"
        },
        "name": {
          "type": "string",
          "description": "Yandex Cloud Functions Trigger name used to define trigger\n"
        },
        "objectStorage": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerObjectStorage:FunctionTriggerObjectStorage",
          "description": "[Object Storage](https://cloud.yandex.com/docs/functions/concepts/trigger/os-trigger) settings definition for Yandex Cloud Functions Trigger, if present\n* `object_storage.0.bucket_id` - Object Storage Bucket ID for Yandex Cloud Functions Trigger\n* `object_storage.0.prefix` - Prefix for Object Storage for Yandex Cloud Functions Trigger\n* `object_storage.0.suffix` - Suffix for Object Storage for Yandex Cloud Functions Trigger\n* `object_storage.0.create` - Boolean flag for setting create event for Yandex Cloud Functions Trigger\n* `object_storage.0.update` - Boolean flag for setting update event for Yandex Cloud Functions Trigger\n* `object_storage.0.delete` - Boolean flag for setting delete event for Yandex Cloud Functions Trigger\n"
        },
        "timer": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerTimer:FunctionTriggerTimer",
          "description": "[Timer](https://cloud.yandex.com/docs/functions/concepts/trigger/timer) settings definition for Yandex Cloud Functions Trigger, if present\n* `timer.0.cron_expression` - Cron expression for timer for Yandex Cloud Functions Trigger\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "function",
        "name"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the Yandex Cloud Functions Trigger\n"
        },
        "dlq": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerDlq:FunctionTriggerDlq",
          "description": "Dead Letter Queue settings definition for Yandex Cloud Functions Trigger\n* `dlq.0.queue_id` - ID of Dead Letter Queue for Trigger (Queue ARN)\n* `dlq.0.service_account_id` - Service Account ID for Dead Letter Queue for Yandex Cloud Functions Trigger\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder ID for the Yandex Cloud Functions Trigger\n"
        },
        "function": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerFunction:FunctionTriggerFunction",
          "description": "[Yandex.Cloud Function](https://cloud.yandex.com/docs/functions/concepts/function) settings definition for Yandex Cloud Functions Trigger\n* `function.0.id` - Yandex.Cloud Function ID for Yandex Cloud Functions Trigger\n* `function.0.service_account_id` - Service account ID for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n* `function.0.tag` - Tag for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n* `function.0.retry_attempts` - Retry attempts for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n* `function.0.retry_interval` - Retry interval in seconds for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n"
        },
        "iot": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerIot:FunctionTriggerIot",
          "description": "[IoT](https://cloud.yandex.com/docs/functions/concepts/trigger/iot-core-trigger) settings definition for Yandex Cloud Functions Trigger, if present. Only one section `iot` or `message_queue` or `object_storage` or `timer` can be defined.\n* `iot.0.registry_id` - IoT Registry ID for Yandex Cloud Functions Trigger\n* `iot.0.device_id` - IoT Device ID for Yandex Cloud Functions Trigger\n* `iot.0.topic` - IoT Topic for Yandex Cloud Functions Trigger\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Cloud Functions Trigger\n"
        },
        "logGroup": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerLogGroup:FunctionTriggerLogGroup"
        },
        "logging": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerLogging:FunctionTriggerLogging",
          "description": "[Logging](https://cloud.yandex.com/docs/functions/concepts/trigger/logging) settings definition for Yandex Cloud Functions Trigger, if present\n* `logging.0.group_id` - Logging group ID for Yandex Cloud Functions Trigger\n* `logging.0.resource_ids` - Resource ID filter setting for Yandex Cloud Functions Trigger\n* `logging.0.resource_types` - Resource type filter setting for Yandex Cloud Functions Trigger\n* `logging.0.levels` - Logging level filter setting for Yandex Cloud Functions Trigger\n* `logging.0.batch_cutoff` - Batch Duration in seconds for Yandex Cloud Functions Trigger\n* `logging.0.batch_size` - Batch Size for Yandex Cloud Functions Trigger\n"
        },
        "messageQueue": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerMessageQueue:FunctionTriggerMessageQueue",
          "description": "[Message Queue](https://cloud.yandex.com/docs/functions/concepts/trigger/ymq-trigger) settings definition for Yandex Cloud Functions Trigger, if present\n* `message_queue.0.queue_id` - Message Queue ID for Yandex Cloud Functions Trigger\n* `message_queue.0.service_account_id` - Message Queue Service Account ID for Yandex Cloud Functions Trigger\n* `message_queue.0.batch_cutoff` - Batch Duration in seconds for Yandex Cloud Functions Trigger\n* `message_queue.0.batch_size` - Batch Size for Yandex Cloud Functions Trigger\n* `message_queue.0.visibility_timeout` - Visibility timeout for Yandex Cloud Functions Trigger\n"
        },
        "name": {
          "type": "string",
          "description": "Yandex Cloud Functions Trigger name used to define trigger\n"
        },
        "objectStorage": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerObjectStorage:FunctionTriggerObjectStorage",
          "description": "[Object Storage](https://cloud.yandex.com/docs/functions/concepts/trigger/os-trigger) settings definition for Yandex Cloud Functions Trigger, if present\n* `object_storage.0.bucket_id` - Object Storage Bucket ID for Yandex Cloud Functions Trigger\n* `object_storage.0.prefix` - Prefix for Object Storage for Yandex Cloud Functions Trigger\n* `object_storage.0.suffix` - Suffix for Object Storage for Yandex Cloud Functions Trigger\n* `object_storage.0.create` - Boolean flag for setting create event for Yandex Cloud Functions Trigger\n* `object_storage.0.update` - Boolean flag for setting update event for Yandex Cloud Functions Trigger\n* `object_storage.0.delete` - Boolean flag for setting delete event for Yandex Cloud Functions Trigger\n"
        },
        "timer": {
          "$ref": "#/types/yandex:index%2FFunctionTriggerTimer:FunctionTriggerTimer",
          "description": "[Timer](https://cloud.yandex.com/docs/functions/concepts/trigger/timer) settings definition for Yandex Cloud Functions Trigger, if present\n* `timer.0.cron_expression` - Cron expression for timer for Yandex Cloud Functions Trigger\n"
        }
      },
      "requiredInputs": [
        "function"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FunctionTrigger resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the Yandex Cloud Functions Trigger\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the Yandex Cloud Functions Trigger\n"
          },
          "dlq": {
            "$ref": "#/types/yandex:index%2FFunctionTriggerDlq:FunctionTriggerDlq",
            "description": "Dead Letter Queue settings definition for Yandex Cloud Functions Trigger\n* `dlq.0.queue_id` - ID of Dead Letter Queue for Trigger (Queue ARN)\n* `dlq.0.service_account_id` - Service Account ID for Dead Letter Queue for Yandex Cloud Functions Trigger\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder ID for the Yandex Cloud Functions Trigger\n"
          },
          "function": {
            "$ref": "#/types/yandex:index%2FFunctionTriggerFunction:FunctionTriggerFunction",
            "description": "[Yandex.Cloud Function](https://cloud.yandex.com/docs/functions/concepts/function) settings definition for Yandex Cloud Functions Trigger\n* `function.0.id` - Yandex.Cloud Function ID for Yandex Cloud Functions Trigger\n* `function.0.service_account_id` - Service account ID for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n* `function.0.tag` - Tag for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n* `function.0.retry_attempts` - Retry attempts for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n* `function.0.retry_interval` - Retry interval in seconds for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n"
          },
          "iot": {
            "$ref": "#/types/yandex:index%2FFunctionTriggerIot:FunctionTriggerIot",
            "description": "[IoT](https://cloud.yandex.com/docs/functions/concepts/trigger/iot-core-trigger) settings definition for Yandex Cloud Functions Trigger, if present. Only one section `iot` or `message_queue` or `object_storage` or `timer` can be defined.\n* `iot.0.registry_id` - IoT Registry ID for Yandex Cloud Functions Trigger\n* `iot.0.device_id` - IoT Device ID for Yandex Cloud Functions Trigger\n* `iot.0.topic` - IoT Topic for Yandex Cloud Functions Trigger\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Yandex Cloud Functions Trigger\n"
          },
          "logGroup": {
            "$ref": "#/types/yandex:index%2FFunctionTriggerLogGroup:FunctionTriggerLogGroup"
          },
          "logging": {
            "$ref": "#/types/yandex:index%2FFunctionTriggerLogging:FunctionTriggerLogging",
            "description": "[Logging](https://cloud.yandex.com/docs/functions/concepts/trigger/logging) settings definition for Yandex Cloud Functions Trigger, if present\n* `logging.0.group_id` - Logging group ID for Yandex Cloud Functions Trigger\n* `logging.0.resource_ids` - Resource ID filter setting for Yandex Cloud Functions Trigger\n* `logging.0.resource_types` - Resource type filter setting for Yandex Cloud Functions Trigger\n* `logging.0.levels` - Logging level filter setting for Yandex Cloud Functions Trigger\n* `logging.0.batch_cutoff` - Batch Duration in seconds for Yandex Cloud Functions Trigger\n* `logging.0.batch_size` - Batch Size for Yandex Cloud Functions Trigger\n"
          },
          "messageQueue": {
            "$ref": "#/types/yandex:index%2FFunctionTriggerMessageQueue:FunctionTriggerMessageQueue",
            "description": "[Message Queue](https://cloud.yandex.com/docs/functions/concepts/trigger/ymq-trigger) settings definition for Yandex Cloud Functions Trigger, if present\n* `message_queue.0.queue_id` - Message Queue ID for Yandex Cloud Functions Trigger\n* `message_queue.0.service_account_id` - Message Queue Service Account ID for Yandex Cloud Functions Trigger\n* `message_queue.0.batch_cutoff` - Batch Duration in seconds for Yandex Cloud Functions Trigger\n* `message_queue.0.batch_size` - Batch Size for Yandex Cloud Functions Trigger\n* `message_queue.0.visibility_timeout` - Visibility timeout for Yandex Cloud Functions Trigger\n"
          },
          "name": {
            "type": "string",
            "description": "Yandex Cloud Functions Trigger name used to define trigger\n"
          },
          "objectStorage": {
            "$ref": "#/types/yandex:index%2FFunctionTriggerObjectStorage:FunctionTriggerObjectStorage",
            "description": "[Object Storage](https://cloud.yandex.com/docs/functions/concepts/trigger/os-trigger) settings definition for Yandex Cloud Functions Trigger, if present\n* `object_storage.0.bucket_id` - Object Storage Bucket ID for Yandex Cloud Functions Trigger\n* `object_storage.0.prefix` - Prefix for Object Storage for Yandex Cloud Functions Trigger\n* `object_storage.0.suffix` - Suffix for Object Storage for Yandex Cloud Functions Trigger\n* `object_storage.0.create` - Boolean flag for setting create event for Yandex Cloud Functions Trigger\n* `object_storage.0.update` - Boolean flag for setting update event for Yandex Cloud Functions Trigger\n* `object_storage.0.delete` - Boolean flag for setting delete event for Yandex Cloud Functions Trigger\n"
          },
          "timer": {
            "$ref": "#/types/yandex:index%2FFunctionTriggerTimer:FunctionTriggerTimer",
            "description": "[Timer](https://cloud.yandex.com/docs/functions/concepts/trigger/timer) settings definition for Yandex Cloud Functions Trigger, if present\n* `timer.0.cron_expression` - Cron expression for timer for Yandex Cloud Functions Trigger\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/iamServiceAccount:IamServiceAccount": {
      "description": "Allows management of a Yandex.Cloud IAM [service account](https://cloud.yandex.com/docs/iam/concepts/users/service-accounts).\nTo assign roles and permissions, use the yandex_iam_service_account_iam_binding, \nyandex.IamServiceAccountIamMember and \nyandex.IamServiceAccountIamPolicy resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis snippet creates a service account.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst sa = new yandex.IamServiceAccount(\"sa\", {\n    description: \"service account to manage VMs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nsa = yandex.IamServiceAccount(\"sa\", description=\"service account to manage VMs\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var sa = new Yandex.IamServiceAccount(\"sa\", new Yandex.IamServiceAccountArgs\n        {\n            Description = \"service account to manage VMs\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewIamServiceAccount(ctx, \"sa\", &yandex.IamServiceAccountArgs{\n\t\t\tDescription: pulumi.String(\"service account to manage VMs\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA service account can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/iamServiceAccount:IamServiceAccount sa account_id\n```\n\n ",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Description of the service account.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the service account will be created in.\nDefaults to the provider folder configuration.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the service account.\nCan be updated without creating a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "name"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the service account.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the service account will be created in.\nDefaults to the provider folder configuration.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the service account.\nCan be updated without creating a new resource.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IamServiceAccount resources.\n",
        "properties": {
          "createdAt": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "Description of the service account.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder that the service account will be created in.\nDefaults to the provider folder configuration.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the service account.\nCan be updated without creating a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/iamServiceAccountApiKey:IamServiceAccountApiKey": {
      "description": "Allows management of a [Yandex.Cloud IAM service account API key](https://cloud.yandex.com/docs/iam/concepts/authorization/api-key).\nThe API key is a private key used for simplified authorization in the Yandex.Cloud API. API keys are only used for [service accounts](https://cloud.yandex.com/docs/iam/concepts/users/service-accounts).\n\nAPI keys do not expire. This means that this authentication method is simpler, but less secure. Use it if you can't automatically request an [IAM token](https://cloud.yandex.com/docs/iam/concepts/authorization/iam-token).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis snippet creates an API key.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst sa_api_key = new yandex.IamServiceAccountApiKey(\"sa-api-key\", {\n    description: \"api key for authorization\",\n    pgpKey: \"keybase:keybaseusername\",\n    serviceAccountId: \"some_sa_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nsa_api_key = yandex.IamServiceAccountApiKey(\"sa-api-key\",\n    description=\"api key for authorization\",\n    pgp_key=\"keybase:keybaseusername\",\n    service_account_id=\"some_sa_id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var sa_api_key = new Yandex.IamServiceAccountApiKey(\"sa-api-key\", new Yandex.IamServiceAccountApiKeyArgs\n        {\n            Description = \"api key for authorization\",\n            PgpKey = \"keybase:keybaseusername\",\n            ServiceAccountId = \"some_sa_id\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewIamServiceAccountApiKey(ctx, \"sa-api-key\", &yandex.IamServiceAccountApiKeyArgs{\n\t\t\tDescription:      pulumi.String(\"api key for authorization\"),\n\t\t\tPgpKey:           pulumi.String(\"keybase:keybaseusername\"),\n\t\t\tServiceAccountId: pulumi.String(\"some_sa_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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the static access key.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the key.\n"
        },
        "encryptedSecretKey": {
          "type": "string",
          "description": "The encrypted secret key, base64 encoded. This is only populated when `pgp_key` is supplied.\n"
        },
        "keyFingerprint": {
          "type": "string",
          "description": "The fingerprint of the PGP key used to encrypt the secret key. This is only populated when `pgp_key` is supplied.\n"
        },
        "pgpKey": {
          "type": "string",
          "description": "An optional PGP key to encrypt the resulting secret key material. May either be a base64-encoded public key or a keybase username in the form `keybase:keybaseusername`.\n"
        },
        "secretKey": {
          "type": "string",
          "description": "The secret key. This is only populated when no `pgp_key` is provided.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "ID of the service account to an API key for.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "encryptedSecretKey",
        "keyFingerprint",
        "secretKey",
        "serviceAccountId"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "The description of the key.\n"
        },
        "pgpKey": {
          "type": "string",
          "description": "An optional PGP key to encrypt the resulting secret key material. May either be a base64-encoded public key or a keybase username in the form `keybase:keybaseusername`.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "ID of the service account to an API key for.\n"
        }
      },
      "requiredInputs": [
        "serviceAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IamServiceAccountApiKey resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the static access key.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of the key.\n"
          },
          "encryptedSecretKey": {
            "type": "string",
            "description": "The encrypted secret key, base64 encoded. This is only populated when `pgp_key` is supplied.\n"
          },
          "keyFingerprint": {
            "type": "string",
            "description": "The fingerprint of the PGP key used to encrypt the secret key. This is only populated when `pgp_key` is supplied.\n"
          },
          "pgpKey": {
            "type": "string",
            "description": "An optional PGP key to encrypt the resulting secret key material. May either be a base64-encoded public key or a keybase username in the form `keybase:keybaseusername`.\n"
          },
          "secretKey": {
            "type": "string",
            "description": "The secret key. This is only populated when no `pgp_key` is provided.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "ID of the service account to an API key for.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/iamServiceAccountIamBinding:IamServiceAccountIamBinding": {
      "description": "When managing IAM roles, you can treat a service account either as a resource or as an identity. \nThis resource is used to add IAM policy bindings to a service account resource to configure permissions \nthat define who can edit the service account.\n\nThere are three different resources that help you manage your IAM policy for a service account. \nEach of these resources is used for a different use case:\n\n* yandex_iam_service_account_iam_policy: Authoritative. Sets the IAM policy for the service account and replaces any existing policy already attached.\n* yandex_iam_service_account_iam_binding: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the service account are preserved.\n* yandex_iam_service_account_iam_member: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role of the service account are preserved.\n\n> **Note:** `yandex.IamServiceAccountIamPolicy` **cannot** be used in conjunction with `yandex.IamServiceAccountIamBinding` and `yandex.IamServiceAccountIamMember` or they will conflict over what your policy should be.\n\n> **Note:** `yandex.IamServiceAccountIamBinding` resources **can be** used in conjunction with `yandex.IamServiceAccountIamMember` resources **only if** they do not grant privileges to the same role.\n\n## yandex\\_service\\_account\\_iam\\_binding\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst admin_account_iam = new yandex.IamServiceAccountIamBinding(\"admin-account-iam\", {\n    members: [\"userAccount:foo_user_id\"],\n    role: \"admin\",\n    serviceAccountId: \"your-service-account-id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nadmin_account_iam = yandex.IamServiceAccountIamBinding(\"admin-account-iam\",\n    members=[\"userAccount:foo_user_id\"],\n    role=\"admin\",\n    service_account_id=\"your-service-account-id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var admin_account_iam = new Yandex.IamServiceAccountIamBinding(\"admin-account-iam\", new Yandex.IamServiceAccountIamBindingArgs\n        {\n            Members = \n            {\n                \"userAccount:foo_user_id\",\n            },\n            Role = \"admin\",\n            ServiceAccountId = \"your-service-account-id\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewIamServiceAccountIamBinding(ctx, \"admin-account-iam\", &yandex.IamServiceAccountIamBindingArgs{\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"userAccount:foo_user_id\"),\n\t\t\t},\n\t\t\tRole:             pulumi.String(\"admin\"),\n\t\t\tServiceAccountId: pulumi.String(\"your-service-account-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\n\n## Import\n\nService account IAM binding resources can be imported using the service account ID and role.\n\n```sh\n $ pulumi import yandex:index/iamServiceAccountIamBinding:IamServiceAccountIamBinding admin-account-iam \"service_account_id roles/editor\"\n```\n\n ",
      "properties": {
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be applied. Only one\n`yandex.IamServiceAccountIamBinding` can be used per role.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "The service account ID to apply a binding to.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "members",
        "role",
        "serviceAccountId"
      ],
      "inputProperties": {
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be applied. Only one\n`yandex.IamServiceAccountIamBinding` can be used per role.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "The service account ID to apply a binding to.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "requiredInputs": [
        "members",
        "role",
        "serviceAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IamServiceAccountIamBinding resources.\n",
        "properties": {
          "members": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
          },
          "role": {
            "type": "string",
            "description": "The role that should be applied. Only one\n`yandex.IamServiceAccountIamBinding` can be used per role.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "The service account ID to apply a binding to.\n"
          },
          "sleepAfter": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/iamServiceAccountIamMember:IamServiceAccountIamMember": {
      "description": "When managing IAM roles, you can treat a service account either as a resource or as an identity. \nThis resource is used to add IAM policy bindings to a service account resource to configure permissions \nthat define who can edit the service account.\n\nThere are three different resources that help you manage your IAM policy for a service account. \nEach of these resources is used for a different use case:\n\n* yandex_iam_service_account_iam_policy: Authoritative. Sets the IAM policy for the service account and replaces any existing policy already attached.\n* yandex_iam_service_account_iam_binding: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the service account are preserved.\n* yandex_iam_service_account_iam_member: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role of the service account are preserved.\n\n> **Note:** `yandex.IamServiceAccountIamPolicy` **cannot** be used in conjunction with `yandex.IamServiceAccountIamBinding` and `yandex.IamServiceAccountIamMember` or they will conflict over what your policy should be.\n\n> **Note:** `yandex.IamServiceAccountIamBinding` resources **can be** used in conjunction with `yandex.IamServiceAccountIamMember` resources **only if** they do not grant privileges to the same role.\n\n## yandex\\_service\\_account\\_iam\\_member\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst admin_account_iam = new yandex.IamServiceAccountIamMember(\"admin-account-iam\", {\n    member: \"userAccount:bar_user_id\",\n    role: \"admin\",\n    serviceAccountId: \"your-service-account-id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nadmin_account_iam = yandex.IamServiceAccountIamMember(\"admin-account-iam\",\n    member=\"userAccount:bar_user_id\",\n    role=\"admin\",\n    service_account_id=\"your-service-account-id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var admin_account_iam = new Yandex.IamServiceAccountIamMember(\"admin-account-iam\", new Yandex.IamServiceAccountIamMemberArgs\n        {\n            Member = \"userAccount:bar_user_id\",\n            Role = \"admin\",\n            ServiceAccountId = \"your-service-account-id\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewIamServiceAccountIamMember(ctx, \"admin-account-iam\", &yandex.IamServiceAccountIamMemberArgs{\n\t\t\tMember:           pulumi.String(\"userAccount:bar_user_id\"),\n\t\t\tRole:             pulumi.String(\"admin\"),\n\t\t\tServiceAccountId: pulumi.String(\"your-service-account-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\n\n## Import\n\nService account IAM member resources can be imported using the service account ID, role and member.\n\n```sh\n $ pulumi import yandex:index/iamServiceAccountIamMember:IamServiceAccountIamMember admin-account-iam \"service_account_id roles/editor foo@example.com\"\n```\n\n ",
      "properties": {
        "member": {
          "type": "string",
          "description": "Identity that will be granted the privilege in `role`.\nEntry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be applied. Only one\n`yandex.IamServiceAccountIamBinding` can be used per role.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "The service account ID to apply a policy to.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "member",
        "role",
        "serviceAccountId"
      ],
      "inputProperties": {
        "member": {
          "type": "string",
          "description": "Identity that will be granted the privilege in `role`.\nEntry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be applied. Only one\n`yandex.IamServiceAccountIamBinding` can be used per role.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "The service account ID to apply a policy to.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "requiredInputs": [
        "member",
        "role",
        "serviceAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IamServiceAccountIamMember resources.\n",
        "properties": {
          "member": {
            "type": "string",
            "description": "Identity that will be granted the privilege in `role`.\nEntry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
          },
          "role": {
            "type": "string",
            "description": "The role that should be applied. Only one\n`yandex.IamServiceAccountIamBinding` can be used per role.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "The service account ID to apply a policy to.\n"
          },
          "sleepAfter": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/iamServiceAccountIamPolicy:IamServiceAccountIamPolicy": {
      "description": "When managing IAM roles, you can treat a service account either as a resource or as an identity. \nThis resource is used to add IAM policy bindings to a service account resource to configure permissions \nthat define who can edit the service account.\n\nThere are three different resources that help you manage your IAM policy for a service account. \nEach of these resources is used for a different use case:\n\n* yandex_iam_service_account_iam_policy: Authoritative. Sets the IAM policy for the service account and replaces any existing policy already attached.\n* yandex_iam_service_account_iam_binding: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the service account are preserved.\n* yandex_iam_service_account_iam_member: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role of the service account are preserved.\n\n> **Note:** `yandex.IamServiceAccountIamPolicy` **cannot** be used in conjunction with `yandex.IamServiceAccountIamBinding` and `yandex.IamServiceAccountIamMember` or they will conflict over what your policy should be.\n\n> **Note:** `yandex.IamServiceAccountIamBinding` resources **can be** used in conjunction with `yandex.IamServiceAccountIamMember` resources **only if** they do not grant privileges to the same role.\n\n## yandex\\_service\\_account\\_iam\\_policy\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst admin = pulumi.output(yandex.getIamPolicy({\n    bindings: [{\n        members: [\"userAccount:foobar_user_id\"],\n        role: \"admin\",\n    }],\n}));\nconst admin_account_iam = new yandex.IamServiceAccountIamPolicy(\"admin-account-iam\", {\n    policyData: admin.policyData,\n    serviceAccountId: \"your-service-account-id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nadmin = yandex.get_iam_policy(bindings=[yandex.GetIamPolicyBindingArgs(\n    members=[\"userAccount:foobar_user_id\"],\n    role=\"admin\",\n)])\nadmin_account_iam = yandex.IamServiceAccountIamPolicy(\"admin-account-iam\",\n    policy_data=admin.policy_data,\n    service_account_id=\"your-service-account-id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var admin = Output.Create(Yandex.GetIamPolicy.InvokeAsync(new Yandex.GetIamPolicyArgs\n        {\n            Bindings = \n            {\n                new Yandex.Inputs.GetIamPolicyBindingArgs\n                {\n                    Members = \n                    {\n                        \"userAccount:foobar_user_id\",\n                    },\n                    Role = \"admin\",\n                },\n            },\n        }));\n        var admin_account_iam = new Yandex.IamServiceAccountIamPolicy(\"admin-account-iam\", new Yandex.IamServiceAccountIamPolicyArgs\n        {\n            PolicyData = admin.Apply(admin => admin.PolicyData),\n            ServiceAccountId = \"your-service-account-id\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tadmin, err := yandex.GetIamPolicy(ctx, &GetIamPolicyArgs{\n\t\t\tBindings: []GetIamPolicyBinding{\n\t\t\t\tGetIamPolicyBinding{\n\t\t\t\t\tMembers: []string{\n\t\t\t\t\t\t\"userAccount:foobar_user_id\",\n\t\t\t\t\t},\n\t\t\t\t\tRole: \"admin\",\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewIamServiceAccountIamPolicy(ctx, \"admin-account-iam\", &yandex.IamServiceAccountIamPolicyArgs{\n\t\t\tPolicyData:       pulumi.String(admin.PolicyData),\n\t\t\tServiceAccountId: pulumi.String(\"your-service-account-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\n\n## Import\n\nService account IAM policy resources can be imported using the service account ID.\n\n```sh\n $ pulumi import yandex:index/iamServiceAccountIamPolicy:IamServiceAccountIamPolicy admin-account-iam service_account_id\n```\n\n ",
      "properties": {
        "policyData": {
          "type": "string",
          "description": "The policy data generated by\na `yandex.getIamPolicy` data source.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "The service account ID to apply a policy to.\n"
        }
      },
      "type": "object",
      "required": [
        "policyData",
        "serviceAccountId"
      ],
      "inputProperties": {
        "policyData": {
          "type": "string",
          "description": "The policy data generated by\na `yandex.getIamPolicy` data source.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "The service account ID to apply a policy to.\n"
        }
      },
      "requiredInputs": [
        "policyData",
        "serviceAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IamServiceAccountIamPolicy resources.\n",
        "properties": {
          "policyData": {
            "type": "string",
            "description": "The policy data generated by\na `yandex.getIamPolicy` data source.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "The service account ID to apply a policy to.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/iamServiceAccountKey:IamServiceAccountKey": {
      "description": "Allows management of [Yandex.Cloud IAM service account authorized keys](https://cloud.yandex.com/docs/iam/concepts/authorization/key).\nGenerated pair of keys is used to create a [JSON Web Token](https://tools.ietf.org/html/rfc7519) which is necessary for requesting an [IAM Token](https://cloud.yandex.com/docs/iam/concepts/authorization/iam-token) for a [service account](https://cloud.yandex.com/docs/iam/concepts/users/service-accounts).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis snippet creates an authorized keys pair.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst sa_auth_key = new yandex.IamServiceAccountKey(\"sa-auth-key\", {\n    description: \"key for service account\",\n    keyAlgorithm: \"RSA_4096\",\n    pgpKey: \"keybase:keybaseusername\",\n    serviceAccountId: \"some_sa_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nsa_auth_key = yandex.IamServiceAccountKey(\"sa-auth-key\",\n    description=\"key for service account\",\n    key_algorithm=\"RSA_4096\",\n    pgp_key=\"keybase:keybaseusername\",\n    service_account_id=\"some_sa_id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var sa_auth_key = new Yandex.IamServiceAccountKey(\"sa-auth-key\", new Yandex.IamServiceAccountKeyArgs\n        {\n            Description = \"key for service account\",\n            KeyAlgorithm = \"RSA_4096\",\n            PgpKey = \"keybase:keybaseusername\",\n            ServiceAccountId = \"some_sa_id\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewIamServiceAccountKey(ctx, \"sa-auth-key\", &yandex.IamServiceAccountKeyArgs{\n\t\t\tDescription:      pulumi.String(\"key for service account\"),\n\t\t\tKeyAlgorithm:     pulumi.String(\"RSA_4096\"),\n\t\t\tPgpKey:           pulumi.String(\"keybase:keybaseusername\"),\n\t\t\tServiceAccountId: pulumi.String(\"some_sa_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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the static access key.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the key pair.\n"
        },
        "encryptedPrivateKey": {
          "type": "string",
          "description": "The encrypted private key, base64 encoded. This is only populated when `pgp_key` is supplied.\n"
        },
        "format": {
          "type": "string",
          "description": "The output format of the keys. `PEM_FILE` is the default format.\n"
        },
        "keyAlgorithm": {
          "type": "string",
          "description": "The algorithm used to generate the key. `RSA_2048` is the default algorithm.\nValid values are listed in the [API reference](https://cloud.yandex.com/docs/iam/api-ref/Key).\n"
        },
        "keyFingerprint": {
          "type": "string",
          "description": "The fingerprint of the PGP key used to encrypt the private key. This is only populated when `pgp_key` is supplied.\n"
        },
        "pgpKey": {
          "type": "string",
          "description": "An optional PGP key to encrypt the resulting private key material. May either be a base64-encoded public key or a keybase username in the form `keybase:keybaseusername`.\n"
        },
        "privateKey": {
          "type": "string",
          "description": "The private key. This is only populated when no `pgp_key` is provided.\n"
        },
        "publicKey": {
          "type": "string",
          "description": "The public key.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "ID of the service account to create a pair for.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "encryptedPrivateKey",
        "keyFingerprint",
        "privateKey",
        "publicKey",
        "serviceAccountId"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "The description of the key pair.\n"
        },
        "format": {
          "type": "string",
          "description": "The output format of the keys. `PEM_FILE` is the default format.\n"
        },
        "keyAlgorithm": {
          "type": "string",
          "description": "The algorithm used to generate the key. `RSA_2048` is the default algorithm.\nValid values are listed in the [API reference](https://cloud.yandex.com/docs/iam/api-ref/Key).\n"
        },
        "pgpKey": {
          "type": "string",
          "description": "An optional PGP key to encrypt the resulting private key material. May either be a base64-encoded public key or a keybase username in the form `keybase:keybaseusername`.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "ID of the service account to create a pair for.\n"
        }
      },
      "requiredInputs": [
        "serviceAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IamServiceAccountKey resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the static access key.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of the key pair.\n"
          },
          "encryptedPrivateKey": {
            "type": "string",
            "description": "The encrypted private key, base64 encoded. This is only populated when `pgp_key` is supplied.\n"
          },
          "format": {
            "type": "string",
            "description": "The output format of the keys. `PEM_FILE` is the default format.\n"
          },
          "keyAlgorithm": {
            "type": "string",
            "description": "The algorithm used to generate the key. `RSA_2048` is the default algorithm.\nValid values are listed in the [API reference](https://cloud.yandex.com/docs/iam/api-ref/Key).\n"
          },
          "keyFingerprint": {
            "type": "string",
            "description": "The fingerprint of the PGP key used to encrypt the private key. This is only populated when `pgp_key` is supplied.\n"
          },
          "pgpKey": {
            "type": "string",
            "description": "An optional PGP key to encrypt the resulting private key material. May either be a base64-encoded public key or a keybase username in the form `keybase:keybaseusername`.\n"
          },
          "privateKey": {
            "type": "string",
            "description": "The private key. This is only populated when no `pgp_key` is provided.\n"
          },
          "publicKey": {
            "type": "string",
            "description": "The public key.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "ID of the service account to create a pair for.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/iamServiceAccountStaticAccessKey:IamServiceAccountStaticAccessKey": {
      "description": "Allows management of [Yandex.Cloud IAM service account static access keys](https://cloud.yandex.com/docs/iam/operations/sa/create-access-key).\nGenerated pair of keys is used to access [Yandex Object Storage](https://cloud.yandex.com/docs/storage) on behalf of service account.\n\nBefore using keys do not forget to [assign a proper role](https://cloud.yandex.com/docs/iam/operations/sa/assign-role-for-sa) to the service account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis snippet creates a service account static access key.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst sa_static_key = new yandex.IamServiceAccountStaticAccessKey(\"sa-static-key\", {\n    description: \"static access key for object storage\",\n    pgpKey: \"keybase:keybaseusername\",\n    serviceAccountId: \"some_sa_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nsa_static_key = yandex.IamServiceAccountStaticAccessKey(\"sa-static-key\",\n    description=\"static access key for object storage\",\n    pgp_key=\"keybase:keybaseusername\",\n    service_account_id=\"some_sa_id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var sa_static_key = new Yandex.IamServiceAccountStaticAccessKey(\"sa-static-key\", new Yandex.IamServiceAccountStaticAccessKeyArgs\n        {\n            Description = \"static access key for object storage\",\n            PgpKey = \"keybase:keybaseusername\",\n            ServiceAccountId = \"some_sa_id\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewIamServiceAccountStaticAccessKey(ctx, \"sa-static-key\", &yandex.IamServiceAccountStaticAccessKeyArgs{\n\t\t\tDescription:      pulumi.String(\"static access key for object storage\"),\n\t\t\tPgpKey:           pulumi.String(\"keybase:keybaseusername\"),\n\t\t\tServiceAccountId: pulumi.String(\"some_sa_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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "accessKey": {
          "type": "string",
          "description": "ID of the static access key.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the static access key.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the service account static key.\n"
        },
        "encryptedSecretKey": {
          "type": "string",
          "description": "The encrypted secret, base64 encoded. This is only populated when `pgp_key` is supplied.\n"
        },
        "keyFingerprint": {
          "type": "string",
          "description": "The fingerprint of the PGP key used to encrypt the secret key. This is only populated when `pgp_key` is supplied.\n"
        },
        "pgpKey": {
          "type": "string",
          "description": "An optional PGP key to encrypt the resulting secret key material. May either be a base64-encoded public key or a keybase username in the form `keybase:keybaseusername`.\n"
        },
        "secretKey": {
          "type": "string",
          "description": "Private part of generated static access key. This is only populated when no `pgp_key` is provided.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "ID of the service account which is used to get a static key.\n"
        }
      },
      "type": "object",
      "required": [
        "accessKey",
        "createdAt",
        "encryptedSecretKey",
        "keyFingerprint",
        "secretKey",
        "serviceAccountId"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "The description of the service account static key.\n"
        },
        "pgpKey": {
          "type": "string",
          "description": "An optional PGP key to encrypt the resulting secret key material. May either be a base64-encoded public key or a keybase username in the form `keybase:keybaseusername`.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "ID of the service account which is used to get a static key.\n"
        }
      },
      "requiredInputs": [
        "serviceAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IamServiceAccountStaticAccessKey resources.\n",
        "properties": {
          "accessKey": {
            "type": "string",
            "description": "ID of the static access key.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the static access key.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of the service account static key.\n"
          },
          "encryptedSecretKey": {
            "type": "string",
            "description": "The encrypted secret, base64 encoded. This is only populated when `pgp_key` is supplied.\n"
          },
          "keyFingerprint": {
            "type": "string",
            "description": "The fingerprint of the PGP key used to encrypt the secret key. This is only populated when `pgp_key` is supplied.\n"
          },
          "pgpKey": {
            "type": "string",
            "description": "An optional PGP key to encrypt the resulting secret key material. May either be a base64-encoded public key or a keybase username in the form `keybase:keybaseusername`.\n"
          },
          "secretKey": {
            "type": "string",
            "description": "Private part of generated static access key. This is only populated when no `pgp_key` is provided.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "ID of the service account which is used to get a static key.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/iotCoreDevice:IotCoreDevice": {
      "description": "Allows management of [Yandex.Cloud IoT Device](https://cloud.yandex.com/docs/iot-core/quickstart).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myDevice = new yandex.IotCoreDevice(\"my_device\", {\n    aliases: {\n        \"some_alias1/subtopic\": \"$devices/{id}/events/somesubtopic\",\n        \"some_alias2/subtopic\": \"$devices/{id}/events/aaa/bbb\",\n    },\n    certificates: [\n        \"public part of certificate1\",\n        \"public part of certificate2\",\n    ],\n    description: \"any description\",\n    passwords: [\n        \"my-password1\",\n        \"my-password2\",\n    ],\n    registryId: \"are1sampleregistryid11\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_device = yandex.IotCoreDevice(\"myDevice\",\n    aliases={\n        \"some_alias1/subtopic\": \"$devices/{id}/events/somesubtopic\",\n        \"some_alias2/subtopic\": \"$devices/{id}/events/aaa/bbb\",\n    },\n    certificates=[\n        \"public part of certificate1\",\n        \"public part of certificate2\",\n    ],\n    description=\"any description\",\n    passwords=[\n        \"my-password1\",\n        \"my-password2\",\n    ],\n    registry_id=\"are1sampleregistryid11\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myDevice = new Yandex.IotCoreDevice(\"myDevice\", new Yandex.IotCoreDeviceArgs\n        {\n            Aliases = \n            {\n                { \"some_alias1/subtopic\", \"$devices/{id}/events/somesubtopic\" },\n                { \"some_alias2/subtopic\", \"$devices/{id}/events/aaa/bbb\" },\n            },\n            Certificates = \n            {\n                \"public part of certificate1\",\n                \"public part of certificate2\",\n            },\n            Description = \"any description\",\n            Passwords = \n            {\n                \"my-password1\",\n                \"my-password2\",\n            },\n            RegistryId = \"are1sampleregistryid11\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewIotCoreDevice(ctx, \"myDevice\", &yandex.IotCoreDeviceArgs{\n\t\t\tAliases: pulumi.StringMap{\n\t\t\t\t\"some_alias1/subtopic\": pulumi.String(fmt.Sprintf(\"%v%v\", \"$\", \"devices/{id}/events/somesubtopic\")),\n\t\t\t\t\"some_alias2/subtopic\": pulumi.String(fmt.Sprintf(\"%v%v\", \"$\", \"devices/{id}/events/aaa/bbb\")),\n\t\t\t},\n\t\t\tCertificates: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"public part of certificate1\"),\n\t\t\t\tpulumi.String(\"public part of certificate2\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"any description\"),\n\t\t\tPasswords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"my-password1\"),\n\t\t\t\tpulumi.String(\"my-password2\"),\n\t\t\t},\n\t\t\tRegistryId: pulumi.String(\"are1sampleregistryid11\"),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "aliases": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value aliases pairs to assign to the IoT Core Device\n"
        },
        "certificates": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of certificate's fingerprints for the IoT Core Device\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the IoT Core Device\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the IoT Core Device\n"
        },
        "name": {
          "type": "string",
          "description": "IoT Core Device name used to define device\n"
        },
        "passwords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of passwords's id for the IoT Core Device\n"
        },
        "registryId": {
          "type": "string",
          "description": "IoT Core Registry ID for the IoT Core Device\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "name",
        "registryId"
      ],
      "inputProperties": {
        "aliases": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value aliases pairs to assign to the IoT Core Device\n"
        },
        "certificates": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of certificate's fingerprints for the IoT Core Device\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the IoT Core Device\n"
        },
        "name": {
          "type": "string",
          "description": "IoT Core Device name used to define device\n"
        },
        "passwords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of passwords's id for the IoT Core Device\n"
        },
        "registryId": {
          "type": "string",
          "description": "IoT Core Registry ID for the IoT Core Device\n"
        }
      },
      "requiredInputs": [
        "registryId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IotCoreDevice resources.\n",
        "properties": {
          "aliases": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value aliases pairs to assign to the IoT Core Device\n"
          },
          "certificates": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of certificate's fingerprints for the IoT Core Device\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the IoT Core Device\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the IoT Core Device\n"
          },
          "name": {
            "type": "string",
            "description": "IoT Core Device name used to define device\n"
          },
          "passwords": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of passwords's id for the IoT Core Device\n"
          },
          "registryId": {
            "type": "string",
            "description": "IoT Core Registry ID for the IoT Core Device\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/iotCoreRegistry:IotCoreRegistry": {
      "description": "Allows management of [Yandex.Cloud IoT Registry](https://cloud.yandex.com/docs/iot-core/quickstart).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myRegistry = new yandex.IotCoreRegistry(\"my_registry\", {\n    certificates: [\n        \"public part of certificate1\",\n        \"public part of certificate2\",\n    ],\n    description: \"any description\",\n    labels: {\n        \"my-label\": \"my-label-value\",\n    },\n    passwords: [\n        \"my-password1\",\n        \"my-password2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_registry = yandex.IotCoreRegistry(\"myRegistry\",\n    certificates=[\n        \"public part of certificate1\",\n        \"public part of certificate2\",\n    ],\n    description=\"any description\",\n    labels={\n        \"my-label\": \"my-label-value\",\n    },\n    passwords=[\n        \"my-password1\",\n        \"my-password2\",\n    ])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myRegistry = new Yandex.IotCoreRegistry(\"myRegistry\", new Yandex.IotCoreRegistryArgs\n        {\n            Certificates = \n            {\n                \"public part of certificate1\",\n                \"public part of certificate2\",\n            },\n            Description = \"any description\",\n            Labels = \n            {\n                { \"my-label\", \"my-label-value\" },\n            },\n            Passwords = \n            {\n                \"my-password1\",\n                \"my-password2\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewIotCoreRegistry(ctx, \"myRegistry\", &yandex.IotCoreRegistryArgs{\n\t\t\tCertificates: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"public part of certificate1\"),\n\t\t\t\tpulumi.String(\"public part of certificate2\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"any description\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"my-label\": pulumi.String(\"my-label-value\"),\n\t\t\t},\n\t\t\tPasswords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"my-password1\"),\n\t\t\t\tpulumi.String(\"my-password2\"),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "certificates": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of certificate's fingerprints for the IoT Core Registry\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the IoT Core Registry\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the IoT Core Registry\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder ID for the IoT Core Registry\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the IoT Core Registry.\n"
        },
        "name": {
          "type": "string",
          "description": "IoT Core Device name used to define registry\n"
        },
        "passwords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of passwords's id for the IoT Core Registry\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "name"
      ],
      "inputProperties": {
        "certificates": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of certificate's fingerprints for the IoT Core Registry\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the IoT Core Registry\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder ID for the IoT Core Registry\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the IoT Core Registry.\n"
        },
        "name": {
          "type": "string",
          "description": "IoT Core Device name used to define registry\n"
        },
        "passwords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of passwords's id for the IoT Core Registry\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IotCoreRegistry resources.\n",
        "properties": {
          "certificates": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of certificate's fingerprints for the IoT Core Registry\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the IoT Core Registry\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the IoT Core Registry\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder ID for the IoT Core Registry\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the IoT Core Registry.\n"
          },
          "name": {
            "type": "string",
            "description": "IoT Core Device name used to define registry\n"
          },
          "passwords": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of passwords's id for the IoT Core Registry\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/kmsSecretCiphertext:KmsSecretCiphertext": {
      "description": "Encrypts given plaintext with the specified Yandex KMS key and provides access to the ciphertext.\n\n> **Note:** Using this resource will allow you to conceal secret data within your\nresource definitions, but it does not take care of protecting that data in the\nlogging output, plan output, or state output.  Please take care to secure your secret\ndata outside of resource definitions.\n\nFor more information, see [the official documentation](https://cloud.yandex.com/docs/kms/concepts/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst example = new yandex.KmsSymmetricKey(\"example\", {\n    description: \"description for key\",\n});\nconst password = new yandex.KmsSecretCiphertext(\"password\", {\n    aadContext: \"additional authenticated data\",\n    keyId: example.id,\n    plaintext: \"strong password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nexample = yandex.KmsSymmetricKey(\"example\", description=\"description for key\")\npassword = yandex.KmsSecretCiphertext(\"password\",\n    aad_context=\"additional authenticated data\",\n    key_id=example.id,\n    plaintext=\"strong password\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Yandex.KmsSymmetricKey(\"example\", new Yandex.KmsSymmetricKeyArgs\n        {\n            Description = \"description for key\",\n        });\n        var password = new Yandex.KmsSecretCiphertext(\"password\", new Yandex.KmsSecretCiphertextArgs\n        {\n            AadContext = \"additional authenticated data\",\n            KeyId = example.Id,\n            Plaintext = \"strong password\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewKmsSymmetricKey(ctx, \"example\", &yandex.KmsSymmetricKeyArgs{\n\t\t\tDescription: pulumi.String(\"description for key\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewKmsSecretCiphertext(ctx, \"password\", &yandex.KmsSecretCiphertextArgs{\n\t\t\tAadContext: pulumi.String(\"additional authenticated data\"),\n\t\t\tKeyId:      example.ID(),\n\t\t\tPlaintext:  pulumi.String(\"strong password\"),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "aadContext": {
          "type": "string",
          "description": "Additional authenticated data (AAD context), optional. If specified, this data will be required for decryption with the `SymmetricDecryptRequest`\n"
        },
        "ciphertext": {
          "type": "string",
          "description": "Resulting ciphertext, encoded with \"standard\" base64 alphabet as defined in RFC 4648 section 4\n"
        },
        "keyId": {
          "type": "string",
          "description": "ID of the symmetric KMS key to use for encryption.\n"
        },
        "plaintext": {
          "type": "string",
          "description": "Plaintext to be encrypted.\n"
        }
      },
      "type": "object",
      "required": [
        "ciphertext",
        "keyId",
        "plaintext"
      ],
      "inputProperties": {
        "aadContext": {
          "type": "string",
          "description": "Additional authenticated data (AAD context), optional. If specified, this data will be required for decryption with the `SymmetricDecryptRequest`\n"
        },
        "keyId": {
          "type": "string",
          "description": "ID of the symmetric KMS key to use for encryption.\n"
        },
        "plaintext": {
          "type": "string",
          "description": "Plaintext to be encrypted.\n"
        }
      },
      "requiredInputs": [
        "keyId",
        "plaintext"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering KmsSecretCiphertext resources.\n",
        "properties": {
          "aadContext": {
            "type": "string",
            "description": "Additional authenticated data (AAD context), optional. If specified, this data will be required for decryption with the `SymmetricDecryptRequest`\n"
          },
          "ciphertext": {
            "type": "string",
            "description": "Resulting ciphertext, encoded with \"standard\" base64 alphabet as defined in RFC 4648 section 4\n"
          },
          "keyId": {
            "type": "string",
            "description": "ID of the symmetric KMS key to use for encryption.\n"
          },
          "plaintext": {
            "type": "string",
            "description": "Plaintext to be encrypted.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/kmsSymmetricKey:KmsSymmetricKey": {
      "description": "\n\n\n## Import\n\nA KMS symmetric key can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/kmsSymmetricKey:KmsSymmetricKey top-secret kms_key_id\n```\n\n ",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the key.\n"
        },
        "defaultAlgorithm": {
          "type": "string",
          "description": "Encryption algorithm to be used with a new key version, \ngenerated with the next rotation. The default value is `AES_128`.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description of the key.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the key.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the key.\n"
        },
        "rotatedAt": {
          "type": "string",
          "description": "Last rotation timestamp of the key.\n"
        },
        "rotationPeriod": {
          "type": "string",
          "description": "Interval between automatic rotations. To disable automatic rotation, omit this parameter.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the key.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "name",
        "rotatedAt",
        "status"
      ],
      "inputProperties": {
        "defaultAlgorithm": {
          "type": "string",
          "description": "Encryption algorithm to be used with a new key version, \ngenerated with the next rotation. The default value is `AES_128`.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description of the key.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the key.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the key.\n"
        },
        "rotationPeriod": {
          "type": "string",
          "description": "Interval between automatic rotations. To disable automatic rotation, omit this parameter.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering KmsSymmetricKey resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the key.\n"
          },
          "defaultAlgorithm": {
            "type": "string",
            "description": "Encryption algorithm to be used with a new key version, \ngenerated with the next rotation. The default value is `AES_128`.\n"
          },
          "description": {
            "type": "string",
            "description": "An optional description of the key.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the key.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the key.\n"
          },
          "rotatedAt": {
            "type": "string",
            "description": "Last rotation timestamp of the key.\n"
          },
          "rotationPeriod": {
            "type": "string",
            "description": "Interval between automatic rotations. To disable automatic rotation, omit this parameter.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the key.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/kmsSymmetricKeyIamBinding:KmsSymmetricKeyIamBinding": {
      "description": "## yandex\\_kms\\_symmetric\\_key\\_iam\\_binding\n\nAllows creation and management of a single binding within IAM policy for\nan existing Yandex KMS Symmetric Key.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst your_key = new yandex.KmsSymmetricKey(\"your-key\", {folderId: \"your-folder-id\"});\nconst viewer = new yandex.KmsSymmetricKeyIamBinding(\"viewer\", {\n    symmetricKeyId: your_key.id,\n    role: \"viewer\",\n    members: [\"userAccount:foo_user_id\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nyour_key = yandex.KmsSymmetricKey(\"your-key\", folder_id=\"your-folder-id\")\nviewer = yandex.KmsSymmetricKeyIamBinding(\"viewer\",\n    symmetric_key_id=your_key.id,\n    role=\"viewer\",\n    members=[\"userAccount:foo_user_id\"])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var your_key = new Yandex.KmsSymmetricKey(\"your-key\", new Yandex.KmsSymmetricKeyArgs\n        {\n            FolderId = \"your-folder-id\",\n        });\n        var viewer = new Yandex.KmsSymmetricKeyIamBinding(\"viewer\", new Yandex.KmsSymmetricKeyIamBindingArgs\n        {\n            SymmetricKeyId = your_key.Id,\n            Role = \"viewer\",\n            Members = \n            {\n                \"userAccount:foo_user_id\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewKmsSymmetricKey(ctx, \"your-key\", &yandex.KmsSymmetricKeyArgs{\n\t\t\tFolderId: pulumi.String(\"your-folder-id\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewKmsSymmetricKeyIamBinding(ctx, \"viewer\", &yandex.KmsSymmetricKeyIamBindingArgs{\n\t\t\tSymmetricKeyId: your_key.ID(),\n\t\t\tRole:           pulumi.String(\"viewer\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"userAccount:foo_user_id\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIAM binding imports use space-delimited identifiers; first the resource in question and then the role. These bindings can be imported using the `symmetric_key_id` and role, e.g.\n\n```sh\n $ pulumi import yandex:index/kmsSymmetricKeyIamBinding:KmsSymmetricKeyIamBinding viewer \"symmetric_key_id viewer\"\n```\n\n ",
      "properties": {
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **system:{allUsers|allAuthenticatedUsers}**: see [system groups](https://cloud.yandex.com/docs/iam/concepts/access-control/system-group)\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be applied. See [roles](https://cloud.yandex.com/docs/kms/security/).\n"
        },
        "sleepAfter": {
          "type": "integer"
        },
        "symmetricKeyId": {
          "type": "string",
          "description": "The [Yandex Key Management Service](https://cloud.yandex.com/docs/kms/) Symmetric Key ID to apply a binding to.\n"
        }
      },
      "type": "object",
      "required": [
        "members",
        "role",
        "symmetricKeyId"
      ],
      "inputProperties": {
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **system:{allUsers|allAuthenticatedUsers}**: see [system groups](https://cloud.yandex.com/docs/iam/concepts/access-control/system-group)\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be applied. See [roles](https://cloud.yandex.com/docs/kms/security/).\n"
        },
        "sleepAfter": {
          "type": "integer"
        },
        "symmetricKeyId": {
          "type": "string",
          "description": "The [Yandex Key Management Service](https://cloud.yandex.com/docs/kms/) Symmetric Key ID to apply a binding to.\n"
        }
      },
      "requiredInputs": [
        "members",
        "role",
        "symmetricKeyId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering KmsSymmetricKeyIamBinding resources.\n",
        "properties": {
          "members": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Identities that will be granted the privilege in `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **system:{allUsers|allAuthenticatedUsers}**: see [system groups](https://cloud.yandex.com/docs/iam/concepts/access-control/system-group)\n"
          },
          "role": {
            "type": "string",
            "description": "The role that should be applied. See [roles](https://cloud.yandex.com/docs/kms/security/).\n"
          },
          "sleepAfter": {
            "type": "integer"
          },
          "symmetricKeyId": {
            "type": "string",
            "description": "The [Yandex Key Management Service](https://cloud.yandex.com/docs/kms/) Symmetric Key ID to apply a binding to.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/kubernetesCluster:KubernetesCluster": {
      "description": "Creates a Yandex Kubernetes Cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst zonalClusterResourceName = new yandex.KubernetesCluster(\"zonal_cluster_resource_name\", {\n    description: \"description\",\n    kmsProvider: {\n        keyId: yandex_kms_symmetric_key_kms_key_resource_name.id,\n    },\n    labels: {\n        my_key: \"my_value\",\n        my_other_key: \"my_other_value\",\n    },\n    master: {\n        maintenancePolicy: {\n            autoUpgrade: true,\n            maintenanceWindows: [{\n                duration: \"3h\",\n                startTime: \"15:00\",\n            }],\n        },\n        publicIp: true,\n        securityGroupIds: [yandex_vpc_security_group_security_group_name.id],\n        version: \"1.17\",\n        zonal: {\n            subnetId: yandex_vpc_subnet_subnet_resource_name.id,\n            zone: yandex_vpc_subnet_subnet_resource_name.zone,\n        },\n    },\n    networkId: yandex_vpc_network_network_resource_name.id,\n    networkPolicyProvider: \"CALICO\",\n    nodeServiceAccountId: yandex_iam_service_account_node_service_account_resource_name.id,\n    releaseChannel: \"RAPID\",\n    serviceAccountId: yandex_iam_service_account_service_account_resource_name.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nzonal_cluster_resource_name = yandex.KubernetesCluster(\"zonalClusterResourceName\",\n    description=\"description\",\n    kms_provider=yandex.KubernetesClusterKmsProviderArgs(\n        key_id=yandex_kms_symmetric_key[\"kms_key_resource_name\"][\"id\"],\n    ),\n    labels={\n        \"my_key\": \"my_value\",\n        \"my_other_key\": \"my_other_value\",\n    },\n    master=yandex.KubernetesClusterMasterArgs(\n        maintenance_policy=yandex.KubernetesClusterMasterMaintenancePolicyArgs(\n            auto_upgrade=True,\n            maintenance_window=[{\n                \"duration\": \"3h\",\n                \"startTime\": \"15:00\",\n            }],\n        ),\n        public_ip=True,\n        security_group_ids=[yandex_vpc_security_group[\"security_group_name\"][\"id\"]],\n        version=\"1.17\",\n        zonal=yandex.KubernetesClusterMasterZonalArgs(\n            subnet_id=yandex_vpc_subnet[\"subnet_resource_name\"][\"id\"],\n            zone=yandex_vpc_subnet[\"subnet_resource_name\"][\"zone\"],\n        ),\n    ),\n    network_id=yandex_vpc_network[\"network_resource_name\"][\"id\"],\n    network_policy_provider=\"CALICO\",\n    node_service_account_id=yandex_iam_service_account[\"node_service_account_resource_name\"][\"id\"],\n    release_channel=\"RAPID\",\n    service_account_id=yandex_iam_service_account[\"service_account_resource_name\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var zonalClusterResourceName = new Yandex.KubernetesCluster(\"zonalClusterResourceName\", new Yandex.KubernetesClusterArgs\n        {\n            Description = \"description\",\n            KmsProvider = new Yandex.Inputs.KubernetesClusterKmsProviderArgs\n            {\n                KeyId = yandex_kms_symmetric_key.Kms_key_resource_name.Id,\n            },\n            Labels = \n            {\n                { \"my_key\", \"my_value\" },\n                { \"my_other_key\", \"my_other_value\" },\n            },\n            Master = new Yandex.Inputs.KubernetesClusterMasterArgs\n            {\n                MaintenancePolicy = new Yandex.Inputs.KubernetesClusterMasterMaintenancePolicyArgs\n                {\n                    AutoUpgrade = true,\n                    MaintenanceWindow = \n                    {\n                        \n                        {\n                            { \"duration\", \"3h\" },\n                            { \"startTime\", \"15:00\" },\n                        },\n                    },\n                },\n                PublicIp = true,\n                SecurityGroupIds = \n                {\n                    yandex_vpc_security_group.Security_group_name.Id,\n                },\n                Version = \"1.17\",\n                Zonal = new Yandex.Inputs.KubernetesClusterMasterZonalArgs\n                {\n                    SubnetId = yandex_vpc_subnet.Subnet_resource_name.Id,\n                    Zone = yandex_vpc_subnet.Subnet_resource_name.Zone,\n                },\n            },\n            NetworkId = yandex_vpc_network.Network_resource_name.Id,\n            NetworkPolicyProvider = \"CALICO\",\n            NodeServiceAccountId = yandex_iam_service_account.Node_service_account_resource_name.Id,\n            ReleaseChannel = \"RAPID\",\n            ServiceAccountId = yandex_iam_service_account.Service_account_resource_name.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewKubernetesCluster(ctx, \"zonalClusterResourceName\", &yandex.KubernetesClusterArgs{\n\t\t\tDescription: pulumi.String(\"description\"),\n\t\t\tKmsProvider: &KubernetesClusterKmsProviderArgs{\n\t\t\t\tKeyId: pulumi.Any(yandex_kms_symmetric_key.Kms_key_resource_name.Id),\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"my_key\":       pulumi.String(\"my_value\"),\n\t\t\t\t\"my_other_key\": pulumi.String(\"my_other_value\"),\n\t\t\t},\n\t\t\tMaster: &KubernetesClusterMasterArgs{\n\t\t\t\tMaintenancePolicy: &KubernetesClusterMasterMaintenancePolicyArgs{\n\t\t\t\t\tAutoUpgrade: pulumi.Bool(true),\n\t\t\t\t\tMaintenanceWindow: []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"duration\":  \"3h\",\n\t\t\t\t\t\t\t\"startTime\": \"15:00\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPublicIp: pulumi.Bool(true),\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.Any(yandex_vpc_security_group.Security_group_name.Id),\n\t\t\t\t},\n\t\t\t\tVersion: pulumi.String(\"1.17\"),\n\t\t\t\tZonal: &KubernetesClusterMasterZonalArgs{\n\t\t\t\t\tSubnetId: pulumi.Any(yandex_vpc_subnet.Subnet_resource_name.Id),\n\t\t\t\t\tZone:     pulumi.Any(yandex_vpc_subnet.Subnet_resource_name.Zone),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworkId:             pulumi.Any(yandex_vpc_network.Network_resource_name.Id),\n\t\t\tNetworkPolicyProvider: pulumi.String(\"CALICO\"),\n\t\t\tNodeServiceAccountId:  pulumi.Any(yandex_iam_service_account.Node_service_account_resource_name.Id),\n\t\t\tReleaseChannel:        pulumi.String(\"RAPID\"),\n\t\t\tServiceAccountId:      pulumi.Any(yandex_iam_service_account.Service_account_resource_name.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\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst regionalClusterResourceName = new yandex.KubernetesCluster(\"regional_cluster_resource_name\", {\n    description: \"description\",\n    labels: {\n        my_key: \"my_value\",\n        my_other_key: \"my_other_value\",\n    },\n    master: {\n        maintenancePolicy: {\n            autoUpgrade: true,\n            maintenanceWindows: [\n                {\n                    day: \"monday\",\n                    duration: \"3h\",\n                    startTime: \"15:00\",\n                },\n                {\n                    day: \"friday\",\n                    duration: \"4h30m\",\n                    startTime: \"10:00\",\n                },\n            ],\n        },\n        publicIp: true,\n        regional: {\n            locations: [\n                {\n                    subnetId: yandex_vpc_subnet_subnet_a_resource_name.id,\n                    zone: yandex_vpc_subnet_subnet_a_resource_name.zone,\n                },\n                {\n                    subnetId: yandex_vpc_subnet_subnet_b_resource_name.id,\n                    zone: yandex_vpc_subnet_subnet_b_resource_name.zone,\n                },\n                {\n                    subnetId: yandex_vpc_subnet_subnet_c_resource_name.id,\n                    zone: yandex_vpc_subnet_subnet_c_resource_name.zone,\n                },\n            ],\n            region: \"ru-central1\",\n        },\n        version: \"1.14\",\n    },\n    networkId: yandex_vpc_network_network_resource_name.id,\n    nodeServiceAccountId: yandex_iam_service_account_node_service_account_resource_name.id,\n    releaseChannel: \"STABLE\",\n    serviceAccountId: yandex_iam_service_account_service_account_resource_name.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nregional_cluster_resource_name = yandex.KubernetesCluster(\"regionalClusterResourceName\",\n    description=\"description\",\n    labels={\n        \"my_key\": \"my_value\",\n        \"my_other_key\": \"my_other_value\",\n    },\n    master=yandex.KubernetesClusterMasterArgs(\n        maintenance_policy=yandex.KubernetesClusterMasterMaintenancePolicyArgs(\n            auto_upgrade=True,\n            maintenance_window=[\n                {\n                    \"day\": \"monday\",\n                    \"duration\": \"3h\",\n                    \"startTime\": \"15:00\",\n                },\n                {\n                    \"day\": \"friday\",\n                    \"duration\": \"4h30m\",\n                    \"startTime\": \"10:00\",\n                },\n            ],\n        ),\n        public_ip=True,\n        regional=yandex.KubernetesClusterMasterRegionalArgs(\n            location=[\n                {\n                    \"subnetId\": yandex_vpc_subnet[\"subnet_a_resource_name\"][\"id\"],\n                    \"zone\": yandex_vpc_subnet[\"subnet_a_resource_name\"][\"zone\"],\n                },\n                {\n                    \"subnetId\": yandex_vpc_subnet[\"subnet_b_resource_name\"][\"id\"],\n                    \"zone\": yandex_vpc_subnet[\"subnet_b_resource_name\"][\"zone\"],\n                },\n                {\n                    \"subnetId\": yandex_vpc_subnet[\"subnet_c_resource_name\"][\"id\"],\n                    \"zone\": yandex_vpc_subnet[\"subnet_c_resource_name\"][\"zone\"],\n                },\n            ],\n            region=\"ru-central1\",\n        ),\n        version=\"1.14\",\n    ),\n    network_id=yandex_vpc_network[\"network_resource_name\"][\"id\"],\n    node_service_account_id=yandex_iam_service_account[\"node_service_account_resource_name\"][\"id\"],\n    release_channel=\"STABLE\",\n    service_account_id=yandex_iam_service_account[\"service_account_resource_name\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var regionalClusterResourceName = new Yandex.KubernetesCluster(\"regionalClusterResourceName\", new Yandex.KubernetesClusterArgs\n        {\n            Description = \"description\",\n            Labels = \n            {\n                { \"my_key\", \"my_value\" },\n                { \"my_other_key\", \"my_other_value\" },\n            },\n            Master = new Yandex.Inputs.KubernetesClusterMasterArgs\n            {\n                MaintenancePolicy = new Yandex.Inputs.KubernetesClusterMasterMaintenancePolicyArgs\n                {\n                    AutoUpgrade = true,\n                    MaintenanceWindow = \n                    {\n                        \n                        {\n                            { \"day\", \"monday\" },\n                            { \"duration\", \"3h\" },\n                            { \"startTime\", \"15:00\" },\n                        },\n                        \n                        {\n                            { \"day\", \"friday\" },\n                            { \"duration\", \"4h30m\" },\n                            { \"startTime\", \"10:00\" },\n                        },\n                    },\n                },\n                PublicIp = true,\n                Regional = new Yandex.Inputs.KubernetesClusterMasterRegionalArgs\n                {\n                    Location = \n                    {\n                        \n                        {\n                            { \"subnetId\", yandex_vpc_subnet.Subnet_a_resource_name.Id },\n                            { \"zone\", yandex_vpc_subnet.Subnet_a_resource_name.Zone },\n                        },\n                        \n                        {\n                            { \"subnetId\", yandex_vpc_subnet.Subnet_b_resource_name.Id },\n                            { \"zone\", yandex_vpc_subnet.Subnet_b_resource_name.Zone },\n                        },\n                        \n                        {\n                            { \"subnetId\", yandex_vpc_subnet.Subnet_c_resource_name.Id },\n                            { \"zone\", yandex_vpc_subnet.Subnet_c_resource_name.Zone },\n                        },\n                    },\n                    Region = \"ru-central1\",\n                },\n                Version = \"1.14\",\n            },\n            NetworkId = yandex_vpc_network.Network_resource_name.Id,\n            NodeServiceAccountId = yandex_iam_service_account.Node_service_account_resource_name.Id,\n            ReleaseChannel = \"STABLE\",\n            ServiceAccountId = yandex_iam_service_account.Service_account_resource_name.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewKubernetesCluster(ctx, \"regionalClusterResourceName\", &yandex.KubernetesClusterArgs{\n\t\t\tDescription: pulumi.String(\"description\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"my_key\":       pulumi.String(\"my_value\"),\n\t\t\t\t\"my_other_key\": pulumi.String(\"my_other_value\"),\n\t\t\t},\n\t\t\tMaster: &KubernetesClusterMasterArgs{\n\t\t\t\tMaintenancePolicy: &KubernetesClusterMasterMaintenancePolicyArgs{\n\t\t\t\t\tAutoUpgrade: pulumi.Bool(true),\n\t\t\t\t\tMaintenanceWindow: []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"day\":       \"monday\",\n\t\t\t\t\t\t\t\"duration\":  \"3h\",\n\t\t\t\t\t\t\t\"startTime\": \"15:00\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"day\":       \"friday\",\n\t\t\t\t\t\t\t\"duration\":  \"4h30m\",\n\t\t\t\t\t\t\t\"startTime\": \"10:00\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPublicIp: pulumi.Bool(true),\n\t\t\t\tRegional: &KubernetesClusterMasterRegionalArgs{\n\t\t\t\t\tLocation: []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"subnetId\": yandex_vpc_subnet.Subnet_a_resource_name.Id,\n\t\t\t\t\t\t\t\"zone\":     yandex_vpc_subnet.Subnet_a_resource_name.Zone,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"subnetId\": yandex_vpc_subnet.Subnet_b_resource_name.Id,\n\t\t\t\t\t\t\t\"zone\":     yandex_vpc_subnet.Subnet_b_resource_name.Zone,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"subnetId\": yandex_vpc_subnet.Subnet_c_resource_name.Id,\n\t\t\t\t\t\t\t\"zone\":     yandex_vpc_subnet.Subnet_c_resource_name.Zone,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRegion: pulumi.String(\"ru-central1\"),\n\t\t\t\t},\n\t\t\t\tVersion: pulumi.String(\"1.14\"),\n\t\t\t},\n\t\t\tNetworkId:            pulumi.Any(yandex_vpc_network.Network_resource_name.Id),\n\t\t\tNodeServiceAccountId: pulumi.Any(yandex_iam_service_account.Node_service_account_resource_name.Id),\n\t\t\tReleaseChannel:       pulumi.String(\"STABLE\"),\n\t\t\tServiceAccountId:     pulumi.Any(yandex_iam_service_account.Service_account_resource_name.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA Managed Kubernetes cluster can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/kubernetesCluster:KubernetesCluster default cluster_id\n```\n\n ",
      "properties": {
        "clusterIpv4Range": {
          "type": "string",
          "description": "CIDR block. IP range for allocating pod addresses.\nIt should not overlap with any subnet in the network the Kubernetes cluster located in. Static routes will be\nset up for this CIDR blocks in node subnets.\n"
        },
        "clusterIpv6Range": {
          "type": "string",
          "description": "Identical to cluster_ipv4_range but for IPv6 protocol.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "(Computed) The Kubernetes cluster creation timestamp.\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the Kubernetes cluster.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the Kubernetes cluster belongs to.\nIf it is not provided, the default provider folder is used.\n"
        },
        "health": {
          "type": "string",
          "description": "(Computed) Health of the Kubernetes cluster.\n"
        },
        "kmsProvider": {
          "$ref": "#/types/yandex:index%2FKubernetesClusterKmsProvider:KubernetesClusterKmsProvider",
          "description": "cluster KMS provider parameters.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Kubernetes cluster.\n"
        },
        "logGroupId": {
          "type": "string",
          "description": "Log group where cluster stores cluster system logs, like audit, events, or controlplane logs.\n"
        },
        "master": {
          "$ref": "#/types/yandex:index%2FKubernetesClusterMaster:KubernetesClusterMaster",
          "description": "Kubernetes master configuration options. The structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of a specific Kubernetes cluster.\n"
        },
        "networkId": {
          "type": "string",
          "description": "The ID of the cluster network.\n"
        },
        "networkImplementation": {
          "$ref": "#/types/yandex:index%2FKubernetesClusterNetworkImplementation:KubernetesClusterNetworkImplementation",
          "description": "(Optional) Network Implementation options. The structure is documented below.\n"
        },
        "networkPolicyProvider": {
          "type": "string",
          "description": "Network policy provider for the cluster. Possible values: `CALICO`.\n"
        },
        "nodeIpv4CidrMaskSize": {
          "type": "integer",
          "description": "Size of the masks that are assigned to each node in the cluster. Effectively limits maximum number of pods for each node.\n"
        },
        "nodeServiceAccountId": {
          "type": "string",
          "description": "Service account to be used by the worker nodes of the Kubernetes cluster\nto access Container Registry or to push node logs and metrics.\n"
        },
        "releaseChannel": {
          "type": "string",
          "description": "Cluster release channel.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "Service account to be used for provisioning Compute Cloud and VPC resources\nfor Kubernetes cluster. Selected service account should have `edit` role on the folder where the Kubernetes\ncluster will be located and on the folder where selected network resides.\n"
        },
        "serviceIpv4Range": {
          "type": "string",
          "description": "CIDR block. IP range Kubernetes service Kubernetes cluster\nIP addresses will be allocated from. It should not overlap with any subnet in the network\nthe Kubernetes cluster located in.\n"
        },
        "serviceIpv6Range": {
          "type": "string",
          "description": "Identical to service_ipv4_range but for IPv6 protocol.\n"
        },
        "status": {
          "type": "string",
          "description": "(Computed)Status of the Kubernetes cluster.\n"
        }
      },
      "type": "object",
      "required": [
        "clusterIpv4Range",
        "clusterIpv6Range",
        "createdAt",
        "description",
        "folderId",
        "health",
        "labels",
        "logGroupId",
        "master",
        "name",
        "networkId",
        "nodeServiceAccountId",
        "releaseChannel",
        "serviceAccountId",
        "serviceIpv4Range",
        "serviceIpv6Range",
        "status"
      ],
      "inputProperties": {
        "clusterIpv4Range": {
          "type": "string",
          "description": "CIDR block. IP range for allocating pod addresses.\nIt should not overlap with any subnet in the network the Kubernetes cluster located in. Static routes will be\nset up for this CIDR blocks in node subnets.\n"
        },
        "clusterIpv6Range": {
          "type": "string",
          "description": "Identical to cluster_ipv4_range but for IPv6 protocol.\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the Kubernetes cluster.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the Kubernetes cluster belongs to.\nIf it is not provided, the default provider folder is used.\n"
        },
        "kmsProvider": {
          "$ref": "#/types/yandex:index%2FKubernetesClusterKmsProvider:KubernetesClusterKmsProvider",
          "description": "cluster KMS provider parameters.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Kubernetes cluster.\n"
        },
        "master": {
          "$ref": "#/types/yandex:index%2FKubernetesClusterMaster:KubernetesClusterMaster",
          "description": "Kubernetes master configuration options. The structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of a specific Kubernetes cluster.\n"
        },
        "networkId": {
          "type": "string",
          "description": "The ID of the cluster network.\n"
        },
        "networkImplementation": {
          "$ref": "#/types/yandex:index%2FKubernetesClusterNetworkImplementation:KubernetesClusterNetworkImplementation",
          "description": "(Optional) Network Implementation options. The structure is documented below.\n"
        },
        "networkPolicyProvider": {
          "type": "string",
          "description": "Network policy provider for the cluster. Possible values: `CALICO`.\n"
        },
        "nodeIpv4CidrMaskSize": {
          "type": "integer",
          "description": "Size of the masks that are assigned to each node in the cluster. Effectively limits maximum number of pods for each node.\n"
        },
        "nodeServiceAccountId": {
          "type": "string",
          "description": "Service account to be used by the worker nodes of the Kubernetes cluster\nto access Container Registry or to push node logs and metrics.\n"
        },
        "releaseChannel": {
          "type": "string",
          "description": "Cluster release channel.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "Service account to be used for provisioning Compute Cloud and VPC resources\nfor Kubernetes cluster. Selected service account should have `edit` role on the folder where the Kubernetes\ncluster will be located and on the folder where selected network resides.\n"
        },
        "serviceIpv4Range": {
          "type": "string",
          "description": "CIDR block. IP range Kubernetes service Kubernetes cluster\nIP addresses will be allocated from. It should not overlap with any subnet in the network\nthe Kubernetes cluster located in.\n"
        },
        "serviceIpv6Range": {
          "type": "string",
          "description": "Identical to service_ipv4_range but for IPv6 protocol.\n"
        }
      },
      "requiredInputs": [
        "master",
        "networkId",
        "nodeServiceAccountId",
        "serviceAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering KubernetesCluster resources.\n",
        "properties": {
          "clusterIpv4Range": {
            "type": "string",
            "description": "CIDR block. IP range for allocating pod addresses.\nIt should not overlap with any subnet in the network the Kubernetes cluster located in. Static routes will be\nset up for this CIDR blocks in node subnets.\n"
          },
          "clusterIpv6Range": {
            "type": "string",
            "description": "Identical to cluster_ipv4_range but for IPv6 protocol.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "(Computed) The Kubernetes cluster creation timestamp.\n"
          },
          "description": {
            "type": "string",
            "description": "A description of the Kubernetes cluster.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the Kubernetes cluster belongs to.\nIf it is not provided, the default provider folder is used.\n"
          },
          "health": {
            "type": "string",
            "description": "(Computed) Health of the Kubernetes cluster.\n"
          },
          "kmsProvider": {
            "$ref": "#/types/yandex:index%2FKubernetesClusterKmsProvider:KubernetesClusterKmsProvider",
            "description": "cluster KMS provider parameters.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Kubernetes cluster.\n"
          },
          "logGroupId": {
            "type": "string",
            "description": "Log group where cluster stores cluster system logs, like audit, events, or controlplane logs.\n"
          },
          "master": {
            "$ref": "#/types/yandex:index%2FKubernetesClusterMaster:KubernetesClusterMaster",
            "description": "Kubernetes master configuration options. The structure is documented below.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of a specific Kubernetes cluster.\n"
          },
          "networkId": {
            "type": "string",
            "description": "The ID of the cluster network.\n"
          },
          "networkImplementation": {
            "$ref": "#/types/yandex:index%2FKubernetesClusterNetworkImplementation:KubernetesClusterNetworkImplementation",
            "description": "(Optional) Network Implementation options. The structure is documented below.\n"
          },
          "networkPolicyProvider": {
            "type": "string",
            "description": "Network policy provider for the cluster. Possible values: `CALICO`.\n"
          },
          "nodeIpv4CidrMaskSize": {
            "type": "integer",
            "description": "Size of the masks that are assigned to each node in the cluster. Effectively limits maximum number of pods for each node.\n"
          },
          "nodeServiceAccountId": {
            "type": "string",
            "description": "Service account to be used by the worker nodes of the Kubernetes cluster\nto access Container Registry or to push node logs and metrics.\n"
          },
          "releaseChannel": {
            "type": "string",
            "description": "Cluster release channel.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "Service account to be used for provisioning Compute Cloud and VPC resources\nfor Kubernetes cluster. Selected service account should have `edit` role on the folder where the Kubernetes\ncluster will be located and on the folder where selected network resides.\n"
          },
          "serviceIpv4Range": {
            "type": "string",
            "description": "CIDR block. IP range Kubernetes service Kubernetes cluster\nIP addresses will be allocated from. It should not overlap with any subnet in the network\nthe Kubernetes cluster located in.\n"
          },
          "serviceIpv6Range": {
            "type": "string",
            "description": "Identical to service_ipv4_range but for IPv6 protocol.\n"
          },
          "status": {
            "type": "string",
            "description": "(Computed)Status of the Kubernetes cluster.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/kubernetesNodeGroup:KubernetesNodeGroup": {
      "description": "Creates a Yandex Kubernetes Node Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myNodeGroup = new yandex.KubernetesNodeGroup(\"my_node_group\", {\n    allocationPolicy: {\n        locations: [{\n            zone: \"ru-central1-a\",\n        }],\n    },\n    clusterId: yandex_kubernetes_cluster_my_cluster.id,\n    description: \"description\",\n    instanceTemplate: {\n        bootDisk: {\n            size: 64,\n            type: \"network-hdd\",\n        },\n        containerRuntime: {\n            type: \"containerd\",\n        },\n        networkInterfaces: [{\n            nat: true,\n            subnetIds: [yandex_vpc_subnet_my_subnet.id],\n        }],\n        platformId: \"standard-v2\",\n        resources: {\n            cores: 2,\n            memory: 2,\n        },\n        schedulingPolicy: {\n            preemptible: false,\n        },\n    },\n    labels: {\n        key: \"value\",\n    },\n    maintenancePolicy: {\n        autoRepair: true,\n        autoUpgrade: true,\n        maintenanceWindows: [\n            {\n                day: \"monday\",\n                duration: \"3h\",\n                startTime: \"15:00\",\n            },\n            {\n                day: \"friday\",\n                duration: \"4h30m\",\n                startTime: \"10:00\",\n            },\n        ],\n    },\n    scalePolicy: {\n        fixedScale: {\n            size: 1,\n        },\n    },\n    version: \"1.17\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_node_group = yandex.KubernetesNodeGroup(\"myNodeGroup\",\n    allocation_policy=yandex.KubernetesNodeGroupAllocationPolicyArgs(\n        locations=[yandex.KubernetesNodeGroupAllocationPolicyLocationArgs(\n            zone=\"ru-central1-a\",\n        )],\n    ),\n    cluster_id=yandex_kubernetes_cluster[\"my_cluster\"][\"id\"],\n    description=\"description\",\n    instance_template=yandex.KubernetesNodeGroupInstanceTemplateArgs(\n        boot_disk=yandex.KubernetesNodeGroupInstanceTemplateBootDiskArgs(\n            size=64,\n            type=\"network-hdd\",\n        ),\n        container_runtime=yandex.KubernetesNodeGroupInstanceTemplateContainerRuntimeArgs(\n            type=\"containerd\",\n        ),\n        network_interfaces=[yandex.KubernetesNodeGroupInstanceTemplateNetworkInterfaceArgs(\n            nat=True,\n            subnet_ids=[yandex_vpc_subnet[\"my_subnet\"][\"id\"]],\n        )],\n        platform_id=\"standard-v2\",\n        resources=yandex.KubernetesNodeGroupInstanceTemplateResourcesArgs(\n            cores=2,\n            memory=2,\n        ),\n        scheduling_policy=yandex.KubernetesNodeGroupInstanceTemplateSchedulingPolicyArgs(\n            preemptible=False,\n        ),\n    ),\n    labels={\n        \"key\": \"value\",\n    },\n    maintenance_policy=yandex.KubernetesNodeGroupMaintenancePolicyArgs(\n        auto_repair=True,\n        auto_upgrade=True,\n        maintenance_windows=[\n            yandex.KubernetesNodeGroupMaintenancePolicyMaintenanceWindowArgs(\n                day=\"monday\",\n                duration=\"3h\",\n                start_time=\"15:00\",\n            ),\n            yandex.KubernetesNodeGroupMaintenancePolicyMaintenanceWindowArgs(\n                day=\"friday\",\n                duration=\"4h30m\",\n                start_time=\"10:00\",\n            ),\n        ],\n    ),\n    scale_policy=yandex.KubernetesNodeGroupScalePolicyArgs(\n        fixed_scale=yandex.KubernetesNodeGroupScalePolicyFixedScaleArgs(\n            size=1,\n        ),\n    ),\n    version=\"1.17\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myNodeGroup = new Yandex.KubernetesNodeGroup(\"myNodeGroup\", new Yandex.KubernetesNodeGroupArgs\n        {\n            AllocationPolicy = new Yandex.Inputs.KubernetesNodeGroupAllocationPolicyArgs\n            {\n                Locations = \n                {\n                    new Yandex.Inputs.KubernetesNodeGroupAllocationPolicyLocationArgs\n                    {\n                        Zone = \"ru-central1-a\",\n                    },\n                },\n            },\n            ClusterId = yandex_kubernetes_cluster.My_cluster.Id,\n            Description = \"description\",\n            InstanceTemplate = new Yandex.Inputs.KubernetesNodeGroupInstanceTemplateArgs\n            {\n                BootDisk = new Yandex.Inputs.KubernetesNodeGroupInstanceTemplateBootDiskArgs\n                {\n                    Size = 64,\n                    Type = \"network-hdd\",\n                },\n                ContainerRuntime = new Yandex.Inputs.KubernetesNodeGroupInstanceTemplateContainerRuntimeArgs\n                {\n                    Type = \"containerd\",\n                },\n                NetworkInterfaces = \n                {\n                    new Yandex.Inputs.KubernetesNodeGroupInstanceTemplateNetworkInterfaceArgs\n                    {\n                        Nat = true,\n                        SubnetIds = \n                        {\n                            yandex_vpc_subnet.My_subnet.Id,\n                        },\n                    },\n                },\n                PlatformId = \"standard-v2\",\n                Resources = new Yandex.Inputs.KubernetesNodeGroupInstanceTemplateResourcesArgs\n                {\n                    Cores = 2,\n                    Memory = 2,\n                },\n                SchedulingPolicy = new Yandex.Inputs.KubernetesNodeGroupInstanceTemplateSchedulingPolicyArgs\n                {\n                    Preemptible = false,\n                },\n            },\n            Labels = \n            {\n                { \"key\", \"value\" },\n            },\n            MaintenancePolicy = new Yandex.Inputs.KubernetesNodeGroupMaintenancePolicyArgs\n            {\n                AutoRepair = true,\n                AutoUpgrade = true,\n                MaintenanceWindows = \n                {\n                    new Yandex.Inputs.KubernetesNodeGroupMaintenancePolicyMaintenanceWindowArgs\n                    {\n                        Day = \"monday\",\n                        Duration = \"3h\",\n                        StartTime = \"15:00\",\n                    },\n                    new Yandex.Inputs.KubernetesNodeGroupMaintenancePolicyMaintenanceWindowArgs\n                    {\n                        Day = \"friday\",\n                        Duration = \"4h30m\",\n                        StartTime = \"10:00\",\n                    },\n                },\n            },\n            ScalePolicy = new Yandex.Inputs.KubernetesNodeGroupScalePolicyArgs\n            {\n                FixedScale = new Yandex.Inputs.KubernetesNodeGroupScalePolicyFixedScaleArgs\n                {\n                    Size = 1,\n                },\n            },\n            Version = \"1.17\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewKubernetesNodeGroup(ctx, \"myNodeGroup\", &yandex.KubernetesNodeGroupArgs{\n\t\t\tAllocationPolicy: &KubernetesNodeGroupAllocationPolicyArgs{\n\t\t\t\tLocations: KubernetesNodeGroupAllocationPolicyLocationArray{\n\t\t\t\t\t&KubernetesNodeGroupAllocationPolicyLocationArgs{\n\t\t\t\t\t\tZone: pulumi.String(\"ru-central1-a\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterId:   pulumi.Any(yandex_kubernetes_cluster.My_cluster.Id),\n\t\t\tDescription: pulumi.String(\"description\"),\n\t\t\tInstanceTemplate: &KubernetesNodeGroupInstanceTemplateArgs{\n\t\t\t\tBootDisk: &KubernetesNodeGroupInstanceTemplateBootDiskArgs{\n\t\t\t\t\tSize: pulumi.Int(64),\n\t\t\t\t\tType: pulumi.String(\"network-hdd\"),\n\t\t\t\t},\n\t\t\t\tContainerRuntime: &KubernetesNodeGroupInstanceTemplateContainerRuntimeArgs{\n\t\t\t\t\tType: pulumi.String(\"containerd\"),\n\t\t\t\t},\n\t\t\t\tNetworkInterfaces: KubernetesNodeGroupInstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\t&KubernetesNodeGroupInstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\t\tNat: pulumi.Bool(true),\n\t\t\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.Any(yandex_vpc_subnet.My_subnet.Id),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPlatformId: pulumi.String(\"standard-v2\"),\n\t\t\t\tResources: &KubernetesNodeGroupInstanceTemplateResourcesArgs{\n\t\t\t\t\tCores:  pulumi.Int(2),\n\t\t\t\t\tMemory: pulumi.Float64(2),\n\t\t\t\t},\n\t\t\t\tSchedulingPolicy: &KubernetesNodeGroupInstanceTemplateSchedulingPolicyArgs{\n\t\t\t\t\tPreemptible: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t\tMaintenancePolicy: &KubernetesNodeGroupMaintenancePolicyArgs{\n\t\t\t\tAutoRepair:  pulumi.Bool(true),\n\t\t\t\tAutoUpgrade: pulumi.Bool(true),\n\t\t\t\tMaintenanceWindows: KubernetesNodeGroupMaintenancePolicyMaintenanceWindowArray{\n\t\t\t\t\t&KubernetesNodeGroupMaintenancePolicyMaintenanceWindowArgs{\n\t\t\t\t\t\tDay:       pulumi.String(\"monday\"),\n\t\t\t\t\t\tDuration:  pulumi.String(\"3h\"),\n\t\t\t\t\t\tStartTime: pulumi.String(\"15:00\"),\n\t\t\t\t\t},\n\t\t\t\t\t&KubernetesNodeGroupMaintenancePolicyMaintenanceWindowArgs{\n\t\t\t\t\t\tDay:       pulumi.String(\"friday\"),\n\t\t\t\t\t\tDuration:  pulumi.String(\"4h30m\"),\n\t\t\t\t\t\tStartTime: pulumi.String(\"10:00\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tScalePolicy: &KubernetesNodeGroupScalePolicyArgs{\n\t\t\t\tFixedScale: &KubernetesNodeGroupScalePolicyFixedScaleArgs{\n\t\t\t\t\tSize: pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVersion: pulumi.String(\"1.17\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA Yandex Kubernetes Node Group can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/kubernetesNodeGroup:KubernetesNodeGroup default node_group_id\n```\n\n ",
      "properties": {
        "allocationPolicy": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupAllocationPolicy:KubernetesNodeGroupAllocationPolicy",
          "description": "This argument specify subnets (zones), that will be used by node group compute instances. The structure is documented below.\n"
        },
        "allowedUnsafeSysctls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of allowed unsafe sysctl parameters for this node group. For more details see [documentation](https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/).\n"
        },
        "clusterId": {
          "type": "string",
          "description": "The ID of the Kubernetes cluster that this node group belongs to.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "(Computed) The Kubernetes node group creation timestamp.\n"
        },
        "deployPolicy": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupDeployPolicy:KubernetesNodeGroupDeployPolicy",
          "description": "Deploy policy of the node group. The structure is documented below.\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the Kubernetes node group.\n"
        },
        "instanceGroupId": {
          "type": "string",
          "description": "ID of instance group that is used to manage this Kubernetes node group.\n"
        },
        "instanceTemplate": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupInstanceTemplate:KubernetesNodeGroupInstanceTemplate",
          "description": "Template used to create compute instances in this Kubernetes node group. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs assigned to the Kubernetes node group.\n"
        },
        "maintenancePolicy": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupMaintenancePolicy:KubernetesNodeGroupMaintenancePolicy",
          "description": "(Computed) Maintenance policy for this Kubernetes node group.\nIf policy is omitted, automatic revision upgrades are enabled and could happen at any time.\nRevision upgrades are performed only within the same minor version, e.g. 1.13.\nMinor version upgrades (e.g. 1.13->1.14) should be performed manually. The structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of a specific Kubernetes node group.\n"
        },
        "nodeLabels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs, that are assigned to all the nodes of this Kubernetes node group.\n"
        },
        "nodeTaints": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Kubernetes taints, that are applied to all the nodes of this Kubernetes node group.\n"
        },
        "scalePolicy": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupScalePolicy:KubernetesNodeGroupScalePolicy",
          "description": "Scale policy of the node group. The structure is documented below.\n"
        },
        "status": {
          "type": "string",
          "description": "(Computed) Status of the Kubernetes node group.\n"
        },
        "version": {
          "type": "string",
          "description": "Version of Kubernetes that will be used for Kubernetes node group.\n"
        },
        "versionInfos": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FKubernetesNodeGroupVersionInfo:KubernetesNodeGroupVersionInfo"
          },
          "description": "Information about Kubernetes node group version. The structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "allocationPolicy",
        "clusterId",
        "createdAt",
        "deployPolicy",
        "description",
        "instanceGroupId",
        "instanceTemplate",
        "labels",
        "maintenancePolicy",
        "name",
        "scalePolicy",
        "status",
        "version",
        "versionInfos"
      ],
      "inputProperties": {
        "allocationPolicy": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupAllocationPolicy:KubernetesNodeGroupAllocationPolicy",
          "description": "This argument specify subnets (zones), that will be used by node group compute instances. The structure is documented below.\n"
        },
        "allowedUnsafeSysctls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of allowed unsafe sysctl parameters for this node group. For more details see [documentation](https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/).\n"
        },
        "clusterId": {
          "type": "string",
          "description": "The ID of the Kubernetes cluster that this node group belongs to.\n"
        },
        "deployPolicy": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupDeployPolicy:KubernetesNodeGroupDeployPolicy",
          "description": "Deploy policy of the node group. The structure is documented below.\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the Kubernetes node group.\n"
        },
        "instanceTemplate": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupInstanceTemplate:KubernetesNodeGroupInstanceTemplate",
          "description": "Template used to create compute instances in this Kubernetes node group. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs assigned to the Kubernetes node group.\n"
        },
        "maintenancePolicy": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupMaintenancePolicy:KubernetesNodeGroupMaintenancePolicy",
          "description": "(Computed) Maintenance policy for this Kubernetes node group.\nIf policy is omitted, automatic revision upgrades are enabled and could happen at any time.\nRevision upgrades are performed only within the same minor version, e.g. 1.13.\nMinor version upgrades (e.g. 1.13->1.14) should be performed manually. The structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of a specific Kubernetes node group.\n"
        },
        "nodeLabels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs, that are assigned to all the nodes of this Kubernetes node group.\n"
        },
        "nodeTaints": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Kubernetes taints, that are applied to all the nodes of this Kubernetes node group.\n"
        },
        "scalePolicy": {
          "$ref": "#/types/yandex:index%2FKubernetesNodeGroupScalePolicy:KubernetesNodeGroupScalePolicy",
          "description": "Scale policy of the node group. The structure is documented below.\n"
        },
        "version": {
          "type": "string",
          "description": "Version of Kubernetes that will be used for Kubernetes node group.\n"
        }
      },
      "requiredInputs": [
        "clusterId",
        "instanceTemplate",
        "scalePolicy"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering KubernetesNodeGroup resources.\n",
        "properties": {
          "allocationPolicy": {
            "$ref": "#/types/yandex:index%2FKubernetesNodeGroupAllocationPolicy:KubernetesNodeGroupAllocationPolicy",
            "description": "This argument specify subnets (zones), that will be used by node group compute instances. The structure is documented below.\n"
          },
          "allowedUnsafeSysctls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of allowed unsafe sysctl parameters for this node group. For more details see [documentation](https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/).\n"
          },
          "clusterId": {
            "type": "string",
            "description": "The ID of the Kubernetes cluster that this node group belongs to.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "(Computed) The Kubernetes node group creation timestamp.\n"
          },
          "deployPolicy": {
            "$ref": "#/types/yandex:index%2FKubernetesNodeGroupDeployPolicy:KubernetesNodeGroupDeployPolicy",
            "description": "Deploy policy of the node group. The structure is documented below.\n"
          },
          "description": {
            "type": "string",
            "description": "A description of the Kubernetes node group.\n"
          },
          "instanceGroupId": {
            "type": "string",
            "description": "ID of instance group that is used to manage this Kubernetes node group.\n"
          },
          "instanceTemplate": {
            "$ref": "#/types/yandex:index%2FKubernetesNodeGroupInstanceTemplate:KubernetesNodeGroupInstanceTemplate",
            "description": "Template used to create compute instances in this Kubernetes node group. The structure is documented below.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs assigned to the Kubernetes node group.\n"
          },
          "maintenancePolicy": {
            "$ref": "#/types/yandex:index%2FKubernetesNodeGroupMaintenancePolicy:KubernetesNodeGroupMaintenancePolicy",
            "description": "(Computed) Maintenance policy for this Kubernetes node group.\nIf policy is omitted, automatic revision upgrades are enabled and could happen at any time.\nRevision upgrades are performed only within the same minor version, e.g. 1.13.\nMinor version upgrades (e.g. 1.13->1.14) should be performed manually. The structure is documented below.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of a specific Kubernetes node group.\n"
          },
          "nodeLabels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs, that are assigned to all the nodes of this Kubernetes node group.\n"
          },
          "nodeTaints": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of Kubernetes taints, that are applied to all the nodes of this Kubernetes node group.\n"
          },
          "scalePolicy": {
            "$ref": "#/types/yandex:index%2FKubernetesNodeGroupScalePolicy:KubernetesNodeGroupScalePolicy",
            "description": "Scale policy of the node group. The structure is documented below.\n"
          },
          "status": {
            "type": "string",
            "description": "(Computed) Status of the Kubernetes node group.\n"
          },
          "version": {
            "type": "string",
            "description": "Version of Kubernetes that will be used for Kubernetes node group.\n"
          },
          "versionInfos": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FKubernetesNodeGroupVersionInfo:KubernetesNodeGroupVersionInfo"
            },
            "description": "Information about Kubernetes node group version. The structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/lbNetworkLoadBalancer:LbNetworkLoadBalancer": {
      "description": "Creates a network load balancer in the specified folder using the data specified in the config.\nFor more information, see [the official documentation](https://cloud.yandex.com/docs/load-balancer/concepts).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = new yandex.LbNetworkLoadBalancer(\"foo\", {\n    attachedTargetGroups: [{\n        healthchecks: [{\n            httpOptions: {\n                path: \"/ping\",\n                port: 8080,\n            },\n            name: \"http\",\n        }],\n        targetGroupId: yandex_lb_target_group_my_target_group.id,\n    }],\n    listeners: [{\n        externalAddressSpec: {\n            ipVersion: \"ipv4\",\n        },\n        name: \"my-listener\",\n        port: 8080,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.LbNetworkLoadBalancer(\"foo\",\n    attached_target_groups=[yandex.LbNetworkLoadBalancerAttachedTargetGroupArgs(\n        healthchecks=[yandex.LbNetworkLoadBalancerAttachedTargetGroupHealthcheckArgs(\n            http_options=yandex.LbNetworkLoadBalancerAttachedTargetGroupHealthcheckHttpOptionsArgs(\n                path=\"/ping\",\n                port=8080,\n            ),\n            name=\"http\",\n        )],\n        target_group_id=yandex_lb_target_group[\"my-target-group\"][\"id\"],\n    )],\n    listeners=[yandex.LbNetworkLoadBalancerListenerArgs(\n        external_address_spec=yandex.LbNetworkLoadBalancerListenerExternalAddressSpecArgs(\n            ip_version=\"ipv4\",\n        ),\n        name=\"my-listener\",\n        port=8080,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = new Yandex.LbNetworkLoadBalancer(\"foo\", new Yandex.LbNetworkLoadBalancerArgs\n        {\n            AttachedTargetGroups = \n            {\n                new Yandex.Inputs.LbNetworkLoadBalancerAttachedTargetGroupArgs\n                {\n                    Healthchecks = \n                    {\n                        new Yandex.Inputs.LbNetworkLoadBalancerAttachedTargetGroupHealthcheckArgs\n                        {\n                            HttpOptions = new Yandex.Inputs.LbNetworkLoadBalancerAttachedTargetGroupHealthcheckHttpOptionsArgs\n                            {\n                                Path = \"/ping\",\n                                Port = 8080,\n                            },\n                            Name = \"http\",\n                        },\n                    },\n                    TargetGroupId = yandex_lb_target_group.My_target_group.Id,\n                },\n            },\n            Listeners = \n            {\n                new Yandex.Inputs.LbNetworkLoadBalancerListenerArgs\n                {\n                    ExternalAddressSpec = new Yandex.Inputs.LbNetworkLoadBalancerListenerExternalAddressSpecArgs\n                    {\n                        IpVersion = \"ipv4\",\n                    },\n                    Name = \"my-listener\",\n                    Port = 8080,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewLbNetworkLoadBalancer(ctx, \"foo\", &yandex.LbNetworkLoadBalancerArgs{\n\t\t\tAttachedTargetGroups: LbNetworkLoadBalancerAttachedTargetGroupArray{\n\t\t\t\t&LbNetworkLoadBalancerAttachedTargetGroupArgs{\n\t\t\t\t\tHealthchecks: LbNetworkLoadBalancerAttachedTargetGroupHealthcheckArray{\n\t\t\t\t\t\t&LbNetworkLoadBalancerAttachedTargetGroupHealthcheckArgs{\n\t\t\t\t\t\t\tHttpOptions: &LbNetworkLoadBalancerAttachedTargetGroupHealthcheckHttpOptionsArgs{\n\t\t\t\t\t\t\t\tPath: pulumi.String(\"/ping\"),\n\t\t\t\t\t\t\t\tPort: pulumi.Int(8080),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tName: pulumi.String(\"http\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tTargetGroupId: pulumi.Any(yandex_lb_target_group.My - target - group.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tListeners: LbNetworkLoadBalancerListenerArray{\n\t\t\t\t&LbNetworkLoadBalancerListenerArgs{\n\t\t\t\t\tExternalAddressSpec: &LbNetworkLoadBalancerListenerExternalAddressSpecArgs{\n\t\t\t\t\t\tIpVersion: pulumi.String(\"ipv4\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"my-listener\"),\n\t\t\t\t\tPort: pulumi.Int(8080),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA network load balancer can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/lbNetworkLoadBalancer:LbNetworkLoadBalancer default network_load_balancer_id\n```\n\n ",
      "properties": {
        "attachedTargetGroups": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FLbNetworkLoadBalancerAttachedTargetGroup:LbNetworkLoadBalancerAttachedTargetGroup"
          },
          "description": "An AttachedTargetGroup resource. The structure is documented below.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The network load balancer creation timestamp.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description of the network load balancer. Provide this property when\nyou create the resource.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this network load balancer. A list of key/value pairs.\n"
        },
        "listeners": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FLbNetworkLoadBalancerListener:LbNetworkLoadBalancerListener"
          },
          "description": "Listener specification that will be used by a network load balancer. The structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the listener. The name must be unique for each listener on a single load balancer.\n"
        },
        "regionId": {
          "type": "string",
          "description": "ID of the availability zone where the network load balancer resides.\nThe default is 'ru-central1'.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of the network load balancer. Must be one of 'external' or 'internal'. The default is 'external'.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "name"
      ],
      "inputProperties": {
        "attachedTargetGroups": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FLbNetworkLoadBalancerAttachedTargetGroup:LbNetworkLoadBalancerAttachedTargetGroup"
          },
          "description": "An AttachedTargetGroup resource. The structure is documented below.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description of the network load balancer. Provide this property when\nyou create the resource.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this network load balancer. A list of key/value pairs.\n"
        },
        "listeners": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FLbNetworkLoadBalancerListener:LbNetworkLoadBalancerListener"
          },
          "description": "Listener specification that will be used by a network load balancer. The structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the listener. The name must be unique for each listener on a single load balancer.\n"
        },
        "regionId": {
          "type": "string",
          "description": "ID of the availability zone where the network load balancer resides.\nThe default is 'ru-central1'.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of the network load balancer. Must be one of 'external' or 'internal'. The default is 'external'.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbNetworkLoadBalancer resources.\n",
        "properties": {
          "attachedTargetGroups": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FLbNetworkLoadBalancerAttachedTargetGroup:LbNetworkLoadBalancerAttachedTargetGroup"
            },
            "description": "An AttachedTargetGroup resource. The structure is documented below.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The network load balancer creation timestamp.\n"
          },
          "description": {
            "type": "string",
            "description": "An optional description of the network load balancer. Provide this property when\nyou create the resource.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this network load balancer. A list of key/value pairs.\n"
          },
          "listeners": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FLbNetworkLoadBalancerListener:LbNetworkLoadBalancerListener"
            },
            "description": "Listener specification that will be used by a network load balancer. The structure is documented below.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the listener. The name must be unique for each listener on a single load balancer.\n"
          },
          "regionId": {
            "type": "string",
            "description": "ID of the availability zone where the network load balancer resides.\nThe default is 'ru-central1'.\n"
          },
          "type": {
            "type": "string",
            "description": "Type of the network load balancer. Must be one of 'external' or 'internal'. The default is 'external'.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/lbTargetGroup:LbTargetGroup": {
      "description": "Creates a target group in the specified folder and adds the specified targets to it. \nFor more information, see [the official documentation](https://cloud.yandex.com/docs/load-balancer/concepts/target-resources).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = new yandex.LbTargetGroup(\"foo\", {\n    regionId: \"ru-central1\",\n    targets: [\n        {\n            address: yandex_compute_instance_my_instance_1.networkInterface.0.ipAddress,\n            subnetId: yandex_vpc_subnet_my_subnet.id,\n        },\n        {\n            address: yandex_compute_instance_my_instance_2.networkInterface.0.ipAddress,\n            subnetId: yandex_vpc_subnet_my_subnet.id,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.LbTargetGroup(\"foo\",\n    region_id=\"ru-central1\",\n    targets=[\n        yandex.LbTargetGroupTargetArgs(\n            address=yandex_compute_instance[\"my-instance-1\"][\"network_interface\"][0][\"ip_address\"],\n            subnet_id=yandex_vpc_subnet[\"my-subnet\"][\"id\"],\n        ),\n        yandex.LbTargetGroupTargetArgs(\n            address=yandex_compute_instance[\"my-instance-2\"][\"network_interface\"][0][\"ip_address\"],\n            subnet_id=yandex_vpc_subnet[\"my-subnet\"][\"id\"],\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = new Yandex.LbTargetGroup(\"foo\", new Yandex.LbTargetGroupArgs\n        {\n            RegionId = \"ru-central1\",\n            Targets = \n            {\n                new Yandex.Inputs.LbTargetGroupTargetArgs\n                {\n                    Address = yandex_compute_instance.My_instance_1.Network_interface[0].Ip_address,\n                    SubnetId = yandex_vpc_subnet.My_subnet.Id,\n                },\n                new Yandex.Inputs.LbTargetGroupTargetArgs\n                {\n                    Address = yandex_compute_instance.My_instance_2.Network_interface[0].Ip_address,\n                    SubnetId = yandex_vpc_subnet.My_subnet.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA target group can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/lbTargetGroup:LbTargetGroup default target_group_id\n```\n\n ",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The target group creation timestamp.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description of the target group. Provide this property when\nyou create the resource.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this target group. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the target group. Provided by the client when the target group is created.\n"
        },
        "regionId": {
          "type": "string",
          "description": "ID of the availability zone where the target group resides. \nThe default is 'ru-central1'.\n"
        },
        "targets": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FLbTargetGroupTarget:LbTargetGroupTarget"
          },
          "description": "A Target resource. The structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "name"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "An optional description of the target group. Provide this property when\nyou create the resource.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this target group. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the target group. Provided by the client when the target group is created.\n"
        },
        "regionId": {
          "type": "string",
          "description": "ID of the availability zone where the target group resides. \nThe default is 'ru-central1'.\n"
        },
        "targets": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FLbTargetGroupTarget:LbTargetGroupTarget"
          },
          "description": "A Target resource. The structure is documented below.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbTargetGroup resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "The target group creation timestamp.\n"
          },
          "description": {
            "type": "string",
            "description": "An optional description of the target group. Provide this property when\nyou create the resource.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this target group. A list of key/value pairs.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the target group. Provided by the client when the target group is created.\n"
          },
          "regionId": {
            "type": "string",
            "description": "ID of the availability zone where the target group resides. \nThe default is 'ru-central1'.\n"
          },
          "targets": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FLbTargetGroupTarget:LbTargetGroupTarget"
            },
            "description": "A Target resource. The structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/loggingGroup:LoggingGroup": {
      "description": "Yandex Cloud Logging group resource. For more information, see\n[the official documentation](https://cloud.yandex.com/en/docs/logging/concepts/log-group).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst group1 = new yandex.LoggingGroup(\"group1\", {\n    folderId: yandex_resourcemanager_folder_test_folder.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ngroup1 = yandex.LoggingGroup(\"group1\", folder_id=data[\"yandex_resourcemanager_folder\"][\"test_folder\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var group1 = new Yandex.LoggingGroup(\"group1\", new Yandex.LoggingGroupArgs\n        {\n            FolderId = data.Yandex_resourcemanager_folder.Test_folder.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewLoggingGroup(ctx, \"group1\", &yandex.LoggingGroupArgs{\n\t\t\tFolderId: pulumi.Any(data.Yandex_resourcemanager_folder.Test_folder.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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "cloudId": {
          "type": "string",
          "description": "ID of the cloud that the Yandex Cloud Logging group belong to.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The Yandex Cloud Logging group creation timestamp.\n"
        },
        "description": {
          "type": "string",
          "description": "A description for the Yandex Cloud Logging group.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the Yandex Cloud Logging group belongs to.\nIt will be deduced from provider configuration if not set explicitly.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Cloud Logging group.\n"
        },
        "name": {
          "type": "string",
          "description": "Name for the Yandex Cloud Logging group.\n"
        },
        "retentionPeriod": {
          "type": "string",
          "description": "Log entries retention period for the Yandex Cloud Logging group.\n"
        },
        "status": {
          "type": "string",
          "description": "The Yandex Cloud Logging group status.\n"
        }
      },
      "type": "object",
      "required": [
        "cloudId",
        "createdAt",
        "folderId",
        "name",
        "retentionPeriod",
        "status"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "A description for the Yandex Cloud Logging group.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the Yandex Cloud Logging group belongs to.\nIt will be deduced from provider configuration if not set explicitly.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Cloud Logging group.\n"
        },
        "name": {
          "type": "string",
          "description": "Name for the Yandex Cloud Logging group.\n"
        },
        "retentionPeriod": {
          "type": "string",
          "description": "Log entries retention period for the Yandex Cloud Logging group.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LoggingGroup resources.\n",
        "properties": {
          "cloudId": {
            "type": "string",
            "description": "ID of the cloud that the Yandex Cloud Logging group belong to.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The Yandex Cloud Logging group creation timestamp.\n"
          },
          "description": {
            "type": "string",
            "description": "A description for the Yandex Cloud Logging group.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder that the Yandex Cloud Logging group belongs to.\nIt will be deduced from provider configuration if not set explicitly.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Yandex Cloud Logging group.\n"
          },
          "name": {
            "type": "string",
            "description": "Name for the Yandex Cloud Logging group.\n"
          },
          "retentionPeriod": {
            "type": "string",
            "description": "Log entries retention period for the Yandex Cloud Logging group.\n"
          },
          "status": {
            "type": "string",
            "description": "The Yandex Cloud Logging group status.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/mdbClickhouseCluster:MdbClickhouseCluster": {
      "description": "Manages a ClickHouse cluster within the Yandex.Cloud. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-clickhouse/concepts).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nExample of creating a Single Node ClickHouse.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"foo\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"foo\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.5.0.0/24\"],\n    zone: \"ru-central1-a\",\n});\nconst fooMdbClickhouseCluster = new yandex.MdbClickhouseCluster(\"foo\", {\n    clickhouse: {\n        config: {\n            backgroundPoolSize: 16,\n            backgroundSchedulePoolSize: 16,\n            compressions: [\n                {\n                    method: \"LZ4\",\n                    minPartSize: 1024,\n                    minPartSizeRatio: 0.5,\n                },\n                {\n                    method: \"ZSTD\",\n                    minPartSize: 2048,\n                    minPartSizeRatio: 0.7,\n                },\n            ],\n            geobaseUri: \"\",\n            graphiteRollups: [\n                {\n                    name: \"rollup1\",\n                    patterns: [{\n                        function: \"func1\",\n                        regexp: \"abc\",\n                        retentions: [{\n                            age: 1000,\n                            precision: 3,\n                        }],\n                    }],\n                },\n                {\n                    name: \"rollup2\",\n                    patterns: [{\n                        function: \"func2\",\n                        retentions: [{\n                            age: 2000,\n                            precision: 5,\n                        }],\n                    }],\n                },\n            ],\n            kafka: {\n                saslMechanism: \"SASL_MECHANISM_GSSAPI\",\n                saslPassword: \"pass1\",\n                saslUsername: \"user1\",\n                securityProtocol: \"SECURITY_PROTOCOL_PLAINTEXT\",\n            },\n            kafkaTopics: [\n                {\n                    name: \"topic1\",\n                    settings: {\n                        saslMechanism: \"SASL_MECHANISM_SCRAM_SHA_256\",\n                        saslPassword: \"pass2\",\n                        saslUsername: \"user2\",\n                        securityProtocol: \"SECURITY_PROTOCOL_SSL\",\n                    },\n                },\n                {\n                    name: \"topic2\",\n                    settings: {\n                        saslMechanism: \"SASL_MECHANISM_PLAIN\",\n                        securityProtocol: \"SECURITY_PROTOCOL_SASL_PLAINTEXT\",\n                    },\n                },\n            ],\n            keepAliveTimeout: 3000,\n            logLevel: \"TRACE\",\n            markCacheSize: 5368709120,\n            maxConcurrentQueries: 50,\n            maxConnections: 100,\n            maxPartitionSizeToDrop: 53687091200,\n            maxTableSizeToDrop: 53687091200,\n            mergeTree: {\n                maxBytesToMergeAtMinSpaceInPool: 1048576,\n                maxReplicatedMergesInQueue: 16,\n                numberOfFreeEntriesInPoolToLowerMaxSizeOfMerge: 8,\n                partsToDelayInsert: 150,\n                partsToThrowInsert: 300,\n                replicatedDeduplicationWindow: 100,\n                replicatedDeduplicationWindowSeconds: 604800,\n            },\n            metricLogEnabled: true,\n            metricLogRetentionSize: 536870912,\n            metricLogRetentionTime: 2592000,\n            partLogRetentionSize: 536870912,\n            partLogRetentionTime: 2592000,\n            queryLogRetentionSize: 1073741824,\n            queryLogRetentionTime: 2592000,\n            queryThreadLogEnabled: true,\n            queryThreadLogRetentionSize: 536870912,\n            queryThreadLogRetentionTime: 2592000,\n            rabbitmq: {\n                password: \"rabbit_pass\",\n                username: \"rabbit_user\",\n            },\n            textLogEnabled: true,\n            textLogLevel: \"TRACE\",\n            textLogRetentionSize: 536870912,\n            textLogRetentionTime: 2592000,\n            timezone: \"UTC\",\n            traceLogEnabled: true,\n            traceLogRetentionSize: 536870912,\n            traceLogRetentionTime: 2592000,\n            uncompressedCacheSize: 8589934592,\n        },\n        resources: {\n            diskSize: 32,\n            diskTypeId: \"network-ssd\",\n            resourcePresetId: \"s2.micro\",\n        },\n    },\n    cloudStorage: {\n        enabled: false,\n    },\n    databases: [{\n        name: \"db_name\",\n    }],\n    environment: \"PRESTABLE\",\n    formatSchemas: [{\n        name: \"test_schema\",\n        type: \"FORMAT_SCHEMA_TYPE_CAPNPROTO\",\n        uri: \"https://storage.yandexcloud.net/ch-data/schema.proto\",\n    }],\n    hosts: [{\n        subnetId: fooVpcSubnet.id,\n        type: \"CLICKHOUSE\",\n        zone: \"ru-central1-a\",\n    }],\n    maintenanceWindow: {\n        type: \"ANYTIME\",\n    },\n    mlModels: [{\n        name: \"test_model\",\n        type: \"ML_MODEL_TYPE_CATBOOST\",\n        uri: \"https://storage.yandexcloud.net/ch-data/train.csv\",\n    }],\n    networkId: fooVpcNetwork.id,\n    serviceAccountId: \"your_service_account_id\",\n    users: [{\n        name: \"user\",\n        password: \"your_password\",\n        permissions: [{\n            databaseName: \"db_name\",\n        }],\n        quotas: [\n            {\n                errors: 1000,\n                intervalDuration: 3600000,\n                queries: 10000,\n            },\n            {\n                error: 5000,\n                intervalDuration: 79800000,\n                queries: 50000,\n            },\n        ],\n        settings: {\n            maxMemoryUsageForUser: 1000000000,\n            outputFormatJsonQuote64bitIntegers: true,\n            readOverflowMode: \"throw\",\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.5.0.0/24\"],\n    zone=\"ru-central1-a\")\nfoo_mdb_clickhouse_cluster = yandex.MdbClickhouseCluster(\"fooMdbClickhouseCluster\",\n    clickhouse=yandex.MdbClickhouseClusterClickhouseArgs(\n        config=yandex.MdbClickhouseClusterClickhouseConfigArgs(\n            background_pool_size=16,\n            background_schedule_pool_size=16,\n            compression=[\n                {\n                    \"method\": \"LZ4\",\n                    \"minPartSize\": 1024,\n                    \"minPartSizeRatio\": 0.5,\n                },\n                {\n                    \"method\": \"ZSTD\",\n                    \"minPartSize\": 2048,\n                    \"minPartSizeRatio\": 0.7,\n                },\n            ],\n            geobase_uri=\"\",\n            graphite_rollup=[\n                {\n                    \"name\": \"rollup1\",\n                    \"pattern\": [{\n                        \"function\": \"func1\",\n                        \"regexp\": \"abc\",\n                        \"retention\": [{\n                            \"age\": 1000,\n                            \"precision\": 3,\n                        }],\n                    }],\n                },\n                {\n                    \"name\": \"rollup2\",\n                    \"pattern\": [{\n                        \"function\": \"func2\",\n                        \"retention\": [{\n                            \"age\": 2000,\n                            \"precision\": 5,\n                        }],\n                    }],\n                },\n            ],\n            kafka=yandex.MdbClickhouseClusterClickhouseConfigKafkaArgs(\n                sasl_mechanism=\"SASL_MECHANISM_GSSAPI\",\n                sasl_password=\"pass1\",\n                sasl_username=\"user1\",\n                security_protocol=\"SECURITY_PROTOCOL_PLAINTEXT\",\n            ),\n            kafka_topic=[\n                {\n                    \"name\": \"topic1\",\n                    \"settings\": {\n                        \"saslMechanism\": \"SASL_MECHANISM_SCRAM_SHA_256\",\n                        \"saslPassword\": \"pass2\",\n                        \"saslUsername\": \"user2\",\n                        \"securityProtocol\": \"SECURITY_PROTOCOL_SSL\",\n                    },\n                },\n                {\n                    \"name\": \"topic2\",\n                    \"settings\": {\n                        \"saslMechanism\": \"SASL_MECHANISM_PLAIN\",\n                        \"securityProtocol\": \"SECURITY_PROTOCOL_SASL_PLAINTEXT\",\n                    },\n                },\n            ],\n            keep_alive_timeout=3000,\n            log_level=\"TRACE\",\n            mark_cache_size=5368709120,\n            max_concurrent_queries=50,\n            max_connections=100,\n            max_partition_size_to_drop=53687091200,\n            max_table_size_to_drop=53687091200,\n            merge_tree=yandex.MdbClickhouseClusterClickhouseConfigMergeTreeArgs(\n                max_bytes_to_merge_at_min_space_in_pool=1048576,\n                max_replicated_merges_in_queue=16,\n                number_of_free_entries_in_pool_to_lower_max_size_of_merge=8,\n                parts_to_delay_insert=150,\n                parts_to_throw_insert=300,\n                replicated_deduplication_window=100,\n                replicated_deduplication_window_seconds=604800,\n            ),\n            metric_log_enabled=True,\n            metric_log_retention_size=536870912,\n            metric_log_retention_time=2592000,\n            part_log_retention_size=536870912,\n            part_log_retention_time=2592000,\n            query_log_retention_size=1073741824,\n            query_log_retention_time=2592000,\n            query_thread_log_enabled=True,\n            query_thread_log_retention_size=536870912,\n            query_thread_log_retention_time=2592000,\n            rabbitmq=yandex.MdbClickhouseClusterClickhouseConfigRabbitmqArgs(\n                password=\"rabbit_pass\",\n                username=\"rabbit_user\",\n            ),\n            text_log_enabled=True,\n            text_log_level=\"TRACE\",\n            text_log_retention_size=536870912,\n            text_log_retention_time=2592000,\n            timezone=\"UTC\",\n            trace_log_enabled=True,\n            trace_log_retention_size=536870912,\n            trace_log_retention_time=2592000,\n            uncompressed_cache_size=8589934592,\n        ),\n        resources=yandex.MdbClickhouseClusterClickhouseResourcesArgs(\n            disk_size=32,\n            disk_type_id=\"network-ssd\",\n            resource_preset_id=\"s2.micro\",\n        ),\n    ),\n    cloud_storage=yandex.MdbClickhouseClusterCloudStorageArgs(\n        enabled=False,\n    ),\n    databases=[yandex.MdbClickhouseClusterDatabaseArgs(\n        name=\"db_name\",\n    )],\n    environment=\"PRESTABLE\",\n    format_schemas=[yandex.MdbClickhouseClusterFormatSchemaArgs(\n        name=\"test_schema\",\n        type=\"FORMAT_SCHEMA_TYPE_CAPNPROTO\",\n        uri=\"https://storage.yandexcloud.net/ch-data/schema.proto\",\n    )],\n    hosts=[yandex.MdbClickhouseClusterHostArgs(\n        subnet_id=foo_vpc_subnet.id,\n        type=\"CLICKHOUSE\",\n        zone=\"ru-central1-a\",\n    )],\n    maintenance_window=yandex.MdbClickhouseClusterMaintenanceWindowArgs(\n        type=\"ANYTIME\",\n    ),\n    ml_models=[yandex.MdbClickhouseClusterMlModelArgs(\n        name=\"test_model\",\n        type=\"ML_MODEL_TYPE_CATBOOST\",\n        uri=\"https://storage.yandexcloud.net/ch-data/train.csv\",\n    )],\n    network_id=foo_vpc_network.id,\n    service_account_id=\"your_service_account_id\",\n    users=[yandex.MdbClickhouseClusterUserArgs(\n        name=\"user\",\n        password=\"your_password\",\n        permissions=[yandex.MdbClickhouseClusterUserPermissionArgs(\n            database_name=\"db_name\",\n        )],\n        quotas=[\n            yandex.MdbClickhouseClusterUserQuotaArgs(\n                errors=1000,\n                interval_duration=3600000,\n                queries=10000,\n            ),\n            yandex.MdbClickhouseClusterUserQuotaArgs(\n                error=5000,\n                interval_duration=79800000,\n                queries=50000,\n            ),\n        ],\n        settings=yandex.MdbClickhouseClusterUserSettingsArgs(\n            max_memory_usage_for_user=1000000000,\n            output_format_json_quote64bit_integers=True,\n            read_overflow_mode=\"throw\",\n        ),\n    )])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.5.0.0/24\",\n            },\n            Zone = \"ru-central1-a\",\n        });\n        var fooMdbClickhouseCluster = new Yandex.MdbClickhouseCluster(\"fooMdbClickhouseCluster\", new Yandex.MdbClickhouseClusterArgs\n        {\n            Clickhouse = new Yandex.Inputs.MdbClickhouseClusterClickhouseArgs\n            {\n                Config = new Yandex.Inputs.MdbClickhouseClusterClickhouseConfigArgs\n                {\n                    BackgroundPoolSize = 16,\n                    BackgroundSchedulePoolSize = 16,\n                    Compression = \n                    {\n                        \n                        {\n                            { \"method\", \"LZ4\" },\n                            { \"minPartSize\", 1024 },\n                            { \"minPartSizeRatio\", 0.5 },\n                        },\n                        \n                        {\n                            { \"method\", \"ZSTD\" },\n                            { \"minPartSize\", 2048 },\n                            { \"minPartSizeRatio\", 0.7 },\n                        },\n                    },\n                    GeobaseUri = \"\",\n                    GraphiteRollup = \n                    {\n                        \n                        {\n                            { \"name\", \"rollup1\" },\n                            { \"pattern\", \n                            {\n                                \n                                {\n                                    { \"function\", \"func1\" },\n                                    { \"regexp\", \"abc\" },\n                                    { \"retention\", \n                                    {\n                                        \n                                        {\n                                            { \"age\", 1000 },\n                                            { \"precision\", 3 },\n                                        },\n                                    } },\n                                },\n                            } },\n                        },\n                        \n                        {\n                            { \"name\", \"rollup2\" },\n                            { \"pattern\", \n                            {\n                                \n                                {\n                                    { \"function\", \"func2\" },\n                                    { \"retention\", \n                                    {\n                                        \n                                        {\n                                            { \"age\", 2000 },\n                                            { \"precision\", 5 },\n                                        },\n                                    } },\n                                },\n                            } },\n                        },\n                    },\n                    Kafka = new Yandex.Inputs.MdbClickhouseClusterClickhouseConfigKafkaArgs\n                    {\n                        SaslMechanism = \"SASL_MECHANISM_GSSAPI\",\n                        SaslPassword = \"pass1\",\n                        SaslUsername = \"user1\",\n                        SecurityProtocol = \"SECURITY_PROTOCOL_PLAINTEXT\",\n                    },\n                    KafkaTopic = \n                    {\n                        \n                        {\n                            { \"name\", \"topic1\" },\n                            { \"settings\", \n                            {\n                                { \"saslMechanism\", \"SASL_MECHANISM_SCRAM_SHA_256\" },\n                                { \"saslPassword\", \"pass2\" },\n                                { \"saslUsername\", \"user2\" },\n                                { \"securityProtocol\", \"SECURITY_PROTOCOL_SSL\" },\n                            } },\n                        },\n                        \n                        {\n                            { \"name\", \"topic2\" },\n                            { \"settings\", \n                            {\n                                { \"saslMechanism\", \"SASL_MECHANISM_PLAIN\" },\n                                { \"securityProtocol\", \"SECURITY_PROTOCOL_SASL_PLAINTEXT\" },\n                            } },\n                        },\n                    },\n                    KeepAliveTimeout = 3000,\n                    LogLevel = \"TRACE\",\n                    MarkCacheSize = 5368709120,\n                    MaxConcurrentQueries = 50,\n                    MaxConnections = 100,\n                    MaxPartitionSizeToDrop = 53687091200,\n                    MaxTableSizeToDrop = 53687091200,\n                    MergeTree = new Yandex.Inputs.MdbClickhouseClusterClickhouseConfigMergeTreeArgs\n                    {\n                        MaxBytesToMergeAtMinSpaceInPool = 1048576,\n                        MaxReplicatedMergesInQueue = 16,\n                        NumberOfFreeEntriesInPoolToLowerMaxSizeOfMerge = 8,\n                        PartsToDelayInsert = 150,\n                        PartsToThrowInsert = 300,\n                        ReplicatedDeduplicationWindow = 100,\n                        ReplicatedDeduplicationWindowSeconds = 604800,\n                    },\n                    MetricLogEnabled = true,\n                    MetricLogRetentionSize = 536870912,\n                    MetricLogRetentionTime = 2592000,\n                    PartLogRetentionSize = 536870912,\n                    PartLogRetentionTime = 2592000,\n                    QueryLogRetentionSize = 1073741824,\n                    QueryLogRetentionTime = 2592000,\n                    QueryThreadLogEnabled = true,\n                    QueryThreadLogRetentionSize = 536870912,\n                    QueryThreadLogRetentionTime = 2592000,\n                    Rabbitmq = new Yandex.Inputs.MdbClickhouseClusterClickhouseConfigRabbitmqArgs\n                    {\n                        Password = \"rabbit_pass\",\n                        Username = \"rabbit_user\",\n                    },\n                    TextLogEnabled = true,\n                    TextLogLevel = \"TRACE\",\n                    TextLogRetentionSize = 536870912,\n                    TextLogRetentionTime = 2592000,\n                    Timezone = \"UTC\",\n                    TraceLogEnabled = true,\n                    TraceLogRetentionSize = 536870912,\n                    TraceLogRetentionTime = 2592000,\n                    UncompressedCacheSize = 8589934592,\n                },\n                Resources = new Yandex.Inputs.MdbClickhouseClusterClickhouseResourcesArgs\n                {\n                    DiskSize = 32,\n                    DiskTypeId = \"network-ssd\",\n                    ResourcePresetId = \"s2.micro\",\n                },\n            },\n            CloudStorage = new Yandex.Inputs.MdbClickhouseClusterCloudStorageArgs\n            {\n                Enabled = false,\n            },\n            Databases = \n            {\n                new Yandex.Inputs.MdbClickhouseClusterDatabaseArgs\n                {\n                    Name = \"db_name\",\n                },\n            },\n            Environment = \"PRESTABLE\",\n            FormatSchemas = \n            {\n                new Yandex.Inputs.MdbClickhouseClusterFormatSchemaArgs\n                {\n                    Name = \"test_schema\",\n                    Type = \"FORMAT_SCHEMA_TYPE_CAPNPROTO\",\n                    Uri = \"https://storage.yandexcloud.net/ch-data/schema.proto\",\n                },\n            },\n            Hosts = \n            {\n                new Yandex.Inputs.MdbClickhouseClusterHostArgs\n                {\n                    SubnetId = fooVpcSubnet.Id,\n                    Type = \"CLICKHOUSE\",\n                    Zone = \"ru-central1-a\",\n                },\n            },\n            MaintenanceWindow = new Yandex.Inputs.MdbClickhouseClusterMaintenanceWindowArgs\n            {\n                Type = \"ANYTIME\",\n            },\n            MlModels = \n            {\n                new Yandex.Inputs.MdbClickhouseClusterMlModelArgs\n                {\n                    Name = \"test_model\",\n                    Type = \"ML_MODEL_TYPE_CATBOOST\",\n                    Uri = \"https://storage.yandexcloud.net/ch-data/train.csv\",\n                },\n            },\n            NetworkId = fooVpcNetwork.Id,\n            ServiceAccountId = \"your_service_account_id\",\n            Users = \n            {\n                new Yandex.Inputs.MdbClickhouseClusterUserArgs\n                {\n                    Name = \"user\",\n                    Password = \"your_password\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbClickhouseClusterUserPermissionArgs\n                        {\n                            DatabaseName = \"db_name\",\n                        },\n                    },\n                    Quotas = \n                    {\n                        new Yandex.Inputs.MdbClickhouseClusterUserQuotaArgs\n                        {\n                            Errors = 1000,\n                            IntervalDuration = 3600000,\n                            Queries = 10000,\n                        },\n                        new Yandex.Inputs.MdbClickhouseClusterUserQuotaArgs\n                        {\n                            Error = 5000,\n                            IntervalDuration = 79800000,\n                            Queries = 50000,\n                        },\n                    },\n                    Settings = new Yandex.Inputs.MdbClickhouseClusterUserSettingsArgs\n                    {\n                        MaxMemoryUsageForUser = 1000000000,\n                        OutputFormatJsonQuote64bitIntegers = true,\n                        ReadOverflowMode = \"throw\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMdbClickhouseCluster(ctx, \"fooMdbClickhouseCluster\", &yandex.MdbClickhouseClusterArgs{\n\t\t\tClickhouse: &MdbClickhouseClusterClickhouseArgs{\n\t\t\t\tConfig: &MdbClickhouseClusterClickhouseConfigArgs{\n\t\t\t\t\tBackgroundPoolSize:         pulumi.Int(16),\n\t\t\t\t\tBackgroundSchedulePoolSize: pulumi.Int(16),\n\t\t\t\t\tCompression: []interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"method\":           \"LZ4\",\n\t\t\t\t\t\t\t\"minPartSize\":      1024,\n\t\t\t\t\t\t\t\"minPartSizeRatio\": 0.5,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"method\":           \"ZSTD\",\n\t\t\t\t\t\t\t\"minPartSize\":      2048,\n\t\t\t\t\t\t\t\"minPartSizeRatio\": 0.7,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tGeobaseUri: pulumi.String(\"\"),\n\t\t\t\t\tGraphiteRollup: []interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"name\": \"rollup1\",\n\t\t\t\t\t\t\t\"pattern\": []map[string]interface{}{\n\t\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\t\"function\": \"func1\",\n\t\t\t\t\t\t\t\t\t\"regexp\":   \"abc\",\n\t\t\t\t\t\t\t\t\t\"retention\": []map[string]interface{}{\n\t\t\t\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\t\t\t\"age\":       1000,\n\t\t\t\t\t\t\t\t\t\t\t\"precision\": 3,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"name\": \"rollup2\",\n\t\t\t\t\t\t\t\"pattern\": []map[string]interface{}{\n\t\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\t\"function\": \"func2\",\n\t\t\t\t\t\t\t\t\t\"retention\": []map[string]interface{}{\n\t\t\t\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\t\t\t\"age\":       2000,\n\t\t\t\t\t\t\t\t\t\t\t\"precision\": 5,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tKafka: &MdbClickhouseClusterClickhouseConfigKafkaArgs{\n\t\t\t\t\t\tSaslMechanism:    pulumi.String(\"SASL_MECHANISM_GSSAPI\"),\n\t\t\t\t\t\tSaslPassword:     pulumi.String(\"pass1\"),\n\t\t\t\t\t\tSaslUsername:     pulumi.String(\"user1\"),\n\t\t\t\t\t\tSecurityProtocol: pulumi.String(\"SECURITY_PROTOCOL_PLAINTEXT\"),\n\t\t\t\t\t},\n\t\t\t\t\tKafkaTopic: []interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"name\": \"topic1\",\n\t\t\t\t\t\t\t\"settings\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"saslMechanism\":    \"SASL_MECHANISM_SCRAM_SHA_256\",\n\t\t\t\t\t\t\t\t\"saslPassword\":     \"pass2\",\n\t\t\t\t\t\t\t\t\"saslUsername\":     \"user2\",\n\t\t\t\t\t\t\t\t\"securityProtocol\": \"SECURITY_PROTOCOL_SSL\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"name\": \"topic2\",\n\t\t\t\t\t\t\t\"settings\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"saslMechanism\":    \"SASL_MECHANISM_PLAIN\",\n\t\t\t\t\t\t\t\t\"securityProtocol\": \"SECURITY_PROTOCOL_SASL_PLAINTEXT\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tKeepAliveTimeout:       pulumi.Int(3000),\n\t\t\t\t\tLogLevel:               pulumi.String(\"TRACE\"),\n\t\t\t\t\tMarkCacheSize:          pulumi.Int(5368709120),\n\t\t\t\t\tMaxConcurrentQueries:   pulumi.Int(50),\n\t\t\t\t\tMaxConnections:         pulumi.Int(100),\n\t\t\t\t\tMaxPartitionSizeToDrop: pulumi.Int(53687091200),\n\t\t\t\t\tMaxTableSizeToDrop:     pulumi.Int(53687091200),\n\t\t\t\t\tMergeTree: &MdbClickhouseClusterClickhouseConfigMergeTreeArgs{\n\t\t\t\t\t\tMaxBytesToMergeAtMinSpaceInPool:                pulumi.Int(1048576),\n\t\t\t\t\t\tMaxReplicatedMergesInQueue:                     pulumi.Int(16),\n\t\t\t\t\t\tNumberOfFreeEntriesInPoolToLowerMaxSizeOfMerge: pulumi.Int(8),\n\t\t\t\t\t\tPartsToDelayInsert:                             pulumi.Int(150),\n\t\t\t\t\t\tPartsToThrowInsert:                             pulumi.Int(300),\n\t\t\t\t\t\tReplicatedDeduplicationWindow:                  pulumi.Int(100),\n\t\t\t\t\t\tReplicatedDeduplicationWindowSeconds:           pulumi.Int(604800),\n\t\t\t\t\t},\n\t\t\t\t\tMetricLogEnabled:            pulumi.Bool(true),\n\t\t\t\t\tMetricLogRetentionSize:      pulumi.Int(536870912),\n\t\t\t\t\tMetricLogRetentionTime:      pulumi.Int(2592000),\n\t\t\t\t\tPartLogRetentionSize:        pulumi.Int(536870912),\n\t\t\t\t\tPartLogRetentionTime:        pulumi.Int(2592000),\n\t\t\t\t\tQueryLogRetentionSize:       pulumi.Int(1073741824),\n\t\t\t\t\tQueryLogRetentionTime:       pulumi.Int(2592000),\n\t\t\t\t\tQueryThreadLogEnabled:       pulumi.Bool(true),\n\t\t\t\t\tQueryThreadLogRetentionSize: pulumi.Int(536870912),\n\t\t\t\t\tQueryThreadLogRetentionTime: pulumi.Int(2592000),\n\t\t\t\t\tRabbitmq: &MdbClickhouseClusterClickhouseConfigRabbitmqArgs{\n\t\t\t\t\t\tPassword: pulumi.String(\"rabbit_pass\"),\n\t\t\t\t\t\tUsername: pulumi.String(\"rabbit_user\"),\n\t\t\t\t\t},\n\t\t\t\t\tTextLogEnabled:        pulumi.Bool(true),\n\t\t\t\t\tTextLogLevel:          pulumi.String(\"TRACE\"),\n\t\t\t\t\tTextLogRetentionSize:  pulumi.Int(536870912),\n\t\t\t\t\tTextLogRetentionTime:  pulumi.Int(2592000),\n\t\t\t\t\tTimezone:              pulumi.String(\"UTC\"),\n\t\t\t\t\tTraceLogEnabled:       pulumi.Bool(true),\n\t\t\t\t\tTraceLogRetentionSize: pulumi.Int(536870912),\n\t\t\t\t\tTraceLogRetentionTime: pulumi.Int(2592000),\n\t\t\t\t\tUncompressedCacheSize: pulumi.Int(8589934592),\n\t\t\t\t},\n\t\t\t\tResources: &MdbClickhouseClusterClickhouseResourcesArgs{\n\t\t\t\t\tDiskSize:         pulumi.Int(32),\n\t\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\t\tResourcePresetId: pulumi.String(\"s2.micro\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCloudStorage: &MdbClickhouseClusterCloudStorageArgs{\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tDatabases: MdbClickhouseClusterDatabaseArray{\n\t\t\t\t&MdbClickhouseClusterDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"db_name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnvironment: pulumi.String(\"PRESTABLE\"),\n\t\t\tFormatSchemas: MdbClickhouseClusterFormatSchemaArray{\n\t\t\t\t&MdbClickhouseClusterFormatSchemaArgs{\n\t\t\t\t\tName: pulumi.String(\"test_schema\"),\n\t\t\t\t\tType: pulumi.String(\"FORMAT_SCHEMA_TYPE_CAPNPROTO\"),\n\t\t\t\t\tUri:  pulumi.String(\"https://storage.yandexcloud.net/ch-data/schema.proto\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHosts: MdbClickhouseClusterHostArray{\n\t\t\t\t&MdbClickhouseClusterHostArgs{\n\t\t\t\t\tSubnetId: fooVpcSubnet.ID(),\n\t\t\t\t\tType:     pulumi.String(\"CLICKHOUSE\"),\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-a\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMaintenanceWindow: &MdbClickhouseClusterMaintenanceWindowArgs{\n\t\t\t\tType: pulumi.String(\"ANYTIME\"),\n\t\t\t},\n\t\t\tMlModels: MdbClickhouseClusterMlModelArray{\n\t\t\t\t&MdbClickhouseClusterMlModelArgs{\n\t\t\t\t\tName: pulumi.String(\"test_model\"),\n\t\t\t\t\tType: pulumi.String(\"ML_MODEL_TYPE_CATBOOST\"),\n\t\t\t\t\tUri:  pulumi.String(\"https://storage.yandexcloud.net/ch-data/train.csv\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworkId:        fooVpcNetwork.ID(),\n\t\t\tServiceAccountId: pulumi.String(\"your_service_account_id\"),\n\t\t\tUsers: MdbClickhouseClusterUserArray{\n\t\t\t\t&MdbClickhouseClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"user\"),\n\t\t\t\t\tPassword: pulumi.String(\"your_password\"),\n\t\t\t\t\tPermissions: MdbClickhouseClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbClickhouseClusterUserPermissionArgs{\n\t\t\t\t\t\t\tDatabaseName: pulumi.String(\"db_name\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tQuotas: MdbClickhouseClusterUserQuotaArray{\n\t\t\t\t\t\t&MdbClickhouseClusterUserQuotaArgs{\n\t\t\t\t\t\t\tErrors:           pulumi.Int(1000),\n\t\t\t\t\t\t\tIntervalDuration: pulumi.Int(3600000),\n\t\t\t\t\t\t\tQueries:          pulumi.Int(10000),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&MdbClickhouseClusterUserQuotaArgs{\n\t\t\t\t\t\t\tError:            5000,\n\t\t\t\t\t\t\tIntervalDuration: pulumi.Int(79800000),\n\t\t\t\t\t\t\tQueries:          pulumi.Int(50000),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tSettings: &MdbClickhouseClusterUserSettingsArgs{\n\t\t\t\t\t\tMaxMemoryUsageForUser:              pulumi.Int(1000000000),\n\t\t\t\t\t\tOutputFormatJsonQuote64bitIntegers: pulumi.Bool(true),\n\t\t\t\t\t\tReadOverflowMode:                   pulumi.String(\"throw\"),\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\nExample of creating a HA ClickHouse Cluster.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"foo\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"foo\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.1.0.0/24\"],\n    zone: \"ru-central1-a\",\n});\nconst bar = new yandex.VpcSubnet(\"bar\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.2.0.0/24\"],\n    zone: \"ru-central1-b\",\n});\nconst baz = new yandex.VpcSubnet(\"baz\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.3.0.0/24\"],\n    zone: \"ru-central1-c\",\n});\nconst fooMdbClickhouseCluster = new yandex.MdbClickhouseCluster(\"foo\", {\n    clickhouse: {\n        resources: {\n            diskSize: 16,\n            diskTypeId: \"network-ssd\",\n            resourcePresetId: \"s2.micro\",\n        },\n    },\n    cloudStorage: {\n        enabled: false,\n    },\n    databases: [{\n        name: \"db_name\",\n    }],\n    environment: \"PRESTABLE\",\n    hosts: [\n        {\n            subnetId: fooVpcSubnet.id,\n            type: \"CLICKHOUSE\",\n            zone: \"ru-central1-a\",\n        },\n        {\n            subnetId: bar.id,\n            type: \"CLICKHOUSE\",\n            zone: \"ru-central1-b\",\n        },\n        {\n            subnetId: fooVpcSubnet.id,\n            type: \"ZOOKEEPER\",\n            zone: \"ru-central1-a\",\n        },\n        {\n            subnetId: bar.id,\n            type: \"ZOOKEEPER\",\n            zone: \"ru-central1-b\",\n        },\n        {\n            subnetId: baz.id,\n            type: \"ZOOKEEPER\",\n            zone: \"ru-central1-c\",\n        },\n    ],\n    networkId: fooVpcNetwork.id,\n    users: [{\n        name: \"user\",\n        password: \"password\",\n        permissions: [{\n            databaseName: \"db_name\",\n        }],\n        quotas: [\n            {\n                errors: 1000,\n                intervalDuration: 3600000,\n                queries: 10000,\n            },\n            {\n                error: 5000,\n                intervalDuration: 79800000,\n                queries: 50000,\n            },\n        ],\n        settings: {\n            maxMemoryUsageForUser: 1000000000,\n            outputFormatJsonQuote64bitIntegers: true,\n            readOverflowMode: \"throw\",\n        },\n    }],\n    zookeeper: {\n        resources: {\n            diskSize: 10,\n            diskTypeId: \"network-ssd\",\n            resourcePresetId: \"s2.micro\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.1.0.0/24\"],\n    zone=\"ru-central1-a\")\nbar = yandex.VpcSubnet(\"bar\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.2.0.0/24\"],\n    zone=\"ru-central1-b\")\nbaz = yandex.VpcSubnet(\"baz\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.3.0.0/24\"],\n    zone=\"ru-central1-c\")\nfoo_mdb_clickhouse_cluster = yandex.MdbClickhouseCluster(\"fooMdbClickhouseCluster\",\n    clickhouse=yandex.MdbClickhouseClusterClickhouseArgs(\n        resources=yandex.MdbClickhouseClusterClickhouseResourcesArgs(\n            disk_size=16,\n            disk_type_id=\"network-ssd\",\n            resource_preset_id=\"s2.micro\",\n        ),\n    ),\n    cloud_storage=yandex.MdbClickhouseClusterCloudStorageArgs(\n        enabled=False,\n    ),\n    databases=[yandex.MdbClickhouseClusterDatabaseArgs(\n        name=\"db_name\",\n    )],\n    environment=\"PRESTABLE\",\n    hosts=[\n        yandex.MdbClickhouseClusterHostArgs(\n            subnet_id=foo_vpc_subnet.id,\n            type=\"CLICKHOUSE\",\n            zone=\"ru-central1-a\",\n        ),\n        yandex.MdbClickhouseClusterHostArgs(\n            subnet_id=bar.id,\n            type=\"CLICKHOUSE\",\n            zone=\"ru-central1-b\",\n        ),\n        yandex.MdbClickhouseClusterHostArgs(\n            subnet_id=foo_vpc_subnet.id,\n            type=\"ZOOKEEPER\",\n            zone=\"ru-central1-a\",\n        ),\n        yandex.MdbClickhouseClusterHostArgs(\n            subnet_id=bar.id,\n            type=\"ZOOKEEPER\",\n            zone=\"ru-central1-b\",\n        ),\n        yandex.MdbClickhouseClusterHostArgs(\n            subnet_id=baz.id,\n            type=\"ZOOKEEPER\",\n            zone=\"ru-central1-c\",\n        ),\n    ],\n    network_id=foo_vpc_network.id,\n    users=[yandex.MdbClickhouseClusterUserArgs(\n        name=\"user\",\n        password=\"password\",\n        permissions=[yandex.MdbClickhouseClusterUserPermissionArgs(\n            database_name=\"db_name\",\n        )],\n        quotas=[\n            yandex.MdbClickhouseClusterUserQuotaArgs(\n                errors=1000,\n                interval_duration=3600000,\n                queries=10000,\n            ),\n            yandex.MdbClickhouseClusterUserQuotaArgs(\n                error=5000,\n                interval_duration=79800000,\n                queries=50000,\n            ),\n        ],\n        settings=yandex.MdbClickhouseClusterUserSettingsArgs(\n            max_memory_usage_for_user=1000000000,\n            output_format_json_quote64bit_integers=True,\n            read_overflow_mode=\"throw\",\n        ),\n    )],\n    zookeeper=yandex.MdbClickhouseClusterZookeeperArgs(\n        resources=yandex.MdbClickhouseClusterZookeeperResourcesArgs(\n            disk_size=10,\n            disk_type_id=\"network-ssd\",\n            resource_preset_id=\"s2.micro\",\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.1.0.0/24\",\n            },\n            Zone = \"ru-central1-a\",\n        });\n        var bar = new Yandex.VpcSubnet(\"bar\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.2.0.0/24\",\n            },\n            Zone = \"ru-central1-b\",\n        });\n        var baz = new Yandex.VpcSubnet(\"baz\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.3.0.0/24\",\n            },\n            Zone = \"ru-central1-c\",\n        });\n        var fooMdbClickhouseCluster = new Yandex.MdbClickhouseCluster(\"fooMdbClickhouseCluster\", new Yandex.MdbClickhouseClusterArgs\n        {\n            Clickhouse = new Yandex.Inputs.MdbClickhouseClusterClickhouseArgs\n            {\n                Resources = new Yandex.Inputs.MdbClickhouseClusterClickhouseResourcesArgs\n                {\n                    DiskSize = 16,\n                    DiskTypeId = \"network-ssd\",\n                    ResourcePresetId = \"s2.micro\",\n                },\n            },\n            CloudStorage = new Yandex.Inputs.MdbClickhouseClusterCloudStorageArgs\n            {\n                Enabled = false,\n            },\n            Databases = \n            {\n                new Yandex.Inputs.MdbClickhouseClusterDatabaseArgs\n                {\n                    Name = \"db_name\",\n                },\n            },\n            Environment = \"PRESTABLE\",\n            Hosts = \n            {\n                new Yandex.Inputs.MdbClickhouseClusterHostArgs\n                {\n                    SubnetId = fooVpcSubnet.Id,\n                    Type = \"CLICKHOUSE\",\n                    Zone = \"ru-central1-a\",\n                },\n                new Yandex.Inputs.MdbClickhouseClusterHostArgs\n                {\n                    SubnetId = bar.Id,\n                    Type = \"CLICKHOUSE\",\n                    Zone = \"ru-central1-b\",\n                },\n                new Yandex.Inputs.MdbClickhouseClusterHostArgs\n                {\n                    SubnetId = fooVpcSubnet.Id,\n                    Type = \"ZOOKEEPER\",\n                    Zone = \"ru-central1-a\",\n                },\n                new Yandex.Inputs.MdbClickhouseClusterHostArgs\n                {\n                    SubnetId = bar.Id,\n                    Type = \"ZOOKEEPER\",\n                    Zone = \"ru-central1-b\",\n                },\n                new Yandex.Inputs.MdbClickhouseClusterHostArgs\n                {\n                    SubnetId = baz.Id,\n                    Type = \"ZOOKEEPER\",\n                    Zone = \"ru-central1-c\",\n                },\n            },\n            NetworkId = fooVpcNetwork.Id,\n            Users = \n            {\n                new Yandex.Inputs.MdbClickhouseClusterUserArgs\n                {\n                    Name = \"user\",\n                    Password = \"password\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbClickhouseClusterUserPermissionArgs\n                        {\n                            DatabaseName = \"db_name\",\n                        },\n                    },\n                    Quotas = \n                    {\n                        new Yandex.Inputs.MdbClickhouseClusterUserQuotaArgs\n                        {\n                            Errors = 1000,\n                            IntervalDuration = 3600000,\n                            Queries = 10000,\n                        },\n                        new Yandex.Inputs.MdbClickhouseClusterUserQuotaArgs\n                        {\n                            Error = 5000,\n                            IntervalDuration = 79800000,\n                            Queries = 50000,\n                        },\n                    },\n                    Settings = new Yandex.Inputs.MdbClickhouseClusterUserSettingsArgs\n                    {\n                        MaxMemoryUsageForUser = 1000000000,\n                        OutputFormatJsonQuote64bitIntegers = true,\n                        ReadOverflowMode = \"throw\",\n                    },\n                },\n            },\n            Zookeeper = new Yandex.Inputs.MdbClickhouseClusterZookeeperArgs\n            {\n                Resources = new Yandex.Inputs.MdbClickhouseClusterZookeeperResourcesArgs\n                {\n                    DiskSize = 10,\n                    DiskTypeId = \"network-ssd\",\n                    ResourcePresetId = \"s2.micro\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbar, err := yandex.NewVpcSubnet(ctx, \"bar\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-b\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbaz, err := yandex.NewVpcSubnet(ctx, \"baz\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.3.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-c\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMdbClickhouseCluster(ctx, \"fooMdbClickhouseCluster\", &yandex.MdbClickhouseClusterArgs{\n\t\t\tClickhouse: &MdbClickhouseClusterClickhouseArgs{\n\t\t\t\tResources: &MdbClickhouseClusterClickhouseResourcesArgs{\n\t\t\t\t\tDiskSize:         pulumi.Int(16),\n\t\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\t\tResourcePresetId: pulumi.String(\"s2.micro\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCloudStorage: &MdbClickhouseClusterCloudStorageArgs{\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tDatabases: MdbClickhouseClusterDatabaseArray{\n\t\t\t\t&MdbClickhouseClusterDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"db_name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnvironment: pulumi.String(\"PRESTABLE\"),\n\t\t\tHosts: MdbClickhouseClusterHostArray{\n\t\t\t\t&MdbClickhouseClusterHostArgs{\n\t\t\t\t\tSubnetId: fooVpcSubnet.ID(),\n\t\t\t\t\tType:     pulumi.String(\"CLICKHOUSE\"),\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-a\"),\n\t\t\t\t},\n\t\t\t\t&MdbClickhouseClusterHostArgs{\n\t\t\t\t\tSubnetId: bar.ID(),\n\t\t\t\t\tType:     pulumi.String(\"CLICKHOUSE\"),\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-b\"),\n\t\t\t\t},\n\t\t\t\t&MdbClickhouseClusterHostArgs{\n\t\t\t\t\tSubnetId: fooVpcSubnet.ID(),\n\t\t\t\t\tType:     pulumi.String(\"ZOOKEEPER\"),\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-a\"),\n\t\t\t\t},\n\t\t\t\t&MdbClickhouseClusterHostArgs{\n\t\t\t\t\tSubnetId: bar.ID(),\n\t\t\t\t\tType:     pulumi.String(\"ZOOKEEPER\"),\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-b\"),\n\t\t\t\t},\n\t\t\t\t&MdbClickhouseClusterHostArgs{\n\t\t\t\t\tSubnetId: baz.ID(),\n\t\t\t\t\tType:     pulumi.String(\"ZOOKEEPER\"),\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-c\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tUsers: MdbClickhouseClusterUserArray{\n\t\t\t\t&MdbClickhouseClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"user\"),\n\t\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t\t\tPermissions: MdbClickhouseClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbClickhouseClusterUserPermissionArgs{\n\t\t\t\t\t\t\tDatabaseName: pulumi.String(\"db_name\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tQuotas: MdbClickhouseClusterUserQuotaArray{\n\t\t\t\t\t\t&MdbClickhouseClusterUserQuotaArgs{\n\t\t\t\t\t\t\tErrors:           pulumi.Int(1000),\n\t\t\t\t\t\t\tIntervalDuration: pulumi.Int(3600000),\n\t\t\t\t\t\t\tQueries:          pulumi.Int(10000),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&MdbClickhouseClusterUserQuotaArgs{\n\t\t\t\t\t\t\tError:            5000,\n\t\t\t\t\t\t\tIntervalDuration: pulumi.Int(79800000),\n\t\t\t\t\t\t\tQueries:          pulumi.Int(50000),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tSettings: &MdbClickhouseClusterUserSettingsArgs{\n\t\t\t\t\t\tMaxMemoryUsageForUser:              pulumi.Int(1000000000),\n\t\t\t\t\t\tOutputFormatJsonQuote64bitIntegers: pulumi.Bool(true),\n\t\t\t\t\t\tReadOverflowMode:                   pulumi.String(\"throw\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZookeeper: &MdbClickhouseClusterZookeeperArgs{\n\t\t\t\tResources: &MdbClickhouseClusterZookeeperResourcesArgs{\n\t\t\t\t\tDiskSize:         pulumi.Int(10),\n\t\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\t\tResourcePresetId: pulumi.String(\"s2.micro\"),\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\nExample of creating a sharded ClickHouse Cluster.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"foo\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"foo\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.1.0.0/24\"],\n    zone: \"ru-central1-a\",\n});\nconst bar = new yandex.VpcSubnet(\"bar\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.2.0.0/24\"],\n    zone: \"ru-central1-b\",\n});\nconst baz = new yandex.VpcSubnet(\"baz\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.3.0.0/24\"],\n    zone: \"ru-central1-c\",\n});\nconst fooMdbClickhouseCluster = new yandex.MdbClickhouseCluster(\"foo\", {\n    clickhouse: {\n        resources: {\n            diskSize: 16,\n            diskTypeId: \"network-ssd\",\n            resourcePresetId: \"s2.micro\",\n        },\n    },\n    cloudStorage: {\n        enabled: false,\n    },\n    databases: [{\n        name: \"db_name\",\n    }],\n    environment: \"PRODUCTION\",\n    hosts: [\n        {\n            shardName: \"shard1\",\n            subnetId: fooVpcSubnet.id,\n            type: \"CLICKHOUSE\",\n            zone: \"ru-central1-a\",\n        },\n        {\n            shardName: \"shard1\",\n            subnetId: bar.id,\n            type: \"CLICKHOUSE\",\n            zone: \"ru-central1-b\",\n        },\n        {\n            shardName: \"shard2\",\n            subnetId: bar.id,\n            type: \"CLICKHOUSE\",\n            zone: \"ru-central1-b\",\n        },\n        {\n            shardName: \"shard2\",\n            subnetId: baz.id,\n            type: \"CLICKHOUSE\",\n            zone: \"ru-central1-c\",\n        },\n    ],\n    networkId: fooVpcNetwork.id,\n    shardGroups: [{\n        description: \"Cluster configuration that contain only shard1\",\n        name: \"single_shard_group\",\n        shardNames: [\"shard1\"],\n    }],\n    users: [{\n        name: \"user\",\n        password: \"password\",\n        permissions: [{\n            databaseName: \"db_name\",\n        }],\n        quotas: [\n            {\n                errors: 1000,\n                intervalDuration: 3600000,\n                queries: 10000,\n            },\n            {\n                error: 5000,\n                intervalDuration: 79800000,\n                queries: 50000,\n            },\n        ],\n        settings: {\n            maxMemoryUsageForUser: 1000000000,\n            outputFormatJsonQuote64bitIntegers: true,\n            readOverflowMode: \"throw\",\n        },\n    }],\n    zookeeper: {\n        resources: {\n            diskSize: 10,\n            diskTypeId: \"network-ssd\",\n            resourcePresetId: \"s2.micro\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.1.0.0/24\"],\n    zone=\"ru-central1-a\")\nbar = yandex.VpcSubnet(\"bar\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.2.0.0/24\"],\n    zone=\"ru-central1-b\")\nbaz = yandex.VpcSubnet(\"baz\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.3.0.0/24\"],\n    zone=\"ru-central1-c\")\nfoo_mdb_clickhouse_cluster = yandex.MdbClickhouseCluster(\"fooMdbClickhouseCluster\",\n    clickhouse=yandex.MdbClickhouseClusterClickhouseArgs(\n        resources=yandex.MdbClickhouseClusterClickhouseResourcesArgs(\n            disk_size=16,\n            disk_type_id=\"network-ssd\",\n            resource_preset_id=\"s2.micro\",\n        ),\n    ),\n    cloud_storage=yandex.MdbClickhouseClusterCloudStorageArgs(\n        enabled=False,\n    ),\n    databases=[yandex.MdbClickhouseClusterDatabaseArgs(\n        name=\"db_name\",\n    )],\n    environment=\"PRODUCTION\",\n    hosts=[\n        yandex.MdbClickhouseClusterHostArgs(\n            shard_name=\"shard1\",\n            subnet_id=foo_vpc_subnet.id,\n            type=\"CLICKHOUSE\",\n            zone=\"ru-central1-a\",\n        ),\n        yandex.MdbClickhouseClusterHostArgs(\n            shard_name=\"shard1\",\n            subnet_id=bar.id,\n            type=\"CLICKHOUSE\",\n            zone=\"ru-central1-b\",\n        ),\n        yandex.MdbClickhouseClusterHostArgs(\n            shard_name=\"shard2\",\n            subnet_id=bar.id,\n            type=\"CLICKHOUSE\",\n            zone=\"ru-central1-b\",\n        ),\n        yandex.MdbClickhouseClusterHostArgs(\n            shard_name=\"shard2\",\n            subnet_id=baz.id,\n            type=\"CLICKHOUSE\",\n            zone=\"ru-central1-c\",\n        ),\n    ],\n    network_id=foo_vpc_network.id,\n    shard_groups=[yandex.MdbClickhouseClusterShardGroupArgs(\n        description=\"Cluster configuration that contain only shard1\",\n        name=\"single_shard_group\",\n        shard_names=[\"shard1\"],\n    )],\n    users=[yandex.MdbClickhouseClusterUserArgs(\n        name=\"user\",\n        password=\"password\",\n        permissions=[yandex.MdbClickhouseClusterUserPermissionArgs(\n            database_name=\"db_name\",\n        )],\n        quotas=[\n            yandex.MdbClickhouseClusterUserQuotaArgs(\n                errors=1000,\n                interval_duration=3600000,\n                queries=10000,\n            ),\n            yandex.MdbClickhouseClusterUserQuotaArgs(\n                error=5000,\n                interval_duration=79800000,\n                queries=50000,\n            ),\n        ],\n        settings=yandex.MdbClickhouseClusterUserSettingsArgs(\n            max_memory_usage_for_user=1000000000,\n            output_format_json_quote64bit_integers=True,\n            read_overflow_mode=\"throw\",\n        ),\n    )],\n    zookeeper=yandex.MdbClickhouseClusterZookeeperArgs(\n        resources=yandex.MdbClickhouseClusterZookeeperResourcesArgs(\n            disk_size=10,\n            disk_type_id=\"network-ssd\",\n            resource_preset_id=\"s2.micro\",\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.1.0.0/24\",\n            },\n            Zone = \"ru-central1-a\",\n        });\n        var bar = new Yandex.VpcSubnet(\"bar\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.2.0.0/24\",\n            },\n            Zone = \"ru-central1-b\",\n        });\n        var baz = new Yandex.VpcSubnet(\"baz\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.3.0.0/24\",\n            },\n            Zone = \"ru-central1-c\",\n        });\n        var fooMdbClickhouseCluster = new Yandex.MdbClickhouseCluster(\"fooMdbClickhouseCluster\", new Yandex.MdbClickhouseClusterArgs\n        {\n            Clickhouse = new Yandex.Inputs.MdbClickhouseClusterClickhouseArgs\n            {\n                Resources = new Yandex.Inputs.MdbClickhouseClusterClickhouseResourcesArgs\n                {\n                    DiskSize = 16,\n                    DiskTypeId = \"network-ssd\",\n                    ResourcePresetId = \"s2.micro\",\n                },\n            },\n            CloudStorage = new Yandex.Inputs.MdbClickhouseClusterCloudStorageArgs\n            {\n                Enabled = false,\n            },\n            Databases = \n            {\n                new Yandex.Inputs.MdbClickhouseClusterDatabaseArgs\n                {\n                    Name = \"db_name\",\n                },\n            },\n            Environment = \"PRODUCTION\",\n            Hosts = \n            {\n                new Yandex.Inputs.MdbClickhouseClusterHostArgs\n                {\n                    ShardName = \"shard1\",\n                    SubnetId = fooVpcSubnet.Id,\n                    Type = \"CLICKHOUSE\",\n                    Zone = \"ru-central1-a\",\n                },\n                new Yandex.Inputs.MdbClickhouseClusterHostArgs\n                {\n                    ShardName = \"shard1\",\n                    SubnetId = bar.Id,\n                    Type = \"CLICKHOUSE\",\n                    Zone = \"ru-central1-b\",\n                },\n                new Yandex.Inputs.MdbClickhouseClusterHostArgs\n                {\n                    ShardName = \"shard2\",\n                    SubnetId = bar.Id,\n                    Type = \"CLICKHOUSE\",\n                    Zone = \"ru-central1-b\",\n                },\n                new Yandex.Inputs.MdbClickhouseClusterHostArgs\n                {\n                    ShardName = \"shard2\",\n                    SubnetId = baz.Id,\n                    Type = \"CLICKHOUSE\",\n                    Zone = \"ru-central1-c\",\n                },\n            },\n            NetworkId = fooVpcNetwork.Id,\n            ShardGroups = \n            {\n                new Yandex.Inputs.MdbClickhouseClusterShardGroupArgs\n                {\n                    Description = \"Cluster configuration that contain only shard1\",\n                    Name = \"single_shard_group\",\n                    ShardNames = \n                    {\n                        \"shard1\",\n                    },\n                },\n            },\n            Users = \n            {\n                new Yandex.Inputs.MdbClickhouseClusterUserArgs\n                {\n                    Name = \"user\",\n                    Password = \"password\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbClickhouseClusterUserPermissionArgs\n                        {\n                            DatabaseName = \"db_name\",\n                        },\n                    },\n                    Quotas = \n                    {\n                        new Yandex.Inputs.MdbClickhouseClusterUserQuotaArgs\n                        {\n                            Errors = 1000,\n                            IntervalDuration = 3600000,\n                            Queries = 10000,\n                        },\n                        new Yandex.Inputs.MdbClickhouseClusterUserQuotaArgs\n                        {\n                            Error = 5000,\n                            IntervalDuration = 79800000,\n                            Queries = 50000,\n                        },\n                    },\n                    Settings = new Yandex.Inputs.MdbClickhouseClusterUserSettingsArgs\n                    {\n                        MaxMemoryUsageForUser = 1000000000,\n                        OutputFormatJsonQuote64bitIntegers = true,\n                        ReadOverflowMode = \"throw\",\n                    },\n                },\n            },\n            Zookeeper = new Yandex.Inputs.MdbClickhouseClusterZookeeperArgs\n            {\n                Resources = new Yandex.Inputs.MdbClickhouseClusterZookeeperResourcesArgs\n                {\n                    DiskSize = 10,\n                    DiskTypeId = \"network-ssd\",\n                    ResourcePresetId = \"s2.micro\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbar, err := yandex.NewVpcSubnet(ctx, \"bar\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-b\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbaz, err := yandex.NewVpcSubnet(ctx, \"baz\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.3.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-c\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMdbClickhouseCluster(ctx, \"fooMdbClickhouseCluster\", &yandex.MdbClickhouseClusterArgs{\n\t\t\tClickhouse: &MdbClickhouseClusterClickhouseArgs{\n\t\t\t\tResources: &MdbClickhouseClusterClickhouseResourcesArgs{\n\t\t\t\t\tDiskSize:         pulumi.Int(16),\n\t\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\t\tResourcePresetId: pulumi.String(\"s2.micro\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCloudStorage: &MdbClickhouseClusterCloudStorageArgs{\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tDatabases: MdbClickhouseClusterDatabaseArray{\n\t\t\t\t&MdbClickhouseClusterDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"db_name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnvironment: pulumi.String(\"PRODUCTION\"),\n\t\t\tHosts: MdbClickhouseClusterHostArray{\n\t\t\t\t&MdbClickhouseClusterHostArgs{\n\t\t\t\t\tShardName: pulumi.String(\"shard1\"),\n\t\t\t\t\tSubnetId:  fooVpcSubnet.ID(),\n\t\t\t\t\tType:      pulumi.String(\"CLICKHOUSE\"),\n\t\t\t\t\tZone:      pulumi.String(\"ru-central1-a\"),\n\t\t\t\t},\n\t\t\t\t&MdbClickhouseClusterHostArgs{\n\t\t\t\t\tShardName: pulumi.String(\"shard1\"),\n\t\t\t\t\tSubnetId:  bar.ID(),\n\t\t\t\t\tType:      pulumi.String(\"CLICKHOUSE\"),\n\t\t\t\t\tZone:      pulumi.String(\"ru-central1-b\"),\n\t\t\t\t},\n\t\t\t\t&MdbClickhouseClusterHostArgs{\n\t\t\t\t\tShardName: pulumi.String(\"shard2\"),\n\t\t\t\t\tSubnetId:  bar.ID(),\n\t\t\t\t\tType:      pulumi.String(\"CLICKHOUSE\"),\n\t\t\t\t\tZone:      pulumi.String(\"ru-central1-b\"),\n\t\t\t\t},\n\t\t\t\t&MdbClickhouseClusterHostArgs{\n\t\t\t\t\tShardName: pulumi.String(\"shard2\"),\n\t\t\t\t\tSubnetId:  baz.ID(),\n\t\t\t\t\tType:      pulumi.String(\"CLICKHOUSE\"),\n\t\t\t\t\tZone:      pulumi.String(\"ru-central1-c\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tShardGroups: MdbClickhouseClusterShardGroupArray{\n\t\t\t\t&MdbClickhouseClusterShardGroupArgs{\n\t\t\t\t\tDescription: pulumi.String(\"Cluster configuration that contain only shard1\"),\n\t\t\t\t\tName:        pulumi.String(\"single_shard_group\"),\n\t\t\t\t\tShardNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"shard1\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tUsers: MdbClickhouseClusterUserArray{\n\t\t\t\t&MdbClickhouseClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"user\"),\n\t\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t\t\tPermissions: MdbClickhouseClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbClickhouseClusterUserPermissionArgs{\n\t\t\t\t\t\t\tDatabaseName: pulumi.String(\"db_name\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tQuotas: MdbClickhouseClusterUserQuotaArray{\n\t\t\t\t\t\t&MdbClickhouseClusterUserQuotaArgs{\n\t\t\t\t\t\t\tErrors:           pulumi.Int(1000),\n\t\t\t\t\t\t\tIntervalDuration: pulumi.Int(3600000),\n\t\t\t\t\t\t\tQueries:          pulumi.Int(10000),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&MdbClickhouseClusterUserQuotaArgs{\n\t\t\t\t\t\t\tError:            5000,\n\t\t\t\t\t\t\tIntervalDuration: pulumi.Int(79800000),\n\t\t\t\t\t\t\tQueries:          pulumi.Int(50000),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tSettings: &MdbClickhouseClusterUserSettingsArgs{\n\t\t\t\t\t\tMaxMemoryUsageForUser:              pulumi.Int(1000000000),\n\t\t\t\t\t\tOutputFormatJsonQuote64bitIntegers: pulumi.Bool(true),\n\t\t\t\t\t\tReadOverflowMode:                   pulumi.String(\"throw\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZookeeper: &MdbClickhouseClusterZookeeperArgs{\n\t\t\t\tResources: &MdbClickhouseClusterZookeeperResourcesArgs{\n\t\t\t\t\tDiskSize:         pulumi.Int(10),\n\t\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\t\tResourcePresetId: pulumi.String(\"s2.micro\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA cluster can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/mdbClickhouseCluster:MdbClickhouseCluster foo cluster_id\n```\n\n ",
      "properties": {
        "access": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterAccess:MdbClickhouseClusterAccess",
          "description": "Access policy to the ClickHouse cluster. The structure is documented below.\n"
        },
        "adminPassword": {
          "type": "string",
          "description": "A password used to authorize as user `admin` when `sql_user_management` enabled.\n"
        },
        "backupWindowStart": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterBackupWindowStart:MdbClickhouseClusterBackupWindowStart",
          "description": "Time to start the daily backup, in the UTC timezone. The structure is documented below.\n"
        },
        "clickhouse": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouse:MdbClickhouseClusterClickhouse",
          "description": "Configuration of the ClickHouse subcluster. The structure is documented below.\n"
        },
        "cloudStorage": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterCloudStorage:MdbClickhouseClusterCloudStorage"
        },
        "copySchemaOnNewHosts": {
          "type": "boolean",
          "description": "Whether to copy schema on new ClickHouse hosts.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Timestamp of cluster creation.\n"
        },
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterDatabase:MdbClickhouseClusterDatabase"
          },
          "description": "A database of the ClickHouse cluster. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the shard group.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the ClickHouse cluster. Can be either `PRESTABLE` or `PRODUCTION`.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "formatSchemas": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterFormatSchema:MdbClickhouseClusterFormatSchema"
          },
          "description": "A set of protobuf or capnproto format schemas. The structure is documented below.\n"
        },
        "health": {
          "type": "string",
          "description": "Aggregated health of the cluster. Can be `ALIVE`, `DEGRADED`, `DEAD` or `HEALTH_UNKNOWN`.\nFor more information see `health` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-clickhouse/api-ref/Cluster/).\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterHost:MdbClickhouseClusterHost"
          },
          "description": "A host of the ClickHouse cluster. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the ClickHouse cluster.\n"
        },
        "maintenanceWindow": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterMaintenanceWindow:MdbClickhouseClusterMaintenanceWindow"
        },
        "mlModels": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterMlModel:MdbClickhouseClusterMlModel"
          },
          "description": "A group of machine learning models. The structure is documented below\n"
        },
        "name": {
          "type": "string",
          "description": "Graphite rollup configuration name.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the ClickHouse cluster belongs.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "ID of the service account used for access to Yandex Object Storage.\n"
        },
        "shardGroups": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterShardGroup:MdbClickhouseClusterShardGroup"
          },
          "description": "A group of clickhouse shards. The structure is documented below.\n"
        },
        "sqlDatabaseManagement": {
          "type": "boolean",
          "description": "Grants `admin` user database management permission.\n"
        },
        "sqlUserManagement": {
          "type": "boolean",
          "description": "Enables `admin` user with user management permission.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the cluster. Can be `CREATING`, `STARTING`, `RUNNING`, `UPDATING`, `STOPPING`, `STOPPED`, `ERROR` or `STATUS_UNKNOWN`.\nFor more information see `status` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-clickhouse/api-ref/Cluster/).\n"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterUser:MdbClickhouseClusterUser"
          },
          "description": "A user of the ClickHouse cluster. The structure is documented below.\n"
        },
        "version": {
          "type": "string",
          "description": "Version of the ClickHouse server software.\n"
        },
        "zookeeper": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterZookeeper:MdbClickhouseClusterZookeeper",
          "description": "Configuration of the ZooKeeper subcluster. The structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "access",
        "backupWindowStart",
        "clickhouse",
        "createdAt",
        "deletionProtection",
        "environment",
        "folderId",
        "health",
        "hosts",
        "labels",
        "maintenanceWindow",
        "name",
        "networkId",
        "securityGroupIds",
        "serviceAccountId",
        "sqlDatabaseManagement",
        "sqlUserManagement",
        "status",
        "version",
        "zookeeper"
      ],
      "inputProperties": {
        "access": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterAccess:MdbClickhouseClusterAccess",
          "description": "Access policy to the ClickHouse cluster. The structure is documented below.\n"
        },
        "adminPassword": {
          "type": "string",
          "description": "A password used to authorize as user `admin` when `sql_user_management` enabled.\n"
        },
        "backupWindowStart": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterBackupWindowStart:MdbClickhouseClusterBackupWindowStart",
          "description": "Time to start the daily backup, in the UTC timezone. The structure is documented below.\n"
        },
        "clickhouse": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouse:MdbClickhouseClusterClickhouse",
          "description": "Configuration of the ClickHouse subcluster. The structure is documented below.\n"
        },
        "cloudStorage": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterCloudStorage:MdbClickhouseClusterCloudStorage"
        },
        "copySchemaOnNewHosts": {
          "type": "boolean",
          "description": "Whether to copy schema on new ClickHouse hosts.\n"
        },
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterDatabase:MdbClickhouseClusterDatabase"
          },
          "description": "A database of the ClickHouse cluster. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the shard group.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the ClickHouse cluster. Can be either `PRESTABLE` or `PRODUCTION`.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "formatSchemas": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterFormatSchema:MdbClickhouseClusterFormatSchema"
          },
          "description": "A set of protobuf or capnproto format schemas. The structure is documented below.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterHost:MdbClickhouseClusterHost"
          },
          "description": "A host of the ClickHouse cluster. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the ClickHouse cluster.\n"
        },
        "maintenanceWindow": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterMaintenanceWindow:MdbClickhouseClusterMaintenanceWindow"
        },
        "mlModels": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterMlModel:MdbClickhouseClusterMlModel"
          },
          "description": "A group of machine learning models. The structure is documented below\n"
        },
        "name": {
          "type": "string",
          "description": "Graphite rollup configuration name.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the ClickHouse cluster belongs.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "ID of the service account used for access to Yandex Object Storage.\n"
        },
        "shardGroups": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterShardGroup:MdbClickhouseClusterShardGroup"
          },
          "description": "A group of clickhouse shards. The structure is documented below.\n"
        },
        "sqlDatabaseManagement": {
          "type": "boolean",
          "description": "Grants `admin` user database management permission.\n"
        },
        "sqlUserManagement": {
          "type": "boolean",
          "description": "Enables `admin` user with user management permission.\n"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterUser:MdbClickhouseClusterUser"
          },
          "description": "A user of the ClickHouse cluster. The structure is documented below.\n"
        },
        "version": {
          "type": "string",
          "description": "Version of the ClickHouse server software.\n"
        },
        "zookeeper": {
          "$ref": "#/types/yandex:index%2FMdbClickhouseClusterZookeeper:MdbClickhouseClusterZookeeper",
          "description": "Configuration of the ZooKeeper subcluster. The structure is documented below.\n"
        }
      },
      "requiredInputs": [
        "clickhouse",
        "environment",
        "hosts",
        "networkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MdbClickhouseCluster resources.\n",
        "properties": {
          "access": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterAccess:MdbClickhouseClusterAccess",
            "description": "Access policy to the ClickHouse cluster. The structure is documented below.\n"
          },
          "adminPassword": {
            "type": "string",
            "description": "A password used to authorize as user `admin` when `sql_user_management` enabled.\n"
          },
          "backupWindowStart": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterBackupWindowStart:MdbClickhouseClusterBackupWindowStart",
            "description": "Time to start the daily backup, in the UTC timezone. The structure is documented below.\n"
          },
          "clickhouse": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterClickhouse:MdbClickhouseClusterClickhouse",
            "description": "Configuration of the ClickHouse subcluster. The structure is documented below.\n"
          },
          "cloudStorage": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterCloudStorage:MdbClickhouseClusterCloudStorage"
          },
          "copySchemaOnNewHosts": {
            "type": "boolean",
            "description": "Whether to copy schema on new ClickHouse hosts.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp of cluster creation.\n"
          },
          "databases": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbClickhouseClusterDatabase:MdbClickhouseClusterDatabase"
            },
            "description": "A database of the ClickHouse cluster. The structure is documented below.\n"
          },
          "deletionProtection": {
            "type": "boolean",
            "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the shard group.\n"
          },
          "environment": {
            "type": "string",
            "description": "Deployment environment of the ClickHouse cluster. Can be either `PRESTABLE` or `PRODUCTION`.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
          },
          "formatSchemas": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbClickhouseClusterFormatSchema:MdbClickhouseClusterFormatSchema"
            },
            "description": "A set of protobuf or capnproto format schemas. The structure is documented below.\n"
          },
          "health": {
            "type": "string",
            "description": "Aggregated health of the cluster. Can be `ALIVE`, `DEGRADED`, `DEAD` or `HEALTH_UNKNOWN`.\nFor more information see `health` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-clickhouse/api-ref/Cluster/).\n"
          },
          "hosts": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbClickhouseClusterHost:MdbClickhouseClusterHost"
            },
            "description": "A host of the ClickHouse cluster. The structure is documented below.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the ClickHouse cluster.\n"
          },
          "maintenanceWindow": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterMaintenanceWindow:MdbClickhouseClusterMaintenanceWindow"
          },
          "mlModels": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbClickhouseClusterMlModel:MdbClickhouseClusterMlModel"
            },
            "description": "A group of machine learning models. The structure is documented below\n"
          },
          "name": {
            "type": "string",
            "description": "Graphite rollup configuration name.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network, to which the ClickHouse cluster belongs.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "ID of the service account used for access to Yandex Object Storage.\n"
          },
          "shardGroups": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbClickhouseClusterShardGroup:MdbClickhouseClusterShardGroup"
            },
            "description": "A group of clickhouse shards. The structure is documented below.\n"
          },
          "sqlDatabaseManagement": {
            "type": "boolean",
            "description": "Grants `admin` user database management permission.\n"
          },
          "sqlUserManagement": {
            "type": "boolean",
            "description": "Enables `admin` user with user management permission.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the cluster. Can be `CREATING`, `STARTING`, `RUNNING`, `UPDATING`, `STOPPING`, `STOPPED`, `ERROR` or `STATUS_UNKNOWN`.\nFor more information see `status` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-clickhouse/api-ref/Cluster/).\n"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbClickhouseClusterUser:MdbClickhouseClusterUser"
            },
            "description": "A user of the ClickHouse cluster. The structure is documented below.\n"
          },
          "version": {
            "type": "string",
            "description": "Version of the ClickHouse server software.\n"
          },
          "zookeeper": {
            "$ref": "#/types/yandex:index%2FMdbClickhouseClusterZookeeper:MdbClickhouseClusterZookeeper",
            "description": "Configuration of the ZooKeeper subcluster. The structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/mdbElasticSearchCluster:MdbElasticSearchCluster": {
      "description": "Manages a Elasticsearch cluster within the Yandex.Cloud. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-elasticsearch/concepts).\n\n\n## Import\n\nA cluster can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/mdbElasticSearchCluster:MdbElasticSearchCluster foo cluster_id\n```\n\n ",
      "properties": {
        "config": {
          "$ref": "#/types/yandex:index%2FMdbElasticSearchClusterConfig:MdbElasticSearchClusterConfig",
          "description": "Configuration of the Elasticsearch cluster. The structure is documented below.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the key.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Elasticsearch cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the Elasticsearch cluster. Can be either `PRESTABLE` or `PRODUCTION`.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it is not provided, the default provider folder is used.\n"
        },
        "health": {
          "type": "string",
          "description": "Aggregated health of the cluster. Can be either `ALIVE`, `DEGRADED`, `DEAD` or `HEALTH_UNKNOWN`.\nFor more information see `health` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-elasticsearch/api-ref/Cluster/).\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbElasticSearchClusterHost:MdbElasticSearchClusterHost"
          },
          "description": "A host of the Elasticsearch cluster. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Elasticsearch cluster.\n"
        },
        "maintenanceWindow": {
          "$ref": "#/types/yandex:index%2FMdbElasticSearchClusterMaintenanceWindow:MdbElasticSearchClusterMaintenanceWindow"
        },
        "name": {
          "type": "string",
          "description": "User defined host name.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the Elasticsearch cluster belongs.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "ID of the service account authorized for this cluster.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the cluster. Can be either `CREATING`, `STARTING`, `RUNNING`, `UPDATING`, `STOPPING`, `STOPPED`, `ERROR` or `STATUS_UNKNOWN`.\nFor more information see `status` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-elasticsearch/api-ref/Cluster/).\n"
        }
      },
      "type": "object",
      "required": [
        "config",
        "createdAt",
        "deletionProtection",
        "environment",
        "folderId",
        "health",
        "hosts",
        "maintenanceWindow",
        "name",
        "networkId",
        "status"
      ],
      "inputProperties": {
        "config": {
          "$ref": "#/types/yandex:index%2FMdbElasticSearchClusterConfig:MdbElasticSearchClusterConfig",
          "description": "Configuration of the Elasticsearch cluster. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Elasticsearch cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the Elasticsearch cluster. Can be either `PRESTABLE` or `PRODUCTION`.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it is not provided, the default provider folder is used.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbElasticSearchClusterHost:MdbElasticSearchClusterHost"
          },
          "description": "A host of the Elasticsearch cluster. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Elasticsearch cluster.\n"
        },
        "maintenanceWindow": {
          "$ref": "#/types/yandex:index%2FMdbElasticSearchClusterMaintenanceWindow:MdbElasticSearchClusterMaintenanceWindow"
        },
        "name": {
          "type": "string",
          "description": "User defined host name.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the Elasticsearch cluster belongs.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "ID of the service account authorized for this cluster.\n"
        }
      },
      "requiredInputs": [
        "config",
        "environment",
        "networkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MdbElasticSearchCluster resources.\n",
        "properties": {
          "config": {
            "$ref": "#/types/yandex:index%2FMdbElasticSearchClusterConfig:MdbElasticSearchClusterConfig",
            "description": "Configuration of the Elasticsearch cluster. The structure is documented below.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the key.\n"
          },
          "deletionProtection": {
            "type": "boolean",
            "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the Elasticsearch cluster.\n"
          },
          "environment": {
            "type": "string",
            "description": "Deployment environment of the Elasticsearch cluster. Can be either `PRESTABLE` or `PRODUCTION`.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it is not provided, the default provider folder is used.\n"
          },
          "health": {
            "type": "string",
            "description": "Aggregated health of the cluster. Can be either `ALIVE`, `DEGRADED`, `DEAD` or `HEALTH_UNKNOWN`.\nFor more information see `health` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-elasticsearch/api-ref/Cluster/).\n"
          },
          "hosts": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbElasticSearchClusterHost:MdbElasticSearchClusterHost"
            },
            "description": "A host of the Elasticsearch cluster. The structure is documented below.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Elasticsearch cluster.\n"
          },
          "maintenanceWindow": {
            "$ref": "#/types/yandex:index%2FMdbElasticSearchClusterMaintenanceWindow:MdbElasticSearchClusterMaintenanceWindow"
          },
          "name": {
            "type": "string",
            "description": "User defined host name.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network, to which the Elasticsearch cluster belongs.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "ID of the service account authorized for this cluster.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the cluster. Can be either `CREATING`, `STARTING`, `RUNNING`, `UPDATING`, `STOPPING`, `STOPPED`, `ERROR` or `STATUS_UNKNOWN`.\nFor more information see `status` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-elasticsearch/api-ref/Cluster/).\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/mdbGreenplumCluster:MdbGreenplumCluster": {
      "description": "Manages a Greenplum cluster within the Yandex.Cloud. For more information, see\n[the official documentation](https://cloud.yandex.ru/docs/managed-greenplum/).\n\nPlease read [Pricing for Managed Service for Greenplum](https://cloud.yandex.ru/docs/managed-greenplum/) before using Greenplum cluster.\n\nYandex Managed Service for Greenplum® is now in preview\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nExample of creating a Single Node Greenplum.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"fooVpcNetwork\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"fooVpcSubnet\", {\n    zone: \"ru-central1-a\",\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.5.0.0/24\"],\n});\nconst test_sg_x = new yandex.VpcSecurityGroup(\"test-sg-x\", {\n    networkId: fooVpcNetwork.id,\n    ingresses: [{\n        protocol: \"ANY\",\n        description: \"Allow incoming traffic from members of the same security group\",\n        fromPort: 0,\n        toPort: 65535,\n        v4CidrBlocks: [\"0.0.0.0/0\"],\n    }],\n    egresses: [{\n        protocol: \"ANY\",\n        description: \"Allow outgoing traffic to members of the same security group\",\n        fromPort: 0,\n        toPort: 65535,\n        v4CidrBlocks: [\"0.0.0.0/0\"],\n    }],\n});\nconst fooMdbGreenplumCluster = new yandex.MdbGreenplumCluster(\"fooMdbGreenplumCluster\", {\n    description: \"test greenplum cluster\",\n    environment: \"PRESTABLE\",\n    networkId: fooVpcNetwork.id,\n    zoneId: \"ru-central1-a\",\n    subnetId: fooVpcSubnet.id,\n    assignPublicIp: true,\n    version: \"6.17\",\n    masterHostCount: 2,\n    segmentHostCount: 5,\n    segmentInHost: 1,\n    masterSubcluster: {\n        resources: {\n            resourcePresetId: \"s2.micro\",\n            diskSize: 24,\n            diskTypeId: \"network-ssd\",\n        },\n    },\n    segmentSubcluster: {\n        resources: {\n            resourcePresetId: \"s2.micro\",\n            diskSize: 24,\n            diskTypeId: \"network-ssd\",\n        },\n    },\n    access: {\n        webSql: true,\n    },\n    userName: \"admin_user\",\n    userPassword: \"your_super_secret_password\",\n    securityGroupIds: [test_sg_x.id],\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA cluster can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/mdbGreenplumCluster:MdbGreenplumCluster foo cluster_id\n```\n\n ",
      "properties": {
        "access": {
          "$ref": "#/types/yandex:index%2FMdbGreenplumClusterAccess:MdbGreenplumClusterAccess",
          "description": "Access policy to the Greenplum cluster. The structure is documented below.\n"
        },
        "assignPublicIp": {
          "type": "boolean",
          "description": "Sets whether the master hosts should get a public IP address on creation. Changing this parameter for an existing host is not supported at the moment.\n"
        },
        "backupWindowStart": {
          "$ref": "#/types/yandex:index%2FMdbGreenplumClusterBackupWindowStart:MdbGreenplumClusterBackupWindowStart",
          "description": "Time to start the daily backup, in the UTC timezone. The structure is documented below.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the cluster.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Greenplum cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the Greenplum cluster. (PRODUCTION, PRESTABLE)\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "health": {
          "type": "string",
          "description": "Aggregated health of the cluster.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Greenplum cluster.\n"
        },
        "masterHostCount": {
          "type": "integer",
          "description": "Number of hosts in master subcluster (1 or 2).\n"
        },
        "masterHosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbGreenplumClusterMasterHost:MdbGreenplumClusterMasterHost"
          },
          "description": "(Computed) Info about hosts in master subcluster. The structure is documented below.\n"
        },
        "masterSubcluster": {
          "$ref": "#/types/yandex:index%2FMdbGreenplumClusterMasterSubcluster:MdbGreenplumClusterMasterSubcluster",
          "description": "Settings for master subcluster. The structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the Greenplum cluster. Provided by the client when the cluster is created.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the Greenplum cluster uses.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "segmentHostCount": {
          "type": "integer",
          "description": "Number of hosts in segment subcluster (from 1 to 32).\n"
        },
        "segmentHosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbGreenplumClusterSegmentHost:MdbGreenplumClusterSegmentHost"
          },
          "description": "(Computed) Info about hosts in segment subcluster. The structure is documented below.\n"
        },
        "segmentInHost": {
          "type": "integer",
          "description": "Number of segments on segment host (not more then 1 + RAM/8).\n"
        },
        "segmentSubcluster": {
          "$ref": "#/types/yandex:index%2FMdbGreenplumClusterSegmentSubcluster:MdbGreenplumClusterSegmentSubcluster",
          "description": "Settings for segment subcluster. The structure is documented below.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the cluster.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the hosts belongs. The subnet must be a part of the network to which the cluster belongs.\n"
        },
        "userName": {
          "type": "string",
          "description": "Greenplum cluster admin user name.\n"
        },
        "userPassword": {
          "type": "string",
          "description": "Greenplum cluster admin password name.\n"
        },
        "version": {
          "type": "string",
          "description": "Version of the Greenplum cluster. (6.17)\n"
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the Greenplum hosts will be created.\n"
        }
      },
      "type": "object",
      "required": [
        "access",
        "assignPublicIp",
        "backupWindowStart",
        "createdAt",
        "deletionProtection",
        "environment",
        "folderId",
        "health",
        "masterHostCount",
        "masterHosts",
        "masterSubcluster",
        "name",
        "networkId",
        "segmentHostCount",
        "segmentHosts",
        "segmentInHost",
        "segmentSubcluster",
        "status",
        "subnetId",
        "userName",
        "userPassword",
        "version",
        "zone"
      ],
      "inputProperties": {
        "access": {
          "$ref": "#/types/yandex:index%2FMdbGreenplumClusterAccess:MdbGreenplumClusterAccess",
          "description": "Access policy to the Greenplum cluster. The structure is documented below.\n"
        },
        "assignPublicIp": {
          "type": "boolean",
          "description": "Sets whether the master hosts should get a public IP address on creation. Changing this parameter for an existing host is not supported at the moment.\n"
        },
        "backupWindowStart": {
          "$ref": "#/types/yandex:index%2FMdbGreenplumClusterBackupWindowStart:MdbGreenplumClusterBackupWindowStart",
          "description": "Time to start the daily backup, in the UTC timezone. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Greenplum cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the Greenplum cluster. (PRODUCTION, PRESTABLE)\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Greenplum cluster.\n"
        },
        "masterHostCount": {
          "type": "integer",
          "description": "Number of hosts in master subcluster (1 or 2).\n"
        },
        "masterSubcluster": {
          "$ref": "#/types/yandex:index%2FMdbGreenplumClusterMasterSubcluster:MdbGreenplumClusterMasterSubcluster",
          "description": "Settings for master subcluster. The structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the Greenplum cluster. Provided by the client when the cluster is created.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the Greenplum cluster uses.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "segmentHostCount": {
          "type": "integer",
          "description": "Number of hosts in segment subcluster (from 1 to 32).\n"
        },
        "segmentInHost": {
          "type": "integer",
          "description": "Number of segments on segment host (not more then 1 + RAM/8).\n"
        },
        "segmentSubcluster": {
          "$ref": "#/types/yandex:index%2FMdbGreenplumClusterSegmentSubcluster:MdbGreenplumClusterSegmentSubcluster",
          "description": "Settings for segment subcluster. The structure is documented below.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet, to which the hosts belongs. The subnet must be a part of the network to which the cluster belongs.\n"
        },
        "userName": {
          "type": "string",
          "description": "Greenplum cluster admin user name.\n"
        },
        "userPassword": {
          "type": "string",
          "description": "Greenplum cluster admin password name.\n"
        },
        "version": {
          "type": "string",
          "description": "Version of the Greenplum cluster. (6.17)\n"
        },
        "zone": {
          "type": "string",
          "description": "The availability zone where the Greenplum hosts will be created.\n"
        }
      },
      "requiredInputs": [
        "assignPublicIp",
        "environment",
        "masterHostCount",
        "masterSubcluster",
        "networkId",
        "segmentHostCount",
        "segmentInHost",
        "segmentSubcluster",
        "subnetId",
        "userName",
        "userPassword",
        "version",
        "zone"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MdbGreenplumCluster resources.\n",
        "properties": {
          "access": {
            "$ref": "#/types/yandex:index%2FMdbGreenplumClusterAccess:MdbGreenplumClusterAccess",
            "description": "Access policy to the Greenplum cluster. The structure is documented below.\n"
          },
          "assignPublicIp": {
            "type": "boolean",
            "description": "Sets whether the master hosts should get a public IP address on creation. Changing this parameter for an existing host is not supported at the moment.\n"
          },
          "backupWindowStart": {
            "$ref": "#/types/yandex:index%2FMdbGreenplumClusterBackupWindowStart:MdbGreenplumClusterBackupWindowStart",
            "description": "Time to start the daily backup, in the UTC timezone. The structure is documented below.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the cluster.\n"
          },
          "deletionProtection": {
            "type": "boolean",
            "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the Greenplum cluster.\n"
          },
          "environment": {
            "type": "string",
            "description": "Deployment environment of the Greenplum cluster. (PRODUCTION, PRESTABLE)\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
          },
          "health": {
            "type": "string",
            "description": "Aggregated health of the cluster.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Greenplum cluster.\n"
          },
          "masterHostCount": {
            "type": "integer",
            "description": "Number of hosts in master subcluster (1 or 2).\n"
          },
          "masterHosts": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbGreenplumClusterMasterHost:MdbGreenplumClusterMasterHost"
            },
            "description": "(Computed) Info about hosts in master subcluster. The structure is documented below.\n"
          },
          "masterSubcluster": {
            "$ref": "#/types/yandex:index%2FMdbGreenplumClusterMasterSubcluster:MdbGreenplumClusterMasterSubcluster",
            "description": "Settings for master subcluster. The structure is documented below.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the Greenplum cluster. Provided by the client when the cluster is created.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network, to which the Greenplum cluster uses.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
          },
          "segmentHostCount": {
            "type": "integer",
            "description": "Number of hosts in segment subcluster (from 1 to 32).\n"
          },
          "segmentHosts": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbGreenplumClusterSegmentHost:MdbGreenplumClusterSegmentHost"
            },
            "description": "(Computed) Info about hosts in segment subcluster. The structure is documented below.\n"
          },
          "segmentInHost": {
            "type": "integer",
            "description": "Number of segments on segment host (not more then 1 + RAM/8).\n"
          },
          "segmentSubcluster": {
            "$ref": "#/types/yandex:index%2FMdbGreenplumClusterSegmentSubcluster:MdbGreenplumClusterSegmentSubcluster",
            "description": "Settings for segment subcluster. The structure is documented below.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the cluster.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "The ID of the subnet, to which the hosts belongs. The subnet must be a part of the network to which the cluster belongs.\n"
          },
          "userName": {
            "type": "string",
            "description": "Greenplum cluster admin user name.\n"
          },
          "userPassword": {
            "type": "string",
            "description": "Greenplum cluster admin password name.\n"
          },
          "version": {
            "type": "string",
            "description": "Version of the Greenplum cluster. (6.17)\n"
          },
          "zone": {
            "type": "string",
            "description": "The availability zone where the Greenplum hosts will be created.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/mdbKafkaCluster:MdbKafkaCluster": {
      "description": "Manages a Kafka cluster within the Yandex.Cloud. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-kafka/concepts).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nExample of creating a Single Node Kafka.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"foo\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"foo\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.5.0.0/24\"],\n    zone: \"ru-central1-a\",\n});\nconst fooMdbKafkaCluster = new yandex.MdbKafkaCluster(\"foo\", {\n    config: {\n        assignPublicIp: false,\n        brokersCount: 1,\n        kafka: {\n            kafkaConfig: {\n                compressionType: \"COMPRESSION_TYPE_ZSTD\",\n                defaultReplicationFactor: \"1\",\n                logFlushIntervalMessages: \"1024\",\n                logFlushIntervalMs: \"1000\",\n                logFlushSchedulerIntervalMs: \"1000\",\n                logPreallocate: true,\n                logRetentionBytes: \"1.073741824e+09\",\n                logRetentionHours: \"168\",\n                logRetentionMinutes: \"10080\",\n                logRetentionMs: \"8.64e+07\",\n                logSegmentBytes: \"1.34217728e+08\",\n                numPartitions: \"10\",\n            },\n            resources: {\n                diskSize: 32,\n                diskTypeId: \"network-ssd\",\n                resourcePresetId: \"s2.micro\",\n            },\n        },\n        schemaRegistry: false,\n        unmanagedTopics: false,\n        version: \"2.8\",\n        zones: [\"ru-central1-a\"],\n    },\n    environment: \"PRESTABLE\",\n    networkId: fooVpcNetwork.id,\n    subnetIds: [fooVpcSubnet.id],\n    users: [\n        {\n            name: \"producer-application\",\n            password: \"password\",\n            permissions: [{\n                role: \"ACCESS_ROLE_PRODUCER\",\n                topicName: \"input\",\n            }],\n        },\n        {\n            name: \"worker\",\n            password: \"password\",\n            permissions: [\n                {\n                    role: \"ACCESS_ROLE_CONSUMER\",\n                    topicName: \"input\",\n                },\n                {\n                    role: \"ACCESS_ROLE_PRODUCER\",\n                    topicName: \"output\",\n                },\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.5.0.0/24\"],\n    zone=\"ru-central1-a\")\nfoo_mdb_kafka_cluster = yandex.MdbKafkaCluster(\"fooMdbKafkaCluster\",\n    config=yandex.MdbKafkaClusterConfigArgs(\n        assign_public_ip=False,\n        brokers_count=1,\n        kafka=yandex.MdbKafkaClusterConfigKafkaArgs(\n            kafka_config=yandex.MdbKafkaClusterConfigKafkaKafkaConfigArgs(\n                compression_type=\"COMPRESSION_TYPE_ZSTD\",\n                default_replication_factor=\"1\",\n                log_flush_interval_messages=\"1024\",\n                log_flush_interval_ms=\"1000\",\n                log_flush_scheduler_interval_ms=\"1000\",\n                log_preallocate=True,\n                log_retention_bytes=\"1073741824\",\n                log_retention_hours=\"168\",\n                log_retention_minutes=\"10080\",\n                log_retention_ms=\"86400000\",\n                log_segment_bytes=\"134217728\",\n                num_partitions=\"10\",\n            ),\n            resources=yandex.MdbKafkaClusterConfigKafkaResourcesArgs(\n                disk_size=32,\n                disk_type_id=\"network-ssd\",\n                resource_preset_id=\"s2.micro\",\n            ),\n        ),\n        schema_registry=False,\n        unmanaged_topics=False,\n        version=\"2.8\",\n        zones=[\"ru-central1-a\"],\n    ),\n    environment=\"PRESTABLE\",\n    network_id=foo_vpc_network.id,\n    subnet_ids=[foo_vpc_subnet.id],\n    users=[\n        yandex.MdbKafkaClusterUserArgs(\n            name=\"producer-application\",\n            password=\"password\",\n            permissions=[yandex.MdbKafkaClusterUserPermissionArgs(\n                role=\"ACCESS_ROLE_PRODUCER\",\n                topic_name=\"input\",\n            )],\n        ),\n        yandex.MdbKafkaClusterUserArgs(\n            name=\"worker\",\n            password=\"password\",\n            permissions=[\n                yandex.MdbKafkaClusterUserPermissionArgs(\n                    role=\"ACCESS_ROLE_CONSUMER\",\n                    topic_name=\"input\",\n                ),\n                yandex.MdbKafkaClusterUserPermissionArgs(\n                    role=\"ACCESS_ROLE_PRODUCER\",\n                    topic_name=\"output\",\n                ),\n            ],\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.5.0.0/24\",\n            },\n            Zone = \"ru-central1-a\",\n        });\n        var fooMdbKafkaCluster = new Yandex.MdbKafkaCluster(\"fooMdbKafkaCluster\", new Yandex.MdbKafkaClusterArgs\n        {\n            Config = new Yandex.Inputs.MdbKafkaClusterConfigArgs\n            {\n                AssignPublicIp = false,\n                BrokersCount = 1,\n                Kafka = new Yandex.Inputs.MdbKafkaClusterConfigKafkaArgs\n                {\n                    KafkaConfig = new Yandex.Inputs.MdbKafkaClusterConfigKafkaKafkaConfigArgs\n                    {\n                        CompressionType = \"COMPRESSION_TYPE_ZSTD\",\n                        DefaultReplicationFactor = \"1\",\n                        LogFlushIntervalMessages = \"1024\",\n                        LogFlushIntervalMs = \"1000\",\n                        LogFlushSchedulerIntervalMs = \"1000\",\n                        LogPreallocate = true,\n                        LogRetentionBytes = \"1073741824\",\n                        LogRetentionHours = \"168\",\n                        LogRetentionMinutes = \"10080\",\n                        LogRetentionMs = \"86400000\",\n                        LogSegmentBytes = \"134217728\",\n                        NumPartitions = \"10\",\n                    },\n                    Resources = new Yandex.Inputs.MdbKafkaClusterConfigKafkaResourcesArgs\n                    {\n                        DiskSize = 32,\n                        DiskTypeId = \"network-ssd\",\n                        ResourcePresetId = \"s2.micro\",\n                    },\n                },\n                SchemaRegistry = false,\n                UnmanagedTopics = false,\n                Version = \"2.8\",\n                Zones = \n                {\n                    \"ru-central1-a\",\n                },\n            },\n            Environment = \"PRESTABLE\",\n            NetworkId = fooVpcNetwork.Id,\n            SubnetIds = \n            {\n                fooVpcSubnet.Id,\n            },\n            Users = \n            {\n                new Yandex.Inputs.MdbKafkaClusterUserArgs\n                {\n                    Name = \"producer-application\",\n                    Password = \"password\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbKafkaClusterUserPermissionArgs\n                        {\n                            Role = \"ACCESS_ROLE_PRODUCER\",\n                            TopicName = \"input\",\n                        },\n                    },\n                },\n                new Yandex.Inputs.MdbKafkaClusterUserArgs\n                {\n                    Name = \"worker\",\n                    Password = \"password\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbKafkaClusterUserPermissionArgs\n                        {\n                            Role = \"ACCESS_ROLE_CONSUMER\",\n                            TopicName = \"input\",\n                        },\n                        new Yandex.Inputs.MdbKafkaClusterUserPermissionArgs\n                        {\n                            Role = \"ACCESS_ROLE_PRODUCER\",\n                            TopicName = \"output\",\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMdbKafkaCluster(ctx, \"fooMdbKafkaCluster\", &yandex.MdbKafkaClusterArgs{\n\t\t\tConfig: &MdbKafkaClusterConfigArgs{\n\t\t\t\tAssignPublicIp: pulumi.Bool(false),\n\t\t\t\tBrokersCount:   pulumi.Int(1),\n\t\t\t\tKafka: &MdbKafkaClusterConfigKafkaArgs{\n\t\t\t\t\tKafkaConfig: &MdbKafkaClusterConfigKafkaKafkaConfigArgs{\n\t\t\t\t\t\tCompressionType:             pulumi.String(\"COMPRESSION_TYPE_ZSTD\"),\n\t\t\t\t\t\tDefaultReplicationFactor:    pulumi.String(\"1\"),\n\t\t\t\t\t\tLogFlushIntervalMessages:    pulumi.String(\"1024\"),\n\t\t\t\t\t\tLogFlushIntervalMs:          pulumi.String(\"1000\"),\n\t\t\t\t\t\tLogFlushSchedulerIntervalMs: pulumi.String(\"1000\"),\n\t\t\t\t\t\tLogPreallocate:              pulumi.Bool(true),\n\t\t\t\t\t\tLogRetentionBytes:           pulumi.String(\"1073741824\"),\n\t\t\t\t\t\tLogRetentionHours:           pulumi.String(\"168\"),\n\t\t\t\t\t\tLogRetentionMinutes:         pulumi.String(\"10080\"),\n\t\t\t\t\t\tLogRetentionMs:              pulumi.String(\"86400000\"),\n\t\t\t\t\t\tLogSegmentBytes:             pulumi.String(\"134217728\"),\n\t\t\t\t\t\tNumPartitions:               pulumi.String(\"10\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: &MdbKafkaClusterConfigKafkaResourcesArgs{\n\t\t\t\t\t\tDiskSize:         pulumi.Int(32),\n\t\t\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\t\t\tResourcePresetId: pulumi.String(\"s2.micro\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSchemaRegistry:  pulumi.Bool(false),\n\t\t\t\tUnmanagedTopics: pulumi.Bool(false),\n\t\t\t\tVersion:         pulumi.String(\"2.8\"),\n\t\t\t\tZones: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ru-central1-a\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnvironment: pulumi.String(\"PRESTABLE\"),\n\t\t\tNetworkId:   fooVpcNetwork.ID(),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tfooVpcSubnet.ID(),\n\t\t\t},\n\t\t\tUsers: MdbKafkaClusterUserArray{\n\t\t\t\t&MdbKafkaClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"producer-application\"),\n\t\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t\t\tPermissions: MdbKafkaClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbKafkaClusterUserPermissionArgs{\n\t\t\t\t\t\t\tRole:      pulumi.String(\"ACCESS_ROLE_PRODUCER\"),\n\t\t\t\t\t\t\tTopicName: pulumi.String(\"input\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&MdbKafkaClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"worker\"),\n\t\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t\t\tPermissions: MdbKafkaClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbKafkaClusterUserPermissionArgs{\n\t\t\t\t\t\t\tRole:      pulumi.String(\"ACCESS_ROLE_CONSUMER\"),\n\t\t\t\t\t\t\tTopicName: pulumi.String(\"input\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&MdbKafkaClusterUserPermissionArgs{\n\t\t\t\t\t\t\tRole:      pulumi.String(\"ACCESS_ROLE_PRODUCER\"),\n\t\t\t\t\t\t\tTopicName: pulumi.String(\"output\"),\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\nExample of creating a HA Kafka Cluster with two brokers per AZ (6 brokers + 3 zk)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"foo\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"foo\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.1.0.0/24\"],\n    zone: \"ru-central1-a\",\n});\nconst bar = new yandex.VpcSubnet(\"bar\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.2.0.0/24\"],\n    zone: \"ru-central1-b\",\n});\nconst baz = new yandex.VpcSubnet(\"baz\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.3.0.0/24\"],\n    zone: \"ru-central1-c\",\n});\nconst fooMdbKafkaCluster = new yandex.MdbKafkaCluster(\"foo\", {\n    config: {\n        assignPublicIp: true,\n        brokersCount: 2,\n        kafka: {\n            kafkaConfig: {\n                compressionType: \"COMPRESSION_TYPE_ZSTD\",\n                defaultReplicationFactor: \"6\",\n                logFlushIntervalMessages: \"1024\",\n                logFlushIntervalMs: \"1000\",\n                logFlushSchedulerIntervalMs: \"1000\",\n                logPreallocate: true,\n                logRetentionBytes: \"1.073741824e+09\",\n                logRetentionHours: \"168\",\n                logRetentionMinutes: \"10080\",\n                logRetentionMs: \"8.64e+07\",\n                logSegmentBytes: \"1.34217728e+08\",\n                numPartitions: \"10\",\n            },\n            resources: {\n                diskSize: 128,\n                diskTypeId: \"network-ssd\",\n                resourcePresetId: \"s2.medium\",\n            },\n        },\n        schemaRegistry: false,\n        unmanagedTopics: false,\n        version: \"2.8\",\n        zones: [\n            \"ru-central1-a\",\n            \"ru-central1-b\",\n            \"ru-central1-c\",\n        ],\n        zookeeper: {\n            resources: {\n                diskSize: 20,\n                diskTypeId: \"network-ssd\",\n                resourcePresetId: \"s2.micro\",\n            },\n        },\n    },\n    environment: \"PRESTABLE\",\n    networkId: fooVpcNetwork.id,\n    subnetIds: [\n        fooVpcSubnet.id,\n        bar.id,\n        baz.id,\n    ],\n    users: [\n        {\n            name: \"producer-application\",\n            password: \"password\",\n            permissions: [{\n                role: \"ACCESS_ROLE_PRODUCER\",\n                topicName: \"input\",\n            }],\n        },\n        {\n            name: \"worker\",\n            password: \"password\",\n            permissions: [\n                {\n                    role: \"ACCESS_ROLE_CONSUMER\",\n                    topicName: \"input\",\n                },\n                {\n                    role: \"ACCESS_ROLE_PRODUCER\",\n                    topicName: \"output\",\n                },\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.1.0.0/24\"],\n    zone=\"ru-central1-a\")\nbar = yandex.VpcSubnet(\"bar\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.2.0.0/24\"],\n    zone=\"ru-central1-b\")\nbaz = yandex.VpcSubnet(\"baz\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.3.0.0/24\"],\n    zone=\"ru-central1-c\")\nfoo_mdb_kafka_cluster = yandex.MdbKafkaCluster(\"fooMdbKafkaCluster\",\n    config=yandex.MdbKafkaClusterConfigArgs(\n        assign_public_ip=True,\n        brokers_count=2,\n        kafka=yandex.MdbKafkaClusterConfigKafkaArgs(\n            kafka_config=yandex.MdbKafkaClusterConfigKafkaKafkaConfigArgs(\n                compression_type=\"COMPRESSION_TYPE_ZSTD\",\n                default_replication_factor=\"6\",\n                log_flush_interval_messages=\"1024\",\n                log_flush_interval_ms=\"1000\",\n                log_flush_scheduler_interval_ms=\"1000\",\n                log_preallocate=True,\n                log_retention_bytes=\"1073741824\",\n                log_retention_hours=\"168\",\n                log_retention_minutes=\"10080\",\n                log_retention_ms=\"86400000\",\n                log_segment_bytes=\"134217728\",\n                num_partitions=\"10\",\n            ),\n            resources=yandex.MdbKafkaClusterConfigKafkaResourcesArgs(\n                disk_size=128,\n                disk_type_id=\"network-ssd\",\n                resource_preset_id=\"s2.medium\",\n            ),\n        ),\n        schema_registry=False,\n        unmanaged_topics=False,\n        version=\"2.8\",\n        zones=[\n            \"ru-central1-a\",\n            \"ru-central1-b\",\n            \"ru-central1-c\",\n        ],\n        zookeeper=yandex.MdbKafkaClusterConfigZookeeperArgs(\n            resources=yandex.MdbKafkaClusterConfigZookeeperResourcesArgs(\n                disk_size=20,\n                disk_type_id=\"network-ssd\",\n                resource_preset_id=\"s2.micro\",\n            ),\n        ),\n    ),\n    environment=\"PRESTABLE\",\n    network_id=foo_vpc_network.id,\n    subnet_ids=[\n        foo_vpc_subnet.id,\n        bar.id,\n        baz.id,\n    ],\n    users=[\n        yandex.MdbKafkaClusterUserArgs(\n            name=\"producer-application\",\n            password=\"password\",\n            permissions=[yandex.MdbKafkaClusterUserPermissionArgs(\n                role=\"ACCESS_ROLE_PRODUCER\",\n                topic_name=\"input\",\n            )],\n        ),\n        yandex.MdbKafkaClusterUserArgs(\n            name=\"worker\",\n            password=\"password\",\n            permissions=[\n                yandex.MdbKafkaClusterUserPermissionArgs(\n                    role=\"ACCESS_ROLE_CONSUMER\",\n                    topic_name=\"input\",\n                ),\n                yandex.MdbKafkaClusterUserPermissionArgs(\n                    role=\"ACCESS_ROLE_PRODUCER\",\n                    topic_name=\"output\",\n                ),\n            ],\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.1.0.0/24\",\n            },\n            Zone = \"ru-central1-a\",\n        });\n        var bar = new Yandex.VpcSubnet(\"bar\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.2.0.0/24\",\n            },\n            Zone = \"ru-central1-b\",\n        });\n        var baz = new Yandex.VpcSubnet(\"baz\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.3.0.0/24\",\n            },\n            Zone = \"ru-central1-c\",\n        });\n        var fooMdbKafkaCluster = new Yandex.MdbKafkaCluster(\"fooMdbKafkaCluster\", new Yandex.MdbKafkaClusterArgs\n        {\n            Config = new Yandex.Inputs.MdbKafkaClusterConfigArgs\n            {\n                AssignPublicIp = true,\n                BrokersCount = 2,\n                Kafka = new Yandex.Inputs.MdbKafkaClusterConfigKafkaArgs\n                {\n                    KafkaConfig = new Yandex.Inputs.MdbKafkaClusterConfigKafkaKafkaConfigArgs\n                    {\n                        CompressionType = \"COMPRESSION_TYPE_ZSTD\",\n                        DefaultReplicationFactor = \"6\",\n                        LogFlushIntervalMessages = \"1024\",\n                        LogFlushIntervalMs = \"1000\",\n                        LogFlushSchedulerIntervalMs = \"1000\",\n                        LogPreallocate = true,\n                        LogRetentionBytes = \"1073741824\",\n                        LogRetentionHours = \"168\",\n                        LogRetentionMinutes = \"10080\",\n                        LogRetentionMs = \"86400000\",\n                        LogSegmentBytes = \"134217728\",\n                        NumPartitions = \"10\",\n                    },\n                    Resources = new Yandex.Inputs.MdbKafkaClusterConfigKafkaResourcesArgs\n                    {\n                        DiskSize = 128,\n                        DiskTypeId = \"network-ssd\",\n                        ResourcePresetId = \"s2.medium\",\n                    },\n                },\n                SchemaRegistry = false,\n                UnmanagedTopics = false,\n                Version = \"2.8\",\n                Zones = \n                {\n                    \"ru-central1-a\",\n                    \"ru-central1-b\",\n                    \"ru-central1-c\",\n                },\n                Zookeeper = new Yandex.Inputs.MdbKafkaClusterConfigZookeeperArgs\n                {\n                    Resources = new Yandex.Inputs.MdbKafkaClusterConfigZookeeperResourcesArgs\n                    {\n                        DiskSize = 20,\n                        DiskTypeId = \"network-ssd\",\n                        ResourcePresetId = \"s2.micro\",\n                    },\n                },\n            },\n            Environment = \"PRESTABLE\",\n            NetworkId = fooVpcNetwork.Id,\n            SubnetIds = \n            {\n                fooVpcSubnet.Id,\n                bar.Id,\n                baz.Id,\n            },\n            Users = \n            {\n                new Yandex.Inputs.MdbKafkaClusterUserArgs\n                {\n                    Name = \"producer-application\",\n                    Password = \"password\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbKafkaClusterUserPermissionArgs\n                        {\n                            Role = \"ACCESS_ROLE_PRODUCER\",\n                            TopicName = \"input\",\n                        },\n                    },\n                },\n                new Yandex.Inputs.MdbKafkaClusterUserArgs\n                {\n                    Name = \"worker\",\n                    Password = \"password\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbKafkaClusterUserPermissionArgs\n                        {\n                            Role = \"ACCESS_ROLE_CONSUMER\",\n                            TopicName = \"input\",\n                        },\n                        new Yandex.Inputs.MdbKafkaClusterUserPermissionArgs\n                        {\n                            Role = \"ACCESS_ROLE_PRODUCER\",\n                            TopicName = \"output\",\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbar, err := yandex.NewVpcSubnet(ctx, \"bar\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-b\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbaz, err := yandex.NewVpcSubnet(ctx, \"baz\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.3.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-c\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMdbKafkaCluster(ctx, \"fooMdbKafkaCluster\", &yandex.MdbKafkaClusterArgs{\n\t\t\tConfig: &MdbKafkaClusterConfigArgs{\n\t\t\t\tAssignPublicIp: pulumi.Bool(true),\n\t\t\t\tBrokersCount:   pulumi.Int(2),\n\t\t\t\tKafka: &MdbKafkaClusterConfigKafkaArgs{\n\t\t\t\t\tKafkaConfig: &MdbKafkaClusterConfigKafkaKafkaConfigArgs{\n\t\t\t\t\t\tCompressionType:             pulumi.String(\"COMPRESSION_TYPE_ZSTD\"),\n\t\t\t\t\t\tDefaultReplicationFactor:    pulumi.String(\"6\"),\n\t\t\t\t\t\tLogFlushIntervalMessages:    pulumi.String(\"1024\"),\n\t\t\t\t\t\tLogFlushIntervalMs:          pulumi.String(\"1000\"),\n\t\t\t\t\t\tLogFlushSchedulerIntervalMs: pulumi.String(\"1000\"),\n\t\t\t\t\t\tLogPreallocate:              pulumi.Bool(true),\n\t\t\t\t\t\tLogRetentionBytes:           pulumi.String(\"1073741824\"),\n\t\t\t\t\t\tLogRetentionHours:           pulumi.String(\"168\"),\n\t\t\t\t\t\tLogRetentionMinutes:         pulumi.String(\"10080\"),\n\t\t\t\t\t\tLogRetentionMs:              pulumi.String(\"86400000\"),\n\t\t\t\t\t\tLogSegmentBytes:             pulumi.String(\"134217728\"),\n\t\t\t\t\t\tNumPartitions:               pulumi.String(\"10\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: &MdbKafkaClusterConfigKafkaResourcesArgs{\n\t\t\t\t\t\tDiskSize:         pulumi.Int(128),\n\t\t\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\t\t\tResourcePresetId: pulumi.String(\"s2.medium\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSchemaRegistry:  pulumi.Bool(false),\n\t\t\t\tUnmanagedTopics: pulumi.Bool(false),\n\t\t\t\tVersion:         pulumi.String(\"2.8\"),\n\t\t\t\tZones: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ru-central1-a\"),\n\t\t\t\t\tpulumi.String(\"ru-central1-b\"),\n\t\t\t\t\tpulumi.String(\"ru-central1-c\"),\n\t\t\t\t},\n\t\t\t\tZookeeper: &MdbKafkaClusterConfigZookeeperArgs{\n\t\t\t\t\tResources: &MdbKafkaClusterConfigZookeeperResourcesArgs{\n\t\t\t\t\t\tDiskSize:         pulumi.Int(20),\n\t\t\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\t\t\tResourcePresetId: pulumi.String(\"s2.micro\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnvironment: pulumi.String(\"PRESTABLE\"),\n\t\t\tNetworkId:   fooVpcNetwork.ID(),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tfooVpcSubnet.ID(),\n\t\t\t\tbar.ID(),\n\t\t\t\tbaz.ID(),\n\t\t\t},\n\t\t\tUsers: MdbKafkaClusterUserArray{\n\t\t\t\t&MdbKafkaClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"producer-application\"),\n\t\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t\t\tPermissions: MdbKafkaClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbKafkaClusterUserPermissionArgs{\n\t\t\t\t\t\t\tRole:      pulumi.String(\"ACCESS_ROLE_PRODUCER\"),\n\t\t\t\t\t\t\tTopicName: pulumi.String(\"input\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&MdbKafkaClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"worker\"),\n\t\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t\t\tPermissions: MdbKafkaClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbKafkaClusterUserPermissionArgs{\n\t\t\t\t\t\t\tRole:      pulumi.String(\"ACCESS_ROLE_CONSUMER\"),\n\t\t\t\t\t\t\tTopicName: pulumi.String(\"input\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&MdbKafkaClusterUserPermissionArgs{\n\t\t\t\t\t\t\tRole:      pulumi.String(\"ACCESS_ROLE_PRODUCER\"),\n\t\t\t\t\t\t\tTopicName: pulumi.String(\"output\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA cluster can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/mdbKafkaCluster:MdbKafkaCluster foo cluster_id\n```\n\n ",
      "properties": {
        "config": {
          "$ref": "#/types/yandex:index%2FMdbKafkaClusterConfig:MdbKafkaClusterConfig",
          "description": "Configuration of the Kafka cluster. The structure is documented below.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Timestamp of cluster creation.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Kafka cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the Kafka cluster. Can be either `PRESTABLE` or `PRODUCTION`. \nThe default is `PRODUCTION`.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it is not provided, the default provider folder is used.\n"
        },
        "health": {
          "type": "string",
          "description": "Health of the host.\n"
        },
        "hostGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of IDs of the host groups to place VMs of the cluster on.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbKafkaClusterHost:MdbKafkaClusterHost"
          },
          "description": "A host of the Kafka cluster. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Kafka cluster.\n"
        },
        "maintenanceWindow": {
          "$ref": "#/types/yandex:index%2FMdbKafkaClusterMaintenanceWindow:MdbKafkaClusterMaintenanceWindow",
          "description": "Maintenance policy of the Kafka cluster. The structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the topic.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the Kafka cluster belongs.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Security group ids, to which the Kafka cluster belongs.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the cluster. Can be either `CREATING`, `STARTING`, `RUNNING`, `UPDATING`, `STOPPING`, `STOPPED`, `ERROR` or `STATUS_UNKNOWN`.\nFor more information see `status` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-kafka/api-ref/Cluster/).\n"
        },
        "subnetIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "IDs of the subnets, to which the Kafka cluster belongs.\n"
        },
        "topics": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbKafkaClusterTopic:MdbKafkaClusterTopic"
          },
          "description": "To manage topics, please switch to using a separate resource type `yandex.MdbKafkaTopic`.\n",
          "deprecationMessage": "to manage topics, please switch to using a separate resource type yandex_mdb_kafka_topic"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbKafkaClusterUser:MdbKafkaClusterUser"
          },
          "description": "A user of the Kafka cluster. The structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "config",
        "createdAt",
        "deletionProtection",
        "folderId",
        "health",
        "hostGroupIds",
        "hosts",
        "labels",
        "maintenanceWindow",
        "name",
        "networkId",
        "securityGroupIds",
        "status"
      ],
      "inputProperties": {
        "config": {
          "$ref": "#/types/yandex:index%2FMdbKafkaClusterConfig:MdbKafkaClusterConfig",
          "description": "Configuration of the Kafka cluster. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Kafka cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the Kafka cluster. Can be either `PRESTABLE` or `PRODUCTION`. \nThe default is `PRODUCTION`.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it is not provided, the default provider folder is used.\n"
        },
        "hostGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of IDs of the host groups to place VMs of the cluster on.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Kafka cluster.\n"
        },
        "maintenanceWindow": {
          "$ref": "#/types/yandex:index%2FMdbKafkaClusterMaintenanceWindow:MdbKafkaClusterMaintenanceWindow",
          "description": "Maintenance policy of the Kafka cluster. The structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the topic.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the Kafka cluster belongs.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Security group ids, to which the Kafka cluster belongs.\n"
        },
        "subnetIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "IDs of the subnets, to which the Kafka cluster belongs.\n"
        },
        "topics": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbKafkaClusterTopic:MdbKafkaClusterTopic"
          },
          "description": "To manage topics, please switch to using a separate resource type `yandex.MdbKafkaTopic`.\n",
          "deprecationMessage": "to manage topics, please switch to using a separate resource type yandex_mdb_kafka_topic"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbKafkaClusterUser:MdbKafkaClusterUser"
          },
          "description": "A user of the Kafka cluster. The structure is documented below.\n"
        }
      },
      "requiredInputs": [
        "config",
        "networkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MdbKafkaCluster resources.\n",
        "properties": {
          "config": {
            "$ref": "#/types/yandex:index%2FMdbKafkaClusterConfig:MdbKafkaClusterConfig",
            "description": "Configuration of the Kafka cluster. The structure is documented below.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp of cluster creation.\n"
          },
          "deletionProtection": {
            "type": "boolean",
            "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the Kafka cluster.\n"
          },
          "environment": {
            "type": "string",
            "description": "Deployment environment of the Kafka cluster. Can be either `PRESTABLE` or `PRODUCTION`. \nThe default is `PRODUCTION`.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it is not provided, the default provider folder is used.\n"
          },
          "health": {
            "type": "string",
            "description": "Health of the host.\n"
          },
          "hostGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of IDs of the host groups to place VMs of the cluster on.\n"
          },
          "hosts": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbKafkaClusterHost:MdbKafkaClusterHost"
            },
            "description": "A host of the Kafka cluster. The structure is documented below.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Kafka cluster.\n"
          },
          "maintenanceWindow": {
            "$ref": "#/types/yandex:index%2FMdbKafkaClusterMaintenanceWindow:MdbKafkaClusterMaintenanceWindow",
            "description": "Maintenance policy of the Kafka cluster. The structure is documented below.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the topic.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network, to which the Kafka cluster belongs.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Security group ids, to which the Kafka cluster belongs.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the cluster. Can be either `CREATING`, `STARTING`, `RUNNING`, `UPDATING`, `STOPPING`, `STOPPED`, `ERROR` or `STATUS_UNKNOWN`.\nFor more information see `status` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-kafka/api-ref/Cluster/).\n"
          },
          "subnetIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "IDs of the subnets, to which the Kafka cluster belongs.\n"
          },
          "topics": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbKafkaClusterTopic:MdbKafkaClusterTopic"
            },
            "description": "To manage topics, please switch to using a separate resource type `yandex.MdbKafkaTopic`.\n",
            "deprecationMessage": "to manage topics, please switch to using a separate resource type yandex_mdb_kafka_topic"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbKafkaClusterUser:MdbKafkaClusterUser"
            },
            "description": "A user of the Kafka cluster. The structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/mdbKafkaTopic:MdbKafkaTopic": {
      "description": "Manages a topic of a Kafka cluster within the Yandex.Cloud. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-kafka/concepts).\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = new yandex.MdbKafkaCluster(\"foo\", {\n    networkId: \"c64vs98keiqc7f24pvkd\",\n    config: {\n        version: \"2.8\",\n        zones: [\"ru-central1-a\"],\n        unmanagedTopics: true,\n        kafka: {\n            resources: {\n                resourcePresetId: \"s2.micro\",\n                diskTypeId: \"network-hdd\",\n                diskSize: 16,\n            },\n        },\n    },\n});\nconst events = new yandex.MdbKafkaTopic(\"events\", {\n    clusterId: foo.id,\n    partitions: 4,\n    replicationFactor: 1,\n    topicConfig: {\n        cleanupPolicy: \"CLEANUP_POLICY_COMPACT\",\n        compressionType: \"COMPRESSION_TYPE_LZ4\",\n        deleteRetentionMs: 86400000,\n        fileDeleteDelayMs: 60000,\n        flushMessages: 128,\n        flushMs: 1000,\n        minCompactionLagMs: 0,\n        retentionBytes: 10737418240,\n        retentionMs: 604800000,\n        maxMessageBytes: 1048588,\n        minInsyncReplicas: 1,\n        segmentBytes: 268435456,\n        preallocate: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.MdbKafkaCluster(\"foo\",\n    network_id=\"c64vs98keiqc7f24pvkd\",\n    config=yandex.MdbKafkaClusterConfigArgs(\n        version=\"2.8\",\n        zones=[\"ru-central1-a\"],\n        unmanaged_topics=True,\n        kafka=yandex.MdbKafkaClusterConfigKafkaArgs(\n            resources=yandex.MdbKafkaClusterConfigKafkaResourcesArgs(\n                resource_preset_id=\"s2.micro\",\n                disk_type_id=\"network-hdd\",\n                disk_size=16,\n            ),\n        ),\n    ))\nevents = yandex.MdbKafkaTopic(\"events\",\n    cluster_id=foo.id,\n    partitions=4,\n    replication_factor=1,\n    topic_config=yandex.MdbKafkaTopicTopicConfigArgs(\n        cleanup_policy=\"CLEANUP_POLICY_COMPACT\",\n        compression_type=\"COMPRESSION_TYPE_LZ4\",\n        delete_retention_ms=\"86400000\",\n        file_delete_delay_ms=\"60000\",\n        flush_messages=\"128\",\n        flush_ms=\"1000\",\n        min_compaction_lag_ms=\"0\",\n        retention_bytes=\"10737418240\",\n        retention_ms=\"604800000\",\n        max_message_bytes=\"1048588\",\n        min_insync_replicas=\"1\",\n        segment_bytes=\"268435456\",\n        preallocate=True,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = new Yandex.MdbKafkaCluster(\"foo\", new Yandex.MdbKafkaClusterArgs\n        {\n            NetworkId = \"c64vs98keiqc7f24pvkd\",\n            Config = new Yandex.Inputs.MdbKafkaClusterConfigArgs\n            {\n                Version = \"2.8\",\n                Zones = \n                {\n                    \"ru-central1-a\",\n                },\n                UnmanagedTopics = true,\n                Kafka = new Yandex.Inputs.MdbKafkaClusterConfigKafkaArgs\n                {\n                    Resources = new Yandex.Inputs.MdbKafkaClusterConfigKafkaResourcesArgs\n                    {\n                        ResourcePresetId = \"s2.micro\",\n                        DiskTypeId = \"network-hdd\",\n                        DiskSize = 16,\n                    },\n                },\n            },\n        });\n        var events = new Yandex.MdbKafkaTopic(\"events\", new Yandex.MdbKafkaTopicArgs\n        {\n            ClusterId = foo.Id,\n            Partitions = 4,\n            ReplicationFactor = 1,\n            TopicConfig = new Yandex.Inputs.MdbKafkaTopicTopicConfigArgs\n            {\n                CleanupPolicy = \"CLEANUP_POLICY_COMPACT\",\n                CompressionType = \"COMPRESSION_TYPE_LZ4\",\n                DeleteRetentionMs = \"86400000\",\n                FileDeleteDelayMs = \"60000\",\n                FlushMessages = \"128\",\n                FlushMs = \"1000\",\n                MinCompactionLagMs = \"0\",\n                RetentionBytes = \"10737418240\",\n                RetentionMs = \"604800000\",\n                MaxMessageBytes = \"1048588\",\n                MinInsyncReplicas = \"1\",\n                SegmentBytes = \"268435456\",\n                Preallocate = true,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := yandex.NewMdbKafkaCluster(ctx, \"foo\", &yandex.MdbKafkaClusterArgs{\n\t\t\tNetworkId: pulumi.String(\"c64vs98keiqc7f24pvkd\"),\n\t\t\tConfig: &MdbKafkaClusterConfigArgs{\n\t\t\t\tVersion: pulumi.String(\"2.8\"),\n\t\t\t\tZones: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ru-central1-a\"),\n\t\t\t\t},\n\t\t\t\tUnmanagedTopics: pulumi.Bool(true),\n\t\t\t\tKafka: &MdbKafkaClusterConfigKafkaArgs{\n\t\t\t\t\tResources: &MdbKafkaClusterConfigKafkaResourcesArgs{\n\t\t\t\t\t\tResourcePresetId: pulumi.String(\"s2.micro\"),\n\t\t\t\t\t\tDiskTypeId:       pulumi.String(\"network-hdd\"),\n\t\t\t\t\t\tDiskSize:         pulumi.Int(16),\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 = yandex.NewMdbKafkaTopic(ctx, \"events\", &yandex.MdbKafkaTopicArgs{\n\t\t\tClusterId:         foo.ID(),\n\t\t\tPartitions:        pulumi.Int(4),\n\t\t\tReplicationFactor: pulumi.Int(1),\n\t\t\tTopicConfig: &MdbKafkaTopicTopicConfigArgs{\n\t\t\t\tCleanupPolicy:      pulumi.String(\"CLEANUP_POLICY_COMPACT\"),\n\t\t\t\tCompressionType:    pulumi.String(\"COMPRESSION_TYPE_LZ4\"),\n\t\t\t\tDeleteRetentionMs:  pulumi.String(\"86400000\"),\n\t\t\t\tFileDeleteDelayMs:  pulumi.String(\"60000\"),\n\t\t\t\tFlushMessages:      pulumi.String(\"128\"),\n\t\t\t\tFlushMs:            pulumi.String(\"1000\"),\n\t\t\t\tMinCompactionLagMs: pulumi.String(\"0\"),\n\t\t\t\tRetentionBytes:     pulumi.String(\"10737418240\"),\n\t\t\t\tRetentionMs:        pulumi.String(\"604800000\"),\n\t\t\t\tMaxMessageBytes:    pulumi.String(\"1048588\"),\n\t\t\t\tMinInsyncReplicas:  pulumi.String(\"1\"),\n\t\t\t\tSegmentBytes:       pulumi.String(\"268435456\"),\n\t\t\t\tPreallocate:        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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKafka topic can be imported using following format\n\n```sh\n $ pulumi import yandex:index/mdbKafkaTopic:MdbKafkaTopic foo {{cluster_id}}:{{topic_name}}\n```\n\n ",
      "properties": {
        "clusterId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of the topic.\n"
        },
        "partitions": {
          "type": "integer",
          "description": "The number of the topic's partitions.\n"
        },
        "replicationFactor": {
          "type": "integer",
          "description": "Amount of data copies (replicas) for the topic in the cluster.\n"
        },
        "topicConfig": {
          "$ref": "#/types/yandex:index%2FMdbKafkaTopicTopicConfig:MdbKafkaTopicTopicConfig",
          "description": "User-defined settings for the topic. The structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "clusterId",
        "name",
        "partitions",
        "replicationFactor"
      ],
      "inputProperties": {
        "clusterId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of the topic.\n"
        },
        "partitions": {
          "type": "integer",
          "description": "The number of the topic's partitions.\n"
        },
        "replicationFactor": {
          "type": "integer",
          "description": "Amount of data copies (replicas) for the topic in the cluster.\n"
        },
        "topicConfig": {
          "$ref": "#/types/yandex:index%2FMdbKafkaTopicTopicConfig:MdbKafkaTopicTopicConfig",
          "description": "User-defined settings for the topic. The structure is documented below.\n"
        }
      },
      "requiredInputs": [
        "clusterId",
        "partitions",
        "replicationFactor"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MdbKafkaTopic resources.\n",
        "properties": {
          "clusterId": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "The name of the topic.\n"
          },
          "partitions": {
            "type": "integer",
            "description": "The number of the topic's partitions.\n"
          },
          "replicationFactor": {
            "type": "integer",
            "description": "Amount of data copies (replicas) for the topic in the cluster.\n"
          },
          "topicConfig": {
            "$ref": "#/types/yandex:index%2FMdbKafkaTopicTopicConfig:MdbKafkaTopicTopicConfig",
            "description": "User-defined settings for the topic. The structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/mdbMongodbCluster:MdbMongodbCluster": {
      "description": "Manages a MongoDB cluster within the Yandex.Cloud. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-mongodb/concepts).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nExample of creating a Single Node MongoDB.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"foo\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"foo\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.1.0.0/24\"],\n    zone: \"ru-central1-a\",\n});\nconst fooMdbMongodbCluster = new yandex.MdbMongodbCluster(\"foo\", {\n    clusterConfig: {\n        version: \"4.2\",\n    },\n    databases: [{\n        name: \"testdb\",\n    }],\n    environment: \"PRESTABLE\",\n    hosts: [{\n        subnetId: fooVpcSubnet.id,\n        zoneId: \"ru-central1-a\",\n    }],\n    labels: {\n        test_key: \"test_value\",\n    },\n    maintenanceWindow: {\n        type: \"ANYTIME\",\n    },\n    networkId: fooVpcNetwork.id,\n    resources: {\n        diskSize: 16,\n        diskTypeId: \"network-hdd\",\n        resourcePresetId: \"b1.nano\",\n    },\n    users: [{\n        name: \"john\",\n        password: \"password\",\n        permissions: [{\n            databaseName: \"testdb\",\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.1.0.0/24\"],\n    zone=\"ru-central1-a\")\nfoo_mdb_mongodb_cluster = yandex.MdbMongodbCluster(\"fooMdbMongodbCluster\",\n    cluster_config=yandex.MdbMongodbClusterClusterConfigArgs(\n        version=\"4.2\",\n    ),\n    databases=[yandex.MdbMongodbClusterDatabaseArgs(\n        name=\"testdb\",\n    )],\n    environment=\"PRESTABLE\",\n    hosts=[yandex.MdbMongodbClusterHostArgs(\n        subnet_id=foo_vpc_subnet.id,\n        zone_id=\"ru-central1-a\",\n    )],\n    labels={\n        \"test_key\": \"test_value\",\n    },\n    maintenance_window=yandex.MdbMongodbClusterMaintenanceWindowArgs(\n        type=\"ANYTIME\",\n    ),\n    network_id=foo_vpc_network.id,\n    resources=yandex.MdbMongodbClusterResourcesArgs(\n        disk_size=16,\n        disk_type_id=\"network-hdd\",\n        resource_preset_id=\"b1.nano\",\n    ),\n    users=[yandex.MdbMongodbClusterUserArgs(\n        name=\"john\",\n        password=\"password\",\n        permissions=[yandex.MdbMongodbClusterUserPermissionArgs(\n            database_name=\"testdb\",\n        )],\n    )])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.1.0.0/24\",\n            },\n            Zone = \"ru-central1-a\",\n        });\n        var fooMdbMongodbCluster = new Yandex.MdbMongodbCluster(\"fooMdbMongodbCluster\", new Yandex.MdbMongodbClusterArgs\n        {\n            ClusterConfig = new Yandex.Inputs.MdbMongodbClusterClusterConfigArgs\n            {\n                Version = \"4.2\",\n            },\n            Databases = \n            {\n                new Yandex.Inputs.MdbMongodbClusterDatabaseArgs\n                {\n                    Name = \"testdb\",\n                },\n            },\n            Environment = \"PRESTABLE\",\n            Hosts = \n            {\n                new Yandex.Inputs.MdbMongodbClusterHostArgs\n                {\n                    SubnetId = fooVpcSubnet.Id,\n                    ZoneId = \"ru-central1-a\",\n                },\n            },\n            Labels = \n            {\n                { \"test_key\", \"test_value\" },\n            },\n            MaintenanceWindow = new Yandex.Inputs.MdbMongodbClusterMaintenanceWindowArgs\n            {\n                Type = \"ANYTIME\",\n            },\n            NetworkId = fooVpcNetwork.Id,\n            Resources = new Yandex.Inputs.MdbMongodbClusterResourcesArgs\n            {\n                DiskSize = 16,\n                DiskTypeId = \"network-hdd\",\n                ResourcePresetId = \"b1.nano\",\n            },\n            Users = \n            {\n                new Yandex.Inputs.MdbMongodbClusterUserArgs\n                {\n                    Name = \"john\",\n                    Password = \"password\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbMongodbClusterUserPermissionArgs\n                        {\n                            DatabaseName = \"testdb\",\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMdbMongodbCluster(ctx, \"fooMdbMongodbCluster\", &yandex.MdbMongodbClusterArgs{\n\t\t\tClusterConfig: &MdbMongodbClusterClusterConfigArgs{\n\t\t\t\tVersion: pulumi.String(\"4.2\"),\n\t\t\t},\n\t\t\tDatabases: MdbMongodbClusterDatabaseArray{\n\t\t\t\t&MdbMongodbClusterDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"testdb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnvironment: pulumi.String(\"PRESTABLE\"),\n\t\t\tHosts: MdbMongodbClusterHostArray{\n\t\t\t\t&MdbMongodbClusterHostArgs{\n\t\t\t\t\tSubnetId: fooVpcSubnet.ID(),\n\t\t\t\t\tZoneId:   pulumi.String(\"ru-central1-a\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"test_key\": pulumi.String(\"test_value\"),\n\t\t\t},\n\t\t\tMaintenanceWindow: &MdbMongodbClusterMaintenanceWindowArgs{\n\t\t\t\tType: pulumi.String(\"ANYTIME\"),\n\t\t\t},\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tResources: &MdbMongodbClusterResourcesArgs{\n\t\t\t\tDiskSize:         pulumi.Int(16),\n\t\t\t\tDiskTypeId:       pulumi.String(\"network-hdd\"),\n\t\t\t\tResourcePresetId: pulumi.String(\"b1.nano\"),\n\t\t\t},\n\t\t\tUsers: MdbMongodbClusterUserArray{\n\t\t\t\t&MdbMongodbClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"john\"),\n\t\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t\t\tPermissions: MdbMongodbClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbMongodbClusterUserPermissionArgs{\n\t\t\t\t\t\t\tDatabaseName: pulumi.String(\"testdb\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA cluster can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/mdbMongodbCluster:MdbMongodbCluster foo cluster_id\n```\n\n ",
      "properties": {
        "clusterConfig": {
          "$ref": "#/types/yandex:index%2FMdbMongodbClusterClusterConfig:MdbMongodbClusterClusterConfig",
          "description": "Configuration of the MongoDB subcluster. The structure is documented below.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "The ID of the cluster.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the key.\n"
        },
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMongodbClusterDatabase:MdbMongodbClusterDatabase"
          },
          "description": "A database of the MongoDB cluster. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n- - -\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the MongoDB cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the MongoDB cluster. Can be either `PRESTABLE` or `PRODUCTION`.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "health": {
          "type": "string",
          "description": "The health of the host.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMongodbClusterHost:MdbMongodbClusterHost"
          },
          "description": "A host of the MongoDB cluster. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the MongoDB cluster.\n"
        },
        "maintenanceWindow": {
          "$ref": "#/types/yandex:index%2FMdbMongodbClusterMaintenanceWindow:MdbMongodbClusterMaintenanceWindow"
        },
        "name": {
          "type": "string",
          "description": "The fully qualified domain name of the host. Computed on server side.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the MongoDB cluster belongs.\n"
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbMongodbClusterResources:MdbMongodbClusterResources",
          "description": "Resources allocated to hosts of the MongoDB cluster. The structure is documented below.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "sharded": {
          "type": "boolean",
          "description": "MongoDB Cluster mode enabled/disabled.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the cluster. Can be either `CREATING`, `STARTING`, `RUNNING`, `UPDATING`, `STOPPING`, `STOPPED`, `ERROR` or `STATUS_UNKNOWN`.\nFor more information see `status` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-mongodb/api-ref/Cluster/).\n"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMongodbClusterUser:MdbMongodbClusterUser"
          },
          "description": "A user of the MongoDB cluster. The structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "clusterConfig",
        "clusterId",
        "createdAt",
        "databases",
        "deletionProtection",
        "description",
        "environment",
        "folderId",
        "health",
        "hosts",
        "labels",
        "maintenanceWindow",
        "name",
        "networkId",
        "resources",
        "sharded",
        "status",
        "users"
      ],
      "inputProperties": {
        "clusterConfig": {
          "$ref": "#/types/yandex:index%2FMdbMongodbClusterClusterConfig:MdbMongodbClusterClusterConfig",
          "description": "Configuration of the MongoDB subcluster. The structure is documented below.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "The ID of the cluster.\n"
        },
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMongodbClusterDatabase:MdbMongodbClusterDatabase"
          },
          "description": "A database of the MongoDB cluster. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n- - -\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the MongoDB cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the MongoDB cluster. Can be either `PRESTABLE` or `PRODUCTION`.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMongodbClusterHost:MdbMongodbClusterHost"
          },
          "description": "A host of the MongoDB cluster. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the MongoDB cluster.\n"
        },
        "maintenanceWindow": {
          "$ref": "#/types/yandex:index%2FMdbMongodbClusterMaintenanceWindow:MdbMongodbClusterMaintenanceWindow"
        },
        "name": {
          "type": "string",
          "description": "The fully qualified domain name of the host. Computed on server side.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the MongoDB cluster belongs.\n"
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbMongodbClusterResources:MdbMongodbClusterResources",
          "description": "Resources allocated to hosts of the MongoDB cluster. The structure is documented below.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMongodbClusterUser:MdbMongodbClusterUser"
          },
          "description": "A user of the MongoDB cluster. The structure is documented below.\n"
        }
      },
      "requiredInputs": [
        "clusterConfig",
        "databases",
        "environment",
        "hosts",
        "networkId",
        "resources",
        "users"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MdbMongodbCluster resources.\n",
        "properties": {
          "clusterConfig": {
            "$ref": "#/types/yandex:index%2FMdbMongodbClusterClusterConfig:MdbMongodbClusterClusterConfig",
            "description": "Configuration of the MongoDB subcluster. The structure is documented below.\n"
          },
          "clusterId": {
            "type": "string",
            "description": "The ID of the cluster.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the key.\n"
          },
          "databases": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbMongodbClusterDatabase:MdbMongodbClusterDatabase"
            },
            "description": "A database of the MongoDB cluster. The structure is documented below.\n"
          },
          "deletionProtection": {
            "type": "boolean",
            "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n- - -\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the MongoDB cluster.\n"
          },
          "environment": {
            "type": "string",
            "description": "Deployment environment of the MongoDB cluster. Can be either `PRESTABLE` or `PRODUCTION`.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
          },
          "health": {
            "type": "string",
            "description": "The health of the host.\n"
          },
          "hosts": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbMongodbClusterHost:MdbMongodbClusterHost"
            },
            "description": "A host of the MongoDB cluster. The structure is documented below.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the MongoDB cluster.\n"
          },
          "maintenanceWindow": {
            "$ref": "#/types/yandex:index%2FMdbMongodbClusterMaintenanceWindow:MdbMongodbClusterMaintenanceWindow"
          },
          "name": {
            "type": "string",
            "description": "The fully qualified domain name of the host. Computed on server side.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network, to which the MongoDB cluster belongs.\n"
          },
          "resources": {
            "$ref": "#/types/yandex:index%2FMdbMongodbClusterResources:MdbMongodbClusterResources",
            "description": "Resources allocated to hosts of the MongoDB cluster. The structure is documented below.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
          },
          "sharded": {
            "type": "boolean",
            "description": "MongoDB Cluster mode enabled/disabled.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the cluster. Can be either `CREATING`, `STARTING`, `RUNNING`, `UPDATING`, `STOPPING`, `STOPPED`, `ERROR` or `STATUS_UNKNOWN`.\nFor more information see `status` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-mongodb/api-ref/Cluster/).\n"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbMongodbClusterUser:MdbMongodbClusterUser"
            },
            "description": "A user of the MongoDB cluster. The structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/mdbMysqlCluster:MdbMysqlCluster": {
      "description": "Manages a MySQL cluster within the Yandex.Cloud. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-mysql/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nExample of creating a Single Node MySQL.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"fooVpcNetwork\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"fooVpcSubnet\", {\n    zone: \"ru-central1-a\",\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.5.0.0/24\"],\n});\nconst fooMdbMysqlCluster = new yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\", {\n    environment: \"PRESTABLE\",\n    networkId: fooVpcNetwork.id,\n    version: \"8.0\",\n    resources: {\n        resourcePresetId: \"s2.micro\",\n        diskTypeId: \"network-ssd\",\n        diskSize: 16,\n    },\n    mysqlConfig: {\n        sql_mode: \"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\",\n        max_connections: 100,\n        default_authentication_plugin: \"MYSQL_NATIVE_PASSWORD\",\n        innodb_print_all_deadlocks: true,\n    },\n    access: {\n        webSql: true,\n    },\n    databases: [{\n        name: \"db_name\",\n    }],\n    users: [{\n        name: \"user_name\",\n        password: \"your_password\",\n        permissions: [{\n            databaseName: \"db_name\",\n            roles: [\"ALL\"],\n        }],\n    }],\n    hosts: [{\n        zone: \"ru-central1-a\",\n        subnetId: fooVpcSubnet.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    zone=\"ru-central1-a\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.5.0.0/24\"])\nfoo_mdb_mysql_cluster = yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\",\n    environment=\"PRESTABLE\",\n    network_id=foo_vpc_network.id,\n    version=\"8.0\",\n    resources=yandex.MdbMysqlClusterResourcesArgs(\n        resource_preset_id=\"s2.micro\",\n        disk_type_id=\"network-ssd\",\n        disk_size=16,\n    ),\n    mysql_config={\n        \"sql_mode\": \"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\",\n        \"max_connections\": \"100\",\n        \"default_authentication_plugin\": \"MYSQL_NATIVE_PASSWORD\",\n        \"innodb_print_all_deadlocks\": \"true\",\n    },\n    access=yandex.MdbMysqlClusterAccessArgs(\n        web_sql=True,\n    ),\n    databases=[yandex.MdbMysqlClusterDatabaseArgs(\n        name=\"db_name\",\n    )],\n    users=[yandex.MdbMysqlClusterUserArgs(\n        name=\"user_name\",\n        password=\"your_password\",\n        permissions=[yandex.MdbMysqlClusterUserPermissionArgs(\n            database_name=\"db_name\",\n            roles=[\"ALL\"],\n        )],\n    )],\n    hosts=[yandex.MdbMysqlClusterHostArgs(\n        zone=\"ru-central1-a\",\n        subnet_id=foo_vpc_subnet.id,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            Zone = \"ru-central1-a\",\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.5.0.0/24\",\n            },\n        });\n        var fooMdbMysqlCluster = new Yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\", new Yandex.MdbMysqlClusterArgs\n        {\n            Environment = \"PRESTABLE\",\n            NetworkId = fooVpcNetwork.Id,\n            Version = \"8.0\",\n            Resources = new Yandex.Inputs.MdbMysqlClusterResourcesArgs\n            {\n                ResourcePresetId = \"s2.micro\",\n                DiskTypeId = \"network-ssd\",\n                DiskSize = 16,\n            },\n            MysqlConfig = \n            {\n                { \"sql_mode\", \"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\" },\n                { \"max_connections\", \"100\" },\n                { \"default_authentication_plugin\", \"MYSQL_NATIVE_PASSWORD\" },\n                { \"innodb_print_all_deadlocks\", \"true\" },\n            },\n            Access = new Yandex.Inputs.MdbMysqlClusterAccessArgs\n            {\n                WebSql = true,\n            },\n            Databases = \n            {\n                new Yandex.Inputs.MdbMysqlClusterDatabaseArgs\n                {\n                    Name = \"db_name\",\n                },\n            },\n            Users = \n            {\n                new Yandex.Inputs.MdbMysqlClusterUserArgs\n                {\n                    Name = \"user_name\",\n                    Password = \"your_password\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbMysqlClusterUserPermissionArgs\n                        {\n                            DatabaseName = \"db_name\",\n                            Roles = \n                            {\n                                \"ALL\",\n                            },\n                        },\n                    },\n                },\n            },\n            Hosts = \n            {\n                new Yandex.Inputs.MdbMysqlClusterHostArgs\n                {\n                    Zone = \"ru-central1-a\",\n                    SubnetId = fooVpcSubnet.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tZone:      pulumi.String(\"ru-central1-a\"),\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMdbMysqlCluster(ctx, \"fooMdbMysqlCluster\", &yandex.MdbMysqlClusterArgs{\n\t\t\tEnvironment: pulumi.String(\"PRESTABLE\"),\n\t\t\tNetworkId:   fooVpcNetwork.ID(),\n\t\t\tVersion:     pulumi.String(\"8.0\"),\n\t\t\tResources: &MdbMysqlClusterResourcesArgs{\n\t\t\t\tResourcePresetId: pulumi.String(\"s2.micro\"),\n\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\tDiskSize:         pulumi.Int(16),\n\t\t\t},\n\t\t\tMysqlConfig: pulumi.StringMap{\n\t\t\t\t\"sql_mode\":                      pulumi.String(\"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\"),\n\t\t\t\t\"max_connections\":               pulumi.String(\"100\"),\n\t\t\t\t\"default_authentication_plugin\": pulumi.String(\"MYSQL_NATIVE_PASSWORD\"),\n\t\t\t\t\"innodb_print_all_deadlocks\":    pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tAccess: &MdbMysqlClusterAccessArgs{\n\t\t\t\tWebSql: pulumi.Bool(true),\n\t\t\t},\n\t\t\tDatabases: MdbMysqlClusterDatabaseArray{\n\t\t\t\t&MdbMysqlClusterDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"db_name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUsers: MdbMysqlClusterUserArray{\n\t\t\t\t&MdbMysqlClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"user_name\"),\n\t\t\t\t\tPassword: pulumi.String(\"your_password\"),\n\t\t\t\t\tPermissions: MdbMysqlClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbMysqlClusterUserPermissionArgs{\n\t\t\t\t\t\t\tDatabaseName: pulumi.String(\"db_name\"),\n\t\t\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t\t\t},\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\tHosts: MdbMysqlClusterHostArray{\n\t\t\t\t&MdbMysqlClusterHostArgs{\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-a\"),\n\t\t\t\t\tSubnetId: fooVpcSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\nExample of creating a High-Availability(HA) MySQL Cluster.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"fooVpcNetwork\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"fooVpcSubnet\", {\n    zone: \"ru-central1-a\",\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.1.0.0/24\"],\n});\nconst bar = new yandex.VpcSubnet(\"bar\", {\n    zone: \"ru-central1-b\",\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.2.0.0/24\"],\n});\nconst fooMdbMysqlCluster = new yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\", {\n    environment: \"PRESTABLE\",\n    networkId: fooVpcNetwork.id,\n    version: \"8.0\",\n    resources: {\n        resourcePresetId: \"s2.micro\",\n        diskTypeId: \"network-ssd\",\n        diskSize: 16,\n    },\n    databases: [{\n        name: \"db_name\",\n    }],\n    maintenanceWindow: {\n        type: \"WEEKLY\",\n        day: \"SAT\",\n        hour: 12,\n    },\n    users: [{\n        name: \"user_name\",\n        password: \"your_password\",\n        permissions: [{\n            databaseName: \"db_name\",\n            roles: [\"ALL\"],\n        }],\n    }],\n    hosts: [\n        {\n            zone: \"ru-central1-a\",\n            subnetId: fooVpcSubnet.id,\n        },\n        {\n            zone: \"ru-central1-b\",\n            subnetId: bar.id,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    zone=\"ru-central1-a\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.1.0.0/24\"])\nbar = yandex.VpcSubnet(\"bar\",\n    zone=\"ru-central1-b\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.2.0.0/24\"])\nfoo_mdb_mysql_cluster = yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\",\n    environment=\"PRESTABLE\",\n    network_id=foo_vpc_network.id,\n    version=\"8.0\",\n    resources=yandex.MdbMysqlClusterResourcesArgs(\n        resource_preset_id=\"s2.micro\",\n        disk_type_id=\"network-ssd\",\n        disk_size=16,\n    ),\n    databases=[yandex.MdbMysqlClusterDatabaseArgs(\n        name=\"db_name\",\n    )],\n    maintenance_window=yandex.MdbMysqlClusterMaintenanceWindowArgs(\n        type=\"WEEKLY\",\n        day=\"SAT\",\n        hour=12,\n    ),\n    users=[yandex.MdbMysqlClusterUserArgs(\n        name=\"user_name\",\n        password=\"your_password\",\n        permissions=[yandex.MdbMysqlClusterUserPermissionArgs(\n            database_name=\"db_name\",\n            roles=[\"ALL\"],\n        )],\n    )],\n    hosts=[\n        yandex.MdbMysqlClusterHostArgs(\n            zone=\"ru-central1-a\",\n            subnet_id=foo_vpc_subnet.id,\n        ),\n        yandex.MdbMysqlClusterHostArgs(\n            zone=\"ru-central1-b\",\n            subnet_id=bar.id,\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            Zone = \"ru-central1-a\",\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.1.0.0/24\",\n            },\n        });\n        var bar = new Yandex.VpcSubnet(\"bar\", new Yandex.VpcSubnetArgs\n        {\n            Zone = \"ru-central1-b\",\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.2.0.0/24\",\n            },\n        });\n        var fooMdbMysqlCluster = new Yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\", new Yandex.MdbMysqlClusterArgs\n        {\n            Environment = \"PRESTABLE\",\n            NetworkId = fooVpcNetwork.Id,\n            Version = \"8.0\",\n            Resources = new Yandex.Inputs.MdbMysqlClusterResourcesArgs\n            {\n                ResourcePresetId = \"s2.micro\",\n                DiskTypeId = \"network-ssd\",\n                DiskSize = 16,\n            },\n            Databases = \n            {\n                new Yandex.Inputs.MdbMysqlClusterDatabaseArgs\n                {\n                    Name = \"db_name\",\n                },\n            },\n            MaintenanceWindow = new Yandex.Inputs.MdbMysqlClusterMaintenanceWindowArgs\n            {\n                Type = \"WEEKLY\",\n                Day = \"SAT\",\n                Hour = 12,\n            },\n            Users = \n            {\n                new Yandex.Inputs.MdbMysqlClusterUserArgs\n                {\n                    Name = \"user_name\",\n                    Password = \"your_password\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbMysqlClusterUserPermissionArgs\n                        {\n                            DatabaseName = \"db_name\",\n                            Roles = \n                            {\n                                \"ALL\",\n                            },\n                        },\n                    },\n                },\n            },\n            Hosts = \n            {\n                new Yandex.Inputs.MdbMysqlClusterHostArgs\n                {\n                    Zone = \"ru-central1-a\",\n                    SubnetId = fooVpcSubnet.Id,\n                },\n                new Yandex.Inputs.MdbMysqlClusterHostArgs\n                {\n                    Zone = \"ru-central1-b\",\n                    SubnetId = bar.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tZone:      pulumi.String(\"ru-central1-a\"),\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbar, err := yandex.NewVpcSubnet(ctx, \"bar\", &yandex.VpcSubnetArgs{\n\t\t\tZone:      pulumi.String(\"ru-central1-b\"),\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMdbMysqlCluster(ctx, \"fooMdbMysqlCluster\", &yandex.MdbMysqlClusterArgs{\n\t\t\tEnvironment: pulumi.String(\"PRESTABLE\"),\n\t\t\tNetworkId:   fooVpcNetwork.ID(),\n\t\t\tVersion:     pulumi.String(\"8.0\"),\n\t\t\tResources: &MdbMysqlClusterResourcesArgs{\n\t\t\t\tResourcePresetId: pulumi.String(\"s2.micro\"),\n\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\tDiskSize:         pulumi.Int(16),\n\t\t\t},\n\t\t\tDatabases: MdbMysqlClusterDatabaseArray{\n\t\t\t\t&MdbMysqlClusterDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"db_name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMaintenanceWindow: &MdbMysqlClusterMaintenanceWindowArgs{\n\t\t\t\tType: pulumi.String(\"WEEKLY\"),\n\t\t\t\tDay:  pulumi.String(\"SAT\"),\n\t\t\t\tHour: pulumi.Int(12),\n\t\t\t},\n\t\t\tUsers: MdbMysqlClusterUserArray{\n\t\t\t\t&MdbMysqlClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"user_name\"),\n\t\t\t\t\tPassword: pulumi.String(\"your_password\"),\n\t\t\t\t\tPermissions: MdbMysqlClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbMysqlClusterUserPermissionArgs{\n\t\t\t\t\t\t\tDatabaseName: pulumi.String(\"db_name\"),\n\t\t\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t\t\t},\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\tHosts: MdbMysqlClusterHostArray{\n\t\t\t\t&MdbMysqlClusterHostArgs{\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-a\"),\n\t\t\t\t\tSubnetId: fooVpcSubnet.ID(),\n\t\t\t\t},\n\t\t\t\t&MdbMysqlClusterHostArgs{\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-b\"),\n\t\t\t\t\tSubnetId: bar.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\nExample of creating a MySQL Cluster with cascade replicas: HA-group consist of 'na-1' and 'na-2', cascade replicas form a chain 'na-1' > 'nb-1' > 'nb-2'\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"fooVpcNetwork\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"fooVpcSubnet\", {\n    zone: \"ru-central1-a\",\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.1.0.0/24\"],\n});\nconst bar = new yandex.VpcSubnet(\"bar\", {\n    zone: \"ru-central1-b\",\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.2.0.0/24\"],\n});\nconst fooMdbMysqlCluster = new yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\", {\n    environment: \"PRESTABLE\",\n    networkId: fooVpcNetwork.id,\n    version: \"8.0\",\n    resources: {\n        resourcePresetId: \"s2.micro\",\n        diskTypeId: \"network-ssd\",\n        diskSize: 16,\n    },\n    databases: [{\n        name: \"db_name\",\n    }],\n    maintenanceWindow: {\n        type: \"WEEKLY\",\n        day: \"SAT\",\n        hour: 12,\n    },\n    users: [{\n        name: \"user_name\",\n        password: \"your_password\",\n        permissions: [{\n            databaseName: \"db_name\",\n            roles: [\"ALL\"],\n        }],\n    }],\n    hosts: [\n        {\n            zone: \"ru-central1-a\",\n            name: \"na-1\",\n            subnetId: fooVpcSubnet.id,\n        },\n        {\n            zone: \"ru-central1-a\",\n            name: \"na-2\",\n            subnetId: fooVpcSubnet.id,\n        },\n        {\n            zone: \"ru-central1-b\",\n            name: \"nb-1\",\n            replicationSourceName: \"na-1\",\n            subnetId: bar.id,\n        },\n        {\n            zone: \"ru-central1-b\",\n            name: \"nb-2\",\n            replicationSourceName: \"nb-1\",\n            subnetId: bar.id,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    zone=\"ru-central1-a\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.1.0.0/24\"])\nbar = yandex.VpcSubnet(\"bar\",\n    zone=\"ru-central1-b\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.2.0.0/24\"])\nfoo_mdb_mysql_cluster = yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\",\n    environment=\"PRESTABLE\",\n    network_id=foo_vpc_network.id,\n    version=\"8.0\",\n    resources=yandex.MdbMysqlClusterResourcesArgs(\n        resource_preset_id=\"s2.micro\",\n        disk_type_id=\"network-ssd\",\n        disk_size=16,\n    ),\n    databases=[yandex.MdbMysqlClusterDatabaseArgs(\n        name=\"db_name\",\n    )],\n    maintenance_window=yandex.MdbMysqlClusterMaintenanceWindowArgs(\n        type=\"WEEKLY\",\n        day=\"SAT\",\n        hour=12,\n    ),\n    users=[yandex.MdbMysqlClusterUserArgs(\n        name=\"user_name\",\n        password=\"your_password\",\n        permissions=[yandex.MdbMysqlClusterUserPermissionArgs(\n            database_name=\"db_name\",\n            roles=[\"ALL\"],\n        )],\n    )],\n    hosts=[\n        yandex.MdbMysqlClusterHostArgs(\n            zone=\"ru-central1-a\",\n            name=\"na-1\",\n            subnet_id=foo_vpc_subnet.id,\n        ),\n        yandex.MdbMysqlClusterHostArgs(\n            zone=\"ru-central1-a\",\n            name=\"na-2\",\n            subnet_id=foo_vpc_subnet.id,\n        ),\n        yandex.MdbMysqlClusterHostArgs(\n            zone=\"ru-central1-b\",\n            name=\"nb-1\",\n            replication_source_name=\"na-1\",\n            subnet_id=bar.id,\n        ),\n        yandex.MdbMysqlClusterHostArgs(\n            zone=\"ru-central1-b\",\n            name=\"nb-2\",\n            replication_source_name=\"nb-1\",\n            subnet_id=bar.id,\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            Zone = \"ru-central1-a\",\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.1.0.0/24\",\n            },\n        });\n        var bar = new Yandex.VpcSubnet(\"bar\", new Yandex.VpcSubnetArgs\n        {\n            Zone = \"ru-central1-b\",\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.2.0.0/24\",\n            },\n        });\n        var fooMdbMysqlCluster = new Yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\", new Yandex.MdbMysqlClusterArgs\n        {\n            Environment = \"PRESTABLE\",\n            NetworkId = fooVpcNetwork.Id,\n            Version = \"8.0\",\n            Resources = new Yandex.Inputs.MdbMysqlClusterResourcesArgs\n            {\n                ResourcePresetId = \"s2.micro\",\n                DiskTypeId = \"network-ssd\",\n                DiskSize = 16,\n            },\n            Databases = \n            {\n                new Yandex.Inputs.MdbMysqlClusterDatabaseArgs\n                {\n                    Name = \"db_name\",\n                },\n            },\n            MaintenanceWindow = new Yandex.Inputs.MdbMysqlClusterMaintenanceWindowArgs\n            {\n                Type = \"WEEKLY\",\n                Day = \"SAT\",\n                Hour = 12,\n            },\n            Users = \n            {\n                new Yandex.Inputs.MdbMysqlClusterUserArgs\n                {\n                    Name = \"user_name\",\n                    Password = \"your_password\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbMysqlClusterUserPermissionArgs\n                        {\n                            DatabaseName = \"db_name\",\n                            Roles = \n                            {\n                                \"ALL\",\n                            },\n                        },\n                    },\n                },\n            },\n            Hosts = \n            {\n                new Yandex.Inputs.MdbMysqlClusterHostArgs\n                {\n                    Zone = \"ru-central1-a\",\n                    Name = \"na-1\",\n                    SubnetId = fooVpcSubnet.Id,\n                },\n                new Yandex.Inputs.MdbMysqlClusterHostArgs\n                {\n                    Zone = \"ru-central1-a\",\n                    Name = \"na-2\",\n                    SubnetId = fooVpcSubnet.Id,\n                },\n                new Yandex.Inputs.MdbMysqlClusterHostArgs\n                {\n                    Zone = \"ru-central1-b\",\n                    Name = \"nb-1\",\n                    ReplicationSourceName = \"na-1\",\n                    SubnetId = bar.Id,\n                },\n                new Yandex.Inputs.MdbMysqlClusterHostArgs\n                {\n                    Zone = \"ru-central1-b\",\n                    Name = \"nb-2\",\n                    ReplicationSourceName = \"nb-1\",\n                    SubnetId = bar.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tZone:      pulumi.String(\"ru-central1-a\"),\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbar, err := yandex.NewVpcSubnet(ctx, \"bar\", &yandex.VpcSubnetArgs{\n\t\t\tZone:      pulumi.String(\"ru-central1-b\"),\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMdbMysqlCluster(ctx, \"fooMdbMysqlCluster\", &yandex.MdbMysqlClusterArgs{\n\t\t\tEnvironment: pulumi.String(\"PRESTABLE\"),\n\t\t\tNetworkId:   fooVpcNetwork.ID(),\n\t\t\tVersion:     pulumi.String(\"8.0\"),\n\t\t\tResources: &MdbMysqlClusterResourcesArgs{\n\t\t\t\tResourcePresetId: pulumi.String(\"s2.micro\"),\n\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\tDiskSize:         pulumi.Int(16),\n\t\t\t},\n\t\t\tDatabases: MdbMysqlClusterDatabaseArray{\n\t\t\t\t&MdbMysqlClusterDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"db_name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMaintenanceWindow: &MdbMysqlClusterMaintenanceWindowArgs{\n\t\t\t\tType: pulumi.String(\"WEEKLY\"),\n\t\t\t\tDay:  pulumi.String(\"SAT\"),\n\t\t\t\tHour: pulumi.Int(12),\n\t\t\t},\n\t\t\tUsers: MdbMysqlClusterUserArray{\n\t\t\t\t&MdbMysqlClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"user_name\"),\n\t\t\t\t\tPassword: pulumi.String(\"your_password\"),\n\t\t\t\t\tPermissions: MdbMysqlClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbMysqlClusterUserPermissionArgs{\n\t\t\t\t\t\t\tDatabaseName: pulumi.String(\"db_name\"),\n\t\t\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t\t\t},\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\tHosts: MdbMysqlClusterHostArray{\n\t\t\t\t&MdbMysqlClusterHostArgs{\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-a\"),\n\t\t\t\t\tName:     pulumi.String(\"na-1\"),\n\t\t\t\t\tSubnetId: fooVpcSubnet.ID(),\n\t\t\t\t},\n\t\t\t\t&MdbMysqlClusterHostArgs{\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-a\"),\n\t\t\t\t\tName:     pulumi.String(\"na-2\"),\n\t\t\t\t\tSubnetId: fooVpcSubnet.ID(),\n\t\t\t\t},\n\t\t\t\t&MdbMysqlClusterHostArgs{\n\t\t\t\t\tZone:                  pulumi.String(\"ru-central1-b\"),\n\t\t\t\t\tName:                  pulumi.String(\"nb-1\"),\n\t\t\t\t\tReplicationSourceName: pulumi.String(\"na-1\"),\n\t\t\t\t\tSubnetId:              bar.ID(),\n\t\t\t\t},\n\t\t\t\t&MdbMysqlClusterHostArgs{\n\t\t\t\t\tZone:                  pulumi.String(\"ru-central1-b\"),\n\t\t\t\t\tName:                  pulumi.String(\"nb-2\"),\n\t\t\t\t\tReplicationSourceName: pulumi.String(\"nb-1\"),\n\t\t\t\t\tSubnetId:              bar.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\nExample of creating a Single Node MySQL with user params.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"fooVpcNetwork\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"fooVpcSubnet\", {\n    zone: \"ru-central1-a\",\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.5.0.0/24\"],\n});\nconst fooMdbMysqlCluster = new yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\", {\n    environment: \"PRESTABLE\",\n    networkId: fooVpcNetwork.id,\n    version: \"8.0\",\n    resources: {\n        resourcePresetId: \"s2.micro\",\n        diskTypeId: \"network-ssd\",\n        diskSize: 16,\n    },\n    databases: [{\n        name: \"db_name\",\n    }],\n    maintenanceWindow: {\n        type: \"ANYTIME\",\n    },\n    users: [{\n        name: \"user_name\",\n        password: \"your_password\",\n        permissions: [{\n            databaseName: \"db_name\",\n            roles: [\"ALL\"],\n        }],\n        connectionLimits: {\n            maxQuestionsPerHour: 10,\n        },\n        globalPermissions: [\n            \"REPLICATION_SLAVE\",\n            \"PROCESS\",\n        ],\n        authenticationPlugin: \"CACHING_SHA2_PASSWORD\",\n    }],\n    hosts: [{\n        zone: \"ru-central1-a\",\n        subnetId: fooVpcSubnet.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    zone=\"ru-central1-a\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.5.0.0/24\"])\nfoo_mdb_mysql_cluster = yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\",\n    environment=\"PRESTABLE\",\n    network_id=foo_vpc_network.id,\n    version=\"8.0\",\n    resources=yandex.MdbMysqlClusterResourcesArgs(\n        resource_preset_id=\"s2.micro\",\n        disk_type_id=\"network-ssd\",\n        disk_size=16,\n    ),\n    databases=[yandex.MdbMysqlClusterDatabaseArgs(\n        name=\"db_name\",\n    )],\n    maintenance_window=yandex.MdbMysqlClusterMaintenanceWindowArgs(\n        type=\"ANYTIME\",\n    ),\n    users=[yandex.MdbMysqlClusterUserArgs(\n        name=\"user_name\",\n        password=\"your_password\",\n        permissions=[yandex.MdbMysqlClusterUserPermissionArgs(\n            database_name=\"db_name\",\n            roles=[\"ALL\"],\n        )],\n        connection_limits=yandex.MdbMysqlClusterUserConnectionLimitsArgs(\n            max_questions_per_hour=10,\n        ),\n        global_permissions=[\n            \"REPLICATION_SLAVE\",\n            \"PROCESS\",\n        ],\n        authentication_plugin=\"CACHING_SHA2_PASSWORD\",\n    )],\n    hosts=[yandex.MdbMysqlClusterHostArgs(\n        zone=\"ru-central1-a\",\n        subnet_id=foo_vpc_subnet.id,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            Zone = \"ru-central1-a\",\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.5.0.0/24\",\n            },\n        });\n        var fooMdbMysqlCluster = new Yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\", new Yandex.MdbMysqlClusterArgs\n        {\n            Environment = \"PRESTABLE\",\n            NetworkId = fooVpcNetwork.Id,\n            Version = \"8.0\",\n            Resources = new Yandex.Inputs.MdbMysqlClusterResourcesArgs\n            {\n                ResourcePresetId = \"s2.micro\",\n                DiskTypeId = \"network-ssd\",\n                DiskSize = 16,\n            },\n            Databases = \n            {\n                new Yandex.Inputs.MdbMysqlClusterDatabaseArgs\n                {\n                    Name = \"db_name\",\n                },\n            },\n            MaintenanceWindow = new Yandex.Inputs.MdbMysqlClusterMaintenanceWindowArgs\n            {\n                Type = \"ANYTIME\",\n            },\n            Users = \n            {\n                new Yandex.Inputs.MdbMysqlClusterUserArgs\n                {\n                    Name = \"user_name\",\n                    Password = \"your_password\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbMysqlClusterUserPermissionArgs\n                        {\n                            DatabaseName = \"db_name\",\n                            Roles = \n                            {\n                                \"ALL\",\n                            },\n                        },\n                    },\n                    ConnectionLimits = new Yandex.Inputs.MdbMysqlClusterUserConnectionLimitsArgs\n                    {\n                        MaxQuestionsPerHour = 10,\n                    },\n                    GlobalPermissions = \n                    {\n                        \"REPLICATION_SLAVE\",\n                        \"PROCESS\",\n                    },\n                    AuthenticationPlugin = \"CACHING_SHA2_PASSWORD\",\n                },\n            },\n            Hosts = \n            {\n                new Yandex.Inputs.MdbMysqlClusterHostArgs\n                {\n                    Zone = \"ru-central1-a\",\n                    SubnetId = fooVpcSubnet.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tZone:      pulumi.String(\"ru-central1-a\"),\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMdbMysqlCluster(ctx, \"fooMdbMysqlCluster\", &yandex.MdbMysqlClusterArgs{\n\t\t\tEnvironment: pulumi.String(\"PRESTABLE\"),\n\t\t\tNetworkId:   fooVpcNetwork.ID(),\n\t\t\tVersion:     pulumi.String(\"8.0\"),\n\t\t\tResources: &MdbMysqlClusterResourcesArgs{\n\t\t\t\tResourcePresetId: pulumi.String(\"s2.micro\"),\n\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\tDiskSize:         pulumi.Int(16),\n\t\t\t},\n\t\t\tDatabases: MdbMysqlClusterDatabaseArray{\n\t\t\t\t&MdbMysqlClusterDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"db_name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMaintenanceWindow: &MdbMysqlClusterMaintenanceWindowArgs{\n\t\t\t\tType: pulumi.String(\"ANYTIME\"),\n\t\t\t},\n\t\t\tUsers: MdbMysqlClusterUserArray{\n\t\t\t\t&MdbMysqlClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"user_name\"),\n\t\t\t\t\tPassword: pulumi.String(\"your_password\"),\n\t\t\t\t\tPermissions: MdbMysqlClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbMysqlClusterUserPermissionArgs{\n\t\t\t\t\t\t\tDatabaseName: pulumi.String(\"db_name\"),\n\t\t\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tConnectionLimits: &MdbMysqlClusterUserConnectionLimitsArgs{\n\t\t\t\t\t\tMaxQuestionsPerHour: pulumi.Int(10),\n\t\t\t\t\t},\n\t\t\t\t\tGlobalPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"REPLICATION_SLAVE\"),\n\t\t\t\t\t\tpulumi.String(\"PROCESS\"),\n\t\t\t\t\t},\n\t\t\t\t\tAuthenticationPlugin: pulumi.String(\"CACHING_SHA2_PASSWORD\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHosts: MdbMysqlClusterHostArray{\n\t\t\t\t&MdbMysqlClusterHostArgs{\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-a\"),\n\t\t\t\t\tSubnetId: fooVpcSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\nExample of restoring MySQL cluster.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"fooVpcNetwork\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"fooVpcSubnet\", {\n    zone: \"ru-central1-a\",\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.5.0.0/24\"],\n});\nconst fooMdbMysqlCluster = new yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\", {\n    environment: \"PRESTABLE\",\n    networkId: fooVpcNetwork.id,\n    version: \"8.0\",\n    restore: {\n        backupId: \"c9qj2tns23432471d9qha:stream_20210122T141717Z\",\n        time: \"2021-01-23T15:04:05\",\n    },\n    resources: {\n        resourcePresetId: \"s2.micro\",\n        diskTypeId: \"network-ssd\",\n        diskSize: 16,\n    },\n    databases: [{\n        name: \"db_name\",\n    }],\n    users: [{\n        name: \"user_name\",\n        password: \"your_password\",\n        permissions: [{\n            databaseName: \"db_name\",\n            roles: [\"ALL\"],\n        }],\n    }],\n    hosts: [{\n        zone: \"ru-central1-a\",\n        subnetId: fooVpcSubnet.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    zone=\"ru-central1-a\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.5.0.0/24\"])\nfoo_mdb_mysql_cluster = yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\",\n    environment=\"PRESTABLE\",\n    network_id=foo_vpc_network.id,\n    version=\"8.0\",\n    restore=yandex.MdbMysqlClusterRestoreArgs(\n        backup_id=\"c9qj2tns23432471d9qha:stream_20210122T141717Z\",\n        time=\"2021-01-23T15:04:05\",\n    ),\n    resources=yandex.MdbMysqlClusterResourcesArgs(\n        resource_preset_id=\"s2.micro\",\n        disk_type_id=\"network-ssd\",\n        disk_size=16,\n    ),\n    databases=[yandex.MdbMysqlClusterDatabaseArgs(\n        name=\"db_name\",\n    )],\n    users=[yandex.MdbMysqlClusterUserArgs(\n        name=\"user_name\",\n        password=\"your_password\",\n        permissions=[yandex.MdbMysqlClusterUserPermissionArgs(\n            database_name=\"db_name\",\n            roles=[\"ALL\"],\n        )],\n    )],\n    hosts=[yandex.MdbMysqlClusterHostArgs(\n        zone=\"ru-central1-a\",\n        subnet_id=foo_vpc_subnet.id,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            Zone = \"ru-central1-a\",\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.5.0.0/24\",\n            },\n        });\n        var fooMdbMysqlCluster = new Yandex.MdbMysqlCluster(\"fooMdbMysqlCluster\", new Yandex.MdbMysqlClusterArgs\n        {\n            Environment = \"PRESTABLE\",\n            NetworkId = fooVpcNetwork.Id,\n            Version = \"8.0\",\n            Restore = new Yandex.Inputs.MdbMysqlClusterRestoreArgs\n            {\n                BackupId = \"c9qj2tns23432471d9qha:stream_20210122T141717Z\",\n                Time = \"2021-01-23T15:04:05\",\n            },\n            Resources = new Yandex.Inputs.MdbMysqlClusterResourcesArgs\n            {\n                ResourcePresetId = \"s2.micro\",\n                DiskTypeId = \"network-ssd\",\n                DiskSize = 16,\n            },\n            Databases = \n            {\n                new Yandex.Inputs.MdbMysqlClusterDatabaseArgs\n                {\n                    Name = \"db_name\",\n                },\n            },\n            Users = \n            {\n                new Yandex.Inputs.MdbMysqlClusterUserArgs\n                {\n                    Name = \"user_name\",\n                    Password = \"your_password\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbMysqlClusterUserPermissionArgs\n                        {\n                            DatabaseName = \"db_name\",\n                            Roles = \n                            {\n                                \"ALL\",\n                            },\n                        },\n                    },\n                },\n            },\n            Hosts = \n            {\n                new Yandex.Inputs.MdbMysqlClusterHostArgs\n                {\n                    Zone = \"ru-central1-a\",\n                    SubnetId = fooVpcSubnet.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tZone:      pulumi.String(\"ru-central1-a\"),\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMdbMysqlCluster(ctx, \"fooMdbMysqlCluster\", &yandex.MdbMysqlClusterArgs{\n\t\t\tEnvironment: pulumi.String(\"PRESTABLE\"),\n\t\t\tNetworkId:   fooVpcNetwork.ID(),\n\t\t\tVersion:     pulumi.String(\"8.0\"),\n\t\t\tRestore: &MdbMysqlClusterRestoreArgs{\n\t\t\t\tBackupId: pulumi.String(\"c9qj2tns23432471d9qha:stream_20210122T141717Z\"),\n\t\t\t\tTime:     pulumi.String(\"2021-01-23T15:04:05\"),\n\t\t\t},\n\t\t\tResources: &MdbMysqlClusterResourcesArgs{\n\t\t\t\tResourcePresetId: pulumi.String(\"s2.micro\"),\n\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\tDiskSize:         pulumi.Int(16),\n\t\t\t},\n\t\t\tDatabases: MdbMysqlClusterDatabaseArray{\n\t\t\t\t&MdbMysqlClusterDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"db_name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUsers: MdbMysqlClusterUserArray{\n\t\t\t\t&MdbMysqlClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"user_name\"),\n\t\t\t\t\tPassword: pulumi.String(\"your_password\"),\n\t\t\t\t\tPermissions: MdbMysqlClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbMysqlClusterUserPermissionArgs{\n\t\t\t\t\t\t\tDatabaseName: pulumi.String(\"db_name\"),\n\t\t\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t\t\t},\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\tHosts: MdbMysqlClusterHostArray{\n\t\t\t\t&MdbMysqlClusterHostArgs{\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-a\"),\n\t\t\t\t\tSubnetId: fooVpcSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\n{{% /example %}}\n{{% /examples %}}\n## MySQL config\n\nIf not specified `mysql_config` then does not make any changes.  \n\n* `sql_mode` default value: `ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION`  \n\nsome of:  \n\t-\t1: \"ALLOW_INVALID_DATES\"\n\t-\t2: \"ANSI_QUOTES\"\n\t-\t3: \"ERROR_FOR_DIVISION_BY_ZERO\"\n\t-\t4: \"HIGH_NOT_PRECEDENCE\"\n\t-\t5: \"IGNORE_SPACE\"\n\t-\t6: \"NO_AUTO_VALUE_ON_ZERO\"\n\t-\t7: \"NO_BACKSLASH_ESCAPES\"\n\t-\t8: \"NO_ENGINE_SUBSTITUTION\"\n\t-\t9: \"NO_UNSIGNED_SUBTRACTION\"\n\t-\t10: \"NO_ZERO_DATE\"\n\t-\t11: \"NO_ZERO_IN_DATE\"\n\t-\t15: \"ONLY_FULL_GROUP_BY\"\n\t-\t16: \"PAD_CHAR_TO_FULL_LENGTH\"\n\t-\t17: \"PIPES_AS_CONCAT\"\n\t-\t18: \"REAL_AS_FLOAT\"\n\t-\t19: \"STRICT_ALL_TABLES\"\n\t-\t20: \"STRICT_TRANS_TABLES\"\n\t-\t21: \"TIME_TRUNCATE_FRACTIONAL\"\n\t-\t22: \"ANSI\"\n\t-\t23: \"TRADITIONAL\"\n\t-\t24: \"NO_DIR_IN_CREATE\"\nor:  \n  - 0: \"SQLMODE_UNSPECIFIED\"\n\n### MysqlConfig 8.0\n* `audit_log` boolean\n\n* `auto_increment_increment` integer\n\n* `auto_increment_offset` integer\n\n* `binlog_cache_size` integer\n\n* `binlog_group_commit_sync_delay` integer\n\n* `binlog_row_image` one of:\n  - 0: \"BINLOG_ROW_IMAGE_UNSPECIFIED\"\n  - 1: \"FULL\"\n  - 2: \"MINIMAL\"\n  - 3: \"NOBLOB\"\n\n* `binlog_rows_query_log_events` boolean\n\n* `character_set_server` text\n\n* `collation_server` text\n\n* `default_authentication_plugin` one of:\n  - 0: \"AUTH_PLUGIN_UNSPECIFIED\"\n  - 1: \"MYSQL_NATIVE_PASSWORD\"\n  - 2: \"CACHING_SHA2_PASSWORD\"\n  - 3: \"SHA256_PASSWORD\"\n\n* `default_time_zone` text\n\n* `explicit_defaults_for_timestamp` boolean\n\n* `general_log` boolean\n\n* `group_concat_max_len` integer\n\n* `innodb_adaptive_hash_index` boolean\n\n* `innodb_buffer_pool_size` integer\n\n* `innodb_flush_log_at_trx_commit` integer\n\n* `innodb_io_capacity` integer\n\n* `innodb_io_capacity_max` integer\n\n* `innodb_lock_wait_timeout` integer\n\n* `innodb_log_buffer_size` integer\n\n* `innodb_log_file_size` integer\n\n* `innodb_numa_interleave` boolean\n\n* `innodb_print_all_deadlocks` boolean\n\n* `innodb_purge_threads` integer\n\n* `innodb_read_io_threads` integer\n\n* `innodb_temp_data_file_max_size` integer\n\n* `innodb_thread_concurrency` integer\n\n* `innodb_write_io_threads` integer\n\n* `join_buffer_size` integer\n\n* `long_query_time` float\n\n* `max_allowed_packet` integer\n\n* `max_connections` integer\n\n* `max_heap_table_size` integer\n\n* `net_read_timeout` integer\n\n* `net_write_timeout` integer\n\n* `regexp_time_limit` integer\n\n* `rpl_semi_sync_master_wait_for_slave_count` integer\n\n* `slave_parallel_type` one of:\n  - 0: \"SLAVE_PARALLEL_TYPE_UNSPECIFIED\"\n  - 1: \"DATABASE\"\n  - 2: \"LOGICAL_CLOCK\"\n\n* `slave_parallel_workers` integer\n\n* `sort_buffer_size` integer\n\n* `sync_binlog` integer\n\n* `table_definition_cache` integer\n\n* `table_open_cache` integer\n\n* `table_open_cache_instances` integer\n\n* `thread_cache_size` integer\n\n* `thread_stack` integer\n\n* `tmp_table_size` integer\n\n* `transaction_isolation` one of:\n  - 0: \"TRANSACTION_ISOLATION_UNSPECIFIED\"\n  - 1: \"READ_COMMITTED\"\n  - 2: \"REPEATABLE_READ\"\n  - 3: \"SERIALIZABLE\"\n\n### MysqlConfig 5.7\n* `audit_log` boolean\n\n* `auto_increment_increment` integer\n\n* `auto_increment_offset` integer\n\n* `binlog_cache_size` integer\n\n* `binlog_group_commit_sync_delay` integer\n\n* `binlog_row_image` one of:\n  - 0: \"BINLOG_ROW_IMAGE_UNSPECIFIED\"\n  - 1: \"FULL\"\n  - 2: \"MINIMAL\"\n  - 3: \"NOBLOB\"\n\n* `binlog_rows_query_log_events` boolean\n\n* `character_set_server` text\n\n* `collation_server` text\n\n* `default_authentication_plugin` one of:\n  - 0: \"AUTH_PLUGIN_UNSPECIFIED\"\n  - 1: \"MYSQL_NATIVE_PASSWORD\"\n  - 2: \"CACHING_SHA2_PASSWORD\"\n  - 3: \"SHA256_PASSWORD\"\n\n* `default_time_zone` text\n\n* `explicit_defaults_for_timestamp` boolean\n\n* `general_log` boolean\n\n* `group_concat_max_len` integer\n\n* `innodb_adaptive_hash_index` boolean\n\n* `innodb_buffer_pool_size` integer\n\n* `innodb_flush_log_at_trx_commit` integer\n\n* `innodb_io_capacity` integer\n\n* `innodb_io_capacity_max` integer\n\n* `innodb_lock_wait_timeout` integer\n\n* `innodb_log_buffer_size` integer\n\n* `innodb_log_file_size` integer\n\n* `innodb_numa_interleave` boolean\n\n* `innodb_print_all_deadlocks` boolean\n\n* `innodb_purge_threads` integer\n\n* `innodb_read_io_threads` integer\n\n* `innodb_temp_data_file_max_size` integer\n\n* `innodb_thread_concurrency` integer\n\n* `innodb_write_io_threads` integer\n\n* `join_buffer_size` integer\n\n* `long_query_time` float\n\n* `max_allowed_packet` integer\n\n* `max_connections` integer\n\n* `max_heap_table_size` integer\n\n* `net_read_timeout` integer\n\n* `net_write_timeout` integer\n\n* `rpl_semi_sync_master_wait_for_slave_count` integer\n\n* `slave_parallel_type` one of:\n  - 0: \"SLAVE_PARALLEL_TYPE_UNSPECIFIED\"\n  - 1: \"DATABASE\"\n  - 2: \"LOGICAL_CLOCK\"\n\n* `slave_parallel_workers` integer\n\n* `sort_buffer_size` integer\n\n* `sync_binlog` integer\n\n* `table_definition_cache` integer\n\n* `table_open_cache` integer\n\n* `table_open_cache_instances` integer\n\n* `thread_cache_size` integer\n\n* `thread_stack` integer\n\n* `tmp_table_size` integer\n\n* `transaction_isolation` one of:\n  - 0: \"TRANSACTION_ISOLATION_UNSPECIFIED\"\n  - 1: \"READ_COMMITTED\"\n  - 2: \"REPEATABLE_READ\"\n  - 3: \"SERIALIZABLE\"\n\n\n## Import\n\nA cluster can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/mdbMysqlCluster:MdbMysqlCluster foo cluster_id\n```\n\n ",
      "properties": {
        "access": {
          "$ref": "#/types/yandex:index%2FMdbMysqlClusterAccess:MdbMysqlClusterAccess",
          "description": "Access policy to the MySQL cluster. The structure is documented below.\n"
        },
        "allowRegenerationHost": {
          "type": "boolean",
          "deprecationMessage": "You can safely remove this option. There is no need to recreate host if assign_public_ip is changed."
        },
        "backupWindowStart": {
          "$ref": "#/types/yandex:index%2FMdbMysqlClusterBackupWindowStart:MdbMysqlClusterBackupWindowStart",
          "description": "Time to start the daily backup, in the UTC. The structure is documented below.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the cluster.\n"
        },
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMysqlClusterDatabase:MdbMysqlClusterDatabase"
          },
          "description": "A database of the MySQL cluster. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the MySQL cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the MySQL cluster.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "health": {
          "type": "string",
          "description": "Aggregated health of the cluster.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMysqlClusterHost:MdbMysqlClusterHost"
          },
          "description": "A host of the MySQL cluster. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the MySQL cluster.\n"
        },
        "maintenanceWindow": {
          "$ref": "#/types/yandex:index%2FMdbMysqlClusterMaintenanceWindow:MdbMysqlClusterMaintenanceWindow",
          "description": "Maintenance policy of the MySQL cluster. The structure is documented below.\n"
        },
        "mysqlConfig": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "MySQL cluster config. Detail info in \"MySQL config\" section (documented below).\n"
        },
        "name": {
          "type": "string",
          "description": "Host state name. It should be set for all hosts or unset for all hosts. This field can be used by another host, to select which host will be its replication source. Please refer to `replication_source_name` parameter.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the MySQL cluster uses.\n"
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbMysqlClusterResources:MdbMysqlClusterResources",
          "description": "Resources allocated to hosts of the MySQL cluster. The structure is documented below.\n"
        },
        "restore": {
          "$ref": "#/types/yandex:index%2FMdbMysqlClusterRestore:MdbMysqlClusterRestore",
          "description": "The cluster will be created from the specified backup. The structure is documented below.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the cluster.\n"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMysqlClusterUser:MdbMysqlClusterUser"
          },
          "description": "A user of the MySQL cluster. The structure is documented below.\n"
        },
        "version": {
          "type": "string",
          "description": "Version of the MySQL cluster. (allowed versions are: 5.7, 8.0)\n"
        }
      },
      "type": "object",
      "required": [
        "access",
        "backupWindowStart",
        "createdAt",
        "databases",
        "deletionProtection",
        "environment",
        "folderId",
        "health",
        "hosts",
        "maintenanceWindow",
        "mysqlConfig",
        "name",
        "networkId",
        "resources",
        "status",
        "users",
        "version"
      ],
      "inputProperties": {
        "access": {
          "$ref": "#/types/yandex:index%2FMdbMysqlClusterAccess:MdbMysqlClusterAccess",
          "description": "Access policy to the MySQL cluster. The structure is documented below.\n"
        },
        "allowRegenerationHost": {
          "type": "boolean",
          "deprecationMessage": "You can safely remove this option. There is no need to recreate host if assign_public_ip is changed."
        },
        "backupWindowStart": {
          "$ref": "#/types/yandex:index%2FMdbMysqlClusterBackupWindowStart:MdbMysqlClusterBackupWindowStart",
          "description": "Time to start the daily backup, in the UTC. The structure is documented below.\n"
        },
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMysqlClusterDatabase:MdbMysqlClusterDatabase"
          },
          "description": "A database of the MySQL cluster. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the MySQL cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the MySQL cluster.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMysqlClusterHost:MdbMysqlClusterHost"
          },
          "description": "A host of the MySQL cluster. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the MySQL cluster.\n"
        },
        "maintenanceWindow": {
          "$ref": "#/types/yandex:index%2FMdbMysqlClusterMaintenanceWindow:MdbMysqlClusterMaintenanceWindow",
          "description": "Maintenance policy of the MySQL cluster. The structure is documented below.\n"
        },
        "mysqlConfig": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "MySQL cluster config. Detail info in \"MySQL config\" section (documented below).\n"
        },
        "name": {
          "type": "string",
          "description": "Host state name. It should be set for all hosts or unset for all hosts. This field can be used by another host, to select which host will be its replication source. Please refer to `replication_source_name` parameter.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the MySQL cluster uses.\n"
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbMysqlClusterResources:MdbMysqlClusterResources",
          "description": "Resources allocated to hosts of the MySQL cluster. The structure is documented below.\n"
        },
        "restore": {
          "$ref": "#/types/yandex:index%2FMdbMysqlClusterRestore:MdbMysqlClusterRestore",
          "description": "The cluster will be created from the specified backup. The structure is documented below.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbMysqlClusterUser:MdbMysqlClusterUser"
          },
          "description": "A user of the MySQL cluster. The structure is documented below.\n"
        },
        "version": {
          "type": "string",
          "description": "Version of the MySQL cluster. (allowed versions are: 5.7, 8.0)\n"
        }
      },
      "requiredInputs": [
        "databases",
        "environment",
        "hosts",
        "networkId",
        "resources",
        "users",
        "version"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MdbMysqlCluster resources.\n",
        "properties": {
          "access": {
            "$ref": "#/types/yandex:index%2FMdbMysqlClusterAccess:MdbMysqlClusterAccess",
            "description": "Access policy to the MySQL cluster. The structure is documented below.\n"
          },
          "allowRegenerationHost": {
            "type": "boolean",
            "deprecationMessage": "You can safely remove this option. There is no need to recreate host if assign_public_ip is changed."
          },
          "backupWindowStart": {
            "$ref": "#/types/yandex:index%2FMdbMysqlClusterBackupWindowStart:MdbMysqlClusterBackupWindowStart",
            "description": "Time to start the daily backup, in the UTC. The structure is documented below.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the cluster.\n"
          },
          "databases": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbMysqlClusterDatabase:MdbMysqlClusterDatabase"
            },
            "description": "A database of the MySQL cluster. The structure is documented below.\n"
          },
          "deletionProtection": {
            "type": "boolean",
            "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the MySQL cluster.\n"
          },
          "environment": {
            "type": "string",
            "description": "Deployment environment of the MySQL cluster.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
          },
          "health": {
            "type": "string",
            "description": "Aggregated health of the cluster.\n"
          },
          "hosts": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbMysqlClusterHost:MdbMysqlClusterHost"
            },
            "description": "A host of the MySQL cluster. The structure is documented below.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the MySQL cluster.\n"
          },
          "maintenanceWindow": {
            "$ref": "#/types/yandex:index%2FMdbMysqlClusterMaintenanceWindow:MdbMysqlClusterMaintenanceWindow",
            "description": "Maintenance policy of the MySQL cluster. The structure is documented below.\n"
          },
          "mysqlConfig": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "MySQL cluster config. Detail info in \"MySQL config\" section (documented below).\n"
          },
          "name": {
            "type": "string",
            "description": "Host state name. It should be set for all hosts or unset for all hosts. This field can be used by another host, to select which host will be its replication source. Please refer to `replication_source_name` parameter.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network, to which the MySQL cluster uses.\n"
          },
          "resources": {
            "$ref": "#/types/yandex:index%2FMdbMysqlClusterResources:MdbMysqlClusterResources",
            "description": "Resources allocated to hosts of the MySQL cluster. The structure is documented below.\n"
          },
          "restore": {
            "$ref": "#/types/yandex:index%2FMdbMysqlClusterRestore:MdbMysqlClusterRestore",
            "description": "The cluster will be created from the specified backup. The structure is documented below.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the cluster.\n"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbMysqlClusterUser:MdbMysqlClusterUser"
            },
            "description": "A user of the MySQL cluster. The structure is documented below.\n"
          },
          "version": {
            "type": "string",
            "description": "Version of the MySQL cluster. (allowed versions are: 5.7, 8.0)\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/mdbRedisCluster:MdbRedisCluster": {
      "description": "Manages a Redis cluster within the Yandex.Cloud. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-redis/concepts).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nExample of creating a Standalone Redis.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"foo\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"foo\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.5.0.0/24\"],\n    zone: \"ru-central1-a\",\n});\nconst fooMdbRedisCluster = new yandex.MdbRedisCluster(\"foo\", {\n    config: {\n        password: \"your_password\",\n        version: \"6.0\",\n    },\n    environment: \"PRESTABLE\",\n    hosts: [{\n        subnetId: fooVpcSubnet.id,\n        zone: \"ru-central1-a\",\n    }],\n    maintenanceWindow: {\n        type: \"ANYTIME\",\n    },\n    networkId: fooVpcNetwork.id,\n    resources: {\n        diskSize: 16,\n        resourcePresetId: \"hm1.nano\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.5.0.0/24\"],\n    zone=\"ru-central1-a\")\nfoo_mdb_redis_cluster = yandex.MdbRedisCluster(\"fooMdbRedisCluster\",\n    config=yandex.MdbRedisClusterConfigArgs(\n        password=\"your_password\",\n        version=\"6.0\",\n    ),\n    environment=\"PRESTABLE\",\n    hosts=[yandex.MdbRedisClusterHostArgs(\n        subnet_id=foo_vpc_subnet.id,\n        zone=\"ru-central1-a\",\n    )],\n    maintenance_window=yandex.MdbRedisClusterMaintenanceWindowArgs(\n        type=\"ANYTIME\",\n    ),\n    network_id=foo_vpc_network.id,\n    resources=yandex.MdbRedisClusterResourcesArgs(\n        disk_size=16,\n        resource_preset_id=\"hm1.nano\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.5.0.0/24\",\n            },\n            Zone = \"ru-central1-a\",\n        });\n        var fooMdbRedisCluster = new Yandex.MdbRedisCluster(\"fooMdbRedisCluster\", new Yandex.MdbRedisClusterArgs\n        {\n            Config = new Yandex.Inputs.MdbRedisClusterConfigArgs\n            {\n                Password = \"your_password\",\n                Version = \"6.0\",\n            },\n            Environment = \"PRESTABLE\",\n            Hosts = \n            {\n                new Yandex.Inputs.MdbRedisClusterHostArgs\n                {\n                    SubnetId = fooVpcSubnet.Id,\n                    Zone = \"ru-central1-a\",\n                },\n            },\n            MaintenanceWindow = new Yandex.Inputs.MdbRedisClusterMaintenanceWindowArgs\n            {\n                Type = \"ANYTIME\",\n            },\n            NetworkId = fooVpcNetwork.Id,\n            Resources = new Yandex.Inputs.MdbRedisClusterResourcesArgs\n            {\n                DiskSize = 16,\n                ResourcePresetId = \"hm1.nano\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMdbRedisCluster(ctx, \"fooMdbRedisCluster\", &yandex.MdbRedisClusterArgs{\n\t\t\tConfig: &MdbRedisClusterConfigArgs{\n\t\t\t\tPassword: pulumi.String(\"your_password\"),\n\t\t\t\tVersion:  pulumi.String(\"6.0\"),\n\t\t\t},\n\t\t\tEnvironment: pulumi.String(\"PRESTABLE\"),\n\t\t\tHosts: MdbRedisClusterHostArray{\n\t\t\t\t&MdbRedisClusterHostArgs{\n\t\t\t\t\tSubnetId: fooVpcSubnet.ID(),\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-a\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMaintenanceWindow: &MdbRedisClusterMaintenanceWindowArgs{\n\t\t\t\tType: pulumi.String(\"ANYTIME\"),\n\t\t\t},\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tResources: &MdbRedisClusterResourcesArgs{\n\t\t\t\tDiskSize:         pulumi.Int(16),\n\t\t\t\tResourcePresetId: pulumi.String(\"hm1.nano\"),\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\nExample of creating a sharded Redis Cluster.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"foo\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"foo\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.1.0.0/24\"],\n    zone: \"ru-central1-a\",\n});\nconst bar = new yandex.VpcSubnet(\"bar\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.2.0.0/24\"],\n    zone: \"ru-central1-b\",\n});\nconst baz = new yandex.VpcSubnet(\"baz\", {\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.3.0.0/24\"],\n    zone: \"ru-central1-c\",\n});\nconst fooMdbRedisCluster = new yandex.MdbRedisCluster(\"foo\", {\n    config: {\n        password: \"your_password\",\n        version: \"6.0\",\n    },\n    environment: \"PRESTABLE\",\n    hosts: [\n        {\n            shardName: \"first\",\n            subnetId: fooVpcSubnet.id,\n            zone: \"ru-central1-a\",\n        },\n        {\n            shardName: \"second\",\n            subnetId: bar.id,\n            zone: \"ru-central1-b\",\n        },\n        {\n            shardName: \"third\",\n            subnetId: baz.id,\n            zone: \"ru-central1-c\",\n        },\n    ],\n    networkId: fooVpcNetwork.id,\n    resources: {\n        diskSize: 16,\n        resourcePresetId: \"hm1.nano\",\n    },\n    sharded: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.1.0.0/24\"],\n    zone=\"ru-central1-a\")\nbar = yandex.VpcSubnet(\"bar\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.2.0.0/24\"],\n    zone=\"ru-central1-b\")\nbaz = yandex.VpcSubnet(\"baz\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.3.0.0/24\"],\n    zone=\"ru-central1-c\")\nfoo_mdb_redis_cluster = yandex.MdbRedisCluster(\"fooMdbRedisCluster\",\n    config=yandex.MdbRedisClusterConfigArgs(\n        password=\"your_password\",\n        version=\"6.0\",\n    ),\n    environment=\"PRESTABLE\",\n    hosts=[\n        yandex.MdbRedisClusterHostArgs(\n            shard_name=\"first\",\n            subnet_id=foo_vpc_subnet.id,\n            zone=\"ru-central1-a\",\n        ),\n        yandex.MdbRedisClusterHostArgs(\n            shard_name=\"second\",\n            subnet_id=bar.id,\n            zone=\"ru-central1-b\",\n        ),\n        yandex.MdbRedisClusterHostArgs(\n            shard_name=\"third\",\n            subnet_id=baz.id,\n            zone=\"ru-central1-c\",\n        ),\n    ],\n    network_id=foo_vpc_network.id,\n    resources=yandex.MdbRedisClusterResourcesArgs(\n        disk_size=16,\n        resource_preset_id=\"hm1.nano\",\n    ),\n    sharded=True)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.1.0.0/24\",\n            },\n            Zone = \"ru-central1-a\",\n        });\n        var bar = new Yandex.VpcSubnet(\"bar\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.2.0.0/24\",\n            },\n            Zone = \"ru-central1-b\",\n        });\n        var baz = new Yandex.VpcSubnet(\"baz\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.3.0.0/24\",\n            },\n            Zone = \"ru-central1-c\",\n        });\n        var fooMdbRedisCluster = new Yandex.MdbRedisCluster(\"fooMdbRedisCluster\", new Yandex.MdbRedisClusterArgs\n        {\n            Config = new Yandex.Inputs.MdbRedisClusterConfigArgs\n            {\n                Password = \"your_password\",\n                Version = \"6.0\",\n            },\n            Environment = \"PRESTABLE\",\n            Hosts = \n            {\n                new Yandex.Inputs.MdbRedisClusterHostArgs\n                {\n                    ShardName = \"first\",\n                    SubnetId = fooVpcSubnet.Id,\n                    Zone = \"ru-central1-a\",\n                },\n                new Yandex.Inputs.MdbRedisClusterHostArgs\n                {\n                    ShardName = \"second\",\n                    SubnetId = bar.Id,\n                    Zone = \"ru-central1-b\",\n                },\n                new Yandex.Inputs.MdbRedisClusterHostArgs\n                {\n                    ShardName = \"third\",\n                    SubnetId = baz.Id,\n                    Zone = \"ru-central1-c\",\n                },\n            },\n            NetworkId = fooVpcNetwork.Id,\n            Resources = new Yandex.Inputs.MdbRedisClusterResourcesArgs\n            {\n                DiskSize = 16,\n                ResourcePresetId = \"hm1.nano\",\n            },\n            Sharded = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbar, err := yandex.NewVpcSubnet(ctx, \"bar\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-b\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbaz, err := yandex.NewVpcSubnet(ctx, \"baz\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.3.0.0/24\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-c\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMdbRedisCluster(ctx, \"fooMdbRedisCluster\", &yandex.MdbRedisClusterArgs{\n\t\t\tConfig: &MdbRedisClusterConfigArgs{\n\t\t\t\tPassword: pulumi.String(\"your_password\"),\n\t\t\t\tVersion:  pulumi.String(\"6.0\"),\n\t\t\t},\n\t\t\tEnvironment: pulumi.String(\"PRESTABLE\"),\n\t\t\tHosts: MdbRedisClusterHostArray{\n\t\t\t\t&MdbRedisClusterHostArgs{\n\t\t\t\t\tShardName: pulumi.String(\"first\"),\n\t\t\t\t\tSubnetId:  fooVpcSubnet.ID(),\n\t\t\t\t\tZone:      pulumi.String(\"ru-central1-a\"),\n\t\t\t\t},\n\t\t\t\t&MdbRedisClusterHostArgs{\n\t\t\t\t\tShardName: pulumi.String(\"second\"),\n\t\t\t\t\tSubnetId:  bar.ID(),\n\t\t\t\t\tZone:      pulumi.String(\"ru-central1-b\"),\n\t\t\t\t},\n\t\t\t\t&MdbRedisClusterHostArgs{\n\t\t\t\t\tShardName: pulumi.String(\"third\"),\n\t\t\t\t\tSubnetId:  baz.ID(),\n\t\t\t\t\tZone:      pulumi.String(\"ru-central1-c\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tResources: &MdbRedisClusterResourcesArgs{\n\t\t\t\tDiskSize:         pulumi.Int(16),\n\t\t\t\tResourcePresetId: pulumi.String(\"hm1.nano\"),\n\t\t\t},\n\t\t\tSharded: 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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA cluster can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/mdbRedisCluster:MdbRedisCluster foo cluster_id\n```\n\n ",
      "properties": {
        "config": {
          "$ref": "#/types/yandex:index%2FMdbRedisClusterConfig:MdbRedisClusterConfig",
          "description": "Configuration of the Redis cluster. The structure is documented below.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the key.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Redis cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the Redis cluster. Can be either `PRESTABLE` or `PRODUCTION`.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "health": {
          "type": "string",
          "description": "Aggregated health of the cluster. Can be either `ALIVE`, `DEGRADED`, `DEAD` or `HEALTH_UNKNOWN`.\nFor more information see `health` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-redis/api-ref/Cluster/).\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbRedisClusterHost:MdbRedisClusterHost"
          },
          "description": "A host of the Redis cluster. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Redis cluster.\n"
        },
        "maintenanceWindow": {
          "$ref": "#/types/yandex:index%2FMdbRedisClusterMaintenanceWindow:MdbRedisClusterMaintenanceWindow"
        },
        "name": {
          "type": "string",
          "description": "Name of the Redis cluster. Provided by the client when the cluster is created.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the Redis cluster belongs.\n"
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbRedisClusterResources:MdbRedisClusterResources",
          "description": "Resources allocated to hosts of the Redis cluster. The structure is documented below.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "sharded": {
          "type": "boolean",
          "description": "Redis Cluster mode enabled/disabled.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the cluster. Can be either `CREATING`, `STARTING`, `RUNNING`, `UPDATING`, `STOPPING`, `STOPPED`, `ERROR` or `STATUS_UNKNOWN`.\nFor more information see `status` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-redis/api-ref/Cluster/).\n"
        },
        "tlsEnabled": {
          "type": "boolean",
          "description": "tls support mode enabled/disabled.\n"
        }
      },
      "type": "object",
      "required": [
        "config",
        "createdAt",
        "deletionProtection",
        "environment",
        "folderId",
        "health",
        "hosts",
        "maintenanceWindow",
        "name",
        "networkId",
        "resources",
        "status",
        "tlsEnabled"
      ],
      "inputProperties": {
        "config": {
          "$ref": "#/types/yandex:index%2FMdbRedisClusterConfig:MdbRedisClusterConfig",
          "description": "Configuration of the Redis cluster. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Redis cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the Redis cluster. Can be either `PRESTABLE` or `PRODUCTION`.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbRedisClusterHost:MdbRedisClusterHost"
          },
          "description": "A host of the Redis cluster. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Redis cluster.\n"
        },
        "maintenanceWindow": {
          "$ref": "#/types/yandex:index%2FMdbRedisClusterMaintenanceWindow:MdbRedisClusterMaintenanceWindow"
        },
        "name": {
          "type": "string",
          "description": "Name of the Redis cluster. Provided by the client when the cluster is created.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the Redis cluster belongs.\n"
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbRedisClusterResources:MdbRedisClusterResources",
          "description": "Resources allocated to hosts of the Redis cluster. The structure is documented below.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "sharded": {
          "type": "boolean",
          "description": "Redis Cluster mode enabled/disabled.\n"
        },
        "tlsEnabled": {
          "type": "boolean",
          "description": "tls support mode enabled/disabled.\n"
        }
      },
      "requiredInputs": [
        "config",
        "environment",
        "hosts",
        "networkId",
        "resources"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MdbRedisCluster resources.\n",
        "properties": {
          "config": {
            "$ref": "#/types/yandex:index%2FMdbRedisClusterConfig:MdbRedisClusterConfig",
            "description": "Configuration of the Redis cluster. The structure is documented below.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the key.\n"
          },
          "deletionProtection": {
            "type": "boolean",
            "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the Redis cluster.\n"
          },
          "environment": {
            "type": "string",
            "description": "Deployment environment of the Redis cluster. Can be either `PRESTABLE` or `PRODUCTION`.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
          },
          "health": {
            "type": "string",
            "description": "Aggregated health of the cluster. Can be either `ALIVE`, `DEGRADED`, `DEAD` or `HEALTH_UNKNOWN`.\nFor more information see `health` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-redis/api-ref/Cluster/).\n"
          },
          "hosts": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbRedisClusterHost:MdbRedisClusterHost"
            },
            "description": "A host of the Redis cluster. The structure is documented below.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Redis cluster.\n"
          },
          "maintenanceWindow": {
            "$ref": "#/types/yandex:index%2FMdbRedisClusterMaintenanceWindow:MdbRedisClusterMaintenanceWindow"
          },
          "name": {
            "type": "string",
            "description": "Name of the Redis cluster. Provided by the client when the cluster is created.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network, to which the Redis cluster belongs.\n"
          },
          "resources": {
            "$ref": "#/types/yandex:index%2FMdbRedisClusterResources:MdbRedisClusterResources",
            "description": "Resources allocated to hosts of the Redis cluster. The structure is documented below.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
          },
          "sharded": {
            "type": "boolean",
            "description": "Redis Cluster mode enabled/disabled.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the cluster. Can be either `CREATING`, `STARTING`, `RUNNING`, `UPDATING`, `STOPPING`, `STOPPED`, `ERROR` or `STATUS_UNKNOWN`.\nFor more information see `status` field of JSON representation in [the official documentation](https://cloud.yandex.com/docs/managed-redis/api-ref/Cluster/).\n"
          },
          "tlsEnabled": {
            "type": "boolean",
            "description": "tls support mode enabled/disabled.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/mdbSqlServerCluster:MdbSqlServerCluster": {
      "description": "Manages a SQLServer cluster within the Yandex.Cloud. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-sqlserver/).\n\nPlease read [Pricing for Managed Service for SQL Server](https://cloud.yandex.com/docs/managed-sqlserver/pricing#prices) before using SQLServer cluster.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nExample of creating a Single Node SQLServer.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst fooVpcNetwork = new yandex.VpcNetwork(\"fooVpcNetwork\", {});\nconst fooVpcSubnet = new yandex.VpcSubnet(\"fooVpcSubnet\", {\n    zone: \"ru-central1-a\",\n    networkId: fooVpcNetwork.id,\n    v4CidrBlocks: [\"10.5.0.0/24\"],\n});\nconst test_sg_x = new yandex.VpcSecurityGroup(\"test-sg-x\", {\n    networkId: fooVpcNetwork.id,\n    ingresses: [{\n        protocol: \"ANY\",\n        description: \"Allow incoming traffic from members of the same security group\",\n        fromPort: 0,\n        toPort: 65535,\n        v4CidrBlocks: [\"0.0.0.0/0\"],\n    }],\n    egresses: [{\n        protocol: \"ANY\",\n        description: \"Allow outgoing traffic to members of the same security group\",\n        fromPort: 0,\n        toPort: 65535,\n        v4CidrBlocks: [\"0.0.0.0/0\"],\n    }],\n});\nconst fooMdbSqlServerCluster = new yandex.MdbSqlServerCluster(\"fooMdbSqlServerCluster\", {\n    environment: \"PRESTABLE\",\n    networkId: fooVpcNetwork.id,\n    version: \"2016sp2std\",\n    resources: {\n        resourcePresetId: \"s2.small\",\n        diskTypeId: \"network-ssd\",\n        diskSize: 20,\n    },\n    labels: {\n        test_key: \"test_value\",\n    },\n    backupWindowStart: {\n        hours: 20,\n        minutes: 30,\n    },\n    sqlserverConfig: {\n        fill_factor_percent: 49,\n        optimize_for_ad_hoc_workloads: true,\n    },\n    databases: [\n        {\n            name: \"db_name_a\",\n        },\n        {\n            name: \"db_name\",\n        },\n        {\n            name: \"db_name_b\",\n        },\n    ],\n    users: [\n        {\n            name: \"bob\",\n            password: \"mysecurepassword\",\n        },\n        {\n            name: \"alice\",\n            password: \"mysecurepassword\",\n            permissions: [{\n                databaseName: \"db_name\",\n                roles: [\"DDLADMIN\"],\n            }],\n        },\n        {\n            name: \"chuck\",\n            password: \"mysecurepassword\",\n            permissions: [\n                {\n                    databaseName: \"db_name_a\",\n                    roles: [\"OWNER\"],\n                },\n                {\n                    databaseName: \"db_name\",\n                    roles: [\n                        \"OWNER\",\n                        \"DDLADMIN\",\n                    ],\n                },\n                {\n                    databaseName: \"db_name_b\",\n                    roles: [\n                        \"OWNER\",\n                        \"DDLADMIN\",\n                    ],\n                },\n            ],\n        },\n    ],\n    hosts: [{\n        zone: \"ru-central1-a\",\n        subnetId: fooVpcSubnet.id,\n    }],\n    securityGroupIds: [test_sg_x.id],\n    hostGroupIds: [\n        \"host_group_1\",\n        \"host_group_2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo_vpc_network = yandex.VpcNetwork(\"fooVpcNetwork\")\nfoo_vpc_subnet = yandex.VpcSubnet(\"fooVpcSubnet\",\n    zone=\"ru-central1-a\",\n    network_id=foo_vpc_network.id,\n    v4_cidr_blocks=[\"10.5.0.0/24\"])\ntest_sg_x = yandex.VpcSecurityGroup(\"test-sg-x\",\n    network_id=foo_vpc_network.id,\n    ingresses=[yandex.VpcSecurityGroupIngressArgs(\n        protocol=\"ANY\",\n        description=\"Allow incoming traffic from members of the same security group\",\n        from_port=0,\n        to_port=65535,\n        v4_cidr_blocks=[\"0.0.0.0/0\"],\n    )],\n    egresses=[yandex.VpcSecurityGroupEgressArgs(\n        protocol=\"ANY\",\n        description=\"Allow outgoing traffic to members of the same security group\",\n        from_port=0,\n        to_port=65535,\n        v4_cidr_blocks=[\"0.0.0.0/0\"],\n    )])\nfoo_mdb_sql_server_cluster = yandex.MdbSqlServerCluster(\"fooMdbSqlServerCluster\",\n    environment=\"PRESTABLE\",\n    network_id=foo_vpc_network.id,\n    version=\"2016sp2std\",\n    resources=yandex.MdbSqlServerClusterResourcesArgs(\n        resource_preset_id=\"s2.small\",\n        disk_type_id=\"network-ssd\",\n        disk_size=20,\n    ),\n    labels={\n        \"test_key\": \"test_value\",\n    },\n    backup_window_start=yandex.MdbSqlServerClusterBackupWindowStartArgs(\n        hours=20,\n        minutes=30,\n    ),\n    sqlserver_config={\n        \"fill_factor_percent\": \"49\",\n        \"optimize_for_ad_hoc_workloads\": \"true\",\n    },\n    databases=[\n        yandex.MdbSqlServerClusterDatabaseArgs(\n            name=\"db_name_a\",\n        ),\n        yandex.MdbSqlServerClusterDatabaseArgs(\n            name=\"db_name\",\n        ),\n        yandex.MdbSqlServerClusterDatabaseArgs(\n            name=\"db_name_b\",\n        ),\n    ],\n    users=[\n        yandex.MdbSqlServerClusterUserArgs(\n            name=\"bob\",\n            password=\"mysecurepassword\",\n        ),\n        yandex.MdbSqlServerClusterUserArgs(\n            name=\"alice\",\n            password=\"mysecurepassword\",\n            permissions=[yandex.MdbSqlServerClusterUserPermissionArgs(\n                database_name=\"db_name\",\n                roles=[\"DDLADMIN\"],\n            )],\n        ),\n        yandex.MdbSqlServerClusterUserArgs(\n            name=\"chuck\",\n            password=\"mysecurepassword\",\n            permissions=[\n                yandex.MdbSqlServerClusterUserPermissionArgs(\n                    database_name=\"db_name_a\",\n                    roles=[\"OWNER\"],\n                ),\n                yandex.MdbSqlServerClusterUserPermissionArgs(\n                    database_name=\"db_name\",\n                    roles=[\n                        \"OWNER\",\n                        \"DDLADMIN\",\n                    ],\n                ),\n                yandex.MdbSqlServerClusterUserPermissionArgs(\n                    database_name=\"db_name_b\",\n                    roles=[\n                        \"OWNER\",\n                        \"DDLADMIN\",\n                    ],\n                ),\n            ],\n        ),\n    ],\n    hosts=[yandex.MdbSqlServerClusterHostArgs(\n        zone=\"ru-central1-a\",\n        subnet_id=foo_vpc_subnet.id,\n    )],\n    security_group_ids=[test_sg_x.id],\n    host_group_ids=[\n        \"host_group_1\",\n        \"host_group_2\",\n    ])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var fooVpcNetwork = new Yandex.VpcNetwork(\"fooVpcNetwork\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var fooVpcSubnet = new Yandex.VpcSubnet(\"fooVpcSubnet\", new Yandex.VpcSubnetArgs\n        {\n            Zone = \"ru-central1-a\",\n            NetworkId = fooVpcNetwork.Id,\n            V4CidrBlocks = \n            {\n                \"10.5.0.0/24\",\n            },\n        });\n        var test_sg_x = new Yandex.VpcSecurityGroup(\"test-sg-x\", new Yandex.VpcSecurityGroupArgs\n        {\n            NetworkId = fooVpcNetwork.Id,\n            Ingresses = \n            {\n                new Yandex.Inputs.VpcSecurityGroupIngressArgs\n                {\n                    Protocol = \"ANY\",\n                    Description = \"Allow incoming traffic from members of the same security group\",\n                    FromPort = 0,\n                    ToPort = 65535,\n                    V4CidrBlocks = \n                    {\n                        \"0.0.0.0/0\",\n                    },\n                },\n            },\n            Egresses = \n            {\n                new Yandex.Inputs.VpcSecurityGroupEgressArgs\n                {\n                    Protocol = \"ANY\",\n                    Description = \"Allow outgoing traffic to members of the same security group\",\n                    FromPort = 0,\n                    ToPort = 65535,\n                    V4CidrBlocks = \n                    {\n                        \"0.0.0.0/0\",\n                    },\n                },\n            },\n        });\n        var fooMdbSqlServerCluster = new Yandex.MdbSqlServerCluster(\"fooMdbSqlServerCluster\", new Yandex.MdbSqlServerClusterArgs\n        {\n            Environment = \"PRESTABLE\",\n            NetworkId = fooVpcNetwork.Id,\n            Version = \"2016sp2std\",\n            Resources = new Yandex.Inputs.MdbSqlServerClusterResourcesArgs\n            {\n                ResourcePresetId = \"s2.small\",\n                DiskTypeId = \"network-ssd\",\n                DiskSize = 20,\n            },\n            Labels = \n            {\n                { \"test_key\", \"test_value\" },\n            },\n            BackupWindowStart = new Yandex.Inputs.MdbSqlServerClusterBackupWindowStartArgs\n            {\n                Hours = 20,\n                Minutes = 30,\n            },\n            SqlserverConfig = \n            {\n                { \"fill_factor_percent\", \"49\" },\n                { \"optimize_for_ad_hoc_workloads\", \"true\" },\n            },\n            Databases = \n            {\n                new Yandex.Inputs.MdbSqlServerClusterDatabaseArgs\n                {\n                    Name = \"db_name_a\",\n                },\n                new Yandex.Inputs.MdbSqlServerClusterDatabaseArgs\n                {\n                    Name = \"db_name\",\n                },\n                new Yandex.Inputs.MdbSqlServerClusterDatabaseArgs\n                {\n                    Name = \"db_name_b\",\n                },\n            },\n            Users = \n            {\n                new Yandex.Inputs.MdbSqlServerClusterUserArgs\n                {\n                    Name = \"bob\",\n                    Password = \"mysecurepassword\",\n                },\n                new Yandex.Inputs.MdbSqlServerClusterUserArgs\n                {\n                    Name = \"alice\",\n                    Password = \"mysecurepassword\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbSqlServerClusterUserPermissionArgs\n                        {\n                            DatabaseName = \"db_name\",\n                            Roles = \n                            {\n                                \"DDLADMIN\",\n                            },\n                        },\n                    },\n                },\n                new Yandex.Inputs.MdbSqlServerClusterUserArgs\n                {\n                    Name = \"chuck\",\n                    Password = \"mysecurepassword\",\n                    Permissions = \n                    {\n                        new Yandex.Inputs.MdbSqlServerClusterUserPermissionArgs\n                        {\n                            DatabaseName = \"db_name_a\",\n                            Roles = \n                            {\n                                \"OWNER\",\n                            },\n                        },\n                        new Yandex.Inputs.MdbSqlServerClusterUserPermissionArgs\n                        {\n                            DatabaseName = \"db_name\",\n                            Roles = \n                            {\n                                \"OWNER\",\n                                \"DDLADMIN\",\n                            },\n                        },\n                        new Yandex.Inputs.MdbSqlServerClusterUserPermissionArgs\n                        {\n                            DatabaseName = \"db_name_b\",\n                            Roles = \n                            {\n                                \"OWNER\",\n                                \"DDLADMIN\",\n                            },\n                        },\n                    },\n                },\n            },\n            Hosts = \n            {\n                new Yandex.Inputs.MdbSqlServerClusterHostArgs\n                {\n                    Zone = \"ru-central1-a\",\n                    SubnetId = fooVpcSubnet.Id,\n                },\n            },\n            SecurityGroupIds = \n            {\n                test_sg_x.Id,\n            },\n            HostGroupIds = \n            {\n                \"host_group_1\",\n                \"host_group_2\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpcNetwork, err := yandex.NewVpcNetwork(ctx, \"fooVpcNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooVpcSubnet, err := yandex.NewVpcSubnet(ctx, \"fooVpcSubnet\", &yandex.VpcSubnetArgs{\n\t\t\tZone:      pulumi.String(\"ru-central1-a\"),\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewVpcSecurityGroup(ctx, \"test-sg-x\", &yandex.VpcSecurityGroupArgs{\n\t\t\tNetworkId: fooVpcNetwork.ID(),\n\t\t\tIngresses: VpcSecurityGroupIngressArray{\n\t\t\t\t&VpcSecurityGroupIngressArgs{\n\t\t\t\t\tProtocol:    pulumi.String(\"ANY\"),\n\t\t\t\t\tDescription: pulumi.String(\"Allow incoming traffic from members of the same security group\"),\n\t\t\t\t\tFromPort:    pulumi.Int(0),\n\t\t\t\t\tToPort:      pulumi.Int(65535),\n\t\t\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tEgresses: VpcSecurityGroupEgressArray{\n\t\t\t\t&VpcSecurityGroupEgressArgs{\n\t\t\t\t\tProtocol:    pulumi.String(\"ANY\"),\n\t\t\t\t\tDescription: pulumi.String(\"Allow outgoing traffic to members of the same security group\"),\n\t\t\t\t\tFromPort:    pulumi.Int(0),\n\t\t\t\t\tToPort:      pulumi.Int(65535),\n\t\t\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\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 = yandex.NewMdbSqlServerCluster(ctx, \"fooMdbSqlServerCluster\", &yandex.MdbSqlServerClusterArgs{\n\t\t\tEnvironment: pulumi.String(\"PRESTABLE\"),\n\t\t\tNetworkId:   fooVpcNetwork.ID(),\n\t\t\tVersion:     pulumi.String(\"2016sp2std\"),\n\t\t\tResources: &MdbSqlServerClusterResourcesArgs{\n\t\t\t\tResourcePresetId: pulumi.String(\"s2.small\"),\n\t\t\t\tDiskTypeId:       pulumi.String(\"network-ssd\"),\n\t\t\t\tDiskSize:         pulumi.Int(20),\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"test_key\": pulumi.String(\"test_value\"),\n\t\t\t},\n\t\t\tBackupWindowStart: &MdbSqlServerClusterBackupWindowStartArgs{\n\t\t\t\tHours:   pulumi.Int(20),\n\t\t\t\tMinutes: pulumi.Int(30),\n\t\t\t},\n\t\t\tSqlserverConfig: pulumi.StringMap{\n\t\t\t\t\"fill_factor_percent\":           pulumi.String(\"49\"),\n\t\t\t\t\"optimize_for_ad_hoc_workloads\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tDatabases: MdbSqlServerClusterDatabaseArray{\n\t\t\t\t&MdbSqlServerClusterDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"db_name_a\"),\n\t\t\t\t},\n\t\t\t\t&MdbSqlServerClusterDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"db_name\"),\n\t\t\t\t},\n\t\t\t\t&MdbSqlServerClusterDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"db_name_b\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUsers: MdbSqlServerClusterUserArray{\n\t\t\t\t&MdbSqlServerClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"bob\"),\n\t\t\t\t\tPassword: pulumi.String(\"mysecurepassword\"),\n\t\t\t\t},\n\t\t\t\t&MdbSqlServerClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"alice\"),\n\t\t\t\t\tPassword: pulumi.String(\"mysecurepassword\"),\n\t\t\t\t\tPermissions: MdbSqlServerClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbSqlServerClusterUserPermissionArgs{\n\t\t\t\t\t\t\tDatabaseName: pulumi.String(\"db_name\"),\n\t\t\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"DDLADMIN\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&MdbSqlServerClusterUserArgs{\n\t\t\t\t\tName:     pulumi.String(\"chuck\"),\n\t\t\t\t\tPassword: pulumi.String(\"mysecurepassword\"),\n\t\t\t\t\tPermissions: MdbSqlServerClusterUserPermissionArray{\n\t\t\t\t\t\t&MdbSqlServerClusterUserPermissionArgs{\n\t\t\t\t\t\t\tDatabaseName: pulumi.String(\"db_name_a\"),\n\t\t\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"OWNER\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&MdbSqlServerClusterUserPermissionArgs{\n\t\t\t\t\t\t\tDatabaseName: pulumi.String(\"db_name\"),\n\t\t\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"OWNER\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"DDLADMIN\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&MdbSqlServerClusterUserPermissionArgs{\n\t\t\t\t\t\t\tDatabaseName: pulumi.String(\"db_name_b\"),\n\t\t\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"OWNER\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"DDLADMIN\"),\n\t\t\t\t\t\t\t},\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\tHosts: MdbSqlServerClusterHostArray{\n\t\t\t\t&MdbSqlServerClusterHostArgs{\n\t\t\t\t\tZone:     pulumi.String(\"ru-central1-a\"),\n\t\t\t\t\tSubnetId: fooVpcSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\ttest_sg_x.ID(),\n\t\t\t},\n\t\t\tHostGroupIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"host_group_1\"),\n\t\t\t\tpulumi.String(\"host_group_2\"),\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\n{{% /example %}}\n{{% /examples %}}\n## SQLServer config\n\nIf not specified `sqlserver_config` then does not make any changes.  \n\n* max_degree_of_parallelism - Limits the number of processors to use in parallel plan execution per task. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view=sql-server-2016).\n\t\n* cost_threshold_for_parallelism - Specifies the threshold at which SQL Server creates and runs parallel plans for queries. SQL Server creates and runs a parallel plan for a query only when the estimated cost to run a serial plan for the same query is higher than the value of the option. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-cost-threshold-for-parallelism-server-configuration-option?view=sql-server-2016).\n\n* audit_level - Describes how to configure login auditing to monitor SQL Server Database Engine login activity. Possible values:\n  - 0 — do not log login attempts,˚√\n  - 1 — log only failed login attempts,\n  - 2 — log only successful login attempts (not recommended),\n  - 3 — log all login attempts (not recommended).\n\t See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/ssms/configure-login-auditing-sql-server-management-studio?view=sql-server-2016).\n\t\n* fill_factor_percent - Manages the fill factor server configuration option. When an index is created or rebuilt the fill factor determines the percentage of space on each index leaf-level page to be filled with data, reserving the rest as free space for future growth. Values 0 and 100 mean full page usage (no space reserved). See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-fill-factor-server-configuration-option?view=sql-server-2016).\n* optimize_for_ad_hoc_workloads - Determines whether plans should be cached only after second execution. Allows to avoid SQL cache bloat because of single-use plans. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/optimize-for-ad-hoc-workloads-server-configuration-option?view=sql-server-2016).\n\n\n## Import\n\nA cluster can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/mdbSqlServerCluster:MdbSqlServerCluster foo cluster_id\n```\n\n ",
      "properties": {
        "backupWindowStart": {
          "$ref": "#/types/yandex:index%2FMdbSqlServerClusterBackupWindowStart:MdbSqlServerClusterBackupWindowStart",
          "description": "Time to start the daily backup, in the UTC. The structure is documented below.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the cluster.\n"
        },
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbSqlServerClusterDatabase:MdbSqlServerClusterDatabase"
          },
          "description": "A database of the SQLServer cluster. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the SQLServer cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "health": {
          "type": "string",
          "description": "Aggregated health of the cluster.\n"
        },
        "hostGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of IDs of the host groups hosting VMs of the cluster.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbSqlServerClusterHost:MdbSqlServerClusterHost"
          },
          "description": "A host of the SQLServer cluster. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the SQLServer cluster.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the database.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the SQLServer cluster uses.\n"
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbSqlServerClusterResources:MdbSqlServerClusterResources",
          "description": "Resources allocated to hosts of the SQLServer cluster. The structure is documented below.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "sqlserverConfig": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "SQLServer cluster config. Detail info in \"SQLServer config\" section (documented below).\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the cluster.\n"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbSqlServerClusterUser:MdbSqlServerClusterUser"
          },
          "description": "A user of the SQLServer cluster. The structure is documented below.\n"
        },
        "version": {
          "type": "string",
          "description": "Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)\n"
        }
      },
      "type": "object",
      "required": [
        "backupWindowStart",
        "createdAt",
        "databases",
        "deletionProtection",
        "environment",
        "folderId",
        "health",
        "hostGroupIds",
        "hosts",
        "name",
        "networkId",
        "resources",
        "sqlserverConfig",
        "status",
        "users",
        "version"
      ],
      "inputProperties": {
        "backupWindowStart": {
          "$ref": "#/types/yandex:index%2FMdbSqlServerClusterBackupWindowStart:MdbSqlServerClusterBackupWindowStart",
          "description": "Time to start the daily backup, in the UTC. The structure is documented below.\n"
        },
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbSqlServerClusterDatabase:MdbSqlServerClusterDatabase"
          },
          "description": "A database of the SQLServer cluster. The structure is documented below.\n"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the SQLServer cluster.\n"
        },
        "environment": {
          "type": "string",
          "description": "Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "hostGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of IDs of the host groups hosting VMs of the cluster.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbSqlServerClusterHost:MdbSqlServerClusterHost"
          },
          "description": "A host of the SQLServer cluster. The structure is documented below.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the SQLServer cluster.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the database.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network, to which the SQLServer cluster uses.\n"
        },
        "resources": {
          "$ref": "#/types/yandex:index%2FMdbSqlServerClusterResources:MdbSqlServerClusterResources",
          "description": "Resources allocated to hosts of the SQLServer cluster. The structure is documented below.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
        },
        "sqlserverConfig": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "SQLServer cluster config. Detail info in \"SQLServer config\" section (documented below).\n"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FMdbSqlServerClusterUser:MdbSqlServerClusterUser"
          },
          "description": "A user of the SQLServer cluster. The structure is documented below.\n"
        },
        "version": {
          "type": "string",
          "description": "Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)\n"
        }
      },
      "requiredInputs": [
        "databases",
        "environment",
        "hosts",
        "networkId",
        "resources",
        "users",
        "version"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MdbSqlServerCluster resources.\n",
        "properties": {
          "backupWindowStart": {
            "$ref": "#/types/yandex:index%2FMdbSqlServerClusterBackupWindowStart:MdbSqlServerClusterBackupWindowStart",
            "description": "Time to start the daily backup, in the UTC. The structure is documented below.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the cluster.\n"
          },
          "databases": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbSqlServerClusterDatabase:MdbSqlServerClusterDatabase"
            },
            "description": "A database of the SQLServer cluster. The structure is documented below.\n"
          },
          "deletionProtection": {
            "type": "boolean",
            "description": "Inhibits deletion of the cluster.  Can be either `true` or `false`.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the SQLServer cluster.\n"
          },
          "environment": {
            "type": "string",
            "description": "Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
          },
          "health": {
            "type": "string",
            "description": "Aggregated health of the cluster.\n"
          },
          "hostGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of IDs of the host groups hosting VMs of the cluster.\n"
          },
          "hosts": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbSqlServerClusterHost:MdbSqlServerClusterHost"
            },
            "description": "A host of the SQLServer cluster. The structure is documented below.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the SQLServer cluster.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the database.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network, to which the SQLServer cluster uses.\n"
          },
          "resources": {
            "$ref": "#/types/yandex:index%2FMdbSqlServerClusterResources:MdbSqlServerClusterResources",
            "description": "Resources allocated to hosts of the SQLServer cluster. The structure is documented below.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
          },
          "sqlserverConfig": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "SQLServer cluster config. Detail info in \"SQLServer config\" section (documented below).\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the cluster.\n"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FMdbSqlServerClusterUser:MdbSqlServerClusterUser"
            },
            "description": "A user of the SQLServer cluster. The structure is documented below.\n"
          },
          "version": {
            "type": "string",
            "description": "Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/messageQueue:MessageQueue": {
      "description": "Allows management of [Yandex.Cloud Message Queue](https://cloud.yandex.com/docs/message-queue).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst exampleDeadletterQueue = new yandex.MessageQueue(\"exampleDeadletterQueue\", {});\nconst exampleQueue = new yandex.MessageQueue(\"exampleQueue\", {\n    visibilityTimeoutSeconds: 600,\n    receiveWaitTimeSeconds: 20,\n    messageRetentionSeconds: 1209600,\n    redrivePolicy: exampleDeadletterQueue.arn.apply(arn => JSON.stringify({\n        deadLetterTargetArn: arn,\n        maxReceiveCount: 3,\n    })),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_yandex as yandex\n\nexample_deadletter_queue = yandex.MessageQueue(\"exampleDeadletterQueue\")\nexample_queue = yandex.MessageQueue(\"exampleQueue\",\n    visibility_timeout_seconds=600,\n    receive_wait_time_seconds=20,\n    message_retention_seconds=1209600,\n    redrive_policy=example_deadletter_queue.arn.apply(lambda arn: json.dumps({\n        \"deadLetterTargetArn\": arn,\n        \"maxReceiveCount\": 3,\n    })))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleDeadletterQueue = new Yandex.MessageQueue(\"exampleDeadletterQueue\", new Yandex.MessageQueueArgs\n        {\n        });\n        var exampleQueue = new Yandex.MessageQueue(\"exampleQueue\", new Yandex.MessageQueueArgs\n        {\n            VisibilityTimeoutSeconds = 600,\n            ReceiveWaitTimeSeconds = 20,\n            MessageRetentionSeconds = 1209600,\n            RedrivePolicy = exampleDeadletterQueue.Arn.Apply(arn => JsonSerializer.Serialize(new Dictionary<string, object?>\n            {\n                { \"deadLetterTargetArn\", arn },\n                { \"maxReceiveCount\", 3 },\n            })),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDeadletterQueue, err := yandex.NewMessageQueue(ctx, \"exampleDeadletterQueue\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewMessageQueue(ctx, \"exampleQueue\", &yandex.MessageQueueArgs{\n\t\t\tVisibilityTimeoutSeconds: pulumi.Int(600),\n\t\t\tReceiveWaitTimeSeconds:   pulumi.Int(20),\n\t\t\tMessageRetentionSeconds:  pulumi.Int(1209600),\n\t\t\tRedrivePolicy: exampleDeadletterQueue.Arn.ApplyT(func(arn string) (pulumi.String, error) {\n\t\t\t\tvar _zero pulumi.String\n\t\t\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"deadLetterTargetArn\": arn,\n\t\t\t\t\t\"maxReceiveCount\":     3,\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson0 := string(tmpJSON0)\n\t\t\t\treturn json0, nil\n\t\t\t}).(pulumi.StringOutput),\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{{% /example %}}\n{{% /examples %}}\n## FIFO queue\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst exampleFifoQueue = new yandex.MessageQueue(\"example_fifo_queue\", {\n    contentBasedDeduplication: true,\n    fifoQueue: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nexample_fifo_queue = yandex.MessageQueue(\"exampleFifoQueue\",\n    content_based_deduplication=True,\n    fifo_queue=True)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleFifoQueue = new Yandex.MessageQueue(\"exampleFifoQueue\", new Yandex.MessageQueueArgs\n        {\n            ContentBasedDeduplication = true,\n            FifoQueue = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewMessageQueue(ctx, \"exampleFifoQueue\", &yandex.MessageQueueArgs{\n\t\t\tContentBasedDeduplication: pulumi.Bool(true),\n\t\t\tFifoQueue:                 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\n\n## Import\n\nYandex Message Queues can be imported using its `queue url`, e.g.\n\n```sh\n $ pulumi import yandex:index/messageQueue:MessageQueue example_import_queue https://message-queue.api.cloud.yandex.net/abcdefghijklmn123456/opqrstuvwxyz87654321/ymq_terraform_import_example\n```\n\n ",
      "properties": {
        "accessKey": {
          "type": "string",
          "description": "The [access key](https://cloud.yandex.com/docs/iam/operations/sa/create-access-key) to use when applying changes. If omitted, `ymq_access_key` specified in provider config is used. For more information see [documentation](https://cloud.yandex.com/docs/message-queue/quickstart).\n"
        },
        "arn": {
          "type": "string",
          "description": "ARN of the Yandex Message Queue. It is used for setting up a [redrive policy](https://cloud.yandex.com/docs/message-queue/concepts/dlq). See [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/SetQueueAttributes).\n"
        },
        "contentBasedDeduplication": {
          "type": "boolean",
          "description": "Enables [content-based deduplication](https://cloud.yandex.com/docs/message-queue/concepts/deduplication#content-based-deduplication). Can be used only if queue is [FIFO](https://cloud.yandex.com/docs/message-queue/concepts/queue#fifo-queues).\n"
        },
        "delaySeconds": {
          "type": "integer",
          "description": "Number of seconds to [delay the message from being available for processing](https://cloud.yandex.com/docs/message-queue/concepts/delay-queues#delay-queues). Valid values: from 0 to 900 seconds (15 minutes). Default: 0.\n"
        },
        "fifoQueue": {
          "type": "boolean",
          "description": "Is this queue [FIFO](https://cloud.yandex.com/docs/message-queue/concepts/queue#fifo-queues). If this parameter is not used, a standard queue is created. You cannot change the parameter value for a created queue.\n"
        },
        "maxMessageSize": {
          "type": "integer",
          "description": "Maximum message size in bytes. Valid values: from 1024 bytes (1 KB) to 262144 bytes (256 KB). Default: 262144 (256 KB). For more information see [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/CreateQueue).\n"
        },
        "messageRetentionSeconds": {
          "type": "integer",
          "description": "The length of time in seconds to retain a message. Valid values: from 60 seconds (1 minute) to 1209600 seconds (14 days). Default: 345600 (4 days). For more information see [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/CreateQueue).\n"
        },
        "name": {
          "type": "string",
          "description": "Queue name. The maximum length is 80 characters. You can use numbers, letters, underscores, and hyphens in the name. The name of a FIFO queue must end with the `.fifo` suffix. If not specified, random name will be generated. Conflicts with `name_prefix`. For more information see [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/CreateQueue).\n"
        },
        "namePrefix": {
          "type": "string",
          "description": "Generates random name with the specified prefix. Conflicts with `name`.\n"
        },
        "receiveWaitTimeSeconds": {
          "type": "integer",
          "description": "Wait time for the [ReceiveMessage](https://cloud.yandex.com/docs/message-queue/api-ref/message/ReceiveMessage) method (for long polling), in seconds. Valid values: from 0 to 20 seconds. Default: 0. For more information about long polling see [documentation](https://cloud.yandex.com/docs/message-queue/concepts/long-polling).\n"
        },
        "redrivePolicy": {
          "type": "string",
          "description": "Message redrive policy in [Dead Letter Queue](https://cloud.yandex.com/docs/message-queue/concepts/dlq). The source queue and DLQ must be the same type: for FIFO queues, the DLQ must also be a FIFO queue. For more information about redrive policy see [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/CreateQueue). Also you can use example in this page.\n"
        },
        "secretKey": {
          "type": "string",
          "description": "The [secret key](https://cloud.yandex.com/docs/iam/operations/sa/create-access-key) to use when applying changes. If omitted, `ymq_secret_key` specified in provider config is used. For more information see [documentation](https://cloud.yandex.com/docs/message-queue/quickstart).\n"
        },
        "visibilityTimeoutSeconds": {
          "type": "integer",
          "description": "[Visibility timeout](https://cloud.yandex.com/docs/message-queue/concepts/visibility-timeout) for messages in a queue, specified in seconds. Valid values: from 0 to 43200 seconds (12 hours). Default: 30.\n"
        }
      },
      "type": "object",
      "required": [
        "arn",
        "name"
      ],
      "inputProperties": {
        "accessKey": {
          "type": "string",
          "description": "The [access key](https://cloud.yandex.com/docs/iam/operations/sa/create-access-key) to use when applying changes. If omitted, `ymq_access_key` specified in provider config is used. For more information see [documentation](https://cloud.yandex.com/docs/message-queue/quickstart).\n"
        },
        "contentBasedDeduplication": {
          "type": "boolean",
          "description": "Enables [content-based deduplication](https://cloud.yandex.com/docs/message-queue/concepts/deduplication#content-based-deduplication). Can be used only if queue is [FIFO](https://cloud.yandex.com/docs/message-queue/concepts/queue#fifo-queues).\n"
        },
        "delaySeconds": {
          "type": "integer",
          "description": "Number of seconds to [delay the message from being available for processing](https://cloud.yandex.com/docs/message-queue/concepts/delay-queues#delay-queues). Valid values: from 0 to 900 seconds (15 minutes). Default: 0.\n"
        },
        "fifoQueue": {
          "type": "boolean",
          "description": "Is this queue [FIFO](https://cloud.yandex.com/docs/message-queue/concepts/queue#fifo-queues). If this parameter is not used, a standard queue is created. You cannot change the parameter value for a created queue.\n"
        },
        "maxMessageSize": {
          "type": "integer",
          "description": "Maximum message size in bytes. Valid values: from 1024 bytes (1 KB) to 262144 bytes (256 KB). Default: 262144 (256 KB). For more information see [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/CreateQueue).\n"
        },
        "messageRetentionSeconds": {
          "type": "integer",
          "description": "The length of time in seconds to retain a message. Valid values: from 60 seconds (1 minute) to 1209600 seconds (14 days). Default: 345600 (4 days). For more information see [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/CreateQueue).\n"
        },
        "name": {
          "type": "string",
          "description": "Queue name. The maximum length is 80 characters. You can use numbers, letters, underscores, and hyphens in the name. The name of a FIFO queue must end with the `.fifo` suffix. If not specified, random name will be generated. Conflicts with `name_prefix`. For more information see [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/CreateQueue).\n"
        },
        "namePrefix": {
          "type": "string",
          "description": "Generates random name with the specified prefix. Conflicts with `name`.\n"
        },
        "receiveWaitTimeSeconds": {
          "type": "integer",
          "description": "Wait time for the [ReceiveMessage](https://cloud.yandex.com/docs/message-queue/api-ref/message/ReceiveMessage) method (for long polling), in seconds. Valid values: from 0 to 20 seconds. Default: 0. For more information about long polling see [documentation](https://cloud.yandex.com/docs/message-queue/concepts/long-polling).\n"
        },
        "redrivePolicy": {
          "type": "string",
          "description": "Message redrive policy in [Dead Letter Queue](https://cloud.yandex.com/docs/message-queue/concepts/dlq). The source queue and DLQ must be the same type: for FIFO queues, the DLQ must also be a FIFO queue. For more information about redrive policy see [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/CreateQueue). Also you can use example in this page.\n"
        },
        "secretKey": {
          "type": "string",
          "description": "The [secret key](https://cloud.yandex.com/docs/iam/operations/sa/create-access-key) to use when applying changes. If omitted, `ymq_secret_key` specified in provider config is used. For more information see [documentation](https://cloud.yandex.com/docs/message-queue/quickstart).\n"
        },
        "visibilityTimeoutSeconds": {
          "type": "integer",
          "description": "[Visibility timeout](https://cloud.yandex.com/docs/message-queue/concepts/visibility-timeout) for messages in a queue, specified in seconds. Valid values: from 0 to 43200 seconds (12 hours). Default: 30.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MessageQueue resources.\n",
        "properties": {
          "accessKey": {
            "type": "string",
            "description": "The [access key](https://cloud.yandex.com/docs/iam/operations/sa/create-access-key) to use when applying changes. If omitted, `ymq_access_key` specified in provider config is used. For more information see [documentation](https://cloud.yandex.com/docs/message-queue/quickstart).\n"
          },
          "arn": {
            "type": "string",
            "description": "ARN of the Yandex Message Queue. It is used for setting up a [redrive policy](https://cloud.yandex.com/docs/message-queue/concepts/dlq). See [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/SetQueueAttributes).\n"
          },
          "contentBasedDeduplication": {
            "type": "boolean",
            "description": "Enables [content-based deduplication](https://cloud.yandex.com/docs/message-queue/concepts/deduplication#content-based-deduplication). Can be used only if queue is [FIFO](https://cloud.yandex.com/docs/message-queue/concepts/queue#fifo-queues).\n"
          },
          "delaySeconds": {
            "type": "integer",
            "description": "Number of seconds to [delay the message from being available for processing](https://cloud.yandex.com/docs/message-queue/concepts/delay-queues#delay-queues). Valid values: from 0 to 900 seconds (15 minutes). Default: 0.\n"
          },
          "fifoQueue": {
            "type": "boolean",
            "description": "Is this queue [FIFO](https://cloud.yandex.com/docs/message-queue/concepts/queue#fifo-queues). If this parameter is not used, a standard queue is created. You cannot change the parameter value for a created queue.\n"
          },
          "maxMessageSize": {
            "type": "integer",
            "description": "Maximum message size in bytes. Valid values: from 1024 bytes (1 KB) to 262144 bytes (256 KB). Default: 262144 (256 KB). For more information see [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/CreateQueue).\n"
          },
          "messageRetentionSeconds": {
            "type": "integer",
            "description": "The length of time in seconds to retain a message. Valid values: from 60 seconds (1 minute) to 1209600 seconds (14 days). Default: 345600 (4 days). For more information see [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/CreateQueue).\n"
          },
          "name": {
            "type": "string",
            "description": "Queue name. The maximum length is 80 characters. You can use numbers, letters, underscores, and hyphens in the name. The name of a FIFO queue must end with the `.fifo` suffix. If not specified, random name will be generated. Conflicts with `name_prefix`. For more information see [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/CreateQueue).\n"
          },
          "namePrefix": {
            "type": "string",
            "description": "Generates random name with the specified prefix. Conflicts with `name`.\n"
          },
          "receiveWaitTimeSeconds": {
            "type": "integer",
            "description": "Wait time for the [ReceiveMessage](https://cloud.yandex.com/docs/message-queue/api-ref/message/ReceiveMessage) method (for long polling), in seconds. Valid values: from 0 to 20 seconds. Default: 0. For more information about long polling see [documentation](https://cloud.yandex.com/docs/message-queue/concepts/long-polling).\n"
          },
          "redrivePolicy": {
            "type": "string",
            "description": "Message redrive policy in [Dead Letter Queue](https://cloud.yandex.com/docs/message-queue/concepts/dlq). The source queue and DLQ must be the same type: for FIFO queues, the DLQ must also be a FIFO queue. For more information about redrive policy see [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/CreateQueue). Also you can use example in this page.\n"
          },
          "secretKey": {
            "type": "string",
            "description": "The [secret key](https://cloud.yandex.com/docs/iam/operations/sa/create-access-key) to use when applying changes. If omitted, `ymq_secret_key` specified in provider config is used. For more information see [documentation](https://cloud.yandex.com/docs/message-queue/quickstart).\n"
          },
          "visibilityTimeoutSeconds": {
            "type": "integer",
            "description": "[Visibility timeout](https://cloud.yandex.com/docs/message-queue/concepts/visibility-timeout) for messages in a queue, specified in seconds. Valid values: from 0 to 43200 seconds (12 hours). Default: 30.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/organizationManagerOrganizationIamBinding:OrganizationManagerOrganizationIamBinding": {
      "description": "Allows creation and management of a single binding within IAM policy for\nan existing Yandex.Cloud Organization Manager organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst editor = new yandex.OrganizationManagerOrganizationIamBinding(\"editor\", {\n    members: [\"userAccount:some_user_id\"],\n    organizationId: \"some_organization_id\",\n    role: \"editor\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\neditor = yandex.OrganizationManagerOrganizationIamBinding(\"editor\",\n    members=[\"userAccount:some_user_id\"],\n    organization_id=\"some_organization_id\",\n    role=\"editor\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var editor = new Yandex.OrganizationManagerOrganizationIamBinding(\"editor\", new Yandex.OrganizationManagerOrganizationIamBindingArgs\n        {\n            Members = \n            {\n                \"userAccount:some_user_id\",\n            },\n            OrganizationId = \"some_organization_id\",\n            Role = \"editor\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewOrganizationManagerOrganizationIamBinding(ctx, \"editor\", &yandex.OrganizationManagerOrganizationIamBindingArgs{\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"userAccount:some_user_id\"),\n\t\t\t},\n\t\t\tOrganizationId: pulumi.String(\"some_organization_id\"),\n\t\t\tRole:           pulumi.String(\"editor\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIAM binding imports use space-delimited identifiers; first the resource in question and then the role. These bindings can be imported using the `organization_id` and role, e.g.\n\n```sh\n $ pulumi import yandex:index/organizationManagerOrganizationIamBinding:OrganizationManagerOrganizationIamBinding viewer \"organization_id viewer\"\n```\n\n ",
      "properties": {
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of identities that will be granted the privilege in the `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **federatedUser:{federated_user_id}**: A unique federated user ID.\n"
        },
        "organizationId": {
          "type": "string",
          "description": "ID of the organization to attach the policy to.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be assigned. Only one\n`yandex.OrganizationManagerOrganizationIamBinding` can be used per role.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "members",
        "organizationId",
        "role"
      ],
      "inputProperties": {
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of identities that will be granted the privilege in the `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **federatedUser:{federated_user_id}**: A unique federated user ID.\n"
        },
        "organizationId": {
          "type": "string",
          "description": "ID of the organization to attach the policy to.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be assigned. Only one\n`yandex.OrganizationManagerOrganizationIamBinding` can be used per role.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "requiredInputs": [
        "members",
        "organizationId",
        "role"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering OrganizationManagerOrganizationIamBinding resources.\n",
        "properties": {
          "members": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of identities that will be granted the privilege in the `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **federatedUser:{federated_user_id}**: A unique federated user ID.\n"
          },
          "organizationId": {
            "type": "string",
            "description": "ID of the organization to attach the policy to.\n"
          },
          "role": {
            "type": "string",
            "description": "The role that should be assigned. Only one\n`yandex.OrganizationManagerOrganizationIamBinding` can be used per role.\n"
          },
          "sleepAfter": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/organizationManagerOrganizationIamMember:OrganizationManagerOrganizationIamMember": {
      "description": "Allows creation and management of a single member for a single binding within\nthe IAM policy for an existing Yandex Organization Manager organization.\n\n> **Note:** Roles controlled by `yandex.OrganizationManagerOrganizationIamBinding`\n   should not be assigned using `yandex.OrganizationManagerOrganizationIamMember`.\n\n> **Note:** When you delete `yandex.OrganizationManagerOrganizationIamBinding` resource,\n   the roles can be deleted from other users within the organization as well. Be careful!\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst editor = new yandex.OrganizationManagerOrganizationIamMember(\"editor\", {\n    member: \"userAccount:user_id\",\n    organizationId: \"some_organization_id\",\n    role: \"editor\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\neditor = yandex.OrganizationManagerOrganizationIamMember(\"editor\",\n    member=\"userAccount:user_id\",\n    organization_id=\"some_organization_id\",\n    role=\"editor\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var editor = new Yandex.OrganizationManagerOrganizationIamMember(\"editor\", new Yandex.OrganizationManagerOrganizationIamMemberArgs\n        {\n            Member = \"userAccount:user_id\",\n            OrganizationId = \"some_organization_id\",\n            Role = \"editor\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewOrganizationManagerOrganizationIamMember(ctx, \"editor\", &yandex.OrganizationManagerOrganizationIamMemberArgs{\n\t\t\tMember:         pulumi.String(\"userAccount:user_id\"),\n\t\t\tOrganizationId: pulumi.String(\"some_organization_id\"),\n\t\t\tRole:           pulumi.String(\"editor\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIAM member imports use space-delimited identifiers; the resource in question, the role, and the account. This member resource can be imported using the `organization id`, role, and account, e.g.\n\n```sh\n $ pulumi import yandex:index/organizationManagerOrganizationIamMember:OrganizationManagerOrganizationIamMember my_project \"organization_id viewer foo@example.com\"\n```\n\n ",
      "properties": {
        "member": {
          "type": "string",
          "description": "The identity that will be granted the privilege that is specified in the `role` field.\nThis field can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **federatedUser:{federated_user_id}**: A unique federated user ID.\n"
        },
        "organizationId": {
          "type": "string",
          "description": "ID of the organization to attach a policy to.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be assigned.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "member",
        "organizationId",
        "role"
      ],
      "inputProperties": {
        "member": {
          "type": "string",
          "description": "The identity that will be granted the privilege that is specified in the `role` field.\nThis field can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **federatedUser:{federated_user_id}**: A unique federated user ID.\n"
        },
        "organizationId": {
          "type": "string",
          "description": "ID of the organization to attach a policy to.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be assigned.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "requiredInputs": [
        "member",
        "organizationId",
        "role"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering OrganizationManagerOrganizationIamMember resources.\n",
        "properties": {
          "member": {
            "type": "string",
            "description": "The identity that will be granted the privilege that is specified in the `role` field.\nThis field can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **federatedUser:{federated_user_id}**: A unique federated user ID.\n"
          },
          "organizationId": {
            "type": "string",
            "description": "ID of the organization to attach a policy to.\n"
          },
          "role": {
            "type": "string",
            "description": "The role that should be assigned.\n"
          },
          "sleepAfter": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/organizationmanagerSamlFederation:OrganizationmanagerSamlFederation": {
      "description": "Allows management of a single SAML Federation within an existing Yandex.Cloud Organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst federation = new yandex.OrganizationmanagerSamlFederation(\"federation\", {\n    description: \"My new SAML federation\",\n    issuer: \"my-issuer\",\n    organizationId: \"sdf4*********3fr\",\n    ssoBinding: \"POST\",\n    ssoUrl: \"https://my-sso.url\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfederation = yandex.OrganizationmanagerSamlFederation(\"federation\",\n    description=\"My new SAML federation\",\n    issuer=\"my-issuer\",\n    organization_id=\"sdf4*********3fr\",\n    sso_binding=\"POST\",\n    sso_url=\"https://my-sso.url\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var federation = new Yandex.OrganizationmanagerSamlFederation(\"federation\", new Yandex.OrganizationmanagerSamlFederationArgs\n        {\n            Description = \"My new SAML federation\",\n            Issuer = \"my-issuer\",\n            OrganizationId = \"sdf4*********3fr\",\n            SsoBinding = \"POST\",\n            SsoUrl = \"https://my-sso.url\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewOrganizationmanagerSamlFederation(ctx, \"federation\", &yandex.OrganizationmanagerSamlFederationArgs{\n\t\t\tDescription:    pulumi.String(\"My new SAML federation\"),\n\t\t\tIssuer:         pulumi.String(\"my-issuer\"),\n\t\t\tOrganizationId: pulumi.String(\"sdf4*********3fr\"),\n\t\t\tSsoBinding:     pulumi.String(\"POST\"),\n\t\t\tSsoUrl:         pulumi.String(\"https://my-sso.url\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA Yandex SAML Federation can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/organizationmanagerSamlFederation:OrganizationmanagerSamlFederation federation \"federation_id\"\n```\n\n ",
      "properties": {
        "autoCreateAccountOnLogin": {
          "type": "boolean",
          "description": "Add new users automatically on successful authentication. The user will get the `resource-manager.clouds.member` role automatically, but you need to grant other roles to them. If the value is `false`, users who aren't added to the cloud can't log in, even if they have authenticated on your server.\n"
        },
        "caseInsensitiveNameIds": {
          "type": "boolean",
          "description": "Use case-insensitive name ids.\n"
        },
        "cookieMaxAge": {
          "type": "string",
          "description": "The lifetime of a Browser cookie in seconds. If the cookie is still valid, the management console authenticates the user immediately and redirects them to the home page. The default value is `8h`.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "(Computed) The SAML Federation creation timestamp.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the SAML Federation.\n"
        },
        "issuer": {
          "type": "string",
          "description": "The ID of the IdP server to be used for authentication. The IdP server also responds to IAM with this ID after the user authenticates.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs assigned to the SAML Federation.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the SAML Federation.\n"
        },
        "organizationId": {
          "type": "string",
          "description": "The organization to attach this SAML Federation to.\n"
        },
        "securitySettings": {
          "$ref": "#/types/yandex:index%2FOrganizationmanagerSamlFederationSecuritySettings:OrganizationmanagerSamlFederationSecuritySettings",
          "description": "Federation security settings, structure is documented below.\n"
        },
        "ssoBinding": {
          "type": "string",
          "description": "Single sign-on endpoint binding type. Most Identity Providers support the `POST` binding type. SAML Binding is a mapping of a SAML protocol message onto standard messaging formats and/or communications protocols.\n"
        },
        "ssoUrl": {
          "type": "string",
          "description": "Single sign-on endpoint URL. Specify the link to the IdP login page here.\n"
        }
      },
      "type": "object",
      "required": [
        "autoCreateAccountOnLogin",
        "caseInsensitiveNameIds",
        "cookieMaxAge",
        "createdAt",
        "issuer",
        "name",
        "organizationId",
        "securitySettings",
        "ssoBinding",
        "ssoUrl"
      ],
      "inputProperties": {
        "autoCreateAccountOnLogin": {
          "type": "boolean",
          "description": "Add new users automatically on successful authentication. The user will get the `resource-manager.clouds.member` role automatically, but you need to grant other roles to them. If the value is `false`, users who aren't added to the cloud can't log in, even if they have authenticated on your server.\n"
        },
        "caseInsensitiveNameIds": {
          "type": "boolean",
          "description": "Use case-insensitive name ids.\n"
        },
        "cookieMaxAge": {
          "type": "string",
          "description": "The lifetime of a Browser cookie in seconds. If the cookie is still valid, the management console authenticates the user immediately and redirects them to the home page. The default value is `8h`.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the SAML Federation.\n"
        },
        "issuer": {
          "type": "string",
          "description": "The ID of the IdP server to be used for authentication. The IdP server also responds to IAM with this ID after the user authenticates.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs assigned to the SAML Federation.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the SAML Federation.\n"
        },
        "organizationId": {
          "type": "string",
          "description": "The organization to attach this SAML Federation to.\n"
        },
        "securitySettings": {
          "$ref": "#/types/yandex:index%2FOrganizationmanagerSamlFederationSecuritySettings:OrganizationmanagerSamlFederationSecuritySettings",
          "description": "Federation security settings, structure is documented below.\n"
        },
        "ssoBinding": {
          "type": "string",
          "description": "Single sign-on endpoint binding type. Most Identity Providers support the `POST` binding type. SAML Binding is a mapping of a SAML protocol message onto standard messaging formats and/or communications protocols.\n"
        },
        "ssoUrl": {
          "type": "string",
          "description": "Single sign-on endpoint URL. Specify the link to the IdP login page here.\n"
        }
      },
      "requiredInputs": [
        "issuer",
        "organizationId",
        "ssoBinding",
        "ssoUrl"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering OrganizationmanagerSamlFederation resources.\n",
        "properties": {
          "autoCreateAccountOnLogin": {
            "type": "boolean",
            "description": "Add new users automatically on successful authentication. The user will get the `resource-manager.clouds.member` role automatically, but you need to grant other roles to them. If the value is `false`, users who aren't added to the cloud can't log in, even if they have authenticated on your server.\n"
          },
          "caseInsensitiveNameIds": {
            "type": "boolean",
            "description": "Use case-insensitive name ids.\n"
          },
          "cookieMaxAge": {
            "type": "string",
            "description": "The lifetime of a Browser cookie in seconds. If the cookie is still valid, the management console authenticates the user immediately and redirects them to the home page. The default value is `8h`.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "(Computed) The SAML Federation creation timestamp.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of the SAML Federation.\n"
          },
          "issuer": {
            "type": "string",
            "description": "The ID of the IdP server to be used for authentication. The IdP server also responds to IAM with this ID after the user authenticates.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs assigned to the SAML Federation.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the SAML Federation.\n"
          },
          "organizationId": {
            "type": "string",
            "description": "The organization to attach this SAML Federation to.\n"
          },
          "securitySettings": {
            "$ref": "#/types/yandex:index%2FOrganizationmanagerSamlFederationSecuritySettings:OrganizationmanagerSamlFederationSecuritySettings",
            "description": "Federation security settings, structure is documented below.\n"
          },
          "ssoBinding": {
            "type": "string",
            "description": "Single sign-on endpoint binding type. Most Identity Providers support the `POST` binding type. SAML Binding is a mapping of a SAML protocol message onto standard messaging formats and/or communications protocols.\n"
          },
          "ssoUrl": {
            "type": "string",
            "description": "Single sign-on endpoint URL. Specify the link to the IdP login page here.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/resourcemanagerCloudIamBinding:ResourcemanagerCloudIamBinding": {
      "description": "Allows creation and management of a single binding within IAM policy for\nan existing Yandex Resource Manager cloud.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst project1 = pulumi.output(yandex.getResourcemanagerCloud({\n    name: \"Project 1\",\n}));\nconst admin = new yandex.ResourcemanagerCloudIamBinding(\"admin\", {\n    cloudId: project1.id,\n    members: [\"userAccount:some_user_id\"],\n    role: \"editor\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nproject1 = yandex.get_resourcemanager_cloud(name=\"Project 1\")\nadmin = yandex.ResourcemanagerCloudIamBinding(\"admin\",\n    cloud_id=project1.id,\n    members=[\"userAccount:some_user_id\"],\n    role=\"editor\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var project1 = Output.Create(Yandex.GetResourcemanagerCloud.InvokeAsync(new Yandex.GetResourcemanagerCloudArgs\n        {\n            Name = \"Project 1\",\n        }));\n        var admin = new Yandex.ResourcemanagerCloudIamBinding(\"admin\", new Yandex.ResourcemanagerCloudIamBindingArgs\n        {\n            CloudId = project1.Apply(project1 => project1.Id),\n            Members = \n            {\n                \"userAccount:some_user_id\",\n            },\n            Role = \"editor\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"Project 1\"\n\t\tproject1, err := yandex.GetResourcemanagerCloud(ctx, &GetResourcemanagerCloudArgs{\n\t\t\tName: &opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewResourcemanagerCloudIamBinding(ctx, \"admin\", &yandex.ResourcemanagerCloudIamBindingArgs{\n\t\t\tCloudId: pulumi.String(project1.Id),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"userAccount:some_user_id\"),\n\t\t\t},\n\t\t\tRole: pulumi.String(\"editor\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIAM binding imports use space-delimited identifiers; first the resource in question and then the role. These bindings can be imported using the `cloud_id` and role, e.g.\n\n```sh\n $ pulumi import yandex:index/resourcemanagerCloudIamBinding:ResourcemanagerCloudIamBinding viewer \"cloud_id viewer\"\n```\n\n ",
      "properties": {
        "cloudId": {
          "type": "string",
          "description": "ID of the cloud to attach the policy to.\n"
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of identities that will be granted the privilege in the `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **federatedUser:{federated_user_id}**: A unique federated user ID.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be assigned. Only one\n`yandex.ResourcemanagerCloudIamBinding` can be used per role.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "cloudId",
        "members",
        "role"
      ],
      "inputProperties": {
        "cloudId": {
          "type": "string",
          "description": "ID of the cloud to attach the policy to.\n"
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of identities that will be granted the privilege in the `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **federatedUser:{federated_user_id}**: A unique federated user ID.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be assigned. Only one\n`yandex.ResourcemanagerCloudIamBinding` can be used per role.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "requiredInputs": [
        "cloudId",
        "members",
        "role"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ResourcemanagerCloudIamBinding resources.\n",
        "properties": {
          "cloudId": {
            "type": "string",
            "description": "ID of the cloud to attach the policy to.\n"
          },
          "members": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of identities that will be granted the privilege in the `role`.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n* **federatedUser:{federated_user_id}**: A unique federated user ID.\n"
          },
          "role": {
            "type": "string",
            "description": "The role that should be assigned. Only one\n`yandex.ResourcemanagerCloudIamBinding` can be used per role.\n"
          },
          "sleepAfter": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/resourcemanagerCloudIamMember:ResourcemanagerCloudIamMember": {
      "description": "Allows creation and management of a single member for a single binding within\nthe IAM policy for an existing Yandex Resource Manager cloud.\n\n> **Note:** Roles controlled by `yandex.ResourcemanagerCloudIamBinding`\n   should not be assigned using `yandex.ResourcemanagerCloudIamMember`.\n\n> **Note:** When you delete `yandex.ResourcemanagerCloudIamBinding` resource,\n   the roles can be deleted from other users within the cloud as well. Be careful!\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst department1 = pulumi.output(yandex.getResourcemanagerCloud({\n    name: \"Department 1\",\n}));\nconst admin = new yandex.ResourcemanagerCloudIamMember(\"admin\", {\n    cloudId: department1.id,\n    member: \"userAccount:user_id\",\n    role: \"editor\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ndepartment1 = yandex.get_resourcemanager_cloud(name=\"Department 1\")\nadmin = yandex.ResourcemanagerCloudIamMember(\"admin\",\n    cloud_id=department1.id,\n    member=\"userAccount:user_id\",\n    role=\"editor\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var department1 = Output.Create(Yandex.GetResourcemanagerCloud.InvokeAsync(new Yandex.GetResourcemanagerCloudArgs\n        {\n            Name = \"Department 1\",\n        }));\n        var admin = new Yandex.ResourcemanagerCloudIamMember(\"admin\", new Yandex.ResourcemanagerCloudIamMemberArgs\n        {\n            CloudId = department1.Apply(department1 => department1.Id),\n            Member = \"userAccount:user_id\",\n            Role = \"editor\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"Department 1\"\n\t\tdepartment1, err := yandex.GetResourcemanagerCloud(ctx, &GetResourcemanagerCloudArgs{\n\t\t\tName: &opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewResourcemanagerCloudIamMember(ctx, \"admin\", &yandex.ResourcemanagerCloudIamMemberArgs{\n\t\t\tCloudId: pulumi.String(department1.Id),\n\t\t\tMember:  pulumi.String(\"userAccount:user_id\"),\n\t\t\tRole:    pulumi.String(\"editor\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIAM member imports use space-delimited identifiers; the resource in question, the role, and the account. This member resource can be imported using the `cloud id`, role, and account, e.g.\n\n```sh\n $ pulumi import yandex:index/resourcemanagerCloudIamMember:ResourcemanagerCloudIamMember my_project \"cloud_id viewer foo@example.com\"\n```\n\n ",
      "properties": {
        "cloudId": {
          "type": "string",
          "description": "ID of the cloud to attach a policy to.\n"
        },
        "member": {
          "type": "string",
          "description": "The identity that will be granted the privilege that is specified in the `role` field.\nThis field can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be assigned.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "cloudId",
        "member",
        "role"
      ],
      "inputProperties": {
        "cloudId": {
          "type": "string",
          "description": "ID of the cloud to attach a policy to.\n"
        },
        "member": {
          "type": "string",
          "description": "The identity that will be granted the privilege that is specified in the `role` field.\nThis field can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be assigned.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "requiredInputs": [
        "cloudId",
        "member",
        "role"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ResourcemanagerCloudIamMember resources.\n",
        "properties": {
          "cloudId": {
            "type": "string",
            "description": "ID of the cloud to attach a policy to.\n"
          },
          "member": {
            "type": "string",
            "description": "The identity that will be granted the privilege that is specified in the `role` field.\nThis field can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
          },
          "role": {
            "type": "string",
            "description": "The role that should be assigned.\n"
          },
          "sleepAfter": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/resourcemanagerFolder:ResourcemanagerFolder": {
      "description": "Allows creation and management of Cloud Folders for an existing Yandex Cloud. See [the official documentation](https://cloud.yandex.com/docs/resource-manager/concepts/resources-hierarchy) for additional info.\nNote: deletion of folders may take up to 30 minutes as it requires a lot of communication between cloud services.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst folder1 = new yandex.ResourcemanagerFolder(\"folder1\", {\n    cloudId: \"my_cloud_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfolder1 = yandex.ResourcemanagerFolder(\"folder1\", cloud_id=\"my_cloud_id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var folder1 = new Yandex.ResourcemanagerFolder(\"folder1\", new Yandex.ResourcemanagerFolderArgs\n        {\n            CloudId = \"my_cloud_id\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewResourcemanagerFolder(ctx, \"folder1\", &yandex.ResourcemanagerFolderArgs{\n\t\t\tCloudId: pulumi.String(\"my_cloud_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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "cloudId": {
          "type": "string",
          "description": "Cloud that the resource belongs to. If value is omitted, the default provider Cloud ID is used.\n"
        },
        "createdAt": {
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "A description of the Folder.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Folder.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the Folder.\n"
        }
      },
      "type": "object",
      "required": [
        "cloudId",
        "createdAt",
        "name"
      ],
      "inputProperties": {
        "cloudId": {
          "type": "string",
          "description": "Cloud that the resource belongs to. If value is omitted, the default provider Cloud ID is used.\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the Folder.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Folder.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the Folder.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ResourcemanagerFolder resources.\n",
        "properties": {
          "cloudId": {
            "type": "string",
            "description": "Cloud that the resource belongs to. If value is omitted, the default provider Cloud ID is used.\n"
          },
          "createdAt": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "A description of the Folder.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Folder.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the Folder.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/resourcemanagerFolderIamBinding:ResourcemanagerFolderIamBinding": {
      "description": "Allows creation and management of a single binding within IAM policy for\nan existing Yandex Resource Manager folder.\n\n> **Note:** This resource _must not_ be used in conjunction with\n   `yandex.ResourcemanagerFolderIamPolicy` or they will conflict over what your policy\n   should be.\n\n> **Note:** When you delete `yandex.ResourcemanagerFolderIamBinding` resource,\n   the roles can be deleted from other users within the folder as well. Be careful!\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst project1 = pulumi.output(yandex.getResourcemanagerFolder({\n    folderId: \"some_folder_id\",\n}));\nconst admin = new yandex.ResourcemanagerFolderIamBinding(\"admin\", {\n    folderId: project1.id,\n    members: [\"userAccount:some_user_id\"],\n    role: \"editor\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nproject1 = yandex.get_resourcemanager_folder(folder_id=\"some_folder_id\")\nadmin = yandex.ResourcemanagerFolderIamBinding(\"admin\",\n    folder_id=project1.id,\n    members=[\"userAccount:some_user_id\"],\n    role=\"editor\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var project1 = Output.Create(Yandex.GetResourcemanagerFolder.InvokeAsync(new Yandex.GetResourcemanagerFolderArgs\n        {\n            FolderId = \"some_folder_id\",\n        }));\n        var admin = new Yandex.ResourcemanagerFolderIamBinding(\"admin\", new Yandex.ResourcemanagerFolderIamBindingArgs\n        {\n            FolderId = project1.Apply(project1 => project1.Id),\n            Members = \n            {\n                \"userAccount:some_user_id\",\n            },\n            Role = \"editor\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some_folder_id\"\n\t\tproject1, err := yandex.LookupResourcemanagerFolder(ctx, &GetResourcemanagerFolderArgs{\n\t\t\tFolderId: &opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewResourcemanagerFolderIamBinding(ctx, \"admin\", &yandex.ResourcemanagerFolderIamBindingArgs{\n\t\t\tFolderId: pulumi.String(project1.Id),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"userAccount:some_user_id\"),\n\t\t\t},\n\t\t\tRole: pulumi.String(\"editor\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIAM binding imports use space-delimited identifiers; first the resource in question and then the role. These bindings can be imported using the `folder_id` and role, e.g.\n\n```sh\n $ pulumi import yandex:index/resourcemanagerFolderIamBinding:ResourcemanagerFolderIamBinding viewer \"folder_id viewer\"\n```\n\n ",
      "properties": {
        "folderId": {
          "type": "string",
          "description": "ID of the folder to attach a policy to.\n"
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of identities that will be granted the privilege that is specified in the `role` field.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: An email address that represents a specific Yandex account. For example, ivan@yandex.ru or joe@example.com.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be assigned. Only one\n`yandex.ResourcemanagerFolderIamBinding` can be used per role.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "folderId",
        "members",
        "role"
      ],
      "inputProperties": {
        "folderId": {
          "type": "string",
          "description": "ID of the folder to attach a policy to.\n"
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of identities that will be granted the privilege that is specified in the `role` field.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: An email address that represents a specific Yandex account. For example, ivan@yandex.ru or joe@example.com.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be assigned. Only one\n`yandex.ResourcemanagerFolderIamBinding` can be used per role.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "requiredInputs": [
        "folderId",
        "members",
        "role"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ResourcemanagerFolderIamBinding resources.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "ID of the folder to attach a policy to.\n"
          },
          "members": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of identities that will be granted the privilege that is specified in the `role` field.\nEach entry can have one of the following values:\n* **userAccount:{user_id}**: An email address that represents a specific Yandex account. For example, ivan@yandex.ru or joe@example.com.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
          },
          "role": {
            "type": "string",
            "description": "The role that should be assigned. Only one\n`yandex.ResourcemanagerFolderIamBinding` can be used per role.\n"
          },
          "sleepAfter": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/resourcemanagerFolderIamMember:ResourcemanagerFolderIamMember": {
      "description": "Allows creation and management of a single member for a single binding within\nthe IAM policy for an existing Yandex Resource Manager folder.\n\n> **Note:** This resource _must not_ be used in conjunction with\n   `yandex.ResourcemanagerFolderIamPolicy` or they will conflict over what your policy should be. Similarly, roles controlled by `yandex.ResourcemanagerFolderIamBinding`\n   should not be assigned using `yandex.ResourcemanagerFolderIamMember`.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst department1 = pulumi.output(yandex.getResourcemanagerFolder({\n    folderId: \"some_folder_id\",\n}));\nconst admin = new yandex.ResourcemanagerFolderIamMember(\"admin\", {\n    folderId: yandex_resourcemanager_department1.name,\n    member: \"userAccount:user_id\",\n    role: \"editor\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ndepartment1 = yandex.get_resourcemanager_folder(folder_id=\"some_folder_id\")\nadmin = yandex.ResourcemanagerFolderIamMember(\"admin\",\n    folder_id=data[\"yandex_resourcemanager\"][\"department1\"][\"name\"],\n    member=\"userAccount:user_id\",\n    role=\"editor\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var department1 = Output.Create(Yandex.GetResourcemanagerFolder.InvokeAsync(new Yandex.GetResourcemanagerFolderArgs\n        {\n            FolderId = \"some_folder_id\",\n        }));\n        var admin = new Yandex.ResourcemanagerFolderIamMember(\"admin\", new Yandex.ResourcemanagerFolderIamMemberArgs\n        {\n            FolderId = data.Yandex_resourcemanager.Department1.Name,\n            Member = \"userAccount:user_id\",\n            Role = \"editor\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some_folder_id\"\n\t\t_, err := yandex.LookupResourcemanagerFolder(ctx, &GetResourcemanagerFolderArgs{\n\t\t\tFolderId: &opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewResourcemanagerFolderIamMember(ctx, \"admin\", &yandex.ResourcemanagerFolderIamMemberArgs{\n\t\t\tFolderId: pulumi.Any(data.Yandex_resourcemanager.Department1.Name),\n\t\t\tMember:   pulumi.String(\"userAccount:user_id\"),\n\t\t\tRole:     pulumi.String(\"editor\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIAM member imports use space-delimited identifiers; the resource in question, the role, and the account. This member resource can be imported using the `folder id`, role, and account, e.g.\n\n```sh\n $ pulumi import yandex:index/resourcemanagerFolderIamMember:ResourcemanagerFolderIamMember my_project \"folder_id viewer foo@example.com\"\n```\n\n ",
      "properties": {
        "folderId": {
          "type": "string",
          "description": "ID of the folder to attach a policy to.\n"
        },
        "member": {
          "type": "string",
          "description": "The identity that will be granted the privilege that is specified in the `role` field.\nThis field can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be assigned.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "folderId",
        "member",
        "role"
      ],
      "inputProperties": {
        "folderId": {
          "type": "string",
          "description": "ID of the folder to attach a policy to.\n"
        },
        "member": {
          "type": "string",
          "description": "The identity that will be granted the privilege that is specified in the `role` field.\nThis field can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
        },
        "role": {
          "type": "string",
          "description": "The role that should be assigned.\n"
        },
        "sleepAfter": {
          "type": "integer"
        }
      },
      "requiredInputs": [
        "folderId",
        "member",
        "role"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ResourcemanagerFolderIamMember resources.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "ID of the folder to attach a policy to.\n"
          },
          "member": {
            "type": "string",
            "description": "The identity that will be granted the privilege that is specified in the `role` field.\nThis field can have one of the following values:\n* **userAccount:{user_id}**: A unique user ID that represents a specific Yandex account.\n* **serviceAccount:{service_account_id}**: A unique service account ID.\n"
          },
          "role": {
            "type": "string",
            "description": "The role that should be assigned.\n"
          },
          "sleepAfter": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/resourcemanagerFolderIamPolicy:ResourcemanagerFolderIamPolicy": {
      "description": "Allows creation and management of the IAM policy for an existing Yandex Resource\nManager folder.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst project1 = pulumi.output(yandex.getResourcemanagerFolder({\n    folderId: \"my_folder_id\",\n}));\nconst admin = pulumi.output(yandex.getIamPolicy({\n    bindings: [{\n        members: [\"userAccount:some_user_id\"],\n        role: \"editor\",\n    }],\n}));\nconst folderAdminPolicy = new yandex.ResourcemanagerFolderIamPolicy(\"folder_admin_policy\", {\n    folderId: yandex_folder_project1.id,\n    policyData: admin.policyData,\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nproject1 = yandex.get_resourcemanager_folder(folder_id=\"my_folder_id\")\nadmin = yandex.get_iam_policy(bindings=[yandex.GetIamPolicyBindingArgs(\n    members=[\"userAccount:some_user_id\"],\n    role=\"editor\",\n)])\nfolder_admin_policy = yandex.ResourcemanagerFolderIamPolicy(\"folderAdminPolicy\",\n    folder_id=data[\"yandex_folder\"][\"project1\"][\"id\"],\n    policy_data=admin.policy_data)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var project1 = Output.Create(Yandex.GetResourcemanagerFolder.InvokeAsync(new Yandex.GetResourcemanagerFolderArgs\n        {\n            FolderId = \"my_folder_id\",\n        }));\n        var admin = Output.Create(Yandex.GetIamPolicy.InvokeAsync(new Yandex.GetIamPolicyArgs\n        {\n            Bindings = \n            {\n                new Yandex.Inputs.GetIamPolicyBindingArgs\n                {\n                    Members = \n                    {\n                        \"userAccount:some_user_id\",\n                    },\n                    Role = \"editor\",\n                },\n            },\n        }));\n        var folderAdminPolicy = new Yandex.ResourcemanagerFolderIamPolicy(\"folderAdminPolicy\", new Yandex.ResourcemanagerFolderIamPolicyArgs\n        {\n            FolderId = data.Yandex_folder.Project1.Id,\n            PolicyData = admin.Apply(admin => admin.PolicyData),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"my_folder_id\"\n\t\t_, err := yandex.LookupResourcemanagerFolder(ctx, &GetResourcemanagerFolderArgs{\n\t\t\tFolderId: &opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tadmin, err := yandex.GetIamPolicy(ctx, &GetIamPolicyArgs{\n\t\t\tBindings: []GetIamPolicyBinding{\n\t\t\t\tGetIamPolicyBinding{\n\t\t\t\t\tMembers: []string{\n\t\t\t\t\t\t\"userAccount:some_user_id\",\n\t\t\t\t\t},\n\t\t\t\t\tRole: \"editor\",\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewResourcemanagerFolderIamPolicy(ctx, \"folderAdminPolicy\", &yandex.ResourcemanagerFolderIamPolicyArgs{\n\t\t\tFolderId:   pulumi.Any(data.Yandex_folder.Project1.Id),\n\t\t\tPolicyData: pulumi.String(admin.PolicyData),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the policy is attached to.\n"
        },
        "policyData": {
          "type": "string",
          "description": "The `yandex.getIamPolicy` data source that represents\nthe IAM policy that will be applied to the folder. This policy overrides any existing policy applied to the folder.\n"
        }
      },
      "type": "object",
      "required": [
        "folderId",
        "policyData"
      ],
      "inputProperties": {
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the policy is attached to.\n"
        },
        "policyData": {
          "type": "string",
          "description": "The `yandex.getIamPolicy` data source that represents\nthe IAM policy that will be applied to the folder. This policy overrides any existing policy applied to the folder.\n"
        }
      },
      "requiredInputs": [
        "folderId",
        "policyData"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ResourcemanagerFolderIamPolicy resources.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "ID of the folder that the policy is attached to.\n"
          },
          "policyData": {
            "type": "string",
            "description": "The `yandex.getIamPolicy` data source that represents\nthe IAM policy that will be applied to the folder. This policy overrides any existing policy applied to the folder.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/serverlessContainer:ServerlessContainer": {
      "description": "Allows management of Yandex Cloud Serverless Containers\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst test_container = new yandex.ServerlessContainer(\"test-container\", {\n    coreFraction: 100,\n    cores: 1,\n    description: \"any description\",\n    executionTimeout: \"15s\",\n    image: {\n        url: \"cr.yandex/yc/test-image:v1\",\n    },\n    memory: 256,\n    serviceAccountId: \"are1service2account3id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ntest_container = yandex.ServerlessContainer(\"test-container\",\n    core_fraction=100,\n    cores=1,\n    description=\"any description\",\n    execution_timeout=\"15s\",\n    image=yandex.ServerlessContainerImageArgs(\n        url=\"cr.yandex/yc/test-image:v1\",\n    ),\n    memory=256,\n    service_account_id=\"are1service2account3id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var test_container = new Yandex.ServerlessContainer(\"test-container\", new Yandex.ServerlessContainerArgs\n        {\n            CoreFraction = 100,\n            Cores = 1,\n            Description = \"any description\",\n            ExecutionTimeout = \"15s\",\n            Image = new Yandex.Inputs.ServerlessContainerImageArgs\n            {\n                Url = \"cr.yandex/yc/test-image:v1\",\n            },\n            Memory = 256,\n            ServiceAccountId = \"are1service2account3id\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewServerlessContainer(ctx, \"test-container\", &yandex.ServerlessContainerArgs{\n\t\t\tCoreFraction:     pulumi.Int(100),\n\t\t\tCores:            pulumi.Int(1),\n\t\t\tDescription:      pulumi.String(\"any description\"),\n\t\t\tExecutionTimeout: pulumi.String(\"15s\"),\n\t\t\tImage: &ServerlessContainerImageArgs{\n\t\t\t\tUrl: pulumi.String(\"cr.yandex/yc/test-image:v1\"),\n\t\t\t},\n\t\t\tMemory:           pulumi.Int(256),\n\t\t\tServiceAccountId: pulumi.String(\"are1service2account3id\"),\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```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst test_container_with_digest = new yandex.ServerlessContainer(\"test-container-with-digest\", {\n    image: {\n        digest: \"sha256:e1d772fa8795adac847a2420c87d0d2e3d38fb02f168cab8c0b5fe2fb95c47f4\",\n        url: \"cr.yandex/yc/test-image:v1\",\n    },\n    memory: 128,\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ntest_container_with_digest = yandex.ServerlessContainer(\"test-container-with-digest\",\n    image=yandex.ServerlessContainerImageArgs(\n        digest=\"sha256:e1d772fa8795adac847a2420c87d0d2e3d38fb02f168cab8c0b5fe2fb95c47f4\",\n        url=\"cr.yandex/yc/test-image:v1\",\n    ),\n    memory=128)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var test_container_with_digest = new Yandex.ServerlessContainer(\"test-container-with-digest\", new Yandex.ServerlessContainerArgs\n        {\n            Image = new Yandex.Inputs.ServerlessContainerImageArgs\n            {\n                Digest = \"sha256:e1d772fa8795adac847a2420c87d0d2e3d38fb02f168cab8c0b5fe2fb95c47f4\",\n                Url = \"cr.yandex/yc/test-image:v1\",\n            },\n            Memory = 128,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewServerlessContainer(ctx, \"test-container-with-digest\", &yandex.ServerlessContainerArgs{\n\t\t\tImage: &ServerlessContainerImageArgs{\n\t\t\t\tDigest: pulumi.String(\"sha256:e1d772fa8795adac847a2420c87d0d2e3d38fb02f168cab8c0b5fe2fb95c47f4\"),\n\t\t\t\tUrl:    pulumi.String(\"cr.yandex/yc/test-image:v1\"),\n\t\t\t},\n\t\t\tMemory: pulumi.Int(128),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "concurrency": {
          "type": "integer",
          "description": "Concurrency of Yandex Cloud Serverless Container\n"
        },
        "coreFraction": {
          "type": "integer",
          "description": "Core fraction (**0...100**) of the Yandex Cloud Serverless Container\n"
        },
        "cores": {
          "type": "integer"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the Yandex Cloud Serverless Container\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the Yandex Cloud Serverless Container\n"
        },
        "executionTimeout": {
          "type": "string",
          "description": "Execution timeout in seconds (**duration format**) for Yandex Cloud Serverless Container\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder ID for the Yandex Cloud Serverless Container\n"
        },
        "image": {
          "$ref": "#/types/yandex:index%2FServerlessContainerImage:ServerlessContainerImage",
          "description": "Revision deployment image for Yandex Cloud Serverless Container\n* `image.0.url` (Required) - URL of image that will be deployed as Yandex Cloud Serverless Container\n* `image.0.work_dir` - Working directory for Yandex Cloud Serverless Container\n* `image.0.digest` - Digest of image that will be deployed as Yandex Cloud Serverless Container.\nIf presented, should be equal to digest that will be resolved at server side by URL.\nContainer will be updated on digest change even if `image.0.url` stays the same.\nIf field not specified then its value will be computed.\n* `image.0.command` - List of commands for Yandex Cloud Serverless Container\n* `image.0.args` - List of arguments for Yandex Cloud Serverless Container\n* `image.0.environment` -  A set of key/value environment variable pairs for Yandex Cloud Serverless Container\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Cloud Serverless Container\n"
        },
        "memory": {
          "type": "integer",
          "description": "Memory in megabytes (**aligned to 128MB**) for Yandex Cloud Serverless Container\n"
        },
        "name": {
          "type": "string",
          "description": "Yandex Cloud Serverless Container name\n"
        },
        "revisionId": {
          "type": "string",
          "description": "Last revision ID of the Yandex Cloud Serverless Container\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "Service account ID for Yandex Cloud Serverless Container\n"
        },
        "url": {
          "type": "string",
          "description": "Invoke URL for the Yandex Cloud Serverless Container\n"
        }
      },
      "type": "object",
      "required": [
        "coreFraction",
        "createdAt",
        "executionTimeout",
        "folderId",
        "image",
        "memory",
        "name",
        "revisionId",
        "url"
      ],
      "inputProperties": {
        "concurrency": {
          "type": "integer",
          "description": "Concurrency of Yandex Cloud Serverless Container\n"
        },
        "coreFraction": {
          "type": "integer",
          "description": "Core fraction (**0...100**) of the Yandex Cloud Serverless Container\n"
        },
        "cores": {
          "type": "integer"
        },
        "description": {
          "type": "string",
          "description": "Description of the Yandex Cloud Serverless Container\n"
        },
        "executionTimeout": {
          "type": "string",
          "description": "Execution timeout in seconds (**duration format**) for Yandex Cloud Serverless Container\n"
        },
        "folderId": {
          "type": "string",
          "description": "Folder ID for the Yandex Cloud Serverless Container\n"
        },
        "image": {
          "$ref": "#/types/yandex:index%2FServerlessContainerImage:ServerlessContainerImage",
          "description": "Revision deployment image for Yandex Cloud Serverless Container\n* `image.0.url` (Required) - URL of image that will be deployed as Yandex Cloud Serverless Container\n* `image.0.work_dir` - Working directory for Yandex Cloud Serverless Container\n* `image.0.digest` - Digest of image that will be deployed as Yandex Cloud Serverless Container.\nIf presented, should be equal to digest that will be resolved at server side by URL.\nContainer will be updated on digest change even if `image.0.url` stays the same.\nIf field not specified then its value will be computed.\n* `image.0.command` - List of commands for Yandex Cloud Serverless Container\n* `image.0.args` - List of arguments for Yandex Cloud Serverless Container\n* `image.0.environment` -  A set of key/value environment variable pairs for Yandex Cloud Serverless Container\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Cloud Serverless Container\n"
        },
        "memory": {
          "type": "integer",
          "description": "Memory in megabytes (**aligned to 128MB**) for Yandex Cloud Serverless Container\n"
        },
        "name": {
          "type": "string",
          "description": "Yandex Cloud Serverless Container name\n"
        },
        "serviceAccountId": {
          "type": "string",
          "description": "Service account ID for Yandex Cloud Serverless Container\n"
        }
      },
      "requiredInputs": [
        "image",
        "memory"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServerlessContainer resources.\n",
        "properties": {
          "concurrency": {
            "type": "integer",
            "description": "Concurrency of Yandex Cloud Serverless Container\n"
          },
          "coreFraction": {
            "type": "integer",
            "description": "Core fraction (**0...100**) of the Yandex Cloud Serverless Container\n"
          },
          "cores": {
            "type": "integer"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the Yandex Cloud Serverless Container\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the Yandex Cloud Serverless Container\n"
          },
          "executionTimeout": {
            "type": "string",
            "description": "Execution timeout in seconds (**duration format**) for Yandex Cloud Serverless Container\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder ID for the Yandex Cloud Serverless Container\n"
          },
          "image": {
            "$ref": "#/types/yandex:index%2FServerlessContainerImage:ServerlessContainerImage",
            "description": "Revision deployment image for Yandex Cloud Serverless Container\n* `image.0.url` (Required) - URL of image that will be deployed as Yandex Cloud Serverless Container\n* `image.0.work_dir` - Working directory for Yandex Cloud Serverless Container\n* `image.0.digest` - Digest of image that will be deployed as Yandex Cloud Serverless Container.\nIf presented, should be equal to digest that will be resolved at server side by URL.\nContainer will be updated on digest change even if `image.0.url` stays the same.\nIf field not specified then its value will be computed.\n* `image.0.command` - List of commands for Yandex Cloud Serverless Container\n* `image.0.args` - List of arguments for Yandex Cloud Serverless Container\n* `image.0.environment` -  A set of key/value environment variable pairs for Yandex Cloud Serverless Container\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Yandex Cloud Serverless Container\n"
          },
          "memory": {
            "type": "integer",
            "description": "Memory in megabytes (**aligned to 128MB**) for Yandex Cloud Serverless Container\n"
          },
          "name": {
            "type": "string",
            "description": "Yandex Cloud Serverless Container name\n"
          },
          "revisionId": {
            "type": "string",
            "description": "Last revision ID of the Yandex Cloud Serverless Container\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "Service account ID for Yandex Cloud Serverless Container\n"
          },
          "url": {
            "type": "string",
            "description": "Invoke URL for the Yandex Cloud Serverless Container\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/storageBucket:StorageBucket": {
      "description": "Allows management of [Yandex.Cloud Storage Bucket](https://cloud.yandex.com/docs/storage/concepts/bucket).\n\n> **Note:** Your need to provide [static access key](https://cloud.yandex.com/docs/iam/concepts/authorization/access-key) (Access and Secret) to create storage client to work with Storage Service. To create them you need Service Account and proper permissions.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Simple Private Bucket\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst folderId = \"<folder-id>\";\n// Create SA\nconst sa = new yandex.IamServiceAccount(\"sa\", {folderId: folderId});\n// Grant permissions\nconst sa_editor = new yandex.ResourcemanagerFolderIamMember(\"sa-editor\", {\n    folderId: folderId,\n    role: \"storage.editor\",\n    member: pulumi.interpolate`serviceAccount:${sa.id}`,\n});\n// Create Static Access Keys\nconst sa_static_key = new yandex.IamServiceAccountStaticAccessKey(\"sa-static-key\", {\n    serviceAccountId: sa.id,\n    description: \"static access key for object storage\",\n});\n// Use keys to create bucket\nconst test = new yandex.StorageBucket(\"test\", {\n    accessKey: sa_static_key.accessKey,\n    secretKey: sa_static_key.secretKey,\n    bucket: \"tf-test-bucket\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfolder_id = \"<folder-id>\"\n# Create SA\nsa = yandex.IamServiceAccount(\"sa\", folder_id=folder_id)\n# Grant permissions\nsa_editor = yandex.ResourcemanagerFolderIamMember(\"sa-editor\",\n    folder_id=folder_id,\n    role=\"storage.editor\",\n    member=sa.id.apply(lambda id: f\"serviceAccount:{id}\"))\n# Create Static Access Keys\nsa_static_key = yandex.IamServiceAccountStaticAccessKey(\"sa-static-key\",\n    service_account_id=sa.id,\n    description=\"static access key for object storage\")\n# Use keys to create bucket\ntest = yandex.StorageBucket(\"test\",\n    access_key=sa_static_key.access_key,\n    secret_key=sa_static_key.secret_key,\n    bucket=\"tf-test-bucket\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var folderId = \"<folder-id>\";\n        // Create SA\n        var sa = new Yandex.IamServiceAccount(\"sa\", new Yandex.IamServiceAccountArgs\n        {\n            FolderId = folderId,\n        });\n        // Grant permissions\n        var sa_editor = new Yandex.ResourcemanagerFolderIamMember(\"sa-editor\", new Yandex.ResourcemanagerFolderIamMemberArgs\n        {\n            FolderId = folderId,\n            Role = \"storage.editor\",\n            Member = sa.Id.Apply(id => $\"serviceAccount:{id}\"),\n        });\n        // Create Static Access Keys\n        var sa_static_key = new Yandex.IamServiceAccountStaticAccessKey(\"sa-static-key\", new Yandex.IamServiceAccountStaticAccessKeyArgs\n        {\n            ServiceAccountId = sa.Id,\n            Description = \"static access key for object storage\",\n        });\n        // Use keys to create bucket\n        var test = new Yandex.StorageBucket(\"test\", new Yandex.StorageBucketArgs\n        {\n            AccessKey = sa_static_key.AccessKey,\n            SecretKey = sa_static_key.SecretKey,\n            Bucket = \"tf-test-bucket\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfolderId := \"<folder-id>\"\n\t\tsa, err := yandex.NewIamServiceAccount(ctx, \"sa\", &yandex.IamServiceAccountArgs{\n\t\t\tFolderId: pulumi.String(folderId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewResourcemanagerFolderIamMember(ctx, \"sa-editor\", &yandex.ResourcemanagerFolderIamMemberArgs{\n\t\t\tFolderId: pulumi.String(folderId),\n\t\t\tRole:     pulumi.String(\"storage.editor\"),\n\t\t\tMember: sa.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v%v\", \"serviceAccount:\", id), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewIamServiceAccountStaticAccessKey(ctx, \"sa-static-key\", &yandex.IamServiceAccountStaticAccessKeyArgs{\n\t\t\tServiceAccountId: sa.ID(),\n\t\t\tDescription:      pulumi.String(\"static access key for object storage\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewStorageBucket(ctx, \"test\", &yandex.StorageBucketArgs{\n\t\t\tAccessKey: sa_static_key.AccessKey,\n\t\t\tSecretKey: sa_static_key.SecretKey,\n\t\t\tBucket:    pulumi.String(\"tf-test-bucket\"),\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{{% /example %}}\n{{% example %}}\n### Static Website Hosting\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst test = new yandex.StorageBucket(\"test\", {\n    acl: \"public-read\",\n    bucket: \"storage-website-test.hashicorp.com\",\n    website: {\n        errorDocument: \"error.html\",\n        indexDocument: \"index.html\",\n        routingRules: `[{\n    \"Condition\": {\n        \"KeyPrefixEquals\": \"docs/\"\n    },\n    \"Redirect\": {\n        \"ReplaceKeyPrefixWith\": \"documents/\"\n    }\n}]\n`,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ntest = yandex.StorageBucket(\"test\",\n    acl=\"public-read\",\n    bucket=\"storage-website-test.hashicorp.com\",\n    website=yandex.StorageBucketWebsiteArgs(\n        error_document=\"error.html\",\n        index_document=\"index.html\",\n        routing_rules=\"\"\"[{\n    \"Condition\": {\n        \"KeyPrefixEquals\": \"docs/\"\n    },\n    \"Redirect\": {\n        \"ReplaceKeyPrefixWith\": \"documents/\"\n    }\n}]\n\n\"\"\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var test = new Yandex.StorageBucket(\"test\", new Yandex.StorageBucketArgs\n        {\n            Acl = \"public-read\",\n            Bucket = \"storage-website-test.hashicorp.com\",\n            Website = new Yandex.Inputs.StorageBucketWebsiteArgs\n            {\n                ErrorDocument = \"error.html\",\n                IndexDocument = \"index.html\",\n                RoutingRules = @\"[{\n    \"\"Condition\"\": {\n        \"\"KeyPrefixEquals\"\": \"\"docs/\"\"\n    },\n    \"\"Redirect\"\": {\n        \"\"ReplaceKeyPrefixWith\"\": \"\"documents/\"\"\n    }\n}]\n\n\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewStorageBucket(ctx, \"test\", &yandex.StorageBucketArgs{\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t\tBucket: pulumi.String(\"storage-website-test.hashicorp.com\"),\n\t\t\tWebsite: &StorageBucketWebsiteArgs{\n\t\t\t\tErrorDocument: pulumi.String(\"error.html\"),\n\t\t\t\tIndexDocument: pulumi.String(\"index.html\"),\n\t\t\t\tRoutingRules:  pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v\", \"[{\\n\", \"    \\\"Condition\\\": {\\n\", \"        \\\"KeyPrefixEquals\\\": \\\"docs/\\\"\\n\", \"    },\\n\", \"    \\\"Redirect\\\": {\\n\", \"        \\\"ReplaceKeyPrefixWith\\\": \\\"documents/\\\"\\n\", \"    }\\n\", \"}]\\n\", \"\\n\")),\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{{% /example %}}\n{{% example %}}\n### Using ACL policy grants\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst test = new yandex.StorageBucket(\"test\", {\n    bucket: \"mybucket\",\n    grants: [\n        {\n            id: \"myuser\",\n            permissions: [\"FULL_CONTROL\"],\n            type: \"CanonicalUser\",\n        },\n        {\n            permissions: [\n                \"READ\",\n                \"WRITE\",\n            ],\n            type: \"Group\",\n            uri: \"http://acs.amazonaws.com/groups/global/AllUsers\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ntest = yandex.StorageBucket(\"test\",\n    bucket=\"mybucket\",\n    grants=[\n        yandex.StorageBucketGrantArgs(\n            id=\"myuser\",\n            permissions=[\"FULL_CONTROL\"],\n            type=\"CanonicalUser\",\n        ),\n        yandex.StorageBucketGrantArgs(\n            permissions=[\n                \"READ\",\n                \"WRITE\",\n            ],\n            type=\"Group\",\n            uri=\"http://acs.amazonaws.com/groups/global/AllUsers\",\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var test = new Yandex.StorageBucket(\"test\", new Yandex.StorageBucketArgs\n        {\n            Bucket = \"mybucket\",\n            Grants = \n            {\n                new Yandex.Inputs.StorageBucketGrantArgs\n                {\n                    Id = \"myuser\",\n                    Permissions = \n                    {\n                        \"FULL_CONTROL\",\n                    },\n                    Type = \"CanonicalUser\",\n                },\n                new Yandex.Inputs.StorageBucketGrantArgs\n                {\n                    Permissions = \n                    {\n                        \"READ\",\n                        \"WRITE\",\n                    },\n                    Type = \"Group\",\n                    Uri = \"http://acs.amazonaws.com/groups/global/AllUsers\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewStorageBucket(ctx, \"test\", &yandex.StorageBucketArgs{\n\t\t\tBucket: pulumi.String(\"mybucket\"),\n\t\t\tGrants: StorageBucketGrantArray{\n\t\t\t\t&StorageBucketGrantArgs{\n\t\t\t\t\tId: pulumi.String(\"myuser\"),\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"FULL_CONTROL\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: pulumi.String(\"CanonicalUser\"),\n\t\t\t\t},\n\t\t\t\t&StorageBucketGrantArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t\tpulumi.String(\"WRITE\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: pulumi.String(\"Group\"),\n\t\t\t\t\tUri:  pulumi.String(\"http://acs.amazonaws.com/groups/global/AllUsers\"),\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{{% /example %}}\n{{% example %}}\n### Using CORS\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst storageBucket = new yandex.StorageBucket(\"b\", {\n    acl: \"public-read\",\n    bucket: \"s3-website-test.hashicorp.com\",\n    corsRules: [{\n        allowedHeaders: [\"*\"],\n        allowedMethods: [\n            \"PUT\",\n            \"POST\",\n        ],\n        allowedOrigins: [\"https://s3-website-test.hashicorp.com\"],\n        exposeHeaders: [\"ETag\"],\n        maxAgeSeconds: 3000,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nstorage_bucket = yandex.StorageBucket(\"storageBucket\",\n    acl=\"public-read\",\n    bucket=\"s3-website-test.hashicorp.com\",\n    cors_rules=[yandex.StorageBucketCorsRuleArgs(\n        allowed_headers=[\"*\"],\n        allowed_methods=[\n            \"PUT\",\n            \"POST\",\n        ],\n        allowed_origins=[\"https://s3-website-test.hashicorp.com\"],\n        expose_headers=[\"ETag\"],\n        max_age_seconds=3000,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var storageBucket = new Yandex.StorageBucket(\"storageBucket\", new Yandex.StorageBucketArgs\n        {\n            Acl = \"public-read\",\n            Bucket = \"s3-website-test.hashicorp.com\",\n            CorsRules = \n            {\n                new Yandex.Inputs.StorageBucketCorsRuleArgs\n                {\n                    AllowedHeaders = \n                    {\n                        \"*\",\n                    },\n                    AllowedMethods = \n                    {\n                        \"PUT\",\n                        \"POST\",\n                    },\n                    AllowedOrigins = \n                    {\n                        \"https://s3-website-test.hashicorp.com\",\n                    },\n                    ExposeHeaders = \n                    {\n                        \"ETag\",\n                    },\n                    MaxAgeSeconds = 3000,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewStorageBucket(ctx, \"storageBucket\", &yandex.StorageBucketArgs{\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t\tBucket: pulumi.String(\"s3-website-test.hashicorp.com\"),\n\t\t\tCorsRules: StorageBucketCorsRuleArray{\n\t\t\t\t&StorageBucketCorsRuleArgs{\n\t\t\t\t\tAllowedHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"PUT\"),\n\t\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedOrigins: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"https://s3-website-test.hashicorp.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tExposeHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ETag\"),\n\t\t\t\t\t},\n\t\t\t\t\tMaxAgeSeconds: pulumi.Int(3000),\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{{% /example %}}\n{{% example %}}\n### Using versioning\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst storageBucket = new yandex.StorageBucket(\"b\", {\n    acl: \"private\",\n    bucket: \"my-tf-test-bucket\",\n    versioning: {\n        enabled: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nstorage_bucket = yandex.StorageBucket(\"storageBucket\",\n    acl=\"private\",\n    bucket=\"my-tf-test-bucket\",\n    versioning=yandex.StorageBucketVersioningArgs(\n        enabled=True,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var storageBucket = new Yandex.StorageBucket(\"storageBucket\", new Yandex.StorageBucketArgs\n        {\n            Acl = \"private\",\n            Bucket = \"my-tf-test-bucket\",\n            Versioning = new Yandex.Inputs.StorageBucketVersioningArgs\n            {\n                Enabled = true,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewStorageBucket(ctx, \"storageBucket\", &yandex.StorageBucketArgs{\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tVersioning: &StorageBucketVersioningArgs{\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{{% /example %}}\n{{% example %}}\n### Enable Logging\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst logBucket = new yandex.StorageBucket(\"logBucket\", {bucket: \"my-tf-log-bucket\"});\nconst storageBucket = new yandex.StorageBucket(\"storageBucket\", {\n    bucket: \"my-tf-test-bucket\",\n    acl: \"private\",\n    loggings: [{\n        targetBucket: logBucket.id,\n        targetPrefix: \"log/\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nlog_bucket = yandex.StorageBucket(\"logBucket\", bucket=\"my-tf-log-bucket\")\nstorage_bucket = yandex.StorageBucket(\"storageBucket\",\n    bucket=\"my-tf-test-bucket\",\n    acl=\"private\",\n    loggings=[yandex.StorageBucketLoggingArgs(\n        target_bucket=log_bucket.id,\n        target_prefix=\"log/\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var logBucket = new Yandex.StorageBucket(\"logBucket\", new Yandex.StorageBucketArgs\n        {\n            Bucket = \"my-tf-log-bucket\",\n        });\n        var storageBucket = new Yandex.StorageBucket(\"storageBucket\", new Yandex.StorageBucketArgs\n        {\n            Bucket = \"my-tf-test-bucket\",\n            Acl = \"private\",\n            Loggings = \n            {\n                new Yandex.Inputs.StorageBucketLoggingArgs\n                {\n                    TargetBucket = logBucket.Id,\n                    TargetPrefix = \"log/\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlogBucket, err := yandex.NewStorageBucket(ctx, \"logBucket\", &yandex.StorageBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-log-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewStorageBucket(ctx, \"storageBucket\", &yandex.StorageBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tLoggings: StorageBucketLoggingArray{\n\t\t\t\t&StorageBucketLoggingArgs{\n\t\t\t\t\tTargetBucket: logBucket.ID(),\n\t\t\t\t\tTargetPrefix: pulumi.String(\"log/\"),\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{{% /example %}}\n{{% example %}}\n### Using object lifecycle\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst bucket = new yandex.StorageBucket(\"bucket\", {\n    acl: \"private\",\n    bucket: \"my-bucket\",\n    lifecycleRules: [\n        {\n            enabled: true,\n            expiration: {\n                days: 90,\n            },\n            id: \"log\",\n            prefix: \"log/\",\n            transitions: [{\n                days: 30,\n                storageClass: \"COLD\",\n            }],\n        },\n        {\n            enabled: true,\n            expiration: {\n                date: \"2020-12-21\",\n            },\n            id: \"tmp\",\n            prefix: \"tmp/\",\n        },\n    ],\n});\nconst versioningBucket = new yandex.StorageBucket(\"versioning_bucket\", {\n    acl: \"private\",\n    bucket: \"my-versioning-bucket\",\n    lifecycleRules: [{\n        enabled: true,\n        noncurrentVersionExpiration: {\n            days: 90,\n        },\n        noncurrentVersionTransitions: [{\n            days: 30,\n            storageClass: \"COLD\",\n        }],\n        prefix: \"config/\",\n    }],\n    versioning: {\n        enabled: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nbucket = yandex.StorageBucket(\"bucket\",\n    acl=\"private\",\n    bucket=\"my-bucket\",\n    lifecycle_rules=[\n        yandex.StorageBucketLifecycleRuleArgs(\n            enabled=True,\n            expiration=yandex.StorageBucketLifecycleRuleExpirationArgs(\n                days=90,\n            ),\n            id=\"log\",\n            prefix=\"log/\",\n            transitions=[yandex.StorageBucketLifecycleRuleTransitionArgs(\n                days=30,\n                storage_class=\"COLD\",\n            )],\n        ),\n        yandex.StorageBucketLifecycleRuleArgs(\n            enabled=True,\n            expiration=yandex.StorageBucketLifecycleRuleExpirationArgs(\n                date=\"2020-12-21\",\n            ),\n            id=\"tmp\",\n            prefix=\"tmp/\",\n        ),\n    ])\nversioning_bucket = yandex.StorageBucket(\"versioningBucket\",\n    acl=\"private\",\n    bucket=\"my-versioning-bucket\",\n    lifecycle_rules=[yandex.StorageBucketLifecycleRuleArgs(\n        enabled=True,\n        noncurrent_version_expiration=yandex.StorageBucketLifecycleRuleNoncurrentVersionExpirationArgs(\n            days=90,\n        ),\n        noncurrent_version_transitions=[yandex.StorageBucketLifecycleRuleNoncurrentVersionTransitionArgs(\n            days=30,\n            storage_class=\"COLD\",\n        )],\n        prefix=\"config/\",\n    )],\n    versioning=yandex.StorageBucketVersioningArgs(\n        enabled=True,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var bucket = new Yandex.StorageBucket(\"bucket\", new Yandex.StorageBucketArgs\n        {\n            Acl = \"private\",\n            Bucket = \"my-bucket\",\n            LifecycleRules = \n            {\n                new Yandex.Inputs.StorageBucketLifecycleRuleArgs\n                {\n                    Enabled = true,\n                    Expiration = new Yandex.Inputs.StorageBucketLifecycleRuleExpirationArgs\n                    {\n                        Days = 90,\n                    },\n                    Id = \"log\",\n                    Prefix = \"log/\",\n                    Transitions = \n                    {\n                        new Yandex.Inputs.StorageBucketLifecycleRuleTransitionArgs\n                        {\n                            Days = 30,\n                            StorageClass = \"COLD\",\n                        },\n                    },\n                },\n                new Yandex.Inputs.StorageBucketLifecycleRuleArgs\n                {\n                    Enabled = true,\n                    Expiration = new Yandex.Inputs.StorageBucketLifecycleRuleExpirationArgs\n                    {\n                        Date = \"2020-12-21\",\n                    },\n                    Id = \"tmp\",\n                    Prefix = \"tmp/\",\n                },\n            },\n        });\n        var versioningBucket = new Yandex.StorageBucket(\"versioningBucket\", new Yandex.StorageBucketArgs\n        {\n            Acl = \"private\",\n            Bucket = \"my-versioning-bucket\",\n            LifecycleRules = \n            {\n                new Yandex.Inputs.StorageBucketLifecycleRuleArgs\n                {\n                    Enabled = true,\n                    NoncurrentVersionExpiration = new Yandex.Inputs.StorageBucketLifecycleRuleNoncurrentVersionExpirationArgs\n                    {\n                        Days = 90,\n                    },\n                    NoncurrentVersionTransitions = \n                    {\n                        new Yandex.Inputs.StorageBucketLifecycleRuleNoncurrentVersionTransitionArgs\n                        {\n                            Days = 30,\n                            StorageClass = \"COLD\",\n                        },\n                    },\n                    Prefix = \"config/\",\n                },\n            },\n            Versioning = new Yandex.Inputs.StorageBucketVersioningArgs\n            {\n                Enabled = true,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewStorageBucket(ctx, \"bucket\", &yandex.StorageBucketArgs{\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tBucket: pulumi.String(\"my-bucket\"),\n\t\t\tLifecycleRules: StorageBucketLifecycleRuleArray{\n\t\t\t\t&StorageBucketLifecycleRuleArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpiration: &StorageBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(90),\n\t\t\t\t\t},\n\t\t\t\t\tId:     pulumi.String(\"log\"),\n\t\t\t\t\tPrefix: pulumi.String(\"log/\"),\n\t\t\t\t\tTransitions: StorageBucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t&StorageBucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Int(30),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"COLD\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&StorageBucketLifecycleRuleArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpiration: &StorageBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDate: pulumi.String(\"2020-12-21\"),\n\t\t\t\t\t},\n\t\t\t\t\tId:     pulumi.String(\"tmp\"),\n\t\t\t\t\tPrefix: pulumi.String(\"tmp/\"),\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 = yandex.NewStorageBucket(ctx, \"versioningBucket\", &yandex.StorageBucketArgs{\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tBucket: pulumi.String(\"my-versioning-bucket\"),\n\t\t\tLifecycleRules: StorageBucketLifecycleRuleArray{\n\t\t\t\t&StorageBucketLifecycleRuleArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tNoncurrentVersionExpiration: &StorageBucketLifecycleRuleNoncurrentVersionExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(90),\n\t\t\t\t\t},\n\t\t\t\t\tNoncurrentVersionTransitions: StorageBucketLifecycleRuleNoncurrentVersionTransitionArray{\n\t\t\t\t\t\t&StorageBucketLifecycleRuleNoncurrentVersionTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Int(30),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"COLD\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tPrefix: pulumi.String(\"config/\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVersioning: &StorageBucketVersioningArgs{\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{{% /example %}}\n{{% example %}}\n### Using SSE\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst key_a = new yandex.KmsSymmetricKey(\"key-a\", {\n    description: \"description for key\",\n    defaultAlgorithm: \"AES_128\",\n    rotationPeriod: \"8760h\",\n});\n// equal to 1 year\nconst test = new yandex.StorageBucket(\"test\", {\n    bucket: \"mybucket\",\n    serverSideEncryptionConfiguration: {\n        rule: {\n            applyServerSideEncryptionByDefault: {\n                kmsMasterKeyId: key_a.id,\n                sseAlgorithm: \"aws:kms\",\n            },\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nkey_a = yandex.KmsSymmetricKey(\"key-a\",\n    description=\"description for key\",\n    default_algorithm=\"AES_128\",\n    rotation_period=\"8760h\")\n# equal to 1 year\ntest = yandex.StorageBucket(\"test\",\n    bucket=\"mybucket\",\n    server_side_encryption_configuration=yandex.StorageBucketServerSideEncryptionConfigurationArgs(\n        rule=yandex.StorageBucketServerSideEncryptionConfigurationRuleArgs(\n            apply_server_side_encryption_by_default=yandex.StorageBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs(\n                kms_master_key_id=key_a.id,\n                sse_algorithm=\"aws:kms\",\n            ),\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var key_a = new Yandex.KmsSymmetricKey(\"key-a\", new Yandex.KmsSymmetricKeyArgs\n        {\n            Description = \"description for key\",\n            DefaultAlgorithm = \"AES_128\",\n            RotationPeriod = \"8760h\",\n        });\n        // equal to 1 year\n        var test = new Yandex.StorageBucket(\"test\", new Yandex.StorageBucketArgs\n        {\n            Bucket = \"mybucket\",\n            ServerSideEncryptionConfiguration = new Yandex.Inputs.StorageBucketServerSideEncryptionConfigurationArgs\n            {\n                Rule = new Yandex.Inputs.StorageBucketServerSideEncryptionConfigurationRuleArgs\n                {\n                    ApplyServerSideEncryptionByDefault = new Yandex.Inputs.StorageBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs\n                    {\n                        KmsMasterKeyId = key_a.Id,\n                        SseAlgorithm = \"aws:kms\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewKmsSymmetricKey(ctx, \"key-a\", &yandex.KmsSymmetricKeyArgs{\n\t\t\tDescription:      pulumi.String(\"description for key\"),\n\t\t\tDefaultAlgorithm: pulumi.String(\"AES_128\"),\n\t\t\tRotationPeriod:   pulumi.String(\"8760h\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewStorageBucket(ctx, \"test\", &yandex.StorageBucketArgs{\n\t\t\tBucket: pulumi.String(\"mybucket\"),\n\t\t\tServerSideEncryptionConfiguration: &StorageBucketServerSideEncryptionConfigurationArgs{\n\t\t\t\tRule: &StorageBucketServerSideEncryptionConfigurationRuleArgs{\n\t\t\t\t\tApplyServerSideEncryptionByDefault: &StorageBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs{\n\t\t\t\t\t\tKmsMasterKeyId: key_a.ID(),\n\t\t\t\t\t\tSseAlgorithm:   pulumi.String(\"aws:kms\"),\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{{% /example %}}\n{{% example %}}\n### Bucket Policy\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst storageBucket = new yandex.StorageBucket(\"b\", {\n    bucket: \"my-policy-bucket\",\n    policy: `{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Principal\": \"*\",\n      \"Action\": \"s3:*\",\n      \"Resource\": [\n        \"arn:aws:s3:::my-policy-bucket/*\",\n        \"arn:aws:s3:::my-policy-bucket\"\n      ]\n    },\n    {\n      \"Effect\": \"Deny\",\n      \"Principal\": \"*\",\n      \"Action\": \"s3:PutObject\",\n      \"Resource\": [\n        \"arn:aws:s3:::my-policy-bucket/*\",\n        \"arn:aws:s3:::my-policy-bucket\"\n      ]\n    }\n  ]\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nstorage_bucket = yandex.StorageBucket(\"storageBucket\",\n    bucket=\"my-policy-bucket\",\n    policy=\"\"\"{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Principal\": \"*\",\n      \"Action\": \"s3:*\",\n      \"Resource\": [\n        \"arn:aws:s3:::my-policy-bucket/*\",\n        \"arn:aws:s3:::my-policy-bucket\"\n      ]\n    },\n    {\n      \"Effect\": \"Deny\",\n      \"Principal\": \"*\",\n      \"Action\": \"s3:PutObject\",\n      \"Resource\": [\n        \"arn:aws:s3:::my-policy-bucket/*\",\n        \"arn:aws:s3:::my-policy-bucket\"\n      ]\n    }\n  ]\n}\n\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var storageBucket = new Yandex.StorageBucket(\"storageBucket\", new Yandex.StorageBucketArgs\n        {\n            Bucket = \"my-policy-bucket\",\n            Policy = @\"{\n  \"\"Version\"\": \"\"2012-10-17\"\",\n  \"\"Statement\"\": [\n    {\n      \"\"Effect\"\": \"\"Allow\"\",\n      \"\"Principal\"\": \"\"*\"\",\n      \"\"Action\"\": \"\"s3:*\"\",\n      \"\"Resource\"\": [\n        \"\"arn:aws:s3:::my-policy-bucket/*\"\",\n        \"\"arn:aws:s3:::my-policy-bucket\"\"\n      ]\n    },\n    {\n      \"\"Effect\"\": \"\"Deny\"\",\n      \"\"Principal\"\": \"\"*\"\",\n      \"\"Action\"\": \"\"s3:PutObject\"\",\n      \"\"Resource\"\": [\n        \"\"arn:aws:s3:::my-policy-bucket/*\"\",\n        \"\"arn:aws:s3:::my-policy-bucket\"\"\n      ]\n    }\n  ]\n}\n\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewStorageBucket(ctx, \"storageBucket\", &yandex.StorageBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-policy-bucket\"),\n\t\t\tPolicy: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \"  \\\"Version\\\": \\\"2012-10-17\\\",\\n\", \"  \\\"Statement\\\": [\\n\", \"    {\\n\", \"      \\\"Effect\\\": \\\"Allow\\\",\\n\", \"      \\\"Principal\\\": \\\"*\\\",\\n\", \"      \\\"Action\\\": \\\"s3:*\\\",\\n\", \"      \\\"Resource\\\": [\\n\", \"        \\\"arn:aws:s3:::my-policy-bucket/*\\\",\\n\", \"        \\\"arn:aws:s3:::my-policy-bucket\\\"\\n\", \"      ]\\n\", \"    },\\n\", \"    {\\n\", \"      \\\"Effect\\\": \\\"Deny\\\",\\n\", \"      \\\"Principal\\\": \\\"*\\\",\\n\", \"      \\\"Action\\\": \\\"s3:PutObject\\\",\\n\", \"      \\\"Resource\\\": [\\n\", \"        \\\"arn:aws:s3:::my-policy-bucket/*\\\",\\n\", \"        \\\"arn:aws:s3:::my-policy-bucket\\\"\\n\", \"      ]\\n\", \"    }\\n\", \"  ]\\n\", \"}\\n\", \"\\n\")),\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{{% /example %}}\n{{% example %}}\n### All settings example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst logBucket = new yandex.StorageBucket(\"logBucket\", {\n    bucket: \"my-tf-log-bucket\",\n    lifecycleRules: [{\n        id: \"cleanupoldlogs\",\n        enabled: true,\n        expiration: {\n            days: 365,\n        },\n    }],\n});\nconst key_a = new yandex.KmsSymmetricKey(\"key-a\", {\n    description: \"description for key\",\n    defaultAlgorithm: \"AES_128\",\n    rotationPeriod: \"8760h\",\n});\n// equal to 1 year\nconst allSettings = new yandex.StorageBucket(\"allSettings\", {\n    bucket: \"example-tf-settings-bucket\",\n    website: {\n        indexDocument: \"index.html\",\n        errorDocument: \"error.html\",\n    },\n    lifecycleRules: [\n        {\n            id: \"test\",\n            enabled: true,\n            prefix: \"prefix/\",\n            expiration: {\n                days: 30,\n            },\n        },\n        {\n            id: \"log\",\n            enabled: true,\n            prefix: \"log/\",\n            transitions: [{\n                days: 30,\n                storageClass: \"COLD\",\n            }],\n            expiration: {\n                days: 90,\n            },\n        },\n        {\n            id: \"everything180\",\n            prefix: \"\",\n            enabled: true,\n            expiration: {\n                days: 180,\n            },\n        },\n        {\n            id: \"cleanupoldversions\",\n            prefix: \"config/\",\n            enabled: true,\n            noncurrentVersionTransitions: [{\n                days: 30,\n                storageClass: \"COLD\",\n            }],\n            noncurrentVersionExpiration: {\n                days: 90,\n            },\n        },\n        {\n            id: \"abortmultiparts\",\n            prefix: \"\",\n            enabled: true,\n            abortIncompleteMultipartUploadDays: 7,\n        },\n    ],\n    corsRules: [{\n        allowedHeaders: [\"*\"],\n        allowedMethods: [\n            \"GET\",\n            \"PUT\",\n        ],\n        allowedOrigins: [\"https://storage-cloud.example.com\"],\n        exposeHeaders: [\"ETag\"],\n        maxAgeSeconds: 3000,\n    }],\n    versioning: {\n        enabled: true,\n    },\n    serverSideEncryptionConfiguration: {\n        rule: {\n            applyServerSideEncryptionByDefault: {\n                kmsMasterKeyId: key_a.id,\n                sseAlgorithm: \"aws:kms\",\n            },\n        },\n    },\n    loggings: [{\n        targetBucket: logBucket.id,\n        targetPrefix: \"tf-logs/\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nlog_bucket = yandex.StorageBucket(\"logBucket\",\n    bucket=\"my-tf-log-bucket\",\n    lifecycle_rules=[yandex.StorageBucketLifecycleRuleArgs(\n        id=\"cleanupoldlogs\",\n        enabled=True,\n        expiration=yandex.StorageBucketLifecycleRuleExpirationArgs(\n            days=365,\n        ),\n    )])\nkey_a = yandex.KmsSymmetricKey(\"key-a\",\n    description=\"description for key\",\n    default_algorithm=\"AES_128\",\n    rotation_period=\"8760h\")\n# equal to 1 year\nall_settings = yandex.StorageBucket(\"allSettings\",\n    bucket=\"example-tf-settings-bucket\",\n    website=yandex.StorageBucketWebsiteArgs(\n        index_document=\"index.html\",\n        error_document=\"error.html\",\n    ),\n    lifecycle_rules=[\n        yandex.StorageBucketLifecycleRuleArgs(\n            id=\"test\",\n            enabled=True,\n            prefix=\"prefix/\",\n            expiration=yandex.StorageBucketLifecycleRuleExpirationArgs(\n                days=30,\n            ),\n        ),\n        yandex.StorageBucketLifecycleRuleArgs(\n            id=\"log\",\n            enabled=True,\n            prefix=\"log/\",\n            transitions=[yandex.StorageBucketLifecycleRuleTransitionArgs(\n                days=30,\n                storage_class=\"COLD\",\n            )],\n            expiration=yandex.StorageBucketLifecycleRuleExpirationArgs(\n                days=90,\n            ),\n        ),\n        yandex.StorageBucketLifecycleRuleArgs(\n            id=\"everything180\",\n            prefix=\"\",\n            enabled=True,\n            expiration=yandex.StorageBucketLifecycleRuleExpirationArgs(\n                days=180,\n            ),\n        ),\n        yandex.StorageBucketLifecycleRuleArgs(\n            id=\"cleanupoldversions\",\n            prefix=\"config/\",\n            enabled=True,\n            noncurrent_version_transitions=[yandex.StorageBucketLifecycleRuleNoncurrentVersionTransitionArgs(\n                days=30,\n                storage_class=\"COLD\",\n            )],\n            noncurrent_version_expiration=yandex.StorageBucketLifecycleRuleNoncurrentVersionExpirationArgs(\n                days=90,\n            ),\n        ),\n        yandex.StorageBucketLifecycleRuleArgs(\n            id=\"abortmultiparts\",\n            prefix=\"\",\n            enabled=True,\n            abort_incomplete_multipart_upload_days=7,\n        ),\n    ],\n    cors_rules=[yandex.StorageBucketCorsRuleArgs(\n        allowed_headers=[\"*\"],\n        allowed_methods=[\n            \"GET\",\n            \"PUT\",\n        ],\n        allowed_origins=[\"https://storage-cloud.example.com\"],\n        expose_headers=[\"ETag\"],\n        max_age_seconds=3000,\n    )],\n    versioning=yandex.StorageBucketVersioningArgs(\n        enabled=True,\n    ),\n    server_side_encryption_configuration=yandex.StorageBucketServerSideEncryptionConfigurationArgs(\n        rule=yandex.StorageBucketServerSideEncryptionConfigurationRuleArgs(\n            apply_server_side_encryption_by_default=yandex.StorageBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs(\n                kms_master_key_id=key_a.id,\n                sse_algorithm=\"aws:kms\",\n            ),\n        ),\n    ),\n    loggings=[yandex.StorageBucketLoggingArgs(\n        target_bucket=log_bucket.id,\n        target_prefix=\"tf-logs/\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var logBucket = new Yandex.StorageBucket(\"logBucket\", new Yandex.StorageBucketArgs\n        {\n            Bucket = \"my-tf-log-bucket\",\n            LifecycleRules = \n            {\n                new Yandex.Inputs.StorageBucketLifecycleRuleArgs\n                {\n                    Id = \"cleanupoldlogs\",\n                    Enabled = true,\n                    Expiration = new Yandex.Inputs.StorageBucketLifecycleRuleExpirationArgs\n                    {\n                        Days = 365,\n                    },\n                },\n            },\n        });\n        var key_a = new Yandex.KmsSymmetricKey(\"key-a\", new Yandex.KmsSymmetricKeyArgs\n        {\n            Description = \"description for key\",\n            DefaultAlgorithm = \"AES_128\",\n            RotationPeriod = \"8760h\",\n        });\n        // equal to 1 year\n        var allSettings = new Yandex.StorageBucket(\"allSettings\", new Yandex.StorageBucketArgs\n        {\n            Bucket = \"example-tf-settings-bucket\",\n            Website = new Yandex.Inputs.StorageBucketWebsiteArgs\n            {\n                IndexDocument = \"index.html\",\n                ErrorDocument = \"error.html\",\n            },\n            LifecycleRules = \n            {\n                new Yandex.Inputs.StorageBucketLifecycleRuleArgs\n                {\n                    Id = \"test\",\n                    Enabled = true,\n                    Prefix = \"prefix/\",\n                    Expiration = new Yandex.Inputs.StorageBucketLifecycleRuleExpirationArgs\n                    {\n                        Days = 30,\n                    },\n                },\n                new Yandex.Inputs.StorageBucketLifecycleRuleArgs\n                {\n                    Id = \"log\",\n                    Enabled = true,\n                    Prefix = \"log/\",\n                    Transitions = \n                    {\n                        new Yandex.Inputs.StorageBucketLifecycleRuleTransitionArgs\n                        {\n                            Days = 30,\n                            StorageClass = \"COLD\",\n                        },\n                    },\n                    Expiration = new Yandex.Inputs.StorageBucketLifecycleRuleExpirationArgs\n                    {\n                        Days = 90,\n                    },\n                },\n                new Yandex.Inputs.StorageBucketLifecycleRuleArgs\n                {\n                    Id = \"everything180\",\n                    Prefix = \"\",\n                    Enabled = true,\n                    Expiration = new Yandex.Inputs.StorageBucketLifecycleRuleExpirationArgs\n                    {\n                        Days = 180,\n                    },\n                },\n                new Yandex.Inputs.StorageBucketLifecycleRuleArgs\n                {\n                    Id = \"cleanupoldversions\",\n                    Prefix = \"config/\",\n                    Enabled = true,\n                    NoncurrentVersionTransitions = \n                    {\n                        new Yandex.Inputs.StorageBucketLifecycleRuleNoncurrentVersionTransitionArgs\n                        {\n                            Days = 30,\n                            StorageClass = \"COLD\",\n                        },\n                    },\n                    NoncurrentVersionExpiration = new Yandex.Inputs.StorageBucketLifecycleRuleNoncurrentVersionExpirationArgs\n                    {\n                        Days = 90,\n                    },\n                },\n                new Yandex.Inputs.StorageBucketLifecycleRuleArgs\n                {\n                    Id = \"abortmultiparts\",\n                    Prefix = \"\",\n                    Enabled = true,\n                    AbortIncompleteMultipartUploadDays = 7,\n                },\n            },\n            CorsRules = \n            {\n                new Yandex.Inputs.StorageBucketCorsRuleArgs\n                {\n                    AllowedHeaders = \n                    {\n                        \"*\",\n                    },\n                    AllowedMethods = \n                    {\n                        \"GET\",\n                        \"PUT\",\n                    },\n                    AllowedOrigins = \n                    {\n                        \"https://storage-cloud.example.com\",\n                    },\n                    ExposeHeaders = \n                    {\n                        \"ETag\",\n                    },\n                    MaxAgeSeconds = 3000,\n                },\n            },\n            Versioning = new Yandex.Inputs.StorageBucketVersioningArgs\n            {\n                Enabled = true,\n            },\n            ServerSideEncryptionConfiguration = new Yandex.Inputs.StorageBucketServerSideEncryptionConfigurationArgs\n            {\n                Rule = new Yandex.Inputs.StorageBucketServerSideEncryptionConfigurationRuleArgs\n                {\n                    ApplyServerSideEncryptionByDefault = new Yandex.Inputs.StorageBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs\n                    {\n                        KmsMasterKeyId = key_a.Id,\n                        SseAlgorithm = \"aws:kms\",\n                    },\n                },\n            },\n            Loggings = \n            {\n                new Yandex.Inputs.StorageBucketLoggingArgs\n                {\n                    TargetBucket = logBucket.Id,\n                    TargetPrefix = \"tf-logs/\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlogBucket, err := yandex.NewStorageBucket(ctx, \"logBucket\", &yandex.StorageBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-log-bucket\"),\n\t\t\tLifecycleRules: StorageBucketLifecycleRuleArray{\n\t\t\t\t&StorageBucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"cleanupoldlogs\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpiration: &StorageBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(365),\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 = yandex.NewKmsSymmetricKey(ctx, \"key-a\", &yandex.KmsSymmetricKeyArgs{\n\t\t\tDescription:      pulumi.String(\"description for key\"),\n\t\t\tDefaultAlgorithm: pulumi.String(\"AES_128\"),\n\t\t\tRotationPeriod:   pulumi.String(\"8760h\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewStorageBucket(ctx, \"allSettings\", &yandex.StorageBucketArgs{\n\t\t\tBucket: pulumi.String(\"example-tf-settings-bucket\"),\n\t\t\tWebsite: &StorageBucketWebsiteArgs{\n\t\t\t\tIndexDocument: pulumi.String(\"index.html\"),\n\t\t\t\tErrorDocument: pulumi.String(\"error.html\"),\n\t\t\t},\n\t\t\tLifecycleRules: StorageBucketLifecycleRuleArray{\n\t\t\t\t&StorageBucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"test\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tPrefix:  pulumi.String(\"prefix/\"),\n\t\t\t\t\tExpiration: &StorageBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(30),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&StorageBucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"log\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tPrefix:  pulumi.String(\"log/\"),\n\t\t\t\t\tTransitions: StorageBucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t&StorageBucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Int(30),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"COLD\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tExpiration: &StorageBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(90),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&StorageBucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"everything180\"),\n\t\t\t\t\tPrefix:  pulumi.String(\"\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpiration: &StorageBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(180),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&StorageBucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"cleanupoldversions\"),\n\t\t\t\t\tPrefix:  pulumi.String(\"config/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tNoncurrentVersionTransitions: StorageBucketLifecycleRuleNoncurrentVersionTransitionArray{\n\t\t\t\t\t\t&StorageBucketLifecycleRuleNoncurrentVersionTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Int(30),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"COLD\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNoncurrentVersionExpiration: &StorageBucketLifecycleRuleNoncurrentVersionExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(90),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&StorageBucketLifecycleRuleArgs{\n\t\t\t\t\tId:                                 pulumi.String(\"abortmultiparts\"),\n\t\t\t\t\tPrefix:                             pulumi.String(\"\"),\n\t\t\t\t\tEnabled:                            pulumi.Bool(true),\n\t\t\t\t\tAbortIncompleteMultipartUploadDays: pulumi.Int(7),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCorsRules: StorageBucketCorsRuleArray{\n\t\t\t\t&StorageBucketCorsRuleArgs{\n\t\t\t\t\tAllowedHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"PUT\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedOrigins: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"https://storage-cloud.example.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tExposeHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ETag\"),\n\t\t\t\t\t},\n\t\t\t\t\tMaxAgeSeconds: pulumi.Int(3000),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVersioning: &StorageBucketVersioningArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t\tServerSideEncryptionConfiguration: &StorageBucketServerSideEncryptionConfigurationArgs{\n\t\t\t\tRule: &StorageBucketServerSideEncryptionConfigurationRuleArgs{\n\t\t\t\t\tApplyServerSideEncryptionByDefault: &StorageBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs{\n\t\t\t\t\t\tKmsMasterKeyId: key_a.ID(),\n\t\t\t\t\t\tSseAlgorithm:   pulumi.String(\"aws:kms\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoggings: StorageBucketLoggingArray{\n\t\t\t\t&StorageBucketLoggingArgs{\n\t\t\t\t\tTargetBucket: logBucket.ID(),\n\t\t\t\t\tTargetPrefix: pulumi.String(\"tf-logs/\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage bucket can be imported using the `bucket`, e.g.\n\n```sh\n $ pulumi import yandex:index/storageBucket:StorageBucket bucket bucket-name\n```\n\n `false` in state. If you've set it to `true` in config, run `terraform apply` to update the value set in state. If you delete this resource before updating the value, objects in the bucket will not be destroyed. ",
      "properties": {
        "accessKey": {
          "type": "string",
          "description": "The access key to use when applying changes. If omitted, `storage_access_key` specified in provider config is used.\n"
        },
        "acl": {
          "type": "string",
          "description": "The [predefined ACL](https://cloud.yandex.com/docs/storage/concepts/acl#predefined_acls) to apply. Defaults to `private`. Conflicts with `grant`.\n"
        },
        "bucket": {
          "type": "string"
        },
        "bucketDomainName": {
          "type": "string",
          "description": "The bucket domain name.\n"
        },
        "bucketPrefix": {
          "type": "string",
          "description": "Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`.\n"
        },
        "corsRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FStorageBucketCorsRule:StorageBucketCorsRule"
          },
          "description": "A rule of [Cross-Origin Resource Sharing](https://cloud.yandex.com/docs/storage/cors/) (documented below).\n"
        },
        "forceDestroy": {
          "type": "boolean",
          "description": "A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable.\n"
        },
        "grants": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FStorageBucketGrant:StorageBucketGrant"
          },
          "description": "An [ACL policy grant](https://cloud.yandex.com/docs/storage/concepts/acl#permissions-types). Conflicts with `acl`.\n"
        },
        "lifecycleRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FStorageBucketLifecycleRule:StorageBucketLifecycleRule"
          },
          "description": "A configuration of [object lifecycle management](https://cloud.yandex.com/docs/storage/concepts/lifecycles) (documented below).\n"
        },
        "loggings": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FStorageBucketLogging:StorageBucketLogging"
          },
          "description": "A settings of [bucket logging](https://cloud.yandex.com/docs/storage/concepts/server-logs) (documented below).\n"
        },
        "policy": {
          "type": "string"
        },
        "secretKey": {
          "type": "string",
          "description": "The secret key to use when applying changes. If omitted, `storage_secret_key` specified in provider config is used.\n"
        },
        "serverSideEncryptionConfiguration": {
          "$ref": "#/types/yandex:index%2FStorageBucketServerSideEncryptionConfiguration:StorageBucketServerSideEncryptionConfiguration",
          "description": "A configuration of server-side encryption for the bucket (documented below)\n"
        },
        "versioning": {
          "$ref": "#/types/yandex:index%2FStorageBucketVersioning:StorageBucketVersioning",
          "description": "A state of [versioning](https://cloud.yandex.com/docs/storage/concepts/versioning) (documented below)\n"
        },
        "website": {
          "$ref": "#/types/yandex:index%2FStorageBucketWebsite:StorageBucketWebsite",
          "description": "A [website object](https://cloud.yandex.com/docs/storage/concepts/hosting) (documented below).\n"
        },
        "websiteDomain": {
          "type": "string",
          "description": "The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string.\n"
        },
        "websiteEndpoint": {
          "type": "string",
          "description": "The website endpoint, if the bucket is configured with a website. If not, this will be an empty string.\n"
        }
      },
      "type": "object",
      "required": [
        "bucket",
        "bucketDomainName",
        "versioning",
        "websiteDomain",
        "websiteEndpoint"
      ],
      "inputProperties": {
        "accessKey": {
          "type": "string",
          "description": "The access key to use when applying changes. If omitted, `storage_access_key` specified in provider config is used.\n"
        },
        "acl": {
          "type": "string",
          "description": "The [predefined ACL](https://cloud.yandex.com/docs/storage/concepts/acl#predefined_acls) to apply. Defaults to `private`. Conflicts with `grant`.\n"
        },
        "bucket": {
          "type": "string"
        },
        "bucketPrefix": {
          "type": "string",
          "description": "Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`.\n"
        },
        "corsRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FStorageBucketCorsRule:StorageBucketCorsRule"
          },
          "description": "A rule of [Cross-Origin Resource Sharing](https://cloud.yandex.com/docs/storage/cors/) (documented below).\n"
        },
        "forceDestroy": {
          "type": "boolean",
          "description": "A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable.\n"
        },
        "grants": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FStorageBucketGrant:StorageBucketGrant"
          },
          "description": "An [ACL policy grant](https://cloud.yandex.com/docs/storage/concepts/acl#permissions-types). Conflicts with `acl`.\n"
        },
        "lifecycleRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FStorageBucketLifecycleRule:StorageBucketLifecycleRule"
          },
          "description": "A configuration of [object lifecycle management](https://cloud.yandex.com/docs/storage/concepts/lifecycles) (documented below).\n"
        },
        "loggings": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FStorageBucketLogging:StorageBucketLogging"
          },
          "description": "A settings of [bucket logging](https://cloud.yandex.com/docs/storage/concepts/server-logs) (documented below).\n"
        },
        "policy": {
          "type": "string"
        },
        "secretKey": {
          "type": "string",
          "description": "The secret key to use when applying changes. If omitted, `storage_secret_key` specified in provider config is used.\n"
        },
        "serverSideEncryptionConfiguration": {
          "$ref": "#/types/yandex:index%2FStorageBucketServerSideEncryptionConfiguration:StorageBucketServerSideEncryptionConfiguration",
          "description": "A configuration of server-side encryption for the bucket (documented below)\n"
        },
        "versioning": {
          "$ref": "#/types/yandex:index%2FStorageBucketVersioning:StorageBucketVersioning",
          "description": "A state of [versioning](https://cloud.yandex.com/docs/storage/concepts/versioning) (documented below)\n"
        },
        "website": {
          "$ref": "#/types/yandex:index%2FStorageBucketWebsite:StorageBucketWebsite",
          "description": "A [website object](https://cloud.yandex.com/docs/storage/concepts/hosting) (documented below).\n"
        },
        "websiteDomain": {
          "type": "string",
          "description": "The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string.\n"
        },
        "websiteEndpoint": {
          "type": "string",
          "description": "The website endpoint, if the bucket is configured with a website. If not, this will be an empty string.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StorageBucket resources.\n",
        "properties": {
          "accessKey": {
            "type": "string",
            "description": "The access key to use when applying changes. If omitted, `storage_access_key` specified in provider config is used.\n"
          },
          "acl": {
            "type": "string",
            "description": "The [predefined ACL](https://cloud.yandex.com/docs/storage/concepts/acl#predefined_acls) to apply. Defaults to `private`. Conflicts with `grant`.\n"
          },
          "bucket": {
            "type": "string"
          },
          "bucketDomainName": {
            "type": "string",
            "description": "The bucket domain name.\n"
          },
          "bucketPrefix": {
            "type": "string",
            "description": "Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`.\n"
          },
          "corsRules": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FStorageBucketCorsRule:StorageBucketCorsRule"
            },
            "description": "A rule of [Cross-Origin Resource Sharing](https://cloud.yandex.com/docs/storage/cors/) (documented below).\n"
          },
          "forceDestroy": {
            "type": "boolean",
            "description": "A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable.\n"
          },
          "grants": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FStorageBucketGrant:StorageBucketGrant"
            },
            "description": "An [ACL policy grant](https://cloud.yandex.com/docs/storage/concepts/acl#permissions-types). Conflicts with `acl`.\n"
          },
          "lifecycleRules": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FStorageBucketLifecycleRule:StorageBucketLifecycleRule"
            },
            "description": "A configuration of [object lifecycle management](https://cloud.yandex.com/docs/storage/concepts/lifecycles) (documented below).\n"
          },
          "loggings": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FStorageBucketLogging:StorageBucketLogging"
            },
            "description": "A settings of [bucket logging](https://cloud.yandex.com/docs/storage/concepts/server-logs) (documented below).\n"
          },
          "policy": {
            "type": "string"
          },
          "secretKey": {
            "type": "string",
            "description": "The secret key to use when applying changes. If omitted, `storage_secret_key` specified in provider config is used.\n"
          },
          "serverSideEncryptionConfiguration": {
            "$ref": "#/types/yandex:index%2FStorageBucketServerSideEncryptionConfiguration:StorageBucketServerSideEncryptionConfiguration",
            "description": "A configuration of server-side encryption for the bucket (documented below)\n"
          },
          "versioning": {
            "$ref": "#/types/yandex:index%2FStorageBucketVersioning:StorageBucketVersioning",
            "description": "A state of [versioning](https://cloud.yandex.com/docs/storage/concepts/versioning) (documented below)\n"
          },
          "website": {
            "$ref": "#/types/yandex:index%2FStorageBucketWebsite:StorageBucketWebsite",
            "description": "A [website object](https://cloud.yandex.com/docs/storage/concepts/hosting) (documented below).\n"
          },
          "websiteDomain": {
            "type": "string",
            "description": "The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string.\n"
          },
          "websiteEndpoint": {
            "type": "string",
            "description": "The website endpoint, if the bucket is configured with a website. If not, this will be an empty string.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/storageObject:StorageObject": {
      "description": "Allows management of [Yandex.Cloud Storage Object](https://cloud.yandex.com/docs/storage/concepts/object).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nExample creating an object in an existing `cat-pictures` bucket.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst cute_cat_picture = new yandex.StorageObject(\"cute-cat-picture\", {\n    bucket: \"cat-pictures\",\n    key: \"cute-cat\",\n    source: \"/images/cats/cute-cat.jpg\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ncute_cat_picture = yandex.StorageObject(\"cute-cat-picture\",\n    bucket=\"cat-pictures\",\n    key=\"cute-cat\",\n    source=\"/images/cats/cute-cat.jpg\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var cute_cat_picture = new Yandex.StorageObject(\"cute-cat-picture\", new Yandex.StorageObjectArgs\n        {\n            Bucket = \"cat-pictures\",\n            Key = \"cute-cat\",\n            Source = \"/images/cats/cute-cat.jpg\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewStorageObject(ctx, \"cute-cat-picture\", &yandex.StorageObjectArgs{\n\t\t\tBucket: pulumi.String(\"cat-pictures\"),\n\t\t\tKey:    pulumi.String(\"cute-cat\"),\n\t\t\tSource: pulumi.String(\"/images/cats/cute-cat.jpg\"),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "accessKey": {
          "type": "string",
          "description": "The access key to use when applying changes. If omitted, `storage_access_key` specified in config is used.\n"
        },
        "acl": {
          "type": "string",
          "description": "The [predefined ACL](https://cloud.yandex.com/docs/storage/concepts/acl#predefined_acls) to apply. Defaults to `private`.\n"
        },
        "bucket": {
          "type": "string",
          "description": "The name of the containing bucket.\n"
        },
        "content": {
          "type": "string",
          "description": "Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text.\n"
        },
        "contentBase64": {
          "type": "string",
          "description": "Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file.\n"
        },
        "contentType": {
          "type": "string",
          "description": "A standard MIME type describing the format of the object data, e.g. `application/octet-stream`. All Valid MIME Types are valid for this input.\n"
        },
        "key": {
          "type": "string",
          "description": "The name of the object once it is in the bucket.\n"
        },
        "secretKey": {
          "type": "string",
          "description": "The secret key to use when applying changes. If omitted, `storage_secret_key` specified in config is used.\n"
        },
        "source": {
          "type": "string",
          "description": "The path to a file that will be read and uploaded as raw bytes for the object content.\n"
        }
      },
      "type": "object",
      "required": [
        "bucket",
        "contentType",
        "key"
      ],
      "inputProperties": {
        "accessKey": {
          "type": "string",
          "description": "The access key to use when applying changes. If omitted, `storage_access_key` specified in config is used.\n"
        },
        "acl": {
          "type": "string",
          "description": "The [predefined ACL](https://cloud.yandex.com/docs/storage/concepts/acl#predefined_acls) to apply. Defaults to `private`.\n"
        },
        "bucket": {
          "type": "string",
          "description": "The name of the containing bucket.\n"
        },
        "content": {
          "type": "string",
          "description": "Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text.\n"
        },
        "contentBase64": {
          "type": "string",
          "description": "Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file.\n"
        },
        "contentType": {
          "type": "string",
          "description": "A standard MIME type describing the format of the object data, e.g. `application/octet-stream`. All Valid MIME Types are valid for this input.\n"
        },
        "key": {
          "type": "string",
          "description": "The name of the object once it is in the bucket.\n"
        },
        "secretKey": {
          "type": "string",
          "description": "The secret key to use when applying changes. If omitted, `storage_secret_key` specified in config is used.\n"
        },
        "source": {
          "type": "string",
          "description": "The path to a file that will be read and uploaded as raw bytes for the object content.\n"
        }
      },
      "requiredInputs": [
        "bucket",
        "key"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StorageObject resources.\n",
        "properties": {
          "accessKey": {
            "type": "string",
            "description": "The access key to use when applying changes. If omitted, `storage_access_key` specified in config is used.\n"
          },
          "acl": {
            "type": "string",
            "description": "The [predefined ACL](https://cloud.yandex.com/docs/storage/concepts/acl#predefined_acls) to apply. Defaults to `private`.\n"
          },
          "bucket": {
            "type": "string",
            "description": "The name of the containing bucket.\n"
          },
          "content": {
            "type": "string",
            "description": "Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text.\n"
          },
          "contentBase64": {
            "type": "string",
            "description": "Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file.\n"
          },
          "contentType": {
            "type": "string",
            "description": "A standard MIME type describing the format of the object data, e.g. `application/octet-stream`. All Valid MIME Types are valid for this input.\n"
          },
          "key": {
            "type": "string",
            "description": "The name of the object once it is in the bucket.\n"
          },
          "secretKey": {
            "type": "string",
            "description": "The secret key to use when applying changes. If omitted, `storage_secret_key` specified in config is used.\n"
          },
          "source": {
            "type": "string",
            "description": "The path to a file that will be read and uploaded as raw bytes for the object content.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/vpcAddress:VpcAddress": {
      "description": "Manages a address within the Yandex.Cloud. You can only create a reserved (static) address via this resource. An ephemeral address could be obtained via implicit creation at a compute instance creation only. For more information, see [the official documentation](https://cloud.yandex.com/docs/vpc/concepts/address).\n\n* How-to Guides\n    * [Cloud Networking](https://cloud.yandex.com/docs/vpc/)\n    * [VPC Addressing](https://cloud.yandex.com/docs/vpc/concepts/address)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### External ipv4 address\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst addr = new yandex.VpcAddress(\"addr\", {\n    externalIpv4Address: {\n        zoneId: \"ru-central1-a\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\naddr = yandex.VpcAddress(\"addr\", external_ipv4_address=yandex.VpcAddressExternalIpv4AddressArgs(\n    zone_id=\"ru-central1-a\",\n))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var addr = new Yandex.VpcAddress(\"addr\", new Yandex.VpcAddressArgs\n        {\n            ExternalIpv4Address = new Yandex.Inputs.VpcAddressExternalIpv4AddressArgs\n            {\n                ZoneId = \"ru-central1-a\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewVpcAddress(ctx, \"addr\", &yandex.VpcAddressArgs{\n\t\t\tExternalIpv4Address: &VpcAddressExternalIpv4AddressArgs{\n\t\t\t\tZoneId: pulumi.String(\"ru-central1-a\"),\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{{% /example %}}\n{{% example %}}\n### Address with DDoS protection\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst vpnaddr = new yandex.VpcAddress(\"vpnaddr\", {\n    externalIpv4Address: {\n        ddosProtectionProvider: \"qrator\",\n        zoneId: \"ru-central1-a\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nvpnaddr = yandex.VpcAddress(\"vpnaddr\", external_ipv4_address=yandex.VpcAddressExternalIpv4AddressArgs(\n    ddos_protection_provider=\"qrator\",\n    zone_id=\"ru-central1-a\",\n))\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var vpnaddr = new Yandex.VpcAddress(\"vpnaddr\", new Yandex.VpcAddressArgs\n        {\n            ExternalIpv4Address = new Yandex.Inputs.VpcAddressExternalIpv4AddressArgs\n            {\n                DdosProtectionProvider = \"qrator\",\n                ZoneId = \"ru-central1-a\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewVpcAddress(ctx, \"vpnaddr\", &yandex.VpcAddressArgs{\n\t\t\tExternalIpv4Address: &VpcAddressExternalIpv4AddressArgs{\n\t\t\t\tDdosProtectionProvider: pulumi.String(\"qrator\"),\n\t\t\t\tZoneId:                 pulumi.String(\"ru-central1-a\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA address can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/vpcAddress:VpcAddress addr address_id\n```\n\n ",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the key.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when\nyou create the resource.\n"
        },
        "externalIpv4Address": {
          "$ref": "#/types/yandex:index%2FVpcAddressExternalIpv4Address:VpcAddressExternalIpv4Address",
          "description": "spec of IP v4 address\n---\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to apply to this resource. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the address. Provided by the client when the address is created.\n"
        },
        "reserved": {
          "type": "boolean",
          "description": "`false` means that address is ephemeral.\n"
        },
        "used": {
          "type": "boolean",
          "description": "`true` if address is used.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "labels",
        "name",
        "reserved",
        "used"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when\nyou create the resource.\n"
        },
        "externalIpv4Address": {
          "$ref": "#/types/yandex:index%2FVpcAddressExternalIpv4Address:VpcAddressExternalIpv4Address",
          "description": "spec of IP v4 address\n---\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to apply to this resource. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the address. Provided by the client when the address is created.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcAddress resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the key.\n"
          },
          "description": {
            "type": "string",
            "description": "An optional description of this resource. Provide this property when\nyou create the resource.\n"
          },
          "externalIpv4Address": {
            "$ref": "#/types/yandex:index%2FVpcAddressExternalIpv4Address:VpcAddressExternalIpv4Address",
            "description": "spec of IP v4 address\n---\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to apply to this resource. A list of key/value pairs.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the address. Provided by the client when the address is created.\n"
          },
          "reserved": {
            "type": "boolean",
            "description": "`false` means that address is ephemeral.\n"
          },
          "used": {
            "type": "boolean",
            "description": "`true` if address is used.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/vpcDefaultSecurityGroup:VpcDefaultSecurityGroup": {
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of this security group.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the security group.\n"
        },
        "egresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FVpcDefaultSecurityGroupEgress:VpcDefaultSecurityGroupEgress"
          },
          "description": "A list of egress rules. The structure is documented below.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder this security group belongs to.\n"
        },
        "ingresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FVpcDefaultSecurityGroupIngress:VpcDefaultSecurityGroupIngress"
          },
          "description": "A list of ingress rules.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this security group.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of this security group.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network this security group belongs to.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of this security group.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "egresses",
        "folderId",
        "ingresses",
        "labels",
        "name",
        "networkId",
        "status"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the security group.\n"
        },
        "egresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FVpcDefaultSecurityGroupEgress:VpcDefaultSecurityGroupEgress"
          },
          "description": "A list of egress rules. The structure is documented below.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder this security group belongs to.\n"
        },
        "ingresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FVpcDefaultSecurityGroupIngress:VpcDefaultSecurityGroupIngress"
          },
          "description": "A list of ingress rules.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this security group.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network this security group belongs to.\n"
        }
      },
      "requiredInputs": [
        "networkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcDefaultSecurityGroup resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of this security group.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the security group.\n"
          },
          "egresses": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FVpcDefaultSecurityGroupEgress:VpcDefaultSecurityGroupEgress"
            },
            "description": "A list of egress rules. The structure is documented below.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder this security group belongs to.\n"
          },
          "ingresses": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FVpcDefaultSecurityGroupIngress:VpcDefaultSecurityGroupIngress"
            },
            "description": "A list of ingress rules.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this security group.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of this security group.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network this security group belongs to.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of this security group.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/vpcNetwork:VpcNetwork": {
      "description": "Manages a network within the Yandex.Cloud. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/vpc/concepts/network#network).\n\n* How-to Guides\n    * [Cloud Networking](https://cloud.yandex.com/docs/vpc/)\n    * [VPC Addressing](https://cloud.yandex.com/docs/vpc/concepts/address)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst defaultVpcNetwork = new yandex.VpcNetwork(\"default\", {});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ndefault = yandex.VpcNetwork(\"default\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var @default = new Yandex.VpcNetwork(\"default\", new Yandex.VpcNetworkArgs\n        {\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewVpcNetwork(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA network can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/vpcNetwork:VpcNetwork default network_id\n```\n\n ",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the key.\n"
        },
        "defaultSecurityGroupId": {
          "type": "string",
          "description": "ID of default Security Group of this network.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when\nyou create the resource.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to apply to this network. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the network. Provided by the client when the network is created.\n"
        },
        "subnetIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "defaultSecurityGroupId",
        "folderId",
        "labels",
        "name",
        "subnetIds"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when\nyou create the resource.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to apply to this network. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the network. Provided by the client when the network is created.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcNetwork resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the key.\n"
          },
          "defaultSecurityGroupId": {
            "type": "string",
            "description": "ID of default Security Group of this network.\n"
          },
          "description": {
            "type": "string",
            "description": "An optional description of this resource. Provide this property when\nyou create the resource.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder that the resource belongs to. If it\nis not provided, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to apply to this network. A list of key/value pairs.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the network. Provided by the client when the network is created.\n"
          },
          "subnetIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "type": "object"
      }
    },
    "yandex:index/vpcRouteTable:VpcRouteTable": {
      "description": "Manages a route table within the Yandex.Cloud. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/vpc/concepts).\n\n* How-to Guides\n    * [Cloud Networking](https://cloud.yandex.com/docs/vpc/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst lab_net = new yandex.VpcNetwork(\"lab-net\", {});\nconst lab_rt_a = new yandex.VpcRouteTable(\"lab-rt-a\", {\n    networkId: lab_net.id,\n    staticRoutes: [{\n        destinationPrefix: \"10.2.0.0/16\",\n        nextHopAddress: \"172.16.10.10\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nlab_net = yandex.VpcNetwork(\"lab-net\")\nlab_rt_a = yandex.VpcRouteTable(\"lab-rt-a\",\n    network_id=lab_net.id,\n    static_routes=[yandex.VpcRouteTableStaticRouteArgs(\n        destination_prefix=\"10.2.0.0/16\",\n        next_hop_address=\"172.16.10.10\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var lab_net = new Yandex.VpcNetwork(\"lab-net\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var lab_rt_a = new Yandex.VpcRouteTable(\"lab-rt-a\", new Yandex.VpcRouteTableArgs\n        {\n            NetworkId = lab_net.Id,\n            StaticRoutes = \n            {\n                new Yandex.Inputs.VpcRouteTableStaticRouteArgs\n                {\n                    DestinationPrefix = \"10.2.0.0/16\",\n                    NextHopAddress = \"172.16.10.10\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewVpcNetwork(ctx, \"lab-net\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewVpcRouteTable(ctx, \"lab-rt-a\", &yandex.VpcRouteTableArgs{\n\t\t\tNetworkId: lab_net.ID(),\n\t\t\tStaticRoutes: VpcRouteTableStaticRouteArray{\n\t\t\t\t&VpcRouteTableStaticRouteArgs{\n\t\t\t\t\tDestinationPrefix: pulumi.String(\"10.2.0.0/16\"),\n\t\t\t\t\tNextHopAddress:    pulumi.String(\"172.16.10.10\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA route table can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/vpcRouteTable:VpcRouteTable default route_table_id\n```\n\n ",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of the route table.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description of the route table. Provide this property when\nyou create the resource.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this route table. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the route table. Provided by the client when the route table is created.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network this route table belongs to.\n"
        },
        "staticRoutes": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FVpcRouteTableStaticRoute:VpcRouteTableStaticRoute"
          },
          "description": "A list of static route records for the route table. The structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "labels",
        "name",
        "networkId"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "An optional description of the route table. Provide this property when\nyou create the resource.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this route table. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the route table. Provided by the client when the route table is created.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network this route table belongs to.\n"
        },
        "staticRoutes": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FVpcRouteTableStaticRoute:VpcRouteTableStaticRoute"
          },
          "description": "A list of static route records for the route table. The structure is documented below.\n"
        }
      },
      "requiredInputs": [
        "networkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcRouteTable resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of the route table.\n"
          },
          "description": {
            "type": "string",
            "description": "An optional description of the route table. Provide this property when\nyou create the resource.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this route table. A list of key/value pairs.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the route table. Provided by the client when the route table is created.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network this route table belongs to.\n"
          },
          "staticRoutes": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FVpcRouteTableStaticRoute:VpcRouteTableStaticRoute"
            },
            "description": "A list of static route records for the route table. The structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/vpcSecurityGroup:VpcSecurityGroup": {
      "description": "Manages a Security Group within the Yandex.Cloud. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/vpc/concepts/security-groups).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst lab_net = new yandex.VpcNetwork(\"lab-net\", {});\nconst group1 = new yandex.VpcSecurityGroup(\"group1\", {\n    description: \"description for my security group\",\n    egresses: [\n        {\n            description: \"rule2 description\",\n            fromPort: 8090,\n            protocol: \"ANY\",\n            toPort: 8099,\n            v4CidrBlocks: [\n                \"10.0.1.0/24\",\n                \"10.0.2.0/24\",\n            ],\n        },\n        {\n            description: \"rule3 description\",\n            fromPort: 8090,\n            protocol: \"UDP\",\n            toPort: 8099,\n            v4CidrBlocks: [\"10.0.1.0/24\"],\n        },\n    ],\n    ingresses: [{\n        description: \"rule1 description\",\n        port: 8080,\n        protocol: \"TCP\",\n        v4CidrBlocks: [\n            \"10.0.1.0/24\",\n            \"10.0.2.0/24\",\n        ],\n    }],\n    labels: {\n        \"my-label\": \"my-label-value\",\n    },\n    networkId: lab_net.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nlab_net = yandex.VpcNetwork(\"lab-net\")\ngroup1 = yandex.VpcSecurityGroup(\"group1\",\n    description=\"description for my security group\",\n    egresses=[\n        yandex.VpcSecurityGroupEgressArgs(\n            description=\"rule2 description\",\n            from_port=8090,\n            protocol=\"ANY\",\n            to_port=8099,\n            v4_cidr_blocks=[\n                \"10.0.1.0/24\",\n                \"10.0.2.0/24\",\n            ],\n        ),\n        yandex.VpcSecurityGroupEgressArgs(\n            description=\"rule3 description\",\n            from_port=8090,\n            protocol=\"UDP\",\n            to_port=8099,\n            v4_cidr_blocks=[\"10.0.1.0/24\"],\n        ),\n    ],\n    ingresses=[yandex.VpcSecurityGroupIngressArgs(\n        description=\"rule1 description\",\n        port=8080,\n        protocol=\"TCP\",\n        v4_cidr_blocks=[\n            \"10.0.1.0/24\",\n            \"10.0.2.0/24\",\n        ],\n    )],\n    labels={\n        \"my-label\": \"my-label-value\",\n    },\n    network_id=lab_net.id)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var lab_net = new Yandex.VpcNetwork(\"lab-net\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var group1 = new Yandex.VpcSecurityGroup(\"group1\", new Yandex.VpcSecurityGroupArgs\n        {\n            Description = \"description for my security group\",\n            Egresses = \n            {\n                new Yandex.Inputs.VpcSecurityGroupEgressArgs\n                {\n                    Description = \"rule2 description\",\n                    FromPort = 8090,\n                    Protocol = \"ANY\",\n                    ToPort = 8099,\n                    V4CidrBlocks = \n                    {\n                        \"10.0.1.0/24\",\n                        \"10.0.2.0/24\",\n                    },\n                },\n                new Yandex.Inputs.VpcSecurityGroupEgressArgs\n                {\n                    Description = \"rule3 description\",\n                    FromPort = 8090,\n                    Protocol = \"UDP\",\n                    ToPort = 8099,\n                    V4CidrBlocks = \n                    {\n                        \"10.0.1.0/24\",\n                    },\n                },\n            },\n            Ingresses = \n            {\n                new Yandex.Inputs.VpcSecurityGroupIngressArgs\n                {\n                    Description = \"rule1 description\",\n                    Port = 8080,\n                    Protocol = \"TCP\",\n                    V4CidrBlocks = \n                    {\n                        \"10.0.1.0/24\",\n                        \"10.0.2.0/24\",\n                    },\n                },\n            },\n            Labels = \n            {\n                { \"my-label\", \"my-label-value\" },\n            },\n            NetworkId = lab_net.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewVpcNetwork(ctx, \"lab-net\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewVpcSecurityGroup(ctx, \"group1\", &yandex.VpcSecurityGroupArgs{\n\t\t\tDescription: pulumi.String(\"description for my security group\"),\n\t\t\tEgresses: VpcSecurityGroupEgressArray{\n\t\t\t\t&VpcSecurityGroupEgressArgs{\n\t\t\t\t\tDescription: pulumi.String(\"rule2 description\"),\n\t\t\t\t\tFromPort:    pulumi.Int(8090),\n\t\t\t\t\tProtocol:    pulumi.String(\"ANY\"),\n\t\t\t\t\tToPort:      pulumi.Int(8099),\n\t\t\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&VpcSecurityGroupEgressArgs{\n\t\t\t\t\tDescription: pulumi.String(\"rule3 description\"),\n\t\t\t\t\tFromPort:    pulumi.Int(8090),\n\t\t\t\t\tProtocol:    pulumi.String(\"UDP\"),\n\t\t\t\t\tToPort:      pulumi.Int(8099),\n\t\t\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tIngresses: VpcSecurityGroupIngressArray{\n\t\t\t\t&VpcSecurityGroupIngressArgs{\n\t\t\t\t\tDescription: pulumi.String(\"rule1 description\"),\n\t\t\t\t\tPort:        pulumi.Int(8080),\n\t\t\t\t\tProtocol:    pulumi.String(\"TCP\"),\n\t\t\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"my-label\": pulumi.String(\"my-label-value\"),\n\t\t\t},\n\t\t\tNetworkId: lab_net.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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp of this security group.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the security group.\n"
        },
        "egresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FVpcSecurityGroupEgress:VpcSecurityGroupEgress"
          },
          "description": "A list of egress rules. The structure is documented below.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder this security group belongs to.\n"
        },
        "ingresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FVpcSecurityGroupIngress:VpcSecurityGroupIngress"
          },
          "description": "A list of ingress rules.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this security group.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the security group.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network this security group belongs to.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of this security group.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "egresses",
        "folderId",
        "ingresses",
        "labels",
        "name",
        "networkId",
        "status"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the security group.\n"
        },
        "egresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FVpcSecurityGroupEgress:VpcSecurityGroupEgress"
          },
          "description": "A list of egress rules. The structure is documented below.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder this security group belongs to.\n"
        },
        "ingresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/yandex:index%2FVpcSecurityGroupIngress:VpcSecurityGroupIngress"
          },
          "description": "A list of ingress rules.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this security group.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the security group.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network this security group belongs to.\n"
        }
      },
      "requiredInputs": [
        "networkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcSecurityGroup resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp of this security group.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the security group.\n"
          },
          "egresses": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FVpcSecurityGroupEgress:VpcSecurityGroupEgress"
            },
            "description": "A list of egress rules. The structure is documented below.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder this security group belongs to.\n"
          },
          "ingresses": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FVpcSecurityGroupIngress:VpcSecurityGroupIngress"
            },
            "description": "A list of ingress rules.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this security group.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the security group.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network this security group belongs to.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of this security group.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/vpcSecurityGroupRule:VpcSecurityGroupRule": {
      "description": "Manages a single Secuirity Group Rule within the Yandex.Cloud. For more information, see the official documentation\nof [security groups](https://cloud.yandex.com/docs/vpc/concepts/security-groups)\nand [security group rules](https://cloud.yandex.com/docs/vpc/concepts/security-groups#rules).\n\n> **NOTE:** There is another way to manage security group rules by `ingress` and `egress` arguments in yandex_vpc_security_group. Both ways are equivalent but not compatible now. Using in-line rules of yandex.VpcSecurityGroup with Security Group Rule resource at the same time will cause a conflict of rules configuration.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst lab_net = new yandex.VpcNetwork(\"lab-net\", {});\nconst group1 = new yandex.VpcSecurityGroup(\"group1\", {\n    description: \"description for my security group\",\n    networkId: lab_net.id,\n    labels: {\n        \"my-label\": \"my-label-value\",\n    },\n});\nconst rule1 = new yandex.VpcSecurityGroupRule(\"rule1\", {\n    securityGroupBinding: group1.id,\n    direction: \"ingress\",\n    description: \"rule1 description\",\n    v4CidrBlocks: [\n        \"10.0.1.0/24\",\n        \"10.0.2.0/24\",\n    ],\n    port: 8080,\n    protocol: \"TCP\",\n});\nconst rule2 = new yandex.VpcSecurityGroupRule(\"rule2\", {\n    securityGroupBinding: group1.id,\n    direction: \"egress\",\n    description: \"rule2 description\",\n    v4CidrBlocks: [\"10.0.1.0/24\"],\n    fromPort: 8090,\n    toPort: 8099,\n    protocol: \"UDP\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nlab_net = yandex.VpcNetwork(\"lab-net\")\ngroup1 = yandex.VpcSecurityGroup(\"group1\",\n    description=\"description for my security group\",\n    network_id=lab_net.id,\n    labels={\n        \"my-label\": \"my-label-value\",\n    })\nrule1 = yandex.VpcSecurityGroupRule(\"rule1\",\n    security_group_binding=group1.id,\n    direction=\"ingress\",\n    description=\"rule1 description\",\n    v4_cidr_blocks=[\n        \"10.0.1.0/24\",\n        \"10.0.2.0/24\",\n    ],\n    port=8080,\n    protocol=\"TCP\")\nrule2 = yandex.VpcSecurityGroupRule(\"rule2\",\n    security_group_binding=group1.id,\n    direction=\"egress\",\n    description=\"rule2 description\",\n    v4_cidr_blocks=[\"10.0.1.0/24\"],\n    from_port=8090,\n    to_port=8099,\n    protocol=\"UDP\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var lab_net = new Yandex.VpcNetwork(\"lab-net\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var group1 = new Yandex.VpcSecurityGroup(\"group1\", new Yandex.VpcSecurityGroupArgs\n        {\n            Description = \"description for my security group\",\n            NetworkId = lab_net.Id,\n            Labels = \n            {\n                { \"my-label\", \"my-label-value\" },\n            },\n        });\n        var rule1 = new Yandex.VpcSecurityGroupRule(\"rule1\", new Yandex.VpcSecurityGroupRuleArgs\n        {\n            SecurityGroupBinding = group1.Id,\n            Direction = \"ingress\",\n            Description = \"rule1 description\",\n            V4CidrBlocks = \n            {\n                \"10.0.1.0/24\",\n                \"10.0.2.0/24\",\n            },\n            Port = 8080,\n            Protocol = \"TCP\",\n        });\n        var rule2 = new Yandex.VpcSecurityGroupRule(\"rule2\", new Yandex.VpcSecurityGroupRuleArgs\n        {\n            SecurityGroupBinding = group1.Id,\n            Direction = \"egress\",\n            Description = \"rule2 description\",\n            V4CidrBlocks = \n            {\n                \"10.0.1.0/24\",\n            },\n            FromPort = 8090,\n            ToPort = 8099,\n            Protocol = \"UDP\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewVpcNetwork(ctx, \"lab-net\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup1, err := yandex.NewVpcSecurityGroup(ctx, \"group1\", &yandex.VpcSecurityGroupArgs{\n\t\t\tDescription: pulumi.String(\"description for my security group\"),\n\t\t\tNetworkId:   lab_net.ID(),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"my-label\": pulumi.String(\"my-label-value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewVpcSecurityGroupRule(ctx, \"rule1\", &yandex.VpcSecurityGroupRuleArgs{\n\t\t\tSecurityGroupBinding: group1.ID(),\n\t\t\tDirection:            pulumi.String(\"ingress\"),\n\t\t\tDescription:          pulumi.String(\"rule1 description\"),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t\tPort:     pulumi.Int(8080),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewVpcSecurityGroupRule(ctx, \"rule2\", &yandex.VpcSecurityGroupRuleArgs{\n\t\t\tSecurityGroupBinding: group1.ID(),\n\t\t\tDirection:            pulumi.String(\"egress\"),\n\t\t\tDescription:          pulumi.String(\"rule2 description\"),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t\tFromPort: pulumi.Int(8090),\n\t\t\tToPort:   pulumi.Int(8099),\n\t\t\tProtocol: pulumi.String(\"UDP\"),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "description": {
          "type": "string",
          "description": "Description of the rule.\n"
        },
        "direction": {
          "type": "string",
          "description": "direction of the rule. Can be `ingress` (inbound) or `egress` (outbound).\n"
        },
        "fromPort": {
          "type": "integer",
          "description": "Minimum port number.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this rule.\n"
        },
        "port": {
          "type": "integer",
          "description": "Port number (if applied to a single port).\n"
        },
        "predefinedTarget": {
          "type": "string",
          "description": "Special-purpose targets such as \"self_security_group\". [See docs](https://cloud.yandex.com/docs/vpc/concepts/security-groups) for possible options.\n"
        },
        "protocol": {
          "type": "string",
          "description": "One of `ANY`, `TCP`, `UDP`, `ICMP`, `IPV6_ICMP`.\n"
        },
        "securityGroupBinding": {
          "type": "string",
          "description": "ID of the security group this rule belongs to.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Target security group ID for this rule.\n"
        },
        "toPort": {
          "type": "integer",
          "description": "Maximum port number.\n"
        },
        "v4CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The blocks of IPv4 addresses for this rule.\n"
        },
        "v6CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The blocks of IPv6 addresses for this rule. `v6_cidr_blocks` argument is currently not supported. It will be available in the future.\n"
        }
      },
      "type": "object",
      "required": [
        "direction",
        "labels",
        "securityGroupBinding"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the rule.\n"
        },
        "direction": {
          "type": "string",
          "description": "direction of the rule. Can be `ingress` (inbound) or `egress` (outbound).\n"
        },
        "fromPort": {
          "type": "integer",
          "description": "Minimum port number.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this rule.\n"
        },
        "port": {
          "type": "integer",
          "description": "Port number (if applied to a single port).\n"
        },
        "predefinedTarget": {
          "type": "string",
          "description": "Special-purpose targets such as \"self_security_group\". [See docs](https://cloud.yandex.com/docs/vpc/concepts/security-groups) for possible options.\n"
        },
        "protocol": {
          "type": "string",
          "description": "One of `ANY`, `TCP`, `UDP`, `ICMP`, `IPV6_ICMP`.\n"
        },
        "securityGroupBinding": {
          "type": "string",
          "description": "ID of the security group this rule belongs to.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Target security group ID for this rule.\n"
        },
        "toPort": {
          "type": "integer",
          "description": "Maximum port number.\n"
        },
        "v4CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The blocks of IPv4 addresses for this rule.\n"
        },
        "v6CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The blocks of IPv6 addresses for this rule. `v6_cidr_blocks` argument is currently not supported. It will be available in the future.\n"
        }
      },
      "requiredInputs": [
        "direction",
        "securityGroupBinding"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcSecurityGroupRule resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the rule.\n"
          },
          "direction": {
            "type": "string",
            "description": "direction of the rule. Can be `ingress` (inbound) or `egress` (outbound).\n"
          },
          "fromPort": {
            "type": "integer",
            "description": "Minimum port number.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this rule.\n"
          },
          "port": {
            "type": "integer",
            "description": "Port number (if applied to a single port).\n"
          },
          "predefinedTarget": {
            "type": "string",
            "description": "Special-purpose targets such as \"self_security_group\". [See docs](https://cloud.yandex.com/docs/vpc/concepts/security-groups) for possible options.\n"
          },
          "protocol": {
            "type": "string",
            "description": "One of `ANY`, `TCP`, `UDP`, `ICMP`, `IPV6_ICMP`.\n"
          },
          "securityGroupBinding": {
            "type": "string",
            "description": "ID of the security group this rule belongs to.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Target security group ID for this rule.\n"
          },
          "toPort": {
            "type": "integer",
            "description": "Maximum port number.\n"
          },
          "v4CidrBlocks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The blocks of IPv4 addresses for this rule.\n"
          },
          "v6CidrBlocks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The blocks of IPv6 addresses for this rule. `v6_cidr_blocks` argument is currently not supported. It will be available in the future.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/vpcSubnet:VpcSubnet": {
      "description": "Manages a subnet within the Yandex.Cloud. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/vpc/concepts/network#subnet).\n\n* How-to Guides\n    * [Cloud Networking](https://cloud.yandex.com/docs/vpc/)\n    * [VPC Addressing](https://cloud.yandex.com/docs/vpc/concepts/address)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst lab_net = new yandex.VpcNetwork(\"lab-net\", {});\nconst lab_subnet_a = new yandex.VpcSubnet(\"lab-subnet-a\", {\n    networkId: lab_net.id,\n    v4CidrBlocks: [\"10.2.0.0/16\"],\n    zone: \"ru-central1-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nlab_net = yandex.VpcNetwork(\"lab-net\")\nlab_subnet_a = yandex.VpcSubnet(\"lab-subnet-a\",\n    network_id=lab_net.id,\n    v4_cidr_blocks=[\"10.2.0.0/16\"],\n    zone=\"ru-central1-a\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var lab_net = new Yandex.VpcNetwork(\"lab-net\", new Yandex.VpcNetworkArgs\n        {\n        });\n        var lab_subnet_a = new Yandex.VpcSubnet(\"lab-subnet-a\", new Yandex.VpcSubnetArgs\n        {\n            NetworkId = lab_net.Id,\n            V4CidrBlocks = \n            {\n                \"10.2.0.0/16\",\n            },\n            Zone = \"ru-central1-a\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewVpcNetwork(ctx, \"lab-net\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yandex.NewVpcSubnet(ctx, \"lab-subnet-a\", &yandex.VpcSubnetArgs{\n\t\t\tNetworkId: lab_net.ID(),\n\t\t\tV4CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.0.0/16\"),\n\t\t\t},\n\t\t\tZone: pulumi.String(\"ru-central1-a\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA subnet can be imported using the `id` of the resource, e.g.\n\n```sh\n $ pulumi import yandex:index/vpcSubnet:VpcSubnet default subnet_id\n```\n\n ",
      "properties": {
        "createdAt": {
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "An optional description of the subnet. Provide this property when\nyou create the resource.\n"
        },
        "dhcpOptions": {
          "$ref": "#/types/yandex:index%2FVpcSubnetDhcpOptions:VpcSubnetDhcpOptions",
          "description": "Options for DHCP client. The structure is documented below.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this subnet. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the subnet. Provided by the client when the subnet is created.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network this subnet belongs to.\nOnly networks that are in the distributed mode can have subnets.\n"
        },
        "routeTableId": {
          "type": "string",
          "description": "The ID of the route table to assign to this subnet. Assigned route table should\nbelong to the same network as this subnet.\n"
        },
        "v4CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of blocks of internal IPv4 addresses that are owned by this subnet.\nProvide this property when you create the subnet. For example, 10.0.0.0/22 or 192.168.0.0/16.\nBlocks of addresses must be unique and non-overlapping within a network.\nMinimum subnet size is /28, and maximum subnet size is /16. Only IPv4 is supported.\n"
        },
        "v6CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An optional list of blocks of IPv6 addresses that are owned by this subnet.\n"
        },
        "zone": {
          "type": "string",
          "description": "Name of the Yandex.Cloud zone for this subnet.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "folderId",
        "labels",
        "name",
        "networkId",
        "v4CidrBlocks",
        "v6CidrBlocks",
        "zone"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "An optional description of the subnet. Provide this property when\nyou create the resource.\n"
        },
        "dhcpOptions": {
          "$ref": "#/types/yandex:index%2FVpcSubnetDhcpOptions:VpcSubnetDhcpOptions",
          "description": "Options for DHCP client. The structure is documented below.\n"
        },
        "folderId": {
          "type": "string",
          "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to assign to this subnet. A list of key/value pairs.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the subnet. Provided by the client when the subnet is created.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network this subnet belongs to.\nOnly networks that are in the distributed mode can have subnets.\n"
        },
        "routeTableId": {
          "type": "string",
          "description": "The ID of the route table to assign to this subnet. Assigned route table should\nbelong to the same network as this subnet.\n"
        },
        "v4CidrBlocks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of blocks of internal IPv4 addresses that are owned by this subnet.\nProvide this property when you create the subnet. For example, 10.0.0.0/22 or 192.168.0.0/16.\nBlocks of addresses must be unique and non-overlapping within a network.\nMinimum subnet size is /28, and maximum subnet size is /16. Only IPv4 is supported.\n"
        },
        "zone": {
          "type": "string",
          "description": "Name of the Yandex.Cloud zone for this subnet.\n"
        }
      },
      "requiredInputs": [
        "networkId",
        "v4CidrBlocks"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcSubnet resources.\n",
        "properties": {
          "createdAt": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "An optional description of the subnet. Provide this property when\nyou create the resource.\n"
          },
          "dhcpOptions": {
            "$ref": "#/types/yandex:index%2FVpcSubnetDhcpOptions:VpcSubnetDhcpOptions",
            "description": "Options for DHCP client. The structure is documented below.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder to which the resource belongs.\nIf omitted, the provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this subnet. A list of key/value pairs.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the subnet. Provided by the client when the subnet is created.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network this subnet belongs to.\nOnly networks that are in the distributed mode can have subnets.\n"
          },
          "routeTableId": {
            "type": "string",
            "description": "The ID of the route table to assign to this subnet. Assigned route table should\nbelong to the same network as this subnet.\n"
          },
          "v4CidrBlocks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of blocks of internal IPv4 addresses that are owned by this subnet.\nProvide this property when you create the subnet. For example, 10.0.0.0/22 or 192.168.0.0/16.\nBlocks of addresses must be unique and non-overlapping within a network.\nMinimum subnet size is /28, and maximum subnet size is /16. Only IPv4 is supported.\n"
          },
          "v6CidrBlocks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An optional list of blocks of IPv6 addresses that are owned by this subnet.\n"
          },
          "zone": {
            "type": "string",
            "description": "Name of the Yandex.Cloud zone for this subnet.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/ydbDatabaseDedicated:YdbDatabaseDedicated": {
      "description": "Yandex Database (dedicated) resource.\nFor more information, see [the official documentation](https://cloud.yandex.com/en/docs/ydb/concepts/serverless_and_dedicated).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst database1 = new yandex.YdbDatabaseDedicated(\"database1\", {\n    folderId: yandex_resourcemanager_folder_test_folder.id,\n    location: {\n        region: {\n            id: \"ru-central1\",\n        },\n    },\n    networkId: yandex_vpc_network_my_inst_group_network.id,\n    resourcePresetId: \"medium\",\n    scalePolicy: {\n        fixedScale: {\n            size: 1,\n        },\n    },\n    storageConfig: {\n        groupCount: 1,\n        storageTypeId: \"ssd\",\n    },\n    subnetIds: [yandex_vpc_subnet_my_inst_group_subnet.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ndatabase1 = yandex.YdbDatabaseDedicated(\"database1\",\n    folder_id=data[\"yandex_resourcemanager_folder\"][\"test_folder\"][\"id\"],\n    location=yandex.YdbDatabaseDedicatedLocationArgs(\n        region=yandex.YdbDatabaseDedicatedLocationRegionArgs(\n            id=\"ru-central1\",\n        ),\n    ),\n    network_id=yandex_vpc_network[\"my-inst-group-network\"][\"id\"],\n    resource_preset_id=\"medium\",\n    scale_policy=yandex.YdbDatabaseDedicatedScalePolicyArgs(\n        fixed_scale=yandex.YdbDatabaseDedicatedScalePolicyFixedScaleArgs(\n            size=1,\n        ),\n    ),\n    storage_config=yandex.YdbDatabaseDedicatedStorageConfigArgs(\n        group_count=1,\n        storage_type_id=\"ssd\",\n    ),\n    subnet_ids=[yandex_vpc_subnet[\"my-inst-group-subnet\"][\"id\"]])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var database1 = new Yandex.YdbDatabaseDedicated(\"database1\", new Yandex.YdbDatabaseDedicatedArgs\n        {\n            FolderId = data.Yandex_resourcemanager_folder.Test_folder.Id,\n            Location = new Yandex.Inputs.YdbDatabaseDedicatedLocationArgs\n            {\n                Region = new Yandex.Inputs.YdbDatabaseDedicatedLocationRegionArgs\n                {\n                    Id = \"ru-central1\",\n                },\n            },\n            NetworkId = yandex_vpc_network.My_inst_group_network.Id,\n            ResourcePresetId = \"medium\",\n            ScalePolicy = new Yandex.Inputs.YdbDatabaseDedicatedScalePolicyArgs\n            {\n                FixedScale = new Yandex.Inputs.YdbDatabaseDedicatedScalePolicyFixedScaleArgs\n                {\n                    Size = 1,\n                },\n            },\n            StorageConfig = new Yandex.Inputs.YdbDatabaseDedicatedStorageConfigArgs\n            {\n                GroupCount = 1,\n                StorageTypeId = \"ssd\",\n            },\n            SubnetIds = \n            {\n                yandex_vpc_subnet.My_inst_group_subnet.Id,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewYdbDatabaseDedicated(ctx, \"database1\", &yandex.YdbDatabaseDedicatedArgs{\n\t\t\tFolderId: pulumi.Any(data.Yandex_resourcemanager_folder.Test_folder.Id),\n\t\t\tLocation: &YdbDatabaseDedicatedLocationArgs{\n\t\t\t\tRegion: &YdbDatabaseDedicatedLocationRegionArgs{\n\t\t\t\t\tId: pulumi.String(\"ru-central1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworkId:        pulumi.Any(yandex_vpc_network.My - inst - group - network.Id),\n\t\t\tResourcePresetId: pulumi.String(\"medium\"),\n\t\t\tScalePolicy: &YdbDatabaseDedicatedScalePolicyArgs{\n\t\t\t\tFixedScale: &YdbDatabaseDedicatedScalePolicyFixedScaleArgs{\n\t\t\t\t\tSize: pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStorageConfig: &YdbDatabaseDedicatedStorageConfigArgs{\n\t\t\t\tGroupCount:    pulumi.Int(1),\n\t\t\t\tStorageTypeId: pulumi.String(\"ssd\"),\n\t\t\t},\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.Any(yandex_vpc_subnet.My - inst - group - subnet.Id),\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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "assignPublicIps": {
          "type": "boolean",
          "description": "Whether public IP addresses should be assigned to the Yandex Database cluster.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The Yandex Database cluster creation timestamp.\n"
        },
        "databasePath": {
          "type": "string",
          "description": "Full database path of the Yandex Database cluster.\nUseful for SDK configuration.\n"
        },
        "description": {
          "type": "string",
          "description": "A description for the Yandex Database cluster.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the Yandex Database cluster belongs to.\nIt will be deduced from provider configuration if not set explicitly.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Database cluster.\n"
        },
        "location": {
          "$ref": "#/types/yandex:index%2FYdbDatabaseDedicatedLocation:YdbDatabaseDedicatedLocation",
          "description": "Location for the Yandex Database cluster.\nThe structure is documented below.\n"
        },
        "locationId": {
          "type": "string",
          "description": "Location ID for the Yandex Database cluster.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the Yandex Database cluster.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network to attach the Yandex Database cluster to.\n"
        },
        "resourcePresetId": {
          "type": "string",
          "description": "The Yandex Database cluster preset.\nAvailable presets can be obtained via `yc ydb resource-preset list` command.\n"
        },
        "scalePolicy": {
          "$ref": "#/types/yandex:index%2FYdbDatabaseDedicatedScalePolicy:YdbDatabaseDedicatedScalePolicy",
          "description": "Scaling policy for the Yandex Database cluster.\nThe structure is documented below.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the Yandex Database cluster.\n"
        },
        "storageConfig": {
          "$ref": "#/types/yandex:index%2FYdbDatabaseDedicatedStorageConfig:YdbDatabaseDedicatedStorageConfig",
          "description": "A list of storage configuration options for the Yandex Database cluster.\nThe structure is documented below.\n"
        },
        "subnetIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of subnet IDs to attach the Yandex Database cluster to.\n"
        },
        "tlsEnabled": {
          "type": "boolean",
          "description": "Whether TLS is enabled for the Yandex Database cluster.\nUseful for SDK configuration.\n"
        },
        "ydbApiEndpoint": {
          "type": "string",
          "description": "API endpoint of the Yandex Database cluster.\nUseful for SDK configuration.\n"
        },
        "ydbFullEndpoint": {
          "type": "string",
          "description": "Full endpoint of the Yandex Database cluster.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "databasePath",
        "folderId",
        "locationId",
        "name",
        "networkId",
        "resourcePresetId",
        "scalePolicy",
        "status",
        "storageConfig",
        "subnetIds",
        "tlsEnabled",
        "ydbApiEndpoint",
        "ydbFullEndpoint"
      ],
      "inputProperties": {
        "assignPublicIps": {
          "type": "boolean",
          "description": "Whether public IP addresses should be assigned to the Yandex Database cluster.\n"
        },
        "description": {
          "type": "string",
          "description": "A description for the Yandex Database cluster.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the Yandex Database cluster belongs to.\nIt will be deduced from provider configuration if not set explicitly.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Database cluster.\n"
        },
        "location": {
          "$ref": "#/types/yandex:index%2FYdbDatabaseDedicatedLocation:YdbDatabaseDedicatedLocation",
          "description": "Location for the Yandex Database cluster.\nThe structure is documented below.\n"
        },
        "locationId": {
          "type": "string",
          "description": "Location ID for the Yandex Database cluster.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the Yandex Database cluster.\n"
        },
        "networkId": {
          "type": "string",
          "description": "ID of the network to attach the Yandex Database cluster to.\n"
        },
        "resourcePresetId": {
          "type": "string",
          "description": "The Yandex Database cluster preset.\nAvailable presets can be obtained via `yc ydb resource-preset list` command.\n"
        },
        "scalePolicy": {
          "$ref": "#/types/yandex:index%2FYdbDatabaseDedicatedScalePolicy:YdbDatabaseDedicatedScalePolicy",
          "description": "Scaling policy for the Yandex Database cluster.\nThe structure is documented below.\n"
        },
        "storageConfig": {
          "$ref": "#/types/yandex:index%2FYdbDatabaseDedicatedStorageConfig:YdbDatabaseDedicatedStorageConfig",
          "description": "A list of storage configuration options for the Yandex Database cluster.\nThe structure is documented below.\n"
        },
        "subnetIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of subnet IDs to attach the Yandex Database cluster to.\n"
        }
      },
      "requiredInputs": [
        "networkId",
        "resourcePresetId",
        "scalePolicy",
        "storageConfig",
        "subnetIds"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering YdbDatabaseDedicated resources.\n",
        "properties": {
          "assignPublicIps": {
            "type": "boolean",
            "description": "Whether public IP addresses should be assigned to the Yandex Database cluster.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The Yandex Database cluster creation timestamp.\n"
          },
          "databasePath": {
            "type": "string",
            "description": "Full database path of the Yandex Database cluster.\nUseful for SDK configuration.\n"
          },
          "description": {
            "type": "string",
            "description": "A description for the Yandex Database cluster.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder that the Yandex Database cluster belongs to.\nIt will be deduced from provider configuration if not set explicitly.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Yandex Database cluster.\n"
          },
          "location": {
            "$ref": "#/types/yandex:index%2FYdbDatabaseDedicatedLocation:YdbDatabaseDedicatedLocation",
            "description": "Location for the Yandex Database cluster.\nThe structure is documented below.\n"
          },
          "locationId": {
            "type": "string",
            "description": "Location ID for the Yandex Database cluster.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the Yandex Database cluster.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network to attach the Yandex Database cluster to.\n"
          },
          "resourcePresetId": {
            "type": "string",
            "description": "The Yandex Database cluster preset.\nAvailable presets can be obtained via `yc ydb resource-preset list` command.\n"
          },
          "scalePolicy": {
            "$ref": "#/types/yandex:index%2FYdbDatabaseDedicatedScalePolicy:YdbDatabaseDedicatedScalePolicy",
            "description": "Scaling policy for the Yandex Database cluster.\nThe structure is documented below.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the Yandex Database cluster.\n"
          },
          "storageConfig": {
            "$ref": "#/types/yandex:index%2FYdbDatabaseDedicatedStorageConfig:YdbDatabaseDedicatedStorageConfig",
            "description": "A list of storage configuration options for the Yandex Database cluster.\nThe structure is documented below.\n"
          },
          "subnetIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of subnet IDs to attach the Yandex Database cluster to.\n"
          },
          "tlsEnabled": {
            "type": "boolean",
            "description": "Whether TLS is enabled for the Yandex Database cluster.\nUseful for SDK configuration.\n"
          },
          "ydbApiEndpoint": {
            "type": "string",
            "description": "API endpoint of the Yandex Database cluster.\nUseful for SDK configuration.\n"
          },
          "ydbFullEndpoint": {
            "type": "string",
            "description": "Full endpoint of the Yandex Database cluster.\n"
          }
        },
        "type": "object"
      }
    },
    "yandex:index/ydbDatabaseServerless:YdbDatabaseServerless": {
      "description": "Yandex Database (serverless) resource. For more information, see\n    [the official documentation](https://cloud.yandex.com/en/docs/ydb/concepts/serverless_and_dedicated).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst database1 = new yandex.YdbDatabaseServerless(\"database1\", {\n    folderId: yandex_resourcemanager_folder_test_folder.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ndatabase1 = yandex.YdbDatabaseServerless(\"database1\", folder_id=data[\"yandex_resourcemanager_folder\"][\"test_folder\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var database1 = new Yandex.YdbDatabaseServerless(\"database1\", new Yandex.YdbDatabaseServerlessArgs\n        {\n            FolderId = data.Yandex_resourcemanager_folder.Test_folder.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.NewYdbDatabaseServerless(ctx, \"database1\", &yandex.YdbDatabaseServerlessArgs{\n\t\t\tFolderId: pulumi.Any(data.Yandex_resourcemanager_folder.Test_folder.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{{% /example %}}\n{{% /examples %}}",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The Yandex Database serverless cluster creation timestamp.\n"
        },
        "databasePath": {
          "type": "string",
          "description": "Full database path of the Yandex Database serverless cluster.\nUseful for SDK configuration.\n"
        },
        "description": {
          "type": "string",
          "description": "A description for the Yandex Database serverless cluster.\n"
        },
        "documentApiEndpoint": {
          "type": "string",
          "description": "Document API endpoint of the Yandex Database serverless cluster.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the Yandex Database serverless cluster belongs to.\nIt will be deduced from provider configuration if not set explicitly.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Database serverless cluster.\n"
        },
        "locationId": {
          "type": "string",
          "description": "Location ID for the Yandex Database serverless cluster.\n"
        },
        "name": {
          "type": "string",
          "description": "Name for the Yandex Database serverless cluster.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the Yandex Database serverless cluster.\n"
        },
        "tlsEnabled": {
          "type": "boolean",
          "description": "Whether TLS is enabled for the Yandex Database serverless cluster.\nUseful for SDK configuration.\n"
        },
        "ydbApiEndpoint": {
          "type": "string",
          "description": "API endpoint of the Yandex Database serverless cluster.\nUseful for SDK configuration.\n"
        },
        "ydbFullEndpoint": {
          "type": "string",
          "description": "Full endpoint of the Yandex Database serverless cluster.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "databasePath",
        "documentApiEndpoint",
        "folderId",
        "locationId",
        "name",
        "status",
        "tlsEnabled",
        "ydbApiEndpoint",
        "ydbFullEndpoint"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "A description for the Yandex Database serverless cluster.\n"
        },
        "folderId": {
          "type": "string",
          "description": "ID of the folder that the Yandex Database serverless cluster belongs to.\nIt will be deduced from provider configuration if not set explicitly.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A set of key/value label pairs to assign to the Yandex Database serverless cluster.\n"
        },
        "locationId": {
          "type": "string",
          "description": "Location ID for the Yandex Database serverless cluster.\n"
        },
        "name": {
          "type": "string",
          "description": "Name for the Yandex Database serverless cluster.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering YdbDatabaseServerless resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "The Yandex Database serverless cluster creation timestamp.\n"
          },
          "databasePath": {
            "type": "string",
            "description": "Full database path of the Yandex Database serverless cluster.\nUseful for SDK configuration.\n"
          },
          "description": {
            "type": "string",
            "description": "A description for the Yandex Database serverless cluster.\n"
          },
          "documentApiEndpoint": {
            "type": "string",
            "description": "Document API endpoint of the Yandex Database serverless cluster.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder that the Yandex Database serverless cluster belongs to.\nIt will be deduced from provider configuration if not set explicitly.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Yandex Database serverless cluster.\n"
          },
          "locationId": {
            "type": "string",
            "description": "Location ID for the Yandex Database serverless cluster.\n"
          },
          "name": {
            "type": "string",
            "description": "Name for the Yandex Database serverless cluster.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the Yandex Database serverless cluster.\n"
          },
          "tlsEnabled": {
            "type": "boolean",
            "description": "Whether TLS is enabled for the Yandex Database serverless cluster.\nUseful for SDK configuration.\n"
          },
          "ydbApiEndpoint": {
            "type": "string",
            "description": "API endpoint of the Yandex Database serverless cluster.\nUseful for SDK configuration.\n"
          },
          "ydbFullEndpoint": {
            "type": "string",
            "description": "Full endpoint of the Yandex Database serverless cluster.\n"
          }
        },
        "type": "object"
      }
    }
  },
  "functions": {
    "yandex:index/getAlbBackendGroup:getAlbBackendGroup": {
      "description": "Get information about a Yandex Application Load Balancer Backend Group. For more information, see\n[Yandex.Cloud Application Load Balancer](https://cloud.yandex.com/en/docs/application-load-balancer/quickstart).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getAlbBackendGroup({\n    backendGroupId: \"my-backend-group-id\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_alb_backend_group(backend_group_id=\"my-backend-group-id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetAlbBackendGroup.InvokeAsync(new Yandex.GetAlbBackendGroupArgs\n        {\n            BackendGroupId = \"my-backend-group-id\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"my-backend-group-id\"\n\t\t_, err := yandex.LookupAlbBackendGroup(ctx, \u0026GetAlbBackendGroupArgs{\n\t\t\tBackendGroupId: \u0026opt0,\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\nThis data source is used to define [Application Load Balancer Backend Groups] that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getAlbBackendGroup.\n",
        "properties": {
          "backendGroupId": {
            "type": "string",
            "description": "Backend Group ID.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the backend group.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "grpcBackends": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FgetAlbBackendGroupGrpcBackend:getAlbBackendGroupGrpcBackend"
            },
            "description": "Grpc backend specification that will be used by the ALB Backend Group. Structure is documented below.\n"
          },
          "httpBackends": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FgetAlbBackendGroupHttpBackend:getAlbBackendGroupHttpBackend"
            },
            "description": "Http backend specification that will be used by the ALB Backend Group. Structure is documented below.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this backend group.\n"
          },
          "name": {
            "type": "string",
            "description": "- Name of the Backend Group.\n"
          },
          "streamBackends": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FgetAlbBackendGroupStreamBackend:getAlbBackendGroupStreamBackend"
            },
            "description": "Stream backend specification that will be used by the ALB Backend Group. Structure is documented below.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAlbBackendGroup.\n",
        "properties": {
          "backendGroupId": {
            "type": "string"
          },
          "createdAt": {
            "description": "Creation timestamp of this backend group.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the backend group.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "grpcBackends": {
            "description": "Grpc backend specification that will be used by the ALB Backend Group. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetAlbBackendGroupGrpcBackend:getAlbBackendGroupGrpcBackend"
            },
            "type": "array"
          },
          "httpBackends": {
            "description": "Http backend specification that will be used by the ALB Backend Group. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetAlbBackendGroupHttpBackend:getAlbBackendGroupHttpBackend"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this backend group.\n",
            "type": "object"
          },
          "name": {
            "description": "Name of the backend.\n",
            "type": "string"
          },
          "streamBackends": {
            "description": "Stream backend specification that will be used by the ALB Backend Group. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetAlbBackendGroupStreamBackend:getAlbBackendGroupStreamBackend"
            },
            "type": "array"
          }
        },
        "required": [
          "backendGroupId",
          "createdAt",
          "description",
          "folderId",
          "grpcBackends",
          "httpBackends",
          "id",
          "labels",
          "name",
          "streamBackends"
        ],
        "type": "object"
      }
    },
    "yandex:index/getAlbHttpRouter:getAlbHttpRouter": {
      "description": "Get information about a Yandex Application Load Balancer HTTP Router. For more information, see\n[Yandex.Cloud Application Load Balancer](https://cloud.yandex.com/en/docs/application-load-balancer/quickstart).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst tf_router = pulumi.output(yandex.getAlbHttpRouter({\n    httpRouterId: \"my-http-router-id\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ntf_router = yandex.get_alb_http_router(http_router_id=\"my-http-router-id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var tf_router = Output.Create(Yandex.GetAlbHttpRouter.InvokeAsync(new Yandex.GetAlbHttpRouterArgs\n        {\n            HttpRouterId = \"my-http-router-id\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"my-http-router-id\"\n\t\t_, err := yandex.LookupAlbHttpRouter(ctx, \u0026GetAlbHttpRouterArgs{\n\t\t\tHttpRouterId: \u0026opt0,\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\nThis data source is used to define [Application Load Balancer HTTP Router] that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getAlbHttpRouter.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the HTTP Router.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "httpRouterId": {
            "type": "string",
            "description": "HTTP Router ID.\n"
          },
          "name": {
            "type": "string",
            "description": "- Name of the HTTP Router.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAlbHttpRouter.\n",
        "properties": {
          "createdAt": {
            "description": "Creation timestamp of this HTTP Router.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the HTTP Router.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "httpRouterId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this HTTP Router.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "description",
          "folderId",
          "httpRouterId",
          "id",
          "labels",
          "name"
        ],
        "type": "object"
      }
    },
    "yandex:index/getAlbLoadBalancer:getAlbLoadBalancer": {
      "inputs": {
        "description": "A collection of arguments for invoking getAlbLoadBalancer.\n",
        "properties": {
          "loadBalancerId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAlbLoadBalancer.\n",
        "properties": {
          "allocationPolicies": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerAllocationPolicy:getAlbLoadBalancerAllocationPolicy"
            },
            "type": "array"
          },
          "createdAt": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "listeners": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetAlbLoadBalancerListener:getAlbLoadBalancerListener"
            },
            "type": "array"
          },
          "loadBalancerId": {
            "type": "string"
          },
          "logGroupId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "networkId": {
            "type": "string"
          },
          "regionId": {
            "type": "string"
          },
          "securityGroupIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "allocationPolicies",
          "createdAt",
          "description",
          "folderId",
          "id",
          "labels",
          "listeners",
          "loadBalancerId",
          "logGroupId",
          "name",
          "networkId",
          "regionId",
          "securityGroupIds",
          "status"
        ],
        "type": "object"
      }
    },
    "yandex:index/getAlbTargetGroup:getAlbTargetGroup": {
      "description": "Get information about a Yandex Application Load Balancer target group. For more information, see\n[Yandex.Cloud Application Load Balancer](https://cloud.yandex.com/en/docs/application-load-balancer/quickstart).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getAlbTargetGroup({\n    targetGroupId: \"my-target-group-id\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_alb_target_group(target_group_id=\"my-target-group-id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetAlbTargetGroup.InvokeAsync(new Yandex.GetAlbTargetGroupArgs\n        {\n            TargetGroupId = \"my-target-group-id\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"my-target-group-id\"\n\t\t_, err := yandex.LookupAlbTargetGroup(ctx, \u0026GetAlbTargetGroupArgs{\n\t\t\tTargetGroupId: \u0026opt0,\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\nThis data source is used to define [Application Load Balancer Target Groups] that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getAlbTargetGroup.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the target group.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "- Name of the Target Group.\n"
          },
          "targetGroupId": {
            "type": "string",
            "description": "Target Group ID.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAlbTargetGroup.\n",
        "properties": {
          "createdAt": {
            "description": "Creation timestamp of this target group.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the target group.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this target group.\n* `target.0.ip_address` - IP address of the target.\n* `target.0.subnet_id` - ID of the subnet that targets are connected to.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "targetGroupId": {
            "type": "string"
          },
          "targets": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetAlbTargetGroupTarget:getAlbTargetGroupTarget"
            },
            "type": "array"
          }
        },
        "required": [
          "createdAt",
          "description",
          "folderId",
          "id",
          "labels",
          "name",
          "targetGroupId",
          "targets"
        ],
        "type": "object"
      }
    },
    "yandex:index/getAlbVirtualHost:getAlbVirtualHost": {
      "description": "Get information about a Yandex ALB Virtual Host. For more information, see\n[Yandex.Cloud Application Load Balancer](https://cloud.yandex.com/en/docs/application-load-balancer/quickstart).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst my-vh-data = yandex.getAlbVirtualHost({\n    name: yandex_alb_virtual_host[\"my-vh\"].name,\n    httpRouterId: yandex_alb_virtual_host[\"my-router\"].id,\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_vh_data = yandex.get_alb_virtual_host(name=yandex_alb_virtual_host[\"my-vh\"][\"name\"],\n    http_router_id=yandex_alb_virtual_host[\"my-router\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var my_vh_data = Output.Create(Yandex.GetAlbVirtualHost.InvokeAsync(new Yandex.GetAlbVirtualHostArgs\n        {\n            Name = yandex_alb_virtual_host.My_vh.Name,\n            HttpRouterId = yandex_alb_virtual_host.My_router.Id,\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := yandex_alb_virtual_host.My - vh.Name\n\t\topt1 := yandex_alb_virtual_host.My - router.Id\n\t\t_, err := yandex.LookupAlbVirtualHost(ctx, \u0026GetAlbVirtualHostArgs{\n\t\t\tName:         \u0026opt0,\n\t\t\tHttpRouterId: \u0026opt1,\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\nThis data source is used to define [Application Load Balancer Virtual Host] that can be used by other resources.\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAlbVirtualHost.\n",
        "properties": {
          "httpRouterId": {
            "type": "string",
            "description": "HTTP Router that the resource belongs to.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the Virtual Host.\n"
          },
          "virtualHostId": {
            "type": "string",
            "description": "The ID of a specific Virtual Host. Virtual Host ID is concatenation of HTTP Router ID\nand Virtual Host name with `/` symbol between them. For Example, \"http_router_id/vhost_name\".\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAlbVirtualHost.\n",
        "properties": {
          "authorities": {
            "description": "A list of domains (host/authority header) that will be matched to this virtual host. Wildcard hosts are\nsupported in the form of '*.foo.com' or '*-bar.foo.com'. If not specified, all domains will be matched.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "httpRouterId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "modifyRequestHeaders": {
            "description": "Apply the following modifications to the request headers. The structure is documented\nbelow.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetAlbVirtualHostModifyRequestHeader:getAlbVirtualHostModifyRequestHeader"
            },
            "type": "array"
          },
          "modifyResponseHeaders": {
            "description": "Apply the following modifications to the response headers. The structure is documented\nbelow.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetAlbVirtualHostModifyResponseHeader:getAlbVirtualHostModifyResponseHeader"
            },
            "type": "array"
          },
          "name": {
            "description": "name of the route.\n",
            "type": "string"
          },
          "routes": {
            "description": "A Route resource. Routes are matched *in-order*. Be careful when adding them to the end. For instance,\nhaving http '/' match first makes all other routes unused. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetAlbVirtualHostRoute:getAlbVirtualHostRoute"
            },
            "type": "array"
          },
          "virtualHostId": {
            "type": "string"
          }
        },
        "required": [
          "authorities",
          "httpRouterId",
          "id",
          "modifyRequestHeaders",
          "modifyResponseHeaders",
          "name",
          "routes",
          "virtualHostId"
        ],
        "type": "object"
      }
    },
    "yandex:index/getApiGateway:getApiGateway": {
      "inputs": {
        "description": "A collection of arguments for invoking getApiGateway.\n",
        "properties": {
          "apiGatewayId": {
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getApiGateway.\n",
        "properties": {
          "apiGatewayId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "logGroupId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "userDomains": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "createdAt",
          "description",
          "domain",
          "id",
          "labels",
          "logGroupId",
          "status",
          "userDomains"
        ],
        "type": "object"
      }
    },
    "yandex:index/getCdnOriginGroup:getCdnOriginGroup": {
      "description": "Get information about a Yandex CDN Origin Group. For more information, see\n[the official documentation](https://cloud.yandex.ru/docs/cdn/concepts/origins).\n\n\u003e **_NOTE:_**  CDN provider must be activated prior usage of CDN resources, either via UI console or via yc cli command: ```yc cdn provider activate --folder-id \u003cfolder-id\u003e --type gcore```\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myGroup = pulumi.output(yandex.getCdnOriginGroup({\n    originGroupId: Number.parseFloat(\"some_instance_id\"),\n}));\n\nexport const originGroupName = myGroup.name!;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_group = yandex.get_cdn_origin_group(origin_group_id=\"some_instance_id\")\npulumi.export(\"originGroupName\", my_group.name)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myGroup = Output.Create(Yandex.GetCdnOriginGroup.InvokeAsync(new Yandex.GetCdnOriginGroupArgs\n        {\n            OriginGroupId = \"some_instance_id\",\n        }));\n        this.OriginGroupName = myGroup.Apply(myGroup =\u003e myGroup.Name);\n    }\n\n    [Output(\"originGroupName\")]\n    public Output\u003cstring\u003e OriginGroupName { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some_instance_id\"\n\t\tmyGroup, err := yandex.LookupCdnOriginGroup(ctx, \u0026GetCdnOriginGroupArgs{\n\t\t\tOriginGroupId: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"originGroupName\", myGroup.Name)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getCdnOriginGroup.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the origin group.\n"
          },
          "originGroupId": {
            "type": "integer",
            "description": "The ID of a specific origin group.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCdnOriginGroup.\n",
        "properties": {
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "originGroupId": {
            "type": "integer"
          },
          "origins": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetCdnOriginGroupOrigin:getCdnOriginGroupOrigin"
            },
            "type": "array"
          },
          "useNext": {
            "type": "boolean"
          }
        },
        "required": [
          "folderId",
          "id",
          "name",
          "originGroupId",
          "origins",
          "useNext"
        ],
        "type": "object"
      }
    },
    "yandex:index/getCdnResource:getCdnResource": {
      "description": "Get information about a Yandex CDN Resource. For more information, see\n[the official documentation](https://cloud.yandex.ru/docs/cdn/concepts/resource).\n\n\u003e **_NOTE:_**  CDN provider must be activated prior usage of CDN resources, either via UI console or via yc cli command: ```yc cdn provider activate --folder-id \u003cfolder-id\u003e --type gcore```\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myResource = pulumi.output(yandex.getCdnResource({\n    resourceId: \"some resource id\",\n}));\n\nexport const resourceCname = myResource.cname!;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_resource = yandex.get_cdn_resource(resource_id=\"some resource id\")\npulumi.export(\"resourceCname\", my_resource.cname)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myResource = Output.Create(Yandex.GetCdnResource.InvokeAsync(new Yandex.GetCdnResourceArgs\n        {\n            ResourceId = \"some resource id\",\n        }));\n        this.ResourceCname = myResource.Apply(myResource =\u003e myResource.Cname);\n    }\n\n    [Output(\"resourceCname\")]\n    public Output\u003cstring\u003e ResourceCname { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some resource id\"\n\t\tmyResource, err := yandex.LookupCdnResource(ctx, \u0026GetCdnResourceArgs{\n\t\t\tResourceId: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"resourceCname\", myResource.Cname)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getCdnResource.\n",
        "properties": {
          "active": {
            "type": "boolean",
            "description": "Flag to create Resource either in active or disabled state. True - the content from CDN is available to clients.\n"
          },
          "cname": {
            "type": "string",
            "description": "CDN endpoint CNAME, must be unique among resources.\n"
          },
          "options": {
            "$ref": "#/types/yandex:index%2FgetCdnResourceOptions:getCdnResourceOptions",
            "description": "CDN Resource settings and options to tune CDN edge behavior.\n"
          },
          "originGroupId": {
            "type": "integer"
          },
          "originGroupName": {
            "type": "string"
          },
          "originProtocol": {
            "type": "string"
          },
          "resourceId": {
            "type": "string"
          },
          "secondaryHostnames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "list of secondary hostname strings.\n"
          },
          "sslCertificate": {
            "$ref": "#/types/yandex:index%2FgetCdnResourceSslCertificate:getCdnResourceSslCertificate"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCdnResource.\n",
        "properties": {
          "active": {
            "type": "boolean"
          },
          "cname": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "options": {
            "$ref": "#/types/yandex:index%2FgetCdnResourceOptions:getCdnResourceOptions"
          },
          "originGroupId": {
            "type": "integer"
          },
          "originGroupName": {
            "type": "string"
          },
          "originProtocol": {
            "type": "string"
          },
          "resourceId": {
            "type": "string"
          },
          "secondaryHostnames": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "sslCertificate": {
            "$ref": "#/types/yandex:index%2FgetCdnResourceSslCertificate:getCdnResourceSslCertificate"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "cname",
          "createdAt",
          "folderId",
          "id",
          "options",
          "resourceId",
          "updatedAt"
        ],
        "type": "object"
      }
    },
    "yandex:index/getClientConfig:getClientConfig": {
      "description": "Get attributes used by provider to configure client connection.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst client = yandex.getClientConfig({});\nconst kubernetes = yandex.getKubernetesCluster({\n    name: \"kubernetes\",\n});\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nclient = yandex.get_client_config()\nkubernetes = yandex.get_kubernetes_cluster(name=\"kubernetes\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var client = Output.Create(Yandex.GetClientConfig.InvokeAsync());\n        var kubernetes = Output.Create(Yandex.GetKubernetesCluster.InvokeAsync(new Yandex.GetKubernetesClusterArgs\n        {\n            Name = \"kubernetes\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\topt0 := \"kubernetes\"\n\t\t_, err = yandex.LookupKubernetesCluster(ctx, \u0026GetKubernetesClusterArgs{\n\t\t\tName: \u0026opt0,\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{{% /example %}}\n{{% /examples %}}",
      "outputs": {
        "description": "A collection of values returned by getClientConfig.\n",
        "properties": {
          "cloudId": {
            "description": "The ID of the cloud that the provider is connecting to.\n",
            "type": "string"
          },
          "folderId": {
            "description": "The ID of the folder in which we operate.\n",
            "type": "string"
          },
          "iamToken": {
            "description": "A short-lived token that can be used for authentication in a Kubernetes cluster.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "zone": {
            "description": "The default availability zone.\n",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "folderId",
          "iamToken",
          "id",
          "zone"
        ],
        "type": "object"
      }
    },
    "yandex:index/getComputeDisk:getComputeDisk": {
      "description": "Get information about a Yandex Compute disk. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/compute/concepts/disk).\n",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeDisk.\n",
        "properties": {
          "diskId": {
            "type": "string",
            "description": "The ID of a specific disk.\n"
          },
          "diskPlacementPolicy": {
            "$ref": "#/types/yandex:index%2FgetComputeDiskDiskPlacementPolicy:getComputeDiskDiskPlacementPolicy"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder that the disk belongs to.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the disk.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getComputeDisk.\n",
        "properties": {
          "blockSize": {
            "description": "The block size of the disk in bytes.\n",
            "type": "integer"
          },
          "createdAt": {
            "description": "Disk creation timestamp.\n",
            "type": "string"
          },
          "description": {
            "description": "Optional description of this disk.\n",
            "type": "string"
          },
          "diskId": {
            "type": "string"
          },
          "diskPlacementPolicy": {
            "$ref": "#/types/yandex:index%2FgetComputeDiskDiskPlacementPolicy:getComputeDiskDiskPlacementPolicy"
          },
          "folderId": {
            "description": "ID of the folder that the disk belongs to.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "imageId": {
            "description": "ID of the source image that was used to create this disk.\n",
            "type": "string"
          },
          "instanceIds": {
            "description": "IDs of instances to which this disk is attached.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of labels applied to this disk.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "productIds": {
            "description": "License IDs that indicate which licenses are attached to this disk.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "size": {
            "description": "Size of the disk, specified in Gb.\n",
            "type": "integer"
          },
          "snapshotId": {
            "description": "Source snapshot that was used to create this disk.\n",
            "type": "string"
          },
          "status": {
            "description": "Status of the disk.\n",
            "type": "string"
          },
          "type": {
            "description": "Type of the disk.\n",
            "type": "string"
          },
          "zone": {
            "description": "ID of the zone where the disk resides.\n",
            "type": "string"
          }
        },
        "required": [
          "blockSize",
          "createdAt",
          "description",
          "diskId",
          "folderId",
          "id",
          "imageId",
          "instanceIds",
          "labels",
          "name",
          "productIds",
          "size",
          "snapshotId",
          "status",
          "type",
          "zone"
        ],
        "type": "object"
      }
    },
    "yandex:index/getComputeDiskPlacementGroup:getComputeDiskPlacementGroup": {
      "description": "Get information about a Yandex Compute Disk Placement group. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/compute/concepts/disk#nr-disks).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myGroup = pulumi.output(yandex.getComputeDiskPlacementGroup({\n    groupId: \"some_group_id\",\n}));\n\nexport const placementGroupName = myGroup.name!;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_group = yandex.get_compute_disk_placement_group(group_id=\"some_group_id\")\npulumi.export(\"placementGroupName\", my_group.name)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myGroup = Output.Create(Yandex.GetComputeDiskPlacementGroup.InvokeAsync(new Yandex.GetComputeDiskPlacementGroupArgs\n        {\n            GroupId = \"some_group_id\",\n        }));\n        this.PlacementGroupName = myGroup.Apply(myGroup =\u003e myGroup.Name);\n    }\n\n    [Output(\"placementGroupName\")]\n    public Output\u003cstring\u003e PlacementGroupName { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some_group_id\"\n\t\tmyGroup, err := yandex.LookupComputeDiskPlacementGroup(ctx, \u0026GetComputeDiskPlacementGroupArgs{\n\t\t\tGroupId: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"placementGroupName\", myGroup.Name)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeDiskPlacementGroup.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the Disk Placement Group.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "groupId": {
            "type": "string",
            "description": "The ID of a specific group.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs assigned to the Disk Placement Group.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the group.\n"
          },
          "zone": {
            "type": "string",
            "description": "ID of the zone where the Disk Placement Group resides.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getComputeDiskPlacementGroup.\n",
        "properties": {
          "createdAt": {
            "description": "The creation timestamp of the Disk Placement Group.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the Disk Placement Group.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "groupId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs assigned to the Disk Placement Group.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "description": "Status of the Disk Placement Group.\n",
            "type": "string"
          },
          "zone": {
            "description": "ID of the zone where the Disk Placement Group resides.\n",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "folderId",
          "groupId",
          "id",
          "status"
        ],
        "type": "object"
      }
    },
    "yandex:index/getComputeImage:getComputeImage": {
      "inputs": {
        "description": "A collection of arguments for invoking getComputeImage.\n",
        "properties": {
          "family": {
            "type": "string",
            "description": "The family name of an image. Used to search the latest image in a family.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "imageId": {
            "type": "string",
            "description": "The ID of a specific image.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the image.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getComputeImage.\n",
        "properties": {
          "createdAt": {
            "description": "Image creation timestamp.\n",
            "type": "string"
          },
          "description": {
            "description": "An optional description of this image.\n",
            "type": "string"
          },
          "family": {
            "description": "The OS family name of the image.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "imageId": {
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of labels applied to this image.\n",
            "type": "object"
          },
          "minDiskSize": {
            "description": "Minimum size of the disk which is created from this image.\n",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "osType": {
            "description": "Operating system type that the image contains.\n",
            "type": "string"
          },
          "pooled": {
            "description": "Optimize the image to create a disk.\n",
            "type": "boolean"
          },
          "productIds": {
            "description": "License IDs that indicate which licenses are attached to this image.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "size": {
            "description": "The size of the image, specified in Gb.\n",
            "type": "integer"
          },
          "status": {
            "description": "The status of the image.\n",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "description",
          "family",
          "folderId",
          "id",
          "imageId",
          "labels",
          "minDiskSize",
          "name",
          "osType",
          "pooled",
          "productIds",
          "size",
          "status"
        ],
        "type": "object"
      }
    },
    "yandex:index/getComputeInstance:getComputeInstance": {
      "description": "Get information about a Yandex Compute instance. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/compute/concepts/vm).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myInstance = pulumi.output(yandex.getComputeInstance({\n    instanceId: \"some_instance_id\",\n}));\n\nexport const instanceExternalIp = myInstance.networkInterfaces[0].natIpAddress;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_instance = yandex.get_compute_instance(instance_id=\"some_instance_id\")\npulumi.export(\"instanceExternalIp\", my_instance.network_interfaces[0].nat_ip_address)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myInstance = Output.Create(Yandex.GetComputeInstance.InvokeAsync(new Yandex.GetComputeInstanceArgs\n        {\n            InstanceId = \"some_instance_id\",\n        }));\n        this.InstanceExternalIp = myInstance.Apply(myInstance =\u003e myInstance.NetworkInterfaces?[0]?.NatIpAddress);\n    }\n\n    [Output(\"instanceExternalIp\")]\n    public Output\u003cstring\u003e InstanceExternalIp { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some_instance_id\"\n\t\tmyInstance, err := yandex.LookupComputeInstance(ctx, \u0026GetComputeInstanceArgs{\n\t\t\tInstanceId: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"instanceExternalIp\", myInstance.NetworkInterfaces[0].NatIpAddress)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeInstance.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "The ID of a specific instance.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the instance.\n"
          },
          "placementPolicy": {
            "$ref": "#/types/yandex:index%2FgetComputeInstancePlacementPolicy:getComputeInstancePlacementPolicy"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getComputeInstance.\n",
        "properties": {
          "bootDisks": {
            "description": "The boot disk for the instance. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceBootDisk:getComputeInstanceBootDisk"
            },
            "type": "array"
          },
          "createdAt": {
            "description": "Instance creation timestamp.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the boot disk.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "fqdn": {
            "description": "DNS record FQDN.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "instanceId": {
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs assigned to the instance.\n",
            "type": "object"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metadata key/value pairs to make available from\nwithin the instance.\n",
            "type": "object"
          },
          "name": {
            "description": "Name of the boot disk.\n",
            "type": "string"
          },
          "networkAccelerationType": {
            "description": "Type of network acceleration. The default is `standard`. Values: `standard`, `software_accelerated`\n",
            "type": "string"
          },
          "networkInterfaces": {
            "description": "The networks attached to the instance. Structure is documented below.\n* `network_interface.0.ip_address` - An internal IP address of the instance, either manually or dynamically assigned.\n* `network_interface.0.nat_ip_address` - An assigned external IP address if the instance has NAT enabled.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceNetworkInterface:getComputeInstanceNetworkInterface"
            },
            "type": "array"
          },
          "placementPolicy": {
            "$ref": "#/types/yandex:index%2FgetComputeInstancePlacementPolicy:getComputeInstancePlacementPolicy"
          },
          "platformId": {
            "description": "Type of virtual machine to create. Default is 'standard-v1'.\n",
            "type": "string"
          },
          "resources": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceResource:getComputeInstanceResource"
            },
            "type": "array"
          },
          "schedulingPolicies": {
            "description": "Scheduling policy configuration. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceSchedulingPolicy:getComputeInstanceSchedulingPolicy"
            },
            "type": "array"
          },
          "secondaryDisks": {
            "description": "List of secondary disks attached to the instance. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceSecondaryDisk:getComputeInstanceSecondaryDisk"
            },
            "type": "array"
          },
          "serviceAccountId": {
            "description": "ID of the service account authorized for this instance.\n",
            "type": "string"
          },
          "status": {
            "description": "Status of the instance.\n* `resources.0.memory` - Memory size allocated for the instance.\n* `resources.0.cores` - Number of CPU cores allocated for the instance.\n* `resources.0.core_fraction` - Baseline performance for a core, set as a percent.\n* `resources.0.gpus` - Number of GPU cores allocated for the instance.\n",
            "type": "string"
          },
          "zone": {
            "description": "Availability zone where the instance resides.\n",
            "type": "string"
          }
        },
        "required": [
          "bootDisks",
          "createdAt",
          "description",
          "folderId",
          "fqdn",
          "id",
          "instanceId",
          "labels",
          "metadata",
          "name",
          "networkAccelerationType",
          "networkInterfaces",
          "platformId",
          "resources",
          "schedulingPolicies",
          "secondaryDisks",
          "serviceAccountId",
          "status",
          "zone"
        ],
        "type": "object"
      }
    },
    "yandex:index/getComputeInstanceGroup:getComputeInstanceGroup": {
      "description": "Get information about a Yandex Compute instance group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myGroup = pulumi.output(yandex.getComputeInstanceGroup({\n    instanceGroupId: \"some_instance_group_id\",\n}));\n\nexport const instanceExternalIp = myGroup.instances[*].networkInterface.0.natIpAddress;\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeInstanceGroup.\n",
        "properties": {
          "instanceGroupId": {
            "type": "string",
            "description": "The ID of a specific instance group.\n"
          }
        },
        "type": "object",
        "required": [
          "instanceGroupId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getComputeInstanceGroup.\n",
        "properties": {
          "allocationPolicies": {
            "description": "The allocation policy of the instance group by zone and region. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupAllocationPolicy:getComputeInstanceGroupAllocationPolicy"
            },
            "type": "array"
          },
          "applicationBalancerStates": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupApplicationBalancerState:getComputeInstanceGroupApplicationBalancerState"
            },
            "type": "array"
          },
          "applicationLoadBalancers": {
            "description": "Application Load balancing (L7) specifications. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupApplicationLoadBalancer:getComputeInstanceGroupApplicationLoadBalancer"
            },
            "type": "array"
          },
          "createdAt": {
            "description": "The instance group creation timestamp.\n",
            "type": "string"
          },
          "deletionProtection": {
            "description": "Flag that protects the instance group from accidental deletion.\n",
            "type": "boolean"
          },
          "deployPolicies": {
            "description": "The deployment policy of the instance group. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupDeployPolicy:getComputeInstanceGroupDeployPolicy"
            },
            "type": "array"
          },
          "description": {
            "description": "A description of the boot disk.\n",
            "type": "string"
          },
          "folderId": {
            "description": "Folder ID of custom metric in Yandex Monitoring that should be used for scaling.\n",
            "type": "string"
          },
          "healthChecks": {
            "description": "Health check specification. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupHealthCheck:getComputeInstanceGroupHealthCheck"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "instanceGroupId": {
            "type": "string"
          },
          "instanceTemplates": {
            "description": "The instance template that the instance group belongs to. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstanceTemplate:getComputeInstanceGroupInstanceTemplate"
            },
            "type": "array"
          },
          "instances": {
            "description": "A list of instances in the specified instance group. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupInstance:getComputeInstanceGroupInstance"
            },
            "type": "array"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of labels applied to this instance.\n* `resources.0.memory` - The memory size allocated to the instance.\n* `resources.0.cores` - Number of CPU cores allocated to the instance.\n* `resources.0.core_fraction` - Baseline core performance as a percent.\n* `resources.0.gpus` - Number of GPU cores allocated to the instance.\n",
            "type": "object"
          },
          "loadBalancerStates": {
            "description": "Information about which entities can be attached to this load balancer. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupLoadBalancerState:getComputeInstanceGroupLoadBalancerState"
            },
            "type": "array"
          },
          "loadBalancers": {
            "description": "Load balancing specification. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupLoadBalancer:getComputeInstanceGroupLoadBalancer"
            },
            "type": "array"
          },
          "maxCheckingHealthDuration": {
            "description": "Timeout for waiting for the VM to become healthy. If the timeout is exceeded, the VM will be turned off based on the deployment policy. Specified in seconds.\n",
            "type": "integer"
          },
          "name": {
            "description": "The name of the managed instance.\n",
            "type": "string"
          },
          "scalePolicies": {
            "description": "The scaling policy of the instance group. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetComputeInstanceGroupScalePolicy:getComputeInstanceGroupScalePolicy"
            },
            "type": "array"
          },
          "serviceAccountId": {
            "description": "The service account ID for the instance.\n",
            "type": "string"
          },
          "status": {
            "description": "The status of the instance.\n",
            "type": "string"
          },
          "variables": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value  variables pairs to assign to the instance group.\n",
            "type": "object"
          }
        },
        "required": [
          "allocationPolicies",
          "applicationBalancerStates",
          "applicationLoadBalancers",
          "createdAt",
          "deletionProtection",
          "deployPolicies",
          "description",
          "folderId",
          "healthChecks",
          "id",
          "instanceGroupId",
          "instanceTemplates",
          "instances",
          "labels",
          "loadBalancerStates",
          "loadBalancers",
          "maxCheckingHealthDuration",
          "name",
          "scalePolicies",
          "serviceAccountId",
          "status",
          "variables"
        ],
        "type": "object"
      }
    },
    "yandex:index/getComputePlacementGroup:getComputePlacementGroup": {
      "description": "Get information about a Yandex Compute Placement group. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/compute/concepts/placement-groups).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myGroup = pulumi.output(yandex.getComputePlacementGroup({\n    groupId: \"some_group_id\",\n}));\n\nexport const placementGroupName = myGroup.name!;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_group = yandex.get_compute_placement_group(group_id=\"some_group_id\")\npulumi.export(\"placementGroupName\", my_group.name)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myGroup = Output.Create(Yandex.GetComputePlacementGroup.InvokeAsync(new Yandex.GetComputePlacementGroupArgs\n        {\n            GroupId = \"some_group_id\",\n        }));\n        this.PlacementGroupName = myGroup.Apply(myGroup =\u003e myGroup.Name);\n    }\n\n    [Output(\"placementGroupName\")]\n    public Output\u003cstring\u003e PlacementGroupName { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some_group_id\"\n\t\tmyGroup, err := yandex.LookupComputePlacementGroup(ctx, \u0026GetComputePlacementGroupArgs{\n\t\t\tGroupId: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"placementGroupName\", myGroup.Name)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getComputePlacementGroup.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the group.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "groupId": {
            "type": "string",
            "description": "The ID of a specific group.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs assigned to the group.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the group.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getComputePlacementGroup.\n",
        "properties": {
          "createdAt": {
            "description": "Placement group creation timestamp.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the group.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "groupId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs assigned to the group.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "folderId",
          "groupId",
          "id"
        ],
        "type": "object"
      }
    },
    "yandex:index/getComputeSnapshot:getComputeSnapshot": {
      "description": "Get information about a Yandex Compute snapshot. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/compute/concepts/snapshot).\n",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeSnapshot.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "ID of the folder that the snapshot belongs to.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the snapshot.\n"
          },
          "snapshotId": {
            "type": "string",
            "description": "The ID of a specific snapshot.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getComputeSnapshot.\n",
        "properties": {
          "createdAt": {
            "description": "Snapshot creation timestamp.\n",
            "type": "string"
          },
          "description": {
            "description": "An optional description of this snapshot.\n",
            "type": "string"
          },
          "diskSize": {
            "description": "Minimum required size of the disk which is created from this snapshot.\n",
            "type": "integer"
          },
          "folderId": {
            "description": "ID of the folder that the snapshot belongs to.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of labels applied to this snapshot.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "productIds": {
            "description": "License IDs that indicate which licenses are attached to this snapshot.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "snapshotId": {
            "type": "string"
          },
          "sourceDiskId": {
            "description": "ID of the source disk.\n",
            "type": "string"
          },
          "status": {
            "description": "The status of the snapshot.\n",
            "type": "string"
          },
          "storageSize": {
            "description": "The size of the snapshot, specified in Gb.\n",
            "type": "integer"
          }
        },
        "required": [
          "createdAt",
          "description",
          "diskSize",
          "folderId",
          "id",
          "labels",
          "name",
          "productIds",
          "snapshotId",
          "sourceDiskId",
          "status",
          "storageSize"
        ],
        "type": "object"
      }
    },
    "yandex:index/getContainerRegistry:getContainerRegistry": {
      "description": "Get information about a Yandex Container Registry. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/container-registry/concepts/registry)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst source = pulumi.output(yandex.getContainerRegistry({\n    registryId: \"some_registry_id\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nsource = yandex.get_container_registry(registry_id=\"some_registry_id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var source = Output.Create(Yandex.GetContainerRegistry.InvokeAsync(new Yandex.GetContainerRegistryArgs\n        {\n            RegistryId = \"some_registry_id\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some_registry_id\"\n\t\t_, err := yandex.LookupContainerRegistry(ctx, \u0026GetContainerRegistryArgs{\n\t\t\tRegistryId: \u0026opt0,\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{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getContainerRegistry.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this registry.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the registry.\n"
          },
          "registryId": {
            "type": "string",
            "description": "The ID of a specific registry.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getContainerRegistry.\n",
        "properties": {
          "createdAt": {
            "description": "Creation timestamp of this registry.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this registry.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "registryId": {
            "type": "string"
          },
          "status": {
            "description": "Status of the registry.\n",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "folderId",
          "id",
          "name",
          "registryId",
          "status"
        ],
        "type": "object"
      }
    },
    "yandex:index/getContainerRepository:getContainerRepository": {
      "description": "Get information about a Yandex Container Repository. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/container-registry/concepts/repository)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst repo_1 = pulumi.output(yandex.getContainerRepository({\n    name: \"some_repository_name\",\n}));\nconst repo_2 = pulumi.output(yandex.getContainerRepository({\n    repositoryId: \"some_repository_id\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nrepo_1 = yandex.get_container_repository(name=\"some_repository_name\")\nrepo_2 = yandex.get_container_repository(repository_id=\"some_repository_id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var repo_1 = Output.Create(Yandex.GetContainerRepository.InvokeAsync(new Yandex.GetContainerRepositoryArgs\n        {\n            Name = \"some_repository_name\",\n        }));\n        var repo_2 = Output.Create(Yandex.GetContainerRepository.InvokeAsync(new Yandex.GetContainerRepositoryArgs\n        {\n            RepositoryId = \"some_repository_id\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some_repository_name\"\n\t\t_, err := yandex.LookupContainerRepository(ctx, \u0026GetContainerRepositoryArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\topt1 := \"some_repository_id\"\n\t\t_, err = yandex.LookupContainerRepository(ctx, \u0026GetContainerRepositoryArgs{\n\t\t\tRepositoryId: \u0026opt1,\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{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getContainerRepository.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the repository. The name of the repository should start with id of a container registry and match the name of the images in the repository.\n"
          },
          "repositoryId": {
            "type": "string",
            "description": "The ID of a specific repository.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getContainerRepository.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "repositoryId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "repositoryId"
        ],
        "type": "object"
      }
    },
    "yandex:index/getDataprocCluster:getDataprocCluster": {
      "description": "Get information about a Yandex Data Proc cluster. For more information, see [the official documentation](https://cloud.yandex.com/docs/data-proc/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getDataprocCluster({\n    name: \"test\",\n}));\n\nexport const serviceAccountId = foo.serviceAccountId;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_dataproc_cluster(name=\"test\")\npulumi.export(\"serviceAccountId\", foo.service_account_id)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetDataprocCluster.InvokeAsync(new Yandex.GetDataprocClusterArgs\n        {\n            Name = \"test\",\n        }));\n        this.ServiceAccountId = foo.Apply(foo =\u003e foo.ServiceAccountId);\n    }\n\n    [Output(\"serviceAccountId\")]\n    public Output\u003cstring\u003e ServiceAccountId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"test\"\n\t\tfoo, err := yandex.LookupDataprocCluster(ctx, \u0026GetDataprocClusterArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceAccountId\", foo.ServiceAccountId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDataprocCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "The ID of the Data Proc cluster.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the Data Proc cluster.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDataprocCluster.\n",
        "properties": {
          "bucket": {
            "description": "Name of the Object Storage bucket used for Data Proc jobs.\n",
            "type": "string"
          },
          "clusterConfigs": {
            "description": "Configuration and resources of the cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetDataprocClusterClusterConfig:getDataprocClusterClusterConfig"
            },
            "type": "array"
          },
          "clusterId": {
            "type": "string"
          },
          "createdAt": {
            "description": "The Data Proc cluster creation timestamp.\n",
            "type": "string"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "description": {
            "description": "Description of the Data Proc cluster.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "hostGroupIds": {
            "description": "A list of IDs of the host groups hosting VMs of the cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs assigned to the Data Proc cluster.\n",
            "type": "object"
          },
          "name": {
            "description": "Name of the Data Proc subcluster.\n",
            "type": "string"
          },
          "securityGroupIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "serviceAccountId": {
            "description": "Service account used by the Data Proc agent to access resources of Yandex.Cloud.\n",
            "type": "string"
          },
          "uiProxy": {
            "description": "Whether UI proxy feature is enabled.\n",
            "type": "boolean"
          },
          "zoneId": {
            "description": "ID of the availability zone where the cluster resides.\n",
            "type": "string"
          }
        },
        "required": [
          "bucket",
          "clusterConfigs",
          "clusterId",
          "createdAt",
          "deletionProtection",
          "description",
          "folderId",
          "hostGroupIds",
          "id",
          "labels",
          "name",
          "securityGroupIds",
          "serviceAccountId",
          "uiProxy",
          "zoneId"
        ],
        "type": "object"
      }
    },
    "yandex:index/getDnsZone:getDnsZone": {
      "description": "Get information about a DNS Zone.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = yandex.getDnsZone({\n    dnsZoneId: yandex_dns_zone.zone1.id,\n});\nexport const zone = foo.then(foo =\u003e foo.zone);\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_dns_zone(dns_zone_id=yandex_dns_zone[\"zone1\"][\"id\"])\npulumi.export(\"zone\", foo.zone)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetDnsZone.InvokeAsync(new Yandex.GetDnsZoneArgs\n        {\n            DnsZoneId = yandex_dns_zone.Zone1.Id,\n        }));\n        this.Zone = foo.Apply(foo =\u003e foo.Zone);\n    }\n\n    [Output(\"zone\")]\n    public Output\u003cstring\u003e Zone { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := yandex_dns_zone.Zone1.Id\n\t\tfoo, err := yandex.LookupDnsZone(ctx, \u0026GetDnsZoneArgs{\n\t\t\tDnsZoneId: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"zone\", foo.Zone)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDnsZone.\n",
        "properties": {
          "dnsZoneId": {
            "type": "string",
            "description": "The ID of the DNS Zone.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "- Name of the DNS Zone.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDnsZone.\n",
        "properties": {
          "createdAt": {
            "description": "(Computed) The DNS zone creation timestamp.\n",
            "type": "string"
          },
          "description": {
            "description": "(Computed) Description of the DNS zone.\n",
            "type": "string"
          },
          "dnsZoneId": {
            "type": "string"
          },
          "folderId": {
            "description": "(Computed) The ID of the folder that the resource belongs to. If it is not provided, the default provider folder is used.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "(Computed) A set of key/value label pairs to assign to the DNS zone.\n",
            "type": "object"
          },
          "name": {
            "description": "(Computed) User assigned name of a specific resource. Must be unique within the folder.\n",
            "type": "string"
          },
          "privateNetworks": {
            "description": "(Computed) For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "public": {
            "description": "(Computed) The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.\n",
            "type": "boolean"
          },
          "zone": {
            "description": "(Computed) The DNS name of this zone, e.g. \"example.com.\". Must ends with dot.\n",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "description",
          "dnsZoneId",
          "folderId",
          "id",
          "labels",
          "name",
          "privateNetworks",
          "public",
          "zone"
        ],
        "type": "object"
      }
    },
    "yandex:index/getFunction:getFunction": {
      "description": "Get information about a Yandex Cloud Function. For more information about Yandex Cloud Functions, see \n[Yandex Cloud Functions](https://cloud.yandex.com/docs/functions/).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myFunction = pulumi.output(yandex.getFunction({\n    functionId: \"are1samplefunction11\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_function = yandex.get_function(function_id=\"are1samplefunction11\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myFunction = Output.Create(Yandex.GetFunction.InvokeAsync(new Yandex.GetFunctionArgs\n        {\n            FunctionId = \"are1samplefunction11\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"are1samplefunction11\"\n\t\t_, err := yandex.LookupFunction(ctx, \u0026GetFunctionArgs{\n\t\t\tFunctionId: \u0026opt0,\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\nThis data source is used to define [Yandex Cloud Function](https://cloud.yandex.com/docs/functions/concepts/function) that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getFunction.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder ID for the Yandex Cloud Function\n"
          },
          "functionId": {
            "type": "string",
            "description": "Yandex Cloud Function id used to define function\n"
          },
          "name": {
            "type": "string",
            "description": "Yandex Cloud Function name used to define function\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getFunction.\n",
        "properties": {
          "createdAt": {
            "description": "Creation timestamp of the Yandex Cloud Function\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the Yandex Cloud Function\n",
            "type": "string"
          },
          "entrypoint": {
            "description": "Entrypoint for Yandex Cloud Function\n",
            "type": "string"
          },
          "environment": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value environment variables for Yandex Cloud Function\n",
            "type": "object"
          },
          "executionTimeout": {
            "description": "Execution timeout in seconds for Yandex Cloud Function\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "functionId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "imageSize": {
            "description": "Image size for Yandex Cloud Function.\n",
            "type": "integer"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Yandex Cloud Function\n",
            "type": "object"
          },
          "loggroupId": {
            "description": "Log group ID size for Yandex Cloud Function.\n",
            "type": "string"
          },
          "memory": {
            "description": "Memory in megabytes (**aligned to 128MB**) for Yandex Cloud Function\n",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "runtime": {
            "description": "Runtime for Yandex Cloud Function\n",
            "type": "string"
          },
          "serviceAccountId": {
            "description": "Service account ID for Yandex Cloud Function\n",
            "type": "string"
          },
          "tags": {
            "description": "Tags for Yandex Cloud Function. Tag \"$latest\" isn't returned.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "version": {
            "description": "Version for Yandex Cloud Function.\n",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "description",
          "entrypoint",
          "environment",
          "executionTimeout",
          "id",
          "imageSize",
          "labels",
          "loggroupId",
          "memory",
          "runtime",
          "serviceAccountId",
          "tags",
          "version"
        ],
        "type": "object"
      }
    },
    "yandex:index/getFunctionScalingPolicy:getFunctionScalingPolicy": {
      "inputs": {
        "description": "A collection of arguments for invoking getFunctionScalingPolicy.\n",
        "properties": {
          "functionId": {
            "type": "string"
          },
          "policies": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FgetFunctionScalingPolicyPolicy:getFunctionScalingPolicyPolicy"
            }
          }
        },
        "type": "object",
        "required": [
          "functionId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getFunctionScalingPolicy.\n",
        "properties": {
          "functionId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "policies": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetFunctionScalingPolicyPolicy:getFunctionScalingPolicyPolicy"
            },
            "type": "array"
          }
        },
        "required": [
          "functionId",
          "id",
          "policies"
        ],
        "type": "object"
      }
    },
    "yandex:index/getFunctionTrigger:getFunctionTrigger": {
      "description": "Get information about a Yandex Cloud Function Trigger. For more information about Yandex Cloud Functions, see \n[Yandex Cloud Functions](https://cloud.yandex.com/docs/functions/).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myTrigger = pulumi.output(yandex.getFunctionTrigger({\n    triggerId: \"are1sampletrigger11\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_trigger = yandex.get_function_trigger(trigger_id=\"are1sampletrigger11\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myTrigger = Output.Create(Yandex.GetFunctionTrigger.InvokeAsync(new Yandex.GetFunctionTriggerArgs\n        {\n            TriggerId = \"are1sampletrigger11\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"are1sampletrigger11\"\n\t\t_, err := yandex.LookupFunctionTrigger(ctx, \u0026GetFunctionTriggerArgs{\n\t\t\tTriggerId: \u0026opt0,\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\nThis data source is used to define [Yandex Cloud Functions Trigger](https://cloud.yandex.com/docs/functions/concepts/trigger) that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getFunctionTrigger.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder ID for the Yandex Cloud Functions Trigger\n"
          },
          "name": {
            "type": "string",
            "description": "Yandex Cloud Functions Trigger name used to define trigger\n"
          },
          "triggerId": {
            "type": "string",
            "description": "Yandex Cloud Functions Trigger id used to define trigger\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getFunctionTrigger.\n",
        "properties": {
          "createdAt": {
            "description": "Creation timestamp of the Yandex Cloud Functions Trigger\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the Yandex Cloud Functions Trigger\n",
            "type": "string"
          },
          "dlqs": {
            "description": "Dead Letter Queue settings definition for Yandex Cloud Functions Trigger\n* `dlq.0.queue_id` - ID of Dead Letter Queue for Trigger (Queue ARN)\n* `dlq.0.service_account_id` - Service Account ID for Dead Letter Queue for Yandex Cloud Functions Trigger\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetFunctionTriggerDlq:getFunctionTriggerDlq"
            },
            "type": "array"
          },
          "folderId": {
            "description": "Folder ID for the Yandex Cloud Functions Trigger\n",
            "type": "string"
          },
          "functions": {
            "description": "[Yandex.Cloud Function](https://cloud.yandex.com/docs/functions/concepts/function) settings definition for Yandex Cloud Functions Trigger\n* `function.0.id` - Yandex.Cloud Function ID for Yandex Cloud Functions Trigger\n* `function.0.service_account_id` - Service account ID for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n* `function.0.tag` - Tag for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n* `function.0.retry_attempts` - Retry attempts for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n* `function.0.retry_interval` - Retry interval in seconds for Yandex.Cloud Function for Yandex Cloud Functions Trigger\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetFunctionTriggerFunction:getFunctionTriggerFunction"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "iots": {
            "description": "[IoT](https://cloud.yandex.com/docs/functions/concepts/trigger/iot-core-trigger) settings definition for Yandex Cloud Functions Trigger, if present\n* `iot.0.registry_id` - IoT Registry ID for Yandex Cloud Functions Trigger\n* `iot.0.device_id` - IoT Device ID for Yandex Cloud Functions Trigger\n* `iot.0.topic` - IoT Topic for Yandex Cloud Functions Trigger\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetFunctionTriggerIot:getFunctionTriggerIot"
            },
            "type": "array"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Yandex Cloud Functions Trigger\n",
            "type": "object"
          },
          "logGroups": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetFunctionTriggerLogGroup:getFunctionTriggerLogGroup"
            },
            "type": "array"
          },
          "loggings": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetFunctionTriggerLogging:getFunctionTriggerLogging"
            },
            "type": "array"
          },
          "messageQueues": {
            "description": "[Message Queue](https://cloud.yandex.com/docs/functions/concepts/trigger/ymq-trigger) settings definition for Yandex Cloud Functions Trigger, if present\n* `message_queue.0.queue_id` - Message Queue ID for Yandex Cloud Functions Trigger\n* `message_queue.0.service_account_id` - Message Queue Service Account ID for Yandex Cloud Functions Trigger\n* `message_queue.0.batch_cutoff` - Batch Duration in seconds for Yandex Cloud Functions Trigger\n* `message_queue.0.batch_size` - Batch Size for Yandex Cloud Functions Trigger\n* `message_queue.0.visibility_timeout` - Visibility timeout for Yandex Cloud Functions Trigger\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetFunctionTriggerMessageQueue:getFunctionTriggerMessageQueue"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "objectStorages": {
            "description": "[Object Storage](https://cloud.yandex.com/docs/functions/concepts/trigger/os-trigger) settings definition for Yandex Cloud Functions Trigger, if present\n* `object_storage.0.bucket_id` - Object Storage Bucket ID for Yandex Cloud Functions Trigger\n* `object_storage.0.prefix` - Prefix for Object Storage for Yandex Cloud Functions Trigger\n* `object_storage.0.suffix` - Suffix for Object Storage for Yandex Cloud Functions Trigger\n* `object_storage.0.create` - Boolean flag for setting create event for Yandex Cloud Functions Trigger\n* `object_storage.0.update` - Boolean flag for setting update event for Yandex Cloud Functions Trigger\n* `object_storage.0.delete` - Boolean flag for setting delete event for Yandex Cloud Functions Trigger\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetFunctionTriggerObjectStorage:getFunctionTriggerObjectStorage"
            },
            "type": "array"
          },
          "timers": {
            "description": "[Timer](https://cloud.yandex.com/docs/functions/concepts/trigger/timer) settings definition for Yandex Cloud Functions Trigger, if present\n* `timer.0.cron_expression` - Cron expression for timer for Yandex Cloud Functions Trigger\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetFunctionTriggerTimer:getFunctionTriggerTimer"
            },
            "type": "array"
          },
          "triggerId": {
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "description",
          "dlqs",
          "functions",
          "id",
          "iots",
          "labels",
          "logGroups",
          "loggings",
          "messageQueues",
          "objectStorages",
          "timers"
        ],
        "type": "object"
      }
    },
    "yandex:index/getIamPolicy:getIamPolicy": {
      "description": "Generates an [IAM] policy document that may be referenced by and applied to\nother Yandex.Cloud Platform resources, such as the `yandex.ResourcemanagerFolder` resource. \n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst admin = pulumi.output(yandex.getIamPolicy({\n    bindings: [\n        {\n            members: [\"userAccount:user_id_1\"],\n            role: \"admin\",\n        },\n        {\n            members: [\"userAccount:user_id_2\"],\n            role: \"viewer\",\n        },\n    ],\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nadmin = yandex.get_iam_policy(bindings=[\n    yandex.GetIamPolicyBindingArgs(\n        members=[\"userAccount:user_id_1\"],\n        role=\"admin\",\n    ),\n    yandex.GetIamPolicyBindingArgs(\n        members=[\"userAccount:user_id_2\"],\n        role=\"viewer\",\n    ),\n])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var admin = Output.Create(Yandex.GetIamPolicy.InvokeAsync(new Yandex.GetIamPolicyArgs\n        {\n            Bindings = \n            {\n                new Yandex.Inputs.GetIamPolicyBindingArgs\n                {\n                    Members = \n                    {\n                        \"userAccount:user_id_1\",\n                    },\n                    Role = \"admin\",\n                },\n                new Yandex.Inputs.GetIamPolicyBindingArgs\n                {\n                    Members = \n                    {\n                        \"userAccount:user_id_2\",\n                    },\n                    Role = \"viewer\",\n                },\n            },\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.GetIamPolicy(ctx, \u0026GetIamPolicyArgs{\n\t\t\tBindings: []GetIamPolicyBinding{\n\t\t\t\tGetIamPolicyBinding{\n\t\t\t\t\tMembers: []string{\n\t\t\t\t\t\t\"userAccount:user_id_1\",\n\t\t\t\t\t},\n\t\t\t\t\tRole: \"admin\",\n\t\t\t\t},\n\t\t\t\tGetIamPolicyBinding{\n\t\t\t\t\tMembers: []string{\n\t\t\t\t\t\t\"userAccount:user_id_2\",\n\t\t\t\t\t},\n\t\t\t\t\tRole: \"viewer\",\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\nThis data source is used to define [IAM] policies to apply to other resources.\nCurrently, defining a policy through a data source and referencing that policy\nfrom another resource is the only way to apply an IAM policy to a resource.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getIamPolicy.\n",
        "properties": {
          "bindings": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FgetIamPolicyBinding:getIamPolicyBinding"
            },
            "description": "A nested configuration block (described below)\nthat defines a binding to be included in the policy document. Multiple\n`binding` arguments are supported.\n"
          }
        },
        "type": "object",
        "required": [
          "bindings"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getIamPolicy.\n",
        "properties": {
          "bindings": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetIamPolicyBinding:getIamPolicyBinding"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "policyData": {
            "description": "The above bindings serialized in a format suitable for\nreferencing from a resource that supports IAM.\n",
            "type": "string"
          }
        },
        "required": [
          "bindings",
          "id",
          "policyData"
        ],
        "type": "object"
      }
    },
    "yandex:index/getIamRole:getIamRole": {
      "description": "Generates an [IAM] role document that may be referenced by and applied to\nother Yandex.Cloud Platform resources, such as the `yandex.ResourcemanagerFolder` resource. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/iam/concepts/access-control/roles).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst admin = pulumi.output(yandex.getIamRole({\n    binding: [{\n        members: [\"userAccount:user_id_1\"],\n        role: \"admin\",\n    }],\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nadmin = yandex.get_iam_role(binding=[{\n    \"members\": [\"userAccount:user_id_1\"],\n    \"role\": \"admin\",\n}])\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var admin = Output.Create(Yandex.GetIamRole.InvokeAsync(new Yandex.GetIamRoleArgs\n        {\n            Binding = \n            {\n                \n                {\n                    { \"members\", \n                    {\n                        \"userAccount:user_id_1\",\n                    } },\n                    { \"role\", \"admin\" },\n                },\n            },\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.GetIamRole(ctx, \u0026GetIamRoleArgs{\n\t\t\tBinding: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"members\": []string{\n\t\t\t\t\t\t\"userAccount:user_id_1\",\n\t\t\t\t\t},\n\t\t\t\t\t\"role\": \"admin\",\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\nThis data source is used to define [IAM] roles in order to apply them to other resources.\nCurrently, defining a role through a data source and referencing that role\nfrom another resource is the only way to apply an IAM role to a resource.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getIamRole.\n",
        "properties": {
          "description": {
            "type": "string"
          },
          "roleId": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIamRole.\n",
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "roleId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "roleId"
        ],
        "type": "object"
      }
    },
    "yandex:index/getIamServiceAccount:getIamServiceAccount": {
      "description": "Get information about a Yandex IAM service account. For more information about accounts, see \n[Yandex.Cloud IAM accounts](https://cloud.yandex.com/docs/iam/concepts/#accounts).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst builder = pulumi.output(yandex.getIamServiceAccount({\n    serviceAccountId: \"sa_id\",\n}));\nconst deployer = pulumi.output(yandex.getIamServiceAccount({\n    name: \"sa_name\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nbuilder = yandex.get_iam_service_account(service_account_id=\"sa_id\")\ndeployer = yandex.get_iam_service_account(name=\"sa_name\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var builder = Output.Create(Yandex.GetIamServiceAccount.InvokeAsync(new Yandex.GetIamServiceAccountArgs\n        {\n            ServiceAccountId = \"sa_id\",\n        }));\n        var deployer = Output.Create(Yandex.GetIamServiceAccount.InvokeAsync(new Yandex.GetIamServiceAccountArgs\n        {\n            Name = \"sa_name\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"sa_id\"\n\t\t_, err := yandex.LookupIamServiceAccount(ctx, \u0026GetIamServiceAccountArgs{\n\t\t\tServiceAccountId: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\topt1 := \"sa_name\"\n\t\t_, err = yandex.LookupIamServiceAccount(ctx, \u0026GetIamServiceAccountArgs{\n\t\t\tName: \u0026opt1,\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",
      "inputs": {
        "description": "A collection of arguments for invoking getIamServiceAccount.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of a specific service account.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "ID of a specific service account.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIamServiceAccount.\n",
        "properties": {
          "createdAt": {
            "type": "string"
          },
          "description": {
            "description": "Description of the service account.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "serviceAccountId": {
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "description",
          "folderId",
          "id",
          "name",
          "serviceAccountId"
        ],
        "type": "object"
      }
    },
    "yandex:index/getIamUser:getIamUser": {
      "description": "Get information about a Yandex IAM user account. For more information about accounts, see \n[Yandex.Cloud IAM accounts](https://cloud.yandex.com/docs/iam/concepts/#accounts).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst admin = pulumi.output(yandex.getIamUser({\n    login: \"my-yandex-login\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nadmin = yandex.get_iam_user(login=\"my-yandex-login\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var admin = Output.Create(Yandex.GetIamUser.InvokeAsync(new Yandex.GetIamUserArgs\n        {\n            Login = \"my-yandex-login\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"my-yandex-login\"\n\t\t_, err := yandex.GetIamUser(ctx, \u0026GetIamUserArgs{\n\t\t\tLogin: \u0026opt0,\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\nThis data source is used to define [IAM User] that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getIamUser.\n",
        "properties": {
          "login": {
            "type": "string",
            "description": "Login name used to sign in to Yandex Passport.\n"
          },
          "userId": {
            "type": "string",
            "description": "User ID used to manage IAM access bindings.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIamUser.\n",
        "properties": {
          "defaultEmail": {
            "description": "Email address of user account.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "login": {
            "description": "Login name of IAM user account.\n",
            "type": "string"
          },
          "userId": {
            "description": "ID of IAM user account.\n",
            "type": "string"
          }
        },
        "required": [
          "defaultEmail",
          "id",
          "login",
          "userId"
        ],
        "type": "object"
      }
    },
    "yandex:index/getIotCoreDevice:getIotCoreDevice": {
      "description": "Get information about a Yandex IoT Core device. For more information about IoT Core, see \n[Yandex.Cloud IoT Device](https://cloud.yandex.com/docs/iot-core/quickstart).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myDevice = pulumi.output(yandex.getIotCoreDevice({\n    deviceId: \"are1sampleregistry11\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_device = yandex.get_iot_core_device(device_id=\"are1sampleregistry11\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myDevice = Output.Create(Yandex.GetIotCoreDevice.InvokeAsync(new Yandex.GetIotCoreDeviceArgs\n        {\n            DeviceId = \"are1sampleregistry11\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"are1sampleregistry11\"\n\t\t_, err := yandex.LookupIotCoreDevice(ctx, \u0026GetIotCoreDeviceArgs{\n\t\t\tDeviceId: \u0026opt0,\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\nThis data source is used to define [Yandex.Cloud IoT Device](https://cloud.yandex.com/docs/iot-core/quickstart) that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getIotCoreDevice.\n",
        "properties": {
          "deviceId": {
            "type": "string",
            "description": "IoT Core Device id used to define device\n"
          },
          "name": {
            "type": "string",
            "description": "IoT Core Device name used to define device\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIotCoreDevice.\n",
        "properties": {
          "aliases": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value aliases pairs to assign to the IoT Core Device\n",
            "type": "object"
          },
          "certificates": {
            "description": "A set of certificate's fingerprints for the IoT Core Device\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "createdAt": {
            "description": "Creation timestamp of the IoT Core Device\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the IoT Core Device\n",
            "type": "string"
          },
          "deviceId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "passwords": {
            "description": "A set of passwords's id for the IoT Core Device\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "registryId": {
            "description": "IoT Core Registry ID for the IoT Core Device\n",
            "type": "string"
          }
        },
        "required": [
          "aliases",
          "certificates",
          "createdAt",
          "description",
          "id",
          "passwords",
          "registryId"
        ],
        "type": "object"
      }
    },
    "yandex:index/getIotCoreRegistry:getIotCoreRegistry": {
      "description": "Get information about a Yandex IoT Core Registry. For more information IoT Core, see \n[Yandex.Cloud IoT Registry](https://cloud.yandex.com/docs/iot-core/quickstart).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myRegistry = pulumi.output(yandex.getIotCoreRegistry({\n    registryId: \"are1sampleregistry11\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_registry = yandex.get_iot_core_registry(registry_id=\"are1sampleregistry11\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myRegistry = Output.Create(Yandex.GetIotCoreRegistry.InvokeAsync(new Yandex.GetIotCoreRegistryArgs\n        {\n            RegistryId = \"are1sampleregistry11\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"are1sampleregistry11\"\n\t\t_, err := yandex.LookupIotCoreRegistry(ctx, \u0026GetIotCoreRegistryArgs{\n\t\t\tRegistryId: \u0026opt0,\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\nThis data source is used to define [Yandex.Cloud IoT Registry](https://cloud.yandex.com/docs/iot-core/quickstart) that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getIotCoreRegistry.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder ID for the IoT Core Registry\n"
          },
          "name": {
            "type": "string",
            "description": "IoT Core Registry name used to define registry\n"
          },
          "registryId": {
            "type": "string",
            "description": "IoT Core Registry id used to define registry\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIotCoreRegistry.\n",
        "properties": {
          "certificates": {
            "description": "A set of certificate's fingerprints for the IoT Core Registry\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "createdAt": {
            "description": "Creation timestamp of the IoT Core Registry\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the IoT Core Registry\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the IoT Core Registry.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "passwords": {
            "description": "A set of passwords's id for the IoT Core Registry\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "registryId": {
            "type": "string"
          }
        },
        "required": [
          "certificates",
          "createdAt",
          "description",
          "id",
          "labels",
          "passwords"
        ],
        "type": "object"
      }
    },
    "yandex:index/getKubernetesCluster:getKubernetesCluster": {
      "description": "Get information about a Yandex Kubernetes Cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myCluster = pulumi.output(yandex.getKubernetesCluster({\n    clusterId: \"some_k8s_cluster_id\",\n}));\n\nexport const clusterExternalV4Endpoint = myCluster.masters[0].externalV4Endpoint;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_cluster = yandex.get_kubernetes_cluster(cluster_id=\"some_k8s_cluster_id\")\npulumi.export(\"clusterExternalV4Endpoint\", my_cluster.masters[0].external_v4_endpoint)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myCluster = Output.Create(Yandex.GetKubernetesCluster.InvokeAsync(new Yandex.GetKubernetesClusterArgs\n        {\n            ClusterId = \"some_k8s_cluster_id\",\n        }));\n        this.ClusterExternalV4Endpoint = myCluster.Apply(myCluster =\u003e myCluster.Masters?[0]?.ExternalV4Endpoint);\n    }\n\n    [Output(\"clusterExternalV4Endpoint\")]\n    public Output\u003cstring\u003e ClusterExternalV4Endpoint { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some_k8s_cluster_id\"\n\t\tmyCluster, err := yandex.LookupKubernetesCluster(ctx, \u0026GetKubernetesClusterArgs{\n\t\t\tClusterId: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"clusterExternalV4Endpoint\", myCluster.Masters[0].ExternalV4Endpoint)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getKubernetesCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "ID of a specific Kubernetes cluster.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of a specific Kubernetes cluster.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getKubernetesCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string"
          },
          "clusterIpv4Range": {
            "description": "IP range for allocating pod addresses.\n",
            "type": "string"
          },
          "clusterIpv6Range": {
            "description": "Identical to cluster_ipv4_range but for the IPv6 protocol.\n",
            "type": "string"
          },
          "createdAt": {
            "description": "The Kubernetes cluster creation timestamp.\n",
            "type": "string"
          },
          "description": {
            "description": "A description of the Kubernetes cluster.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "health": {
            "description": "Health of the Kubernetes cluster.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "kmsProviders": {
            "description": "cluster KMS provider parameters.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetKubernetesClusterKmsProvider:getKubernetesClusterKmsProvider"
            },
            "type": "array"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Kubernetes cluster.\n",
            "type": "object"
          },
          "logGroupId": {
            "description": "Log group where cluster stores cluster system logs, like audit, events, or controlplane logs.\n",
            "type": "string"
          },
          "masters": {
            "description": "Kubernetes master configuration options. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetKubernetesClusterMaster:getKubernetesClusterMaster"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "networkId": {
            "description": "The ID of the cluster network.\n",
            "type": "string"
          },
          "networkImplementations": {
            "description": "(Optional) Network Implementation options. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetKubernetesClusterNetworkImplementation:getKubernetesClusterNetworkImplementation"
            },
            "type": "array"
          },
          "networkPolicyProvider": {
            "description": "Network policy provider for the cluster, if present. Possible values: `CALICO`.\n",
            "type": "string"
          },
          "nodeIpv4CidrMaskSize": {
            "description": "Size of the masks that are assigned to each node in the cluster.\n",
            "type": "integer"
          },
          "nodeServiceAccountId": {
            "description": "Service account to be used by the worker nodes of the Kubernetes cluster\nto access Container Registry or to push node logs and metrics.\n",
            "type": "string"
          },
          "releaseChannel": {
            "description": "Cluster release channel.\n",
            "type": "string"
          },
          "serviceAccountId": {
            "description": "Service account to be used for provisioning Compute Cloud and VPC resources\nfor Kubernetes cluster. Selected service account should have `edit` role on the folder where the Kubernetes\ncluster will be located and on the folder where selected network resides.\n",
            "type": "string"
          },
          "serviceIpv4Range": {
            "description": "IP range Kubernetes services Kubernetes cluster IP addresses will be allocated from.\n",
            "type": "string"
          },
          "serviceIpv6Range": {
            "description": "Identical to service_ipv4_range but for the IPv6 protocol.\n",
            "type": "string"
          },
          "status": {
            "description": "Status of the Kubernetes cluster.\n",
            "type": "string"
          }
        },
        "required": [
          "clusterId",
          "clusterIpv4Range",
          "clusterIpv6Range",
          "createdAt",
          "description",
          "folderId",
          "health",
          "id",
          "kmsProviders",
          "labels",
          "logGroupId",
          "masters",
          "name",
          "networkId",
          "networkImplementations",
          "networkPolicyProvider",
          "nodeIpv4CidrMaskSize",
          "nodeServiceAccountId",
          "releaseChannel",
          "serviceAccountId",
          "serviceIpv4Range",
          "serviceIpv6Range",
          "status"
        ],
        "type": "object"
      }
    },
    "yandex:index/getKubernetesNodeGroup:getKubernetesNodeGroup": {
      "description": "Get information about a Yandex Kubernetes Node Group. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-kubernetes/concepts/#node-group).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myNodeGroup = pulumi.output(yandex.getKubernetesNodeGroup({\n    nodeGroupId: \"some_k8s_node_group_id\",\n}));\n\nexport const my_node_group_status = myNodeGroup.status;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_node_group = yandex.get_kubernetes_node_group(node_group_id=\"some_k8s_node_group_id\")\npulumi.export(\"myNodeGroup.status\", my_node_group.status)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myNodeGroup = Output.Create(Yandex.GetKubernetesNodeGroup.InvokeAsync(new Yandex.GetKubernetesNodeGroupArgs\n        {\n            NodeGroupId = \"some_k8s_node_group_id\",\n        }));\n        this.MyNodeGroup_status = myNodeGroup.Apply(myNodeGroup =\u003e myNodeGroup.Status);\n    }\n\n    [Output(\"myNodeGroup.status\")]\n    public Output\u003cstring\u003e MyNodeGroup_status { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some_k8s_node_group_id\"\n\t\tmyNodeGroup, err := yandex.LookupKubernetesNodeGroup(ctx, \u0026GetKubernetesNodeGroupArgs{\n\t\t\tNodeGroupId: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"myNodeGroup.status\", myNodeGroup.Status)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getKubernetesNodeGroup.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of a specific Kubernetes node group.\n"
          },
          "nodeGroupId": {
            "type": "string",
            "description": "ID of a specific Kubernetes node group.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getKubernetesNodeGroup.\n",
        "properties": {
          "allocationPolicies": {
            "description": "This argument specify subnets (zones), that will be used by node group compute instances. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupAllocationPolicy:getKubernetesNodeGroupAllocationPolicy"
            },
            "type": "array"
          },
          "allowedUnsafeSysctls": {
            "description": "A list of allowed unsafe sysctl parameters for this node group. For more details see [documentation](https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/).\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "clusterId": {
            "description": "The ID of the Kubernetes cluster that this node group belongs to.\n",
            "type": "string"
          },
          "createdAt": {
            "description": "The Kubernetes node group creation timestamp.\n",
            "type": "string"
          },
          "deployPolicies": {
            "description": "Deploy policy of the node group. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupDeployPolicy:getKubernetesNodeGroupDeployPolicy"
            },
            "type": "array"
          },
          "description": {
            "description": "A description of the Kubernetes node group.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "instanceGroupId": {
            "description": "ID of instance group that is used to manage this Kubernetes node group.\n",
            "type": "string"
          },
          "instanceTemplates": {
            "description": "Template used to create compute instances in this Kubernetes node group. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupInstanceTemplate:getKubernetesNodeGroupInstanceTemplate"
            },
            "type": "array"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of labels applied to this instance.\n* `resources.0.memory` - The memory size allocated to the instance.\n* `resources.0.cores` - Number of CPU cores allocated to the instance.\n* `resources.0.core_fraction` - Baseline core performance as a percent.\n* `resources.0.gpus` - Number of GPU cores allocated to the instance.\n",
            "type": "object"
          },
          "maintenancePolicies": {
            "description": "Information about maintenance policy for this Kubernetes node group. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupMaintenancePolicy:getKubernetesNodeGroupMaintenancePolicy"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "nodeGroupId": {
            "type": "string"
          },
          "nodeLabels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs, that are assigned to all the nodes of this Kubernetes node group.\n",
            "type": "object"
          },
          "nodeTaints": {
            "description": "A list of Kubernetes taints, that are applied to all the nodes of this Kubernetes node group.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "scalePolicies": {
            "description": "Scale policy of the node group. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupScalePolicy:getKubernetesNodeGroupScalePolicy"
            },
            "type": "array"
          },
          "status": {
            "description": "Status of the Kubernetes node group.\n",
            "type": "string"
          },
          "versionInfos": {
            "description": "Information about Kubernetes node group version. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetKubernetesNodeGroupVersionInfo:getKubernetesNodeGroupVersionInfo"
            },
            "type": "array"
          }
        },
        "required": [
          "allocationPolicies",
          "allowedUnsafeSysctls",
          "clusterId",
          "createdAt",
          "deployPolicies",
          "description",
          "folderId",
          "id",
          "instanceGroupId",
          "instanceTemplates",
          "labels",
          "maintenancePolicies",
          "name",
          "nodeGroupId",
          "nodeLabels",
          "nodeTaints",
          "scalePolicies",
          "status",
          "versionInfos"
        ],
        "type": "object"
      }
    },
    "yandex:index/getLbNetworkLoadBalancer:getLbNetworkLoadBalancer": {
      "description": "Get information about a Yandex Load Balancer network load balancer. For more information, see\n[Yandex.Cloud Network Load Balancer](https://cloud.yandex.com/docs/load-balancer/concepts/).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getLbNetworkLoadBalancer({\n    networkLoadBalancerId: \"my-network-load-balancer\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_lb_network_load_balancer(network_load_balancer_id=\"my-network-load-balancer\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetLbNetworkLoadBalancer.InvokeAsync(new Yandex.GetLbNetworkLoadBalancerArgs\n        {\n            NetworkLoadBalancerId = \"my-network-load-balancer\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"my-network-load-balancer\"\n\t\t_, err := yandex.LookupLbNetworkLoadBalancer(ctx, \u0026GetLbNetworkLoadBalancerArgs{\n\t\t\tNetworkLoadBalancerId: \u0026opt0,\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\nThis data source is used to define [Load Balancer Network Load Balancers] that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getLbNetworkLoadBalancer.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "- Name of the network load balancer.\n"
          },
          "networkLoadBalancerId": {
            "type": "string",
            "description": "Network load balancer ID.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getLbNetworkLoadBalancer.\n",
        "properties": {
          "attachedTargetGroups": {
            "description": "An attached target group is a group of targets that is attached to a load balancer. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetLbNetworkLoadBalancerAttachedTargetGroup:getLbNetworkLoadBalancerAttachedTargetGroup"
            },
            "type": "array"
          },
          "createdAt": {
            "description": "Creation timestamp of this network load balancer.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the network load balancer.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this network load balancer.\n",
            "type": "object"
          },
          "listeners": {
            "description": "Listener specification that will be used by a network load balancer. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetLbNetworkLoadBalancerListener:getLbNetworkLoadBalancerListener"
            },
            "type": "array"
          },
          "name": {
            "description": "Name of the listener.\n",
            "type": "string"
          },
          "networkLoadBalancerId": {
            "type": "string"
          },
          "regionId": {
            "description": "ID of the region where the network load balancer resides.\n",
            "type": "string"
          },
          "type": {
            "description": "Type of the network load balancer.\n",
            "type": "string"
          }
        },
        "required": [
          "attachedTargetGroups",
          "createdAt",
          "description",
          "folderId",
          "id",
          "labels",
          "listeners",
          "name",
          "networkLoadBalancerId",
          "regionId",
          "type"
        ],
        "type": "object"
      }
    },
    "yandex:index/getLbTargetGroup:getLbTargetGroup": {
      "description": "Get information about a Yandex Load Balancer target group. For more information, see\n[Yandex.Cloud Load Balancer](https://cloud.yandex.com/docs/load-balancer/quickstart).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getLbTargetGroup({\n    targetGroupId: \"my-target-group-id\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_lb_target_group(target_group_id=\"my-target-group-id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetLbTargetGroup.InvokeAsync(new Yandex.GetLbTargetGroupArgs\n        {\n            TargetGroupId = \"my-target-group-id\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"my-target-group-id\"\n\t\t_, err := yandex.LookupLbTargetGroup(ctx, \u0026GetLbTargetGroupArgs{\n\t\t\tTargetGroupId: \u0026opt0,\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\nThis data source is used to define [Load Balancer Target Groups] that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getLbTargetGroup.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "- Name of the Target Group.\n"
          },
          "targetGroupId": {
            "type": "string",
            "description": "Target Group ID.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getLbTargetGroup.\n",
        "properties": {
          "createdAt": {
            "description": "Creation timestamp of this target group.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the target group.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this target group.\n* `target.0.address` - IP address of the target.\n* `target.0.subnet_id` - ID of the subnet that targets are connected to.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "targetGroupId": {
            "type": "string"
          },
          "targets": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetLbTargetGroupTarget:getLbTargetGroupTarget"
            },
            "type": "array"
          }
        },
        "required": [
          "createdAt",
          "description",
          "folderId",
          "id",
          "labels",
          "name",
          "targetGroupId",
          "targets"
        ],
        "type": "object"
      }
    },
    "yandex:index/getLoggingGroup:getLoggingGroup": {
      "inputs": {
        "description": "A collection of arguments for invoking getLoggingGroup.\n",
        "properties": {
          "folderId": {
            "type": "string"
          },
          "groupId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getLoggingGroup.\n",
        "properties": {
          "cloudId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "groupId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "retentionPeriod": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "createdAt",
          "description",
          "folderId",
          "groupId",
          "id",
          "labels",
          "name",
          "retentionPeriod",
          "status"
        ],
        "type": "object"
      }
    },
    "yandex:index/getMdbClickhouseCluster:getMdbClickhouseCluster": {
      "description": "Get information about a Yandex Managed ClickHouse cluster. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-clickhouse/concepts).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getMdbClickhouseCluster({\n    name: \"test\",\n}));\n\nexport const networkId = foo.networkId;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_mdb_clickhouse_cluster(name=\"test\")\npulumi.export(\"networkId\", foo.network_id)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetMdbClickhouseCluster.InvokeAsync(new Yandex.GetMdbClickhouseClusterArgs\n        {\n            Name = \"test\",\n        }));\n        this.NetworkId = foo.Apply(foo =\u003e foo.NetworkId);\n    }\n\n    [Output(\"networkId\")]\n    public Output\u003cstring\u003e NetworkId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"test\"\n\t\tfoo, err := yandex.LookupMdbClickhouseCluster(ctx, \u0026GetMdbClickhouseClusterArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"networkId\", foo.NetworkId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getMdbClickhouseCluster.\n",
        "properties": {
          "cloudStorage": {
            "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterCloudStorage:getMdbClickhouseClusterCloudStorage"
          },
          "clusterId": {
            "type": "string",
            "description": "The ID of the ClickHouse cluster.\n"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it is not provided, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the ClickHouse cluster.\n"
          },
          "serviceAccountId": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getMdbClickhouseCluster.\n",
        "properties": {
          "accesses": {
            "description": "Access policy to the ClickHouse cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterAccess:getMdbClickhouseClusterAccess"
            },
            "type": "array"
          },
          "backupWindowStarts": {
            "description": "Time to start the daily backup, in the UTC timezone. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterBackupWindowStart:getMdbClickhouseClusterBackupWindowStart"
            },
            "type": "array"
          },
          "clickhouses": {
            "description": "Configuration of the ClickHouse subcluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterClickhouse:getMdbClickhouseClusterClickhouse"
            },
            "type": "array"
          },
          "cloudStorage": {
            "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterCloudStorage:getMdbClickhouseClusterCloudStorage"
          },
          "clusterId": {
            "type": "string"
          },
          "createdAt": {
            "description": "Creation timestamp of the key.\n",
            "type": "string"
          },
          "databases": {
            "description": "A database of the ClickHouse cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterDatabase:getMdbClickhouseClusterDatabase"
            },
            "type": "array"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "description": {
            "description": "Description of the shard group.\n",
            "type": "string"
          },
          "environment": {
            "description": "Deployment environment of the ClickHouse cluster.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "formatSchemas": {
            "description": "A set of protobuf or cap'n proto format schemas. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterFormatSchema:getMdbClickhouseClusterFormatSchema"
            },
            "type": "array"
          },
          "health": {
            "description": "Aggregated health of the cluster.\n",
            "type": "string"
          },
          "hosts": {
            "description": "A host of the ClickHouse cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterHost:getMdbClickhouseClusterHost"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the ClickHouse cluster.\n",
            "type": "object"
          },
          "maintenanceWindows": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterMaintenanceWindow:getMdbClickhouseClusterMaintenanceWindow"
            },
            "type": "array"
          },
          "mlModels": {
            "description": "A group of machine learning models. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterMlModel:getMdbClickhouseClusterMlModel"
            },
            "type": "array"
          },
          "name": {
            "description": "Graphite rollup configuration name.\n",
            "type": "string"
          },
          "networkId": {
            "description": "ID of the network, to which the ClickHouse cluster belongs.\n",
            "type": "string"
          },
          "securityGroupIds": {
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "serviceAccountId": {
            "type": "string"
          },
          "shardGroups": {
            "description": "A group of clickhouse shards. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterShardGroup:getMdbClickhouseClusterShardGroup"
            },
            "type": "array"
          },
          "sqlDatabaseManagement": {
            "description": "Grants `admin` user database management permission.\n",
            "type": "boolean"
          },
          "sqlUserManagement": {
            "description": "Enables `admin` user with user management permission.\n",
            "type": "boolean"
          },
          "status": {
            "description": "Status of the cluster.\n",
            "type": "string"
          },
          "users": {
            "description": "A user of the ClickHouse cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterUser:getMdbClickhouseClusterUser"
            },
            "type": "array"
          },
          "version": {
            "type": "string"
          },
          "zookeepers": {
            "description": "Configuration of the ZooKeeper subcluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbClickhouseClusterZookeeper:getMdbClickhouseClusterZookeeper"
            },
            "type": "array"
          }
        },
        "required": [
          "accesses",
          "backupWindowStarts",
          "clickhouses",
          "clusterId",
          "createdAt",
          "databases",
          "deletionProtection",
          "description",
          "environment",
          "folderId",
          "formatSchemas",
          "health",
          "hosts",
          "id",
          "labels",
          "maintenanceWindows",
          "mlModels",
          "name",
          "networkId",
          "securityGroupIds",
          "serviceAccountId",
          "shardGroups",
          "sqlDatabaseManagement",
          "sqlUserManagement",
          "status",
          "users",
          "version",
          "zookeepers"
        ],
        "type": "object"
      }
    },
    "yandex:index/getMdbElasticSearchCluster:getMdbElasticSearchCluster": {
      "description": "Get information about a Yandex Managed Elasticsearch cluster. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-elasticsearch/concepts).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getMdbElasticSearchCluster({\n    name: \"test\",\n}));\n\nexport const networkId = foo.networkId;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_mdb_elastic_search_cluster(name=\"test\")\npulumi.export(\"networkId\", foo.network_id)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetMdbElasticSearchCluster.InvokeAsync(new Yandex.GetMdbElasticSearchClusterArgs\n        {\n            Name = \"test\",\n        }));\n        this.NetworkId = foo.Apply(foo =\u003e foo.NetworkId);\n    }\n\n    [Output(\"networkId\")]\n    public Output\u003cstring\u003e NetworkId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"test\"\n\t\tfoo, err := yandex.LookupMdbElasticSearchCluster(ctx, \u0026GetMdbElasticSearchClusterArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"networkId\", foo.NetworkId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getMdbElasticSearchCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "The ID of the Elasticsearch cluster.\n"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "description": {
            "type": "string",
            "description": "Description of the Elasticsearch cluster.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it is not provided, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Elasticsearch cluster.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the Elasticsearch cluster.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n"
          },
          "serviceAccountId": {
            "type": "string",
            "description": "ID of the service account authorized for this cluster.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getMdbElasticSearchCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string"
          },
          "configs": {
            "description": "Configuration of the Elasticsearch cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbElasticSearchClusterConfig:getMdbElasticSearchClusterConfig"
            },
            "type": "array"
          },
          "createdAt": {
            "description": "Creation timestamp of the key.\n",
            "type": "string"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "description": {
            "description": "Description of the Elasticsearch cluster.\n",
            "type": "string"
          },
          "environment": {
            "description": "Deployment environment of the Elasticsearch cluster.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "health": {
            "description": "Aggregated health of the cluster.\n",
            "type": "string"
          },
          "hosts": {
            "description": "A host of the Elasticsearch cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbElasticSearchClusterHost:getMdbElasticSearchClusterHost"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Elasticsearch cluster.\n",
            "type": "object"
          },
          "maintenanceWindows": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbElasticSearchClusterMaintenanceWindow:getMdbElasticSearchClusterMaintenanceWindow"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "networkId": {
            "description": "ID of the network, to which the Elasticsearch cluster belongs.\n",
            "type": "string"
          },
          "securityGroupIds": {
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "serviceAccountId": {
            "description": "ID of the service account authorized for this cluster.\n",
            "type": "string"
          },
          "status": {
            "description": "Status of the cluster.\n",
            "type": "string"
          }
        },
        "required": [
          "clusterId",
          "configs",
          "createdAt",
          "deletionProtection",
          "description",
          "environment",
          "folderId",
          "health",
          "hosts",
          "id",
          "labels",
          "maintenanceWindows",
          "name",
          "networkId",
          "securityGroupIds",
          "serviceAccountId",
          "status"
        ],
        "type": "object"
      }
    },
    "yandex:index/getMdbGreenplumCluster:getMdbGreenplumCluster": {
      "inputs": {
        "description": "A collection of arguments for invoking getMdbGreenplumCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getMdbGreenplumCluster.\n",
        "properties": {
          "accesses": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbGreenplumClusterAccess:getMdbGreenplumClusterAccess"
            },
            "type": "array"
          },
          "assignPublicIp": {
            "type": "boolean"
          },
          "backupWindowStarts": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbGreenplumClusterBackupWindowStart:getMdbGreenplumClusterBackupWindowStart"
            },
            "type": "array"
          },
          "clusterId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "environment": {
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "health": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "masterHostCount": {
            "type": "integer"
          },
          "masterHosts": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbGreenplumClusterMasterHost:getMdbGreenplumClusterMasterHost"
            },
            "type": "array"
          },
          "masterSubclusters": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbGreenplumClusterMasterSubcluster:getMdbGreenplumClusterMasterSubcluster"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "networkId": {
            "type": "string"
          },
          "securityGroupIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "segmentHostCount": {
            "type": "integer"
          },
          "segmentHosts": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbGreenplumClusterSegmentHost:getMdbGreenplumClusterSegmentHost"
            },
            "type": "array"
          },
          "segmentInHost": {
            "type": "integer"
          },
          "segmentSubclusters": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbGreenplumClusterSegmentSubcluster:getMdbGreenplumClusterSegmentSubcluster"
            },
            "type": "array"
          },
          "status": {
            "type": "string"
          },
          "subnetId": {
            "type": "string"
          },
          "userName": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "zone": {
            "type": "string"
          }
        },
        "required": [
          "accesses",
          "assignPublicIp",
          "backupWindowStarts",
          "clusterId",
          "createdAt",
          "deletionProtection",
          "description",
          "environment",
          "folderId",
          "health",
          "id",
          "labels",
          "masterHostCount",
          "masterHosts",
          "masterSubclusters",
          "name",
          "networkId",
          "securityGroupIds",
          "segmentHostCount",
          "segmentHosts",
          "segmentInHost",
          "segmentSubclusters",
          "status",
          "subnetId",
          "userName",
          "version",
          "zone"
        ],
        "type": "object"
      }
    },
    "yandex:index/getMdbKafkaCluster:getMdbKafkaCluster": {
      "description": "Get information about a Yandex Managed Kafka cluster. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-kafka/concepts).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getMdbKafkaCluster({\n    name: \"test\",\n}));\n\nexport const networkId = foo.networkId;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_mdb_kafka_cluster(name=\"test\")\npulumi.export(\"networkId\", foo.network_id)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetMdbKafkaCluster.InvokeAsync(new Yandex.GetMdbKafkaClusterArgs\n        {\n            Name = \"test\",\n        }));\n        this.NetworkId = foo.Apply(foo =\u003e foo.NetworkId);\n    }\n\n    [Output(\"networkId\")]\n    public Output\u003cstring\u003e NetworkId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"test\"\n\t\tfoo, err := yandex.LookupMdbKafkaCluster(ctx, \u0026GetMdbKafkaClusterArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"networkId\", foo.NetworkId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getMdbKafkaCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "The ID of the Kafka cluster.\n"
          },
          "config": {
            "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterConfig:getMdbKafkaClusterConfig",
            "description": "Configuration of the Kafka cluster. The structure is documented below.\n"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it is not provided, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the Kafka cluster.\n"
          },
          "subnetIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterTopic:getMdbKafkaClusterTopic"
            },
            "description": "A topic of the Kafka cluster. The structure is documented below.\n"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterUser:getMdbKafkaClusterUser"
            },
            "description": "A user of the Kafka cluster. The structure is documented below.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getMdbKafkaCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string"
          },
          "config": {
            "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterConfig:getMdbKafkaClusterConfig",
            "description": "Configuration of the Kafka cluster. The structure is documented below.\n"
          },
          "createdAt": {
            "description": "Creation timestamp of the key.\n",
            "type": "string"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "description": {
            "description": "Description of the Kafka cluster.\n",
            "type": "string"
          },
          "environment": {
            "description": "Deployment environment of the Kafka cluster.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "health": {
            "description": "Health of the host.\n",
            "type": "string"
          },
          "hostGroupIds": {
            "description": "A list of IDs of the host groups hosting VMs of the cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "hosts": {
            "description": "A host of the Kafka cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterHost:getMdbKafkaClusterHost"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Kafka cluster.\n",
            "type": "object"
          },
          "maintenanceWindows": {
            "description": "Maintenance window settings of the Kafka cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterMaintenanceWindow:getMdbKafkaClusterMaintenanceWindow"
            },
            "type": "array"
          },
          "name": {
            "description": "The fully qualified domain name of the host.\n",
            "type": "string"
          },
          "networkId": {
            "description": "ID of the network, to which the Kafka cluster belongs.\n",
            "type": "string"
          },
          "securityGroupIds": {
            "description": "A list of security groups IDs of the Kafka cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "status": {
            "description": "Status of the cluster.\n",
            "type": "string"
          },
          "subnetIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "topics": {
            "description": "A topic of the Kafka cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterTopic:getMdbKafkaClusterTopic"
            },
            "type": "array"
          },
          "users": {
            "description": "A user of the Kafka cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbKafkaClusterUser:getMdbKafkaClusterUser"
            },
            "type": "array"
          }
        },
        "required": [
          "clusterId",
          "createdAt",
          "deletionProtection",
          "description",
          "environment",
          "folderId",
          "health",
          "hostGroupIds",
          "hosts",
          "id",
          "labels",
          "maintenanceWindows",
          "name",
          "networkId",
          "securityGroupIds",
          "status"
        ],
        "type": "object"
      }
    },
    "yandex:index/getMdbKafkaTopic:getMdbKafkaTopic": {
      "inputs": {
        "description": "A collection of arguments for invoking getMdbKafkaTopic.\n",
        "properties": {
          "clusterId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "clusterId",
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getMdbKafkaTopic.\n",
        "properties": {
          "clusterId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "partitions": {
            "type": "integer"
          },
          "replicationFactor": {
            "type": "integer"
          },
          "topicConfigs": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbKafkaTopicTopicConfig:getMdbKafkaTopicTopicConfig"
            },
            "type": "array"
          }
        },
        "required": [
          "clusterId",
          "id",
          "name",
          "partitions",
          "replicationFactor",
          "topicConfigs"
        ],
        "type": "object"
      }
    },
    "yandex:index/getMdbMongodbCluster:getMdbMongodbCluster": {
      "description": "Get information about a Yandex Managed MongoDB cluster. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-mongodb/concepts).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getMdbMongodbCluster({\n    name: \"test\",\n}));\n\nexport const networkId = foo.networkId;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_mdb_mongodb_cluster(name=\"test\")\npulumi.export(\"networkId\", foo.network_id)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetMdbMongodbCluster.InvokeAsync(new Yandex.GetMdbMongodbClusterArgs\n        {\n            Name = \"test\",\n        }));\n        this.NetworkId = foo.Apply(foo =\u003e foo.NetworkId);\n    }\n\n    [Output(\"networkId\")]\n    public Output\u003cstring\u003e NetworkId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"test\"\n\t\tfoo, err := yandex.LookupMdbMongodbCluster(ctx, \u0026GetMdbMongodbClusterArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"networkId\", foo.NetworkId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getMdbMongodbCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "The ID of the MongoDB cluster.\n"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the MongoDB cluster.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getMdbMongodbCluster.\n",
        "properties": {
          "clusterConfigs": {
            "description": "Configuration of the MongoDB cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbMongodbClusterClusterConfig:getMdbMongodbClusterClusterConfig"
            },
            "type": "array"
          },
          "clusterId": {
            "type": "string"
          },
          "createdAt": {
            "description": "Creation timestamp of the key.\n",
            "type": "string"
          },
          "databases": {
            "description": "A database of the MongoDB cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbMongodbClusterDatabase:getMdbMongodbClusterDatabase"
            },
            "type": "array"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "description": {
            "description": "Description of the MongoDB cluster.\n",
            "type": "string"
          },
          "environment": {
            "description": "Deployment environment of the MongoDB cluster.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "health": {
            "description": "The health of the host.\n",
            "type": "string"
          },
          "hosts": {
            "description": "A host of the MongoDB cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbMongodbClusterHost:getMdbMongodbClusterHost"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the MongoDB cluster.\n",
            "type": "object"
          },
          "maintenanceWindows": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbMongodbClusterMaintenanceWindow:getMdbMongodbClusterMaintenanceWindow"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the database.\n",
            "type": "string"
          },
          "networkId": {
            "description": "ID of the network, to which the MongoDB cluster belongs.\n",
            "type": "string"
          },
          "resources": {
            "description": "Resources allocated to hosts of the MongoDB cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbMongodbClusterResource:getMdbMongodbClusterResource"
            },
            "type": "array"
          },
          "securityGroupIds": {
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "sharded": {
            "description": "MongoDB Cluster mode enabled/disabled.\n",
            "type": "boolean"
          },
          "status": {
            "description": "Status of the cluster.\n",
            "type": "string"
          },
          "users": {
            "description": "A user of the MongoDB cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbMongodbClusterUser:getMdbMongodbClusterUser"
            },
            "type": "array"
          }
        },
        "required": [
          "clusterConfigs",
          "clusterId",
          "createdAt",
          "databases",
          "deletionProtection",
          "description",
          "environment",
          "folderId",
          "health",
          "hosts",
          "id",
          "labels",
          "maintenanceWindows",
          "name",
          "networkId",
          "resources",
          "securityGroupIds",
          "sharded",
          "status",
          "users"
        ],
        "type": "object"
      }
    },
    "yandex:index/getMdbMysqlCluster:getMdbMysqlCluster": {
      "description": "Get information about a Yandex Managed MySQL cluster. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-mysql/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getMdbMysqlCluster({\n    name: \"test\",\n}));\n\nexport const networkId = foo.networkId;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_mdb_mysql_cluster(name=\"test\")\npulumi.export(\"networkId\", foo.network_id)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetMdbMysqlCluster.InvokeAsync(new Yandex.GetMdbMysqlClusterArgs\n        {\n            Name = \"test\",\n        }));\n        this.NetworkId = foo.Apply(foo =\u003e foo.NetworkId);\n    }\n\n    [Output(\"networkId\")]\n    public Output\u003cstring\u003e NetworkId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"test\"\n\t\tfoo, err := yandex.LookupMdbMysqlCluster(ctx, \u0026GetMdbMysqlClusterArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"networkId\", foo.NetworkId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getMdbMysqlCluster.\n",
        "properties": {
          "access": {
            "$ref": "#/types/yandex:index%2FgetMdbMysqlClusterAccess:getMdbMysqlClusterAccess",
            "description": "Access policy to the MySQL cluster. The structure is documented below.\n"
          },
          "clusterId": {
            "type": "string",
            "description": "The ID of the MySQL cluster.\n"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "description": {
            "type": "string",
            "description": "Description of the MySQL cluster.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it is not provided, the default provider folder is used.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the MySQL cluster.\n"
          },
          "mysqlConfig": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "MySQL cluster config.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the MySQL cluster.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getMdbMysqlCluster.\n",
        "properties": {
          "access": {
            "$ref": "#/types/yandex:index%2FgetMdbMysqlClusterAccess:getMdbMysqlClusterAccess",
            "description": "Access policy to the MySQL cluster. The structure is documented below.\n"
          },
          "backupWindowStarts": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbMysqlClusterBackupWindowStart:getMdbMysqlClusterBackupWindowStart"
            },
            "type": "array"
          },
          "clusterId": {
            "type": "string"
          },
          "createdAt": {
            "description": "Creation timestamp of the key.\n",
            "type": "string"
          },
          "databases": {
            "description": "A database of the MySQL cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbMysqlClusterDatabase:getMdbMysqlClusterDatabase"
            },
            "type": "array"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "description": {
            "description": "Description of the MySQL cluster.\n",
            "type": "string"
          },
          "environment": {
            "description": "Deployment environment of the MySQL cluster.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "health": {
            "description": "Aggregated health of the cluster.\n",
            "type": "string"
          },
          "hosts": {
            "description": "A host of the MySQL cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbMysqlClusterHost:getMdbMysqlClusterHost"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the MySQL cluster.\n",
            "type": "object"
          },
          "maintenanceWindows": {
            "description": "Maintenance window settings of the MySQL cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbMysqlClusterMaintenanceWindow:getMdbMysqlClusterMaintenanceWindow"
            },
            "type": "array"
          },
          "mysqlConfig": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "MySQL cluster config.\n",
            "type": "object"
          },
          "name": {
            "description": "The name of the database.\n",
            "type": "string"
          },
          "networkId": {
            "description": "ID of the network, to which the MySQL cluster belongs.\n",
            "type": "string"
          },
          "resources": {
            "description": "Resources allocated to hosts of the MySQL cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbMysqlClusterResource:getMdbMysqlClusterResource"
            },
            "type": "array"
          },
          "securityGroupIds": {
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "status": {
            "description": "Status of the cluster.\n",
            "type": "string"
          },
          "users": {
            "description": "A user of the MySQL cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbMysqlClusterUser:getMdbMysqlClusterUser"
            },
            "type": "array"
          },
          "version": {
            "description": "Version of the MySQL cluster.\n",
            "type": "string"
          }
        },
        "required": [
          "access",
          "backupWindowStarts",
          "clusterId",
          "createdAt",
          "databases",
          "deletionProtection",
          "environment",
          "folderId",
          "health",
          "hosts",
          "id",
          "maintenanceWindows",
          "mysqlConfig",
          "name",
          "networkId",
          "resources",
          "securityGroupIds",
          "status",
          "users",
          "version"
        ],
        "type": "object"
      }
    },
    "yandex:index/getMdbPostgresqlCluster:getMdbPostgresqlCluster": {
      "description": "Get information about a Yandex Managed PostgreSQL cluster. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-postgresql/).\n[How to connect to the DB](https://cloud.yandex.com/en-ru/docs/managed-postgresql/quickstart#connect). To connect, use port 6432. The port number is not configurable.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getMdbPostgresqlCluster({\n    name: \"test\",\n}));\n\nexport const fqdn = foo.hosts[0].fqdn;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_mdb_postgresql_cluster(name=\"test\")\npulumi.export(\"fqdn\", foo.hosts[0].fqdn)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetMdbPostgresqlCluster.InvokeAsync(new Yandex.GetMdbPostgresqlClusterArgs\n        {\n            Name = \"test\",\n        }));\n        this.Fqdn = foo.Apply(foo =\u003e foo.Hosts?[0]?.Fqdn);\n    }\n\n    [Output(\"fqdn\")]\n    public Output\u003cstring\u003e Fqdn { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"test\"\n\t\tfoo, err := yandex.GetMdbPostgresqlCluster(ctx, \u0026GetMdbPostgresqlClusterArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"fqdn\", foo.Hosts[0].Fqdn)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getMdbPostgresqlCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "The ID of the PostgreSQL cluster.\n"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "description": {
            "type": "string",
            "description": "Description of the PostgreSQL cluster.\n"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it is not provided, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the PostgreSQL cluster.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getMdbPostgresqlCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string"
          },
          "configs": {
            "description": "Configuration of the PostgreSQL cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbPostgresqlClusterConfig:getMdbPostgresqlClusterConfig"
            },
            "type": "array"
          },
          "createdAt": {
            "description": "Timestamp of cluster creation.\n",
            "type": "string"
          },
          "databases": {
            "description": "A database of the PostgreSQL cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbPostgresqlClusterDatabase:getMdbPostgresqlClusterDatabase"
            },
            "type": "array"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "description": {
            "description": "Description of the PostgreSQL cluster.\n",
            "type": "string"
          },
          "environment": {
            "description": "Deployment environment of the PostgreSQL cluster.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "health": {
            "description": "Aggregated health of the cluster.\n",
            "type": "string"
          },
          "hosts": {
            "description": "A host of the PostgreSQL cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbPostgresqlClusterHost:getMdbPostgresqlClusterHost"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the PostgreSQL cluster.\n",
            "type": "object"
          },
          "maintenanceWindows": {
            "description": "Maintenance window settings of the PostgreSQL cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbPostgresqlClusterMaintenanceWindow:getMdbPostgresqlClusterMaintenanceWindow"
            },
            "type": "array"
          },
          "name": {
            "description": "Name of the database extension. For more information on available extensions see [the official documentation](https://cloud.yandex.com/docs/managed-postgresql/operations/cluster-extensions).\n",
            "type": "string"
          },
          "networkId": {
            "description": "ID of the network, to which the PostgreSQL cluster belongs.\n",
            "type": "string"
          },
          "securityGroupIds": {
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "status": {
            "description": "Status of the cluster.\n",
            "type": "string"
          },
          "users": {
            "description": "A user of the PostgreSQL cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbPostgresqlClusterUser:getMdbPostgresqlClusterUser"
            },
            "type": "array"
          }
        },
        "required": [
          "clusterId",
          "configs",
          "createdAt",
          "databases",
          "deletionProtection",
          "environment",
          "folderId",
          "health",
          "hosts",
          "id",
          "labels",
          "maintenanceWindows",
          "name",
          "networkId",
          "securityGroupIds",
          "status",
          "users"
        ],
        "type": "object"
      }
    },
    "yandex:index/getMdbRedisCluster:getMdbRedisCluster": {
      "description": "Get information about a Yandex Managed Redis cluster. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-redis/concepts).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getMdbRedisCluster({\n    name: \"test\",\n}));\n\nexport const networkId = foo.networkId;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_mdb_redis_cluster(name=\"test\")\npulumi.export(\"networkId\", foo.network_id)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetMdbRedisCluster.InvokeAsync(new Yandex.GetMdbRedisClusterArgs\n        {\n            Name = \"test\",\n        }));\n        this.NetworkId = foo.Apply(foo =\u003e foo.NetworkId);\n    }\n\n    [Output(\"networkId\")]\n    public Output\u003cstring\u003e NetworkId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"test\"\n\t\tfoo, err := yandex.LookupMdbRedisCluster(ctx, \u0026GetMdbRedisClusterArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"networkId\", foo.NetworkId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getMdbRedisCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "The ID of the Redis cluster.\n"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the Redis cluster.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getMdbRedisCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string"
          },
          "configs": {
            "description": "Configuration of the Redis cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbRedisClusterConfig:getMdbRedisClusterConfig"
            },
            "type": "array"
          },
          "createdAt": {
            "description": "Creation timestamp of the key.\n",
            "type": "string"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "description": {
            "description": "Description of the Redis cluster.\n",
            "type": "string"
          },
          "environment": {
            "description": "Deployment environment of the Redis cluster.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "health": {
            "description": "Aggregated health of the cluster.\n",
            "type": "string"
          },
          "hosts": {
            "description": "A host of the Redis cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbRedisClusterHost:getMdbRedisClusterHost"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the Redis cluster.\n",
            "type": "object"
          },
          "maintenanceWindows": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbRedisClusterMaintenanceWindow:getMdbRedisClusterMaintenanceWindow"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "networkId": {
            "description": "ID of the network, to which the Redis cluster belongs.\n",
            "type": "string"
          },
          "resources": {
            "description": "Resources allocated to hosts of the Redis cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbRedisClusterResource:getMdbRedisClusterResource"
            },
            "type": "array"
          },
          "securityGroupIds": {
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "sharded": {
            "description": "Redis Cluster mode enabled/disabled.\n",
            "type": "boolean"
          },
          "status": {
            "description": "Status of the cluster.\n",
            "type": "string"
          },
          "tlsEnabled": {
            "description": "tls support mode enabled/disabled.\n",
            "type": "boolean"
          }
        },
        "required": [
          "clusterId",
          "configs",
          "createdAt",
          "deletionProtection",
          "description",
          "environment",
          "folderId",
          "health",
          "hosts",
          "id",
          "labels",
          "maintenanceWindows",
          "name",
          "networkId",
          "resources",
          "securityGroupIds",
          "sharded",
          "status",
          "tlsEnabled"
        ],
        "type": "object"
      }
    },
    "yandex:index/getMdbSqlserverCluster:getMdbSqlserverCluster": {
      "description": "Get information about a Yandex Managed SQLServer cluster. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/managed-sqlserver/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getMdbSqlserverCluster({\n    name: \"test\",\n}));\n\nexport const networkId = foo.networkId;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_mdb_sqlserver_cluster(name=\"test\")\npulumi.export(\"networkId\", foo.network_id)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetMdbSqlserverCluster.InvokeAsync(new Yandex.GetMdbSqlserverClusterArgs\n        {\n            Name = \"test\",\n        }));\n        this.NetworkId = foo.Apply(foo =\u003e foo.NetworkId);\n    }\n\n    [Output(\"networkId\")]\n    public Output\u003cstring\u003e NetworkId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"test\"\n\t\tfoo, err := yandex.GetMdbSqlserverCluster(ctx, \u0026GetMdbSqlserverClusterArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"networkId\", foo.NetworkId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getMdbSqlserverCluster.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "The ID of the SQLServer cluster.\n"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "folderId": {
            "type": "string",
            "description": "The ID of the folder that the resource belongs to. If it is not provided, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the SQLServer cluster.\n"
          },
          "sqlserverConfig": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "SQLServer cluster config.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getMdbSqlserverCluster.\n",
        "properties": {
          "backupWindowStarts": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbSqlserverClusterBackupWindowStart:getMdbSqlserverClusterBackupWindowStart"
            },
            "type": "array"
          },
          "clusterId": {
            "type": "string"
          },
          "createdAt": {
            "description": "Creation timestamp of the key.\n",
            "type": "string"
          },
          "databases": {
            "description": "A database of the SQLServer cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbSqlserverClusterDatabase:getMdbSqlserverClusterDatabase"
            },
            "type": "array"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "description": {
            "description": "Description of the SQLServer cluster.\n",
            "type": "string"
          },
          "environment": {
            "description": "Deployment environment of the SQLServer cluster.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "health": {
            "description": "Aggregated health of the cluster.\n",
            "type": "string"
          },
          "hostGroupIds": {
            "description": "A list of IDs of the host groups hosting VMs of the cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "hosts": {
            "description": "A host of the SQLServer cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbSqlserverClusterHost:getMdbSqlserverClusterHost"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs to assign to the SQLServer cluster.\n",
            "type": "object"
          },
          "name": {
            "description": "The name of the database.\n",
            "type": "string"
          },
          "networkId": {
            "description": "ID of the network, to which the SQLServer cluster belongs.\n",
            "type": "string"
          },
          "resources": {
            "description": "Resources allocated to hosts of the SQLServer cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbSqlserverClusterResource:getMdbSqlserverClusterResource"
            },
            "type": "array"
          },
          "securityGroupIds": {
            "description": "A set of ids of security groups assigned to hosts of the cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "sqlserverConfig": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "SQLServer cluster config.\n",
            "type": "object"
          },
          "status": {
            "description": "Status of the cluster.\n",
            "type": "string"
          },
          "users": {
            "description": "A user of the SQLServer cluster. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetMdbSqlserverClusterUser:getMdbSqlserverClusterUser"
            },
            "type": "array"
          },
          "version": {
            "description": "Version of the SQLServer cluster.\n",
            "type": "string"
          }
        },
        "required": [
          "backupWindowStarts",
          "clusterId",
          "createdAt",
          "databases",
          "deletionProtection",
          "description",
          "environment",
          "folderId",
          "health",
          "hostGroupIds",
          "hosts",
          "id",
          "labels",
          "name",
          "networkId",
          "resources",
          "securityGroupIds",
          "sqlserverConfig",
          "status",
          "users",
          "version"
        ],
        "type": "object"
      }
    },
    "yandex:index/getMessageQueue:getMessageQueue": {
      "description": "Get information about a Yandex Message Queue. For more information about Yandex Message Queue, see\n[Yandex.Cloud Message Queue](https://cloud.yandex.com/docs/message-queue).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst exampleQueue = pulumi.output(yandex.getMessageQueue({\n    name: \"ymq_terraform_example\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nexample_queue = yandex.get_message_queue(name=\"ymq_terraform_example\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleQueue = Output.Create(Yandex.GetMessageQueue.InvokeAsync(new Yandex.GetMessageQueueArgs\n        {\n            Name = \"ymq_terraform_example\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\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 := yandex.LookupMessageQueue(ctx, \u0026GetMessageQueueArgs{\n\t\t\tName: \"ymq_terraform_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{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getMessageQueue.\n",
        "properties": {
          "accessKey": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Queue name.\n"
          },
          "secretKey": {
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getMessageQueue.\n",
        "properties": {
          "accessKey": {
            "type": "string"
          },
          "arn": {
            "description": "ARN of the queue. It is used for setting up a [redrive policy](https://cloud.yandex.com/docs/message-queue/concepts/dlq). See [documentation](https://cloud.yandex.com/docs/message-queue/api-ref/queue/SetQueueAttributes).\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "secretKey": {
            "type": "string"
          },
          "url": {
            "description": "URL of the queue.\n",
            "type": "string"
          }
        },
        "required": [
          "arn",
          "id",
          "name",
          "url"
        ],
        "type": "object"
      }
    },
    "yandex:index/getOrganizationmanagerSamlFederation:getOrganizationmanagerSamlFederation": {
      "description": "Get information about a Yandex SAML Federation. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/organization/add-federation).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst federation = pulumi.output(yandex.getOrganizationmanagerSamlFederation({\n    federationId: \"some_federation_id\",\n    organizationId: \"some_organization_id\",\n}));\n\nexport const my_federation_name = federation.name!;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfederation = yandex.get_organizationmanager_saml_federation(federation_id=\"some_federation_id\",\n    organization_id=\"some_organization_id\")\npulumi.export(\"myFederation.name\", federation.name)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var federation = Output.Create(Yandex.GetOrganizationmanagerSamlFederation.InvokeAsync(new Yandex.GetOrganizationmanagerSamlFederationArgs\n        {\n            FederationId = \"some_federation_id\",\n            OrganizationId = \"some_organization_id\",\n        }));\n        this.MyFederation_name = federation.Apply(federation =\u003e federation.Name);\n    }\n\n    [Output(\"myFederation.name\")]\n    public Output\u003cstring\u003e MyFederation_name { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some_federation_id\"\n\t\topt1 := \"some_organization_id\"\n\t\tfederation, err := yandex.LookupOrganizationmanagerSamlFederation(ctx, \u0026GetOrganizationmanagerSamlFederationArgs{\n\t\t\tFederationId:   \u0026opt0,\n\t\t\tOrganizationId: \u0026opt1,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"myFederation.name\", federation.Name)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getOrganizationmanagerSamlFederation.\n",
        "properties": {
          "federationId": {
            "type": "string",
            "description": "ID of a SAML Federation.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs assigned to the SAML Federation.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of a SAML Federation.\n"
          },
          "organizationId": {
            "type": "string",
            "description": "Organization that the federation belongs to. If value is omitted, the default provider organization is used.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getOrganizationmanagerSamlFederation.\n",
        "properties": {
          "autoCreateAccountOnLogin": {
            "description": "Indicates whether new users get added automatically on successful authentication.\n",
            "type": "boolean"
          },
          "caseInsensitiveNameIds": {
            "description": "Indicates whether case-insensitive name ids are in use.\n",
            "type": "boolean"
          },
          "cookieMaxAge": {
            "description": "The lifetime of a Browser cookie in seconds.\n",
            "type": "string"
          },
          "createdAt": {
            "description": "The SAML Federation creation timestamp.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the SAML Federation.\n",
            "type": "string"
          },
          "federationId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "issuer": {
            "description": "The ID of the IdP server used for authentication.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs assigned to the SAML Federation.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "securitySettings": {
            "description": "Federation security settings, structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetOrganizationmanagerSamlFederationSecuritySetting:getOrganizationmanagerSamlFederationSecuritySetting"
            },
            "type": "array"
          },
          "ssoBinding": {
            "description": "Single sign-on endpoint binding type.\n",
            "type": "string"
          },
          "ssoUrl": {
            "description": "Single sign-on endpoint URL.\n",
            "type": "string"
          }
        },
        "required": [
          "autoCreateAccountOnLogin",
          "caseInsensitiveNameIds",
          "cookieMaxAge",
          "createdAt",
          "description",
          "federationId",
          "id",
          "issuer",
          "name",
          "securitySettings",
          "ssoBinding",
          "ssoUrl"
        ],
        "type": "object"
      }
    },
    "yandex:index/getOrganizationmanagerSamlFederationUserAccount:getOrganizationmanagerSamlFederationUserAccount": {
      "description": "Get information about a user of Yandex SAML Federation. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/organization/operations/federations/integration-common).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst account = pulumi.output(yandex.getOrganizationmanagerSamlFederationUserAccount({\n    federationId: \"some_federation_id\",\n    nameId: \"example@example.org\",\n}));\n\nexport const my_federation_id = account.id;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\naccount = yandex.get_organizationmanager_saml_federation_user_account(federation_id=\"some_federation_id\",\n    name_id=\"example@example.org\")\npulumi.export(\"myFederation.id\", account.id)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var account = Output.Create(Yandex.GetOrganizationmanagerSamlFederationUserAccount.InvokeAsync(new Yandex.GetOrganizationmanagerSamlFederationUserAccountArgs\n        {\n            FederationId = \"some_federation_id\",\n            NameId = \"example@example.org\",\n        }));\n        this.MyFederation_id = account.Apply(account =\u003e account.Id);\n    }\n\n    [Output(\"myFederation.id\")]\n    public Output\u003cstring\u003e MyFederation_id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taccount, err := yandex.GetOrganizationmanagerSamlFederationUserAccount(ctx, \u0026GetOrganizationmanagerSamlFederationUserAccountArgs{\n\t\t\tFederationId: \"some_federation_id\",\n\t\t\tNameId:       \"example@example.org\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"myFederation.id\", account.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getOrganizationmanagerSamlFederationUserAccount.\n",
        "properties": {
          "federationId": {
            "type": "string",
            "description": "ID of a SAML Federation.\n"
          },
          "nameId": {
            "type": "string",
            "description": "Name Id of the SAML federated user.\n"
          }
        },
        "type": "object",
        "required": [
          "federationId",
          "nameId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getOrganizationmanagerSamlFederationUserAccount.\n",
        "properties": {
          "federationId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "nameId": {
            "type": "string"
          }
        },
        "required": [
          "federationId",
          "id",
          "nameId"
        ],
        "type": "object"
      }
    },
    "yandex:index/getResourcemanagerCloud:getResourcemanagerCloud": {
      "description": "Use this data source to get cloud details.\nFor more information, see [Cloud](https://cloud.yandex.com/docs/resource-manager/concepts/resources-hierarchy#cloud).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst foo = pulumi.output(yandex.getResourcemanagerCloud({\n    name: \"foo-cloud\",\n}));\n\nexport const cloudCreateTimestamp = foo.createdAt;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nfoo = yandex.get_resourcemanager_cloud(name=\"foo-cloud\")\npulumi.export(\"cloudCreateTimestamp\", foo.created_at)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var foo = Output.Create(Yandex.GetResourcemanagerCloud.InvokeAsync(new Yandex.GetResourcemanagerCloudArgs\n        {\n            Name = \"foo-cloud\",\n        }));\n        this.CloudCreateTimestamp = foo.Apply(foo =\u003e foo.CreatedAt);\n    }\n\n    [Output(\"cloudCreateTimestamp\")]\n    public Output\u003cstring\u003e CloudCreateTimestamp { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"foo-cloud\"\n\t\tfoo, err := yandex.GetResourcemanagerCloud(ctx, \u0026GetResourcemanagerCloudArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudCreateTimestamp\", foo.CreatedAt)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getResourcemanagerCloud.\n",
        "properties": {
          "cloudId": {
            "type": "string",
            "description": "ID of the cloud.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the cloud.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the cloud.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getResourcemanagerCloud.\n",
        "properties": {
          "cloudId": {
            "type": "string"
          },
          "createdAt": {
            "description": "Cloud creation timestamp.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the cloud.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "description": "Name of the cloud.\n",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "createdAt",
          "id",
          "name"
        ],
        "type": "object"
      }
    },
    "yandex:index/getResourcemanagerFolder:getResourcemanagerFolder": {
      "description": "Use this data source to get information about a Yandex Resource Manager Folder. For more information, see\n[the official documentation](https://cloud.yandex.com/docs/resource-manager/concepts/resources-hierarchy#folder).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myFolder1 = pulumi.output(yandex.getResourcemanagerFolder({\n    folderId: \"folder_id_number_1\",\n}));\nconst myFolder2 = pulumi.output(yandex.getResourcemanagerFolder({\n    cloudId: \"some_cloud_id\",\n    name: \"folder_name\",\n}));\n\nexport const myFolder1Name = myFolder1.name!;\nexport const myFolder2CloudId = myFolder2.cloudId!;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_folder1 = yandex.get_resourcemanager_folder(folder_id=\"folder_id_number_1\")\nmy_folder2 = yandex.get_resourcemanager_folder(cloud_id=\"some_cloud_id\",\n    name=\"folder_name\")\npulumi.export(\"myFolder1Name\", my_folder1.name)\npulumi.export(\"myFolder2CloudId\", my_folder2.cloud_id)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myFolder1 = Output.Create(Yandex.GetResourcemanagerFolder.InvokeAsync(new Yandex.GetResourcemanagerFolderArgs\n        {\n            FolderId = \"folder_id_number_1\",\n        }));\n        var myFolder2 = Output.Create(Yandex.GetResourcemanagerFolder.InvokeAsync(new Yandex.GetResourcemanagerFolderArgs\n        {\n            CloudId = \"some_cloud_id\",\n            Name = \"folder_name\",\n        }));\n        this.MyFolder1Name = myFolder1.Apply(myFolder1 =\u003e myFolder1.Name);\n        this.MyFolder2CloudId = myFolder2.Apply(myFolder2 =\u003e myFolder2.CloudId);\n    }\n\n    [Output(\"myFolder1Name\")]\n    public Output\u003cstring\u003e MyFolder1Name { get; set; }\n    [Output(\"myFolder2CloudId\")]\n    public Output\u003cstring\u003e MyFolder2CloudId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"folder_id_number_1\"\n\t\tmyFolder1, err := yandex.LookupResourcemanagerFolder(ctx, \u0026GetResourcemanagerFolderArgs{\n\t\t\tFolderId: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\topt1 := \"some_cloud_id\"\n\t\topt2 := \"folder_name\"\n\t\tmyFolder2, err := yandex.LookupResourcemanagerFolder(ctx, \u0026GetResourcemanagerFolderArgs{\n\t\t\tCloudId: \u0026opt1,\n\t\t\tName:    \u0026opt2,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"myFolder1Name\", myFolder1.Name)\n\t\tctx.Export(\"myFolder2CloudId\", myFolder2.CloudId)\n\t\treturn nil\n\t})\n}\n```\n",
      "inputs": {
        "description": "A collection of arguments for invoking getResourcemanagerFolder.\n",
        "properties": {
          "cloudId": {
            "type": "string",
            "description": "Cloud that the resource belongs to. If value is omitted, the default provider cloud is used.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of labels applied to this folder.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the folder.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getResourcemanagerFolder.\n",
        "properties": {
          "cloudId": {
            "description": "ID of the cloud that contains the folder.\n",
            "type": "string"
          },
          "createdAt": {
            "description": "Folder creation timestamp.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the folder.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of labels applied to this folder.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "description": "Current status of the folder.\n",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "createdAt",
          "description",
          "folderId",
          "id",
          "name",
          "status"
        ],
        "type": "object"
      }
    },
    "yandex:index/getServerlessContainer:getServerlessContainer": {
      "description": "Get information about a Yandex Cloud Serverless Container. \n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst my_container = pulumi.output(yandex.getServerlessContainer({\n    containerId: \"are1samplecontainer11\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_container = yandex.get_serverless_container(container_id=\"are1samplecontainer11\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var my_container = Output.Create(Yandex.GetServerlessContainer.InvokeAsync(new Yandex.GetServerlessContainerArgs\n        {\n            ContainerId = \"are1samplecontainer11\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"are1samplecontainer11\"\n\t\t_, err := yandex.LookupServerlessContainer(ctx, \u0026GetServerlessContainerArgs{\n\t\t\tContainerId: \u0026opt0,\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\nThis data source is used to define Yandex Cloud Container that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getServerlessContainer.\n",
        "properties": {
          "containerId": {
            "type": "string",
            "description": "Yandex Cloud Serverless Container id used to define container\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder ID for the Yandex Cloud Serverless Container\n"
          },
          "name": {
            "type": "string",
            "description": "Yandex Cloud Serverless Container name used to define container\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getServerlessContainer.\n",
        "properties": {
          "concurrency": {
            "description": "Concurrency of Yandex Cloud Serverless Container\n",
            "type": "integer"
          },
          "containerId": {
            "type": "string"
          },
          "coreFraction": {
            "description": "Core fraction (**0...100**) of the Yandex Cloud Serverless Container\n",
            "type": "integer"
          },
          "cores": {
            "type": "integer"
          },
          "createdAt": {
            "description": "Creation timestamp of the Yandex Cloud Serverless Container\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the Yandex Cloud Serverless Container\n",
            "type": "string"
          },
          "executionTimeout": {
            "description": "Execution timeout (duration format) of Yandex Cloud Serverless Container\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "images": {
            "items": {
              "$ref": "#/types/yandex:index%2FgetServerlessContainerImage:getServerlessContainerImage"
            },
            "type": "array"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs assigned to the Yandex Cloud Serverless Container\n",
            "type": "object"
          },
          "memory": {
            "description": "Memory in megabytes of Yandex Cloud Serverless Container\n",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "revisionId": {
            "description": "Last revision ID of the Yandex Cloud Serverless Container\n",
            "type": "string"
          },
          "serviceAccountId": {
            "description": "Service account ID of Yandex Cloud Serverless Container\n* `image.0.url` - URL of image that deployed as Yandex Cloud Serverless Container\n* `image.0.work_dir` - Working directory of Yandex Cloud Serverless Container\n* `image.0.digest` - Digest of image that deployed as Yandex Cloud Serverless Container\n* `image.0.command` - List of commands of the Yandex Cloud Serverless Container\n* `image.0.args` - List of arguments of the Yandex Cloud Serverless Container\n* `image.0.environment` -  A set of key/value environment variable pairs of Yandex Cloud Serverless Container\n",
            "type": "string"
          },
          "url": {
            "description": "Invoke URL of the Yandex Cloud Serverless Container\n",
            "type": "string"
          }
        },
        "required": [
          "concurrency",
          "coreFraction",
          "cores",
          "createdAt",
          "description",
          "executionTimeout",
          "id",
          "images",
          "labels",
          "memory",
          "revisionId",
          "serviceAccountId",
          "url"
        ],
        "type": "object"
      }
    },
    "yandex:index/getVpcAddress:getVpcAddress": {
      "description": "Get information about a Yandex VPC address. For more information, see\nYandex.Cloud VPC.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst addr = pulumi.output(yandex.getVpcAddress({\n    addressId: \"my-address-id\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\naddr = yandex.get_vpc_address(address_id=\"my-address-id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var addr = Output.Create(Yandex.GetVpcAddress.InvokeAsync(new Yandex.GetVpcAddressArgs\n        {\n            AddressId = \"my-address-id\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"my-address-id\"\n\t\t_, err := yandex.LookupVpcAddress(ctx, \u0026GetVpcAddressArgs{\n\t\t\tAddressId: \u0026opt0,\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\nThis data source is used to define [VPC Address] that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcAddress.\n",
        "properties": {
          "addressId": {
            "type": "string",
            "description": "ID of the address.\n"
          },
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the address.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcAddress.\n",
        "properties": {
          "addressId": {
            "type": "string"
          },
          "createdAt": {
            "description": "Creation timestamp of this address.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the address.\n",
            "type": "string"
          },
          "externalIpv4Addresses": {
            "description": "spec of IP v4 address.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetVpcAddressExternalIpv4Address:getVpcAddressExternalIpv4Address"
            },
            "type": "array"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels assigned to this address.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "reserved": {
            "description": "`false` means that address is ephemeral.\n",
            "type": "boolean"
          },
          "used": {
            "description": "`true` if address is used.\n",
            "type": "boolean"
          }
        },
        "required": [
          "addressId",
          "createdAt",
          "description",
          "externalIpv4Addresses",
          "folderId",
          "id",
          "labels",
          "name",
          "reserved",
          "used"
        ],
        "type": "object"
      }
    },
    "yandex:index/getVpcNetwork:getVpcNetwork": {
      "description": "Get information about a Yandex VPC network. For more information, see\n[Yandex.Cloud VPC](https://cloud.yandex.com/docs/vpc/concepts/index).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst admin = pulumi.output(yandex.getVpcNetwork({\n    networkId: \"my-network-id\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nadmin = yandex.get_vpc_network(network_id=\"my-network-id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var admin = Output.Create(Yandex.GetVpcNetwork.InvokeAsync(new Yandex.GetVpcNetworkArgs\n        {\n            NetworkId = \"my-network-id\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"my-network-id\"\n\t\t_, err := yandex.LookupVpcNetwork(ctx, \u0026GetVpcNetworkArgs{\n\t\t\tNetworkId: \u0026opt0,\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\nThis data source is used to define [VPC Networks] that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcNetwork.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the network.\n"
          },
          "networkId": {
            "type": "string",
            "description": "ID of the network.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcNetwork.\n",
        "properties": {
          "createdAt": {
            "description": "Creation timestamp of this network.\n",
            "type": "string"
          },
          "defaultSecurityGroupId": {
            "description": "ID of default Security Group of this network.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the network.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels assigned to this network.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "networkId": {
            "type": "string"
          },
          "subnetIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "createdAt",
          "defaultSecurityGroupId",
          "description",
          "folderId",
          "id",
          "labels",
          "name",
          "networkId",
          "subnetIds"
        ],
        "type": "object"
      }
    },
    "yandex:index/getVpcRouteTable:getVpcRouteTable": {
      "description": "Get information about a Yandex VPC route table. For more information, see\n[Yandex.Cloud VPC](https://cloud.yandex.com/docs/vpc/concepts/index).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst thisVpcRouteTable = pulumi.output(yandex.getVpcRouteTable({\n    routeTableId: \"my-rt-id\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nthis = yandex.get_vpc_route_table(route_table_id=\"my-rt-id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var @this = Output.Create(Yandex.GetVpcRouteTable.InvokeAsync(new Yandex.GetVpcRouteTableArgs\n        {\n            RouteTableId = \"my-rt-id\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"my-rt-id\"\n\t\t_, err := yandex.LookupVpcRouteTable(ctx, \u0026GetVpcRouteTableArgs{\n\t\t\tRouteTableId: \u0026opt0,\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\nThis data source is used to define [VPC Route Table] that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcRouteTable.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "- Name of the route table.\n"
          },
          "routeTableId": {
            "type": "string",
            "description": "Route table ID.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcRouteTable.\n",
        "properties": {
          "createdAt": {
            "description": "Creation timestamp of this route table.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the route table.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this route table.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "networkId": {
            "description": "ID of the network this route table belongs to.\n",
            "type": "string"
          },
          "routeTableId": {
            "type": "string"
          },
          "staticRoutes": {
            "description": "List of static route records of the route table. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetVpcRouteTableStaticRoute:getVpcRouteTableStaticRoute"
            },
            "type": "array"
          }
        },
        "required": [
          "createdAt",
          "description",
          "folderId",
          "id",
          "labels",
          "name",
          "networkId",
          "routeTableId",
          "staticRoutes"
        ],
        "type": "object"
      }
    },
    "yandex:index/getVpcSecurityGroup:getVpcSecurityGroup": {
      "description": "Get information about a Yandex VPC Security Group. For more information, see\n[Yandex.Cloud VPC](https://cloud.yandex.com/docs/vpc/concepts/security-groups).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst group1 = pulumi.output(yandex.getVpcSecurityGroup({\n    securityGroupId: \"my-id\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ngroup1 = yandex.get_vpc_security_group(security_group_id=\"my-id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var group1 = Output.Create(Yandex.GetVpcSecurityGroup.InvokeAsync(new Yandex.GetVpcSecurityGroupArgs\n        {\n            SecurityGroupId = \"my-id\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"my-id\"\n\t\t_, err := yandex.LookupVpcSecurityGroup(ctx, \u0026GetVpcSecurityGroupArgs{\n\t\t\tSecurityGroupId: \u0026opt0,\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\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst group1 = pulumi.output(yandex.getVpcSecurityGroup({\n    name: \"my-group1\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\ngroup1 = yandex.get_vpc_security_group(name=\"my-group1\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var group1 = Output.Create(Yandex.GetVpcSecurityGroup.InvokeAsync(new Yandex.GetVpcSecurityGroupArgs\n        {\n            Name = \"my-group1\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"my-group1\"\n\t\t_, err := yandex.LookupVpcSecurityGroup(ctx, \u0026GetVpcSecurityGroupArgs{\n\t\t\tName: \u0026opt0,\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\nThis data source is used to define Security Group that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcSecurityGroup.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "- Name of the security group.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Security Group ID.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcSecurityGroup.\n",
        "properties": {
          "createdAt": {
            "description": "Creation timestamp of this security group.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the rule.\n",
            "type": "string"
          },
          "egresses": {
            "description": "A list of egress rules. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetVpcSecurityGroupEgress:getVpcSecurityGroupEgress"
            },
            "type": "array"
          },
          "folderId": {
            "description": "ID of the folder this security group belongs to.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "ingresses": {
            "description": "A list of ingress rules. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetVpcSecurityGroupIngress:getVpcSecurityGroupIngress"
            },
            "type": "array"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this rule.\n",
            "type": "object"
          },
          "name": {
            "description": "Name of the security group.\n",
            "type": "string"
          },
          "networkId": {
            "description": "ID of the network this security group belongs to.\n",
            "type": "string"
          },
          "securityGroupId": {
            "description": "Target security group ID for this rule.\n",
            "type": "string"
          },
          "status": {
            "description": "Status of this security group.\n",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "description",
          "egresses",
          "folderId",
          "id",
          "ingresses",
          "labels",
          "name",
          "networkId",
          "securityGroupId",
          "status"
        ],
        "type": "object"
      }
    },
    "yandex:index/getVpcSecurityGroupRule:getVpcSecurityGroupRule": {
      "inputs": {
        "description": "A collection of arguments for invoking getVpcSecurityGroupRule.\n",
        "properties": {
          "ruleId": {
            "type": "string"
          },
          "securityGroupBinding": {
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "ruleId",
          "securityGroupBinding"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getVpcSecurityGroupRule.\n",
        "properties": {
          "description": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          },
          "fromPort": {
            "type": "integer"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "port": {
            "type": "integer"
          },
          "predefinedTarget": {
            "type": "string"
          },
          "protocol": {
            "type": "string"
          },
          "ruleId": {
            "type": "string"
          },
          "securityGroupBinding": {
            "type": "string"
          },
          "securityGroupId": {
            "type": "string"
          },
          "toPort": {
            "type": "integer"
          },
          "v4CidrBlocks": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "v6CidrBlocks": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "description",
          "direction",
          "fromPort",
          "id",
          "labels",
          "port",
          "predefinedTarget",
          "protocol",
          "ruleId",
          "securityGroupBinding",
          "securityGroupId",
          "toPort",
          "v4CidrBlocks",
          "v6CidrBlocks"
        ],
        "type": "object"
      }
    },
    "yandex:index/getVpcSubnet:getVpcSubnet": {
      "description": "Get information about a Yandex VPC subnet. For more information, see\n[Yandex.Cloud VPC](https://cloud.yandex.com/docs/vpc/concepts/index).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst admin = pulumi.output(yandex.getVpcSubnet({\n    subnetId: \"my-subnet-id\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nadmin = yandex.get_vpc_subnet(subnet_id=\"my-subnet-id\")\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var admin = Output.Create(Yandex.GetVpcSubnet.InvokeAsync(new Yandex.GetVpcSubnetArgs\n        {\n            SubnetId = \"my-subnet-id\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"my-subnet-id\"\n\t\t_, err := yandex.LookupVpcSubnet(ctx, \u0026GetVpcSubnetArgs{\n\t\t\tSubnetId: \u0026opt0,\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\nThis data source is used to define [VPC Subnets] that can be used by other resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcSubnet.\n",
        "properties": {
          "folderId": {
            "type": "string",
            "description": "Folder that the resource belongs to. If value is omitted, the default provider folder is used.\n"
          },
          "name": {
            "type": "string",
            "description": "- Name of the subnet.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Subnet ID.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcSubnet.\n",
        "properties": {
          "createdAt": {
            "description": "Creation timestamp of this subnet.\n",
            "type": "string"
          },
          "description": {
            "description": "Description of the subnet.\n",
            "type": "string"
          },
          "dhcpOptions": {
            "description": "Options for DHCP client. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetVpcSubnetDhcpOption:getVpcSubnetDhcpOption"
            },
            "type": "array"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels to assign to this subnet.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "networkId": {
            "description": "ID of the network this subnet belongs to.\n",
            "type": "string"
          },
          "routeTableId": {
            "description": "ID of the route table to assign to this subnet.\n",
            "type": "string"
          },
          "subnetId": {
            "type": "string"
          },
          "v4CidrBlocks": {
            "description": "The blocks of internal IPv4 addresses owned by this subnet.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "v6CidrBlocks": {
            "description": "The blocks of internal IPv6 addresses owned by this subnet.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "zone": {
            "description": "Name of the availability zone for this subnet.\n",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "description",
          "dhcpOptions",
          "folderId",
          "id",
          "labels",
          "name",
          "networkId",
          "routeTableId",
          "subnetId",
          "v4CidrBlocks",
          "v6CidrBlocks",
          "zone"
        ],
        "type": "object"
      }
    },
    "yandex:index/getYdbDatabaseDedicated:getYdbDatabaseDedicated": {
      "description": "Get information about a Yandex Database (dedicated) cluster.\nFor more information, see [the official documentation](https://cloud.yandex.com/en/docs/ydb/concepts/serverless_and_dedicated).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myDatabase = pulumi.output(yandex.getYdbDatabaseDedicated({\n    databaseId: \"some_ydb_dedicated_database_id\",\n}));\n\nexport const ydbApiEndpoint = myDatabase.ydbApiEndpoint;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_database = yandex.get_ydb_database_dedicated(database_id=\"some_ydb_dedicated_database_id\")\npulumi.export(\"ydbApiEndpoint\", my_database.ydb_api_endpoint)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myDatabase = Output.Create(Yandex.GetYdbDatabaseDedicated.InvokeAsync(new Yandex.GetYdbDatabaseDedicatedArgs\n        {\n            DatabaseId = \"some_ydb_dedicated_database_id\",\n        }));\n        this.YdbApiEndpoint = myDatabase.Apply(myDatabase =\u003e myDatabase.YdbApiEndpoint);\n    }\n\n    [Output(\"ydbApiEndpoint\")]\n    public Output\u003cstring\u003e YdbApiEndpoint { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some_ydb_dedicated_database_id\"\n\t\tmyDatabase, err := yandex.LookupYdbDatabaseDedicated(ctx, \u0026GetYdbDatabaseDedicatedArgs{\n\t\t\tDatabaseId: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ydbApiEndpoint\", myDatabase.YdbApiEndpoint)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getYdbDatabaseDedicated.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of the Yandex Database cluster.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder that the Yandex Database cluster belongs to.\nIt will be deduced from provider configuration if not set explicitly.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the Yandex Database cluster.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getYdbDatabaseDedicated.\n",
        "properties": {
          "assignPublicIps": {
            "description": "Whether public IP addresses are assigned to the Yandex Database cluster.\n",
            "type": "boolean"
          },
          "createdAt": {
            "description": "The Yandex Database cluster creation timestamp.\n",
            "type": "string"
          },
          "databaseId": {
            "type": "string"
          },
          "databasePath": {
            "description": "Full database path of the Yandex Database cluster.\nUseful for SDK configuration.\n",
            "type": "string"
          },
          "description": {
            "description": "A description of the Yandex Database cluster.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs assigned to the Yandex Database cluster.\n",
            "type": "object"
          },
          "locationId": {
            "description": "Location ID of the Yandex Database cluster.\n",
            "type": "string"
          },
          "locations": {
            "description": "Location of the Yandex Database cluster.\nThe structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetYdbDatabaseDedicatedLocation:getYdbDatabaseDedicatedLocation"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "networkId": {
            "description": "ID of the network the Yandex Database cluster is attached to.\n",
            "type": "string"
          },
          "resourcePresetId": {
            "description": "The Yandex Database cluster preset.\n",
            "type": "string"
          },
          "scalePolicies": {
            "description": "Scaling policy of the Yandex Database cluster.\nThe structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetYdbDatabaseDedicatedScalePolicy:getYdbDatabaseDedicatedScalePolicy"
            },
            "type": "array"
          },
          "status": {
            "description": "Status of the Yandex Database cluster.\n",
            "type": "string"
          },
          "storageConfigs": {
            "description": "A list of storage configuration options of the Yandex Database cluster.\nThe structure is documented below.\n",
            "items": {
              "$ref": "#/types/yandex:index%2FgetYdbDatabaseDedicatedStorageConfig:getYdbDatabaseDedicatedStorageConfig"
            },
            "type": "array"
          },
          "subnetIds": {
            "description": "List of subnet IDs the Yandex Database cluster is attached to.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tlsEnabled": {
            "description": "Whether TLS is enabled for the Yandex Database cluster.\nUseful for SDK configuration.\n",
            "type": "boolean"
          },
          "ydbApiEndpoint": {
            "description": "API endpoint of the Yandex Database cluster.\nUseful for SDK configuration.\n",
            "type": "string"
          },
          "ydbFullEndpoint": {
            "description": "Full endpoint of the Yandex Database cluster.\n",
            "type": "string"
          }
        },
        "required": [
          "assignPublicIps",
          "createdAt",
          "databasePath",
          "description",
          "id",
          "labels",
          "locationId",
          "locations",
          "networkId",
          "resourcePresetId",
          "scalePolicies",
          "status",
          "storageConfigs",
          "subnetIds",
          "tlsEnabled",
          "ydbApiEndpoint",
          "ydbFullEndpoint"
        ],
        "type": "object"
      }
    },
    "yandex:index/getYdbDatabaseServerless:getYdbDatabaseServerless": {
      "description": "Get information about a Yandex Database serverless cluster.\nFor more information, see [the official documentation](https://cloud.yandex.com/en/docs/ydb/concepts/serverless_and_dedicated).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as yandex from \"@pulumi/yandex\";\n\nconst myDatabase = pulumi.output(yandex.getYdbDatabaseServerless({\n    databaseId: \"some_ydb_serverless_database_id\",\n}));\n\nexport const ydbApiEndpoint = myDatabase.ydbApiEndpoint;\n```\n```python\nimport pulumi\nimport pulumi_yandex as yandex\n\nmy_database = yandex.get_ydb_database_serverless(database_id=\"some_ydb_serverless_database_id\")\npulumi.export(\"ydbApiEndpoint\", my_database.ydb_api_endpoint)\n```\n```csharp\nusing Pulumi;\nusing Yandex = Pulumi.Yandex;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var myDatabase = Output.Create(Yandex.GetYdbDatabaseServerless.InvokeAsync(new Yandex.GetYdbDatabaseServerlessArgs\n        {\n            DatabaseId = \"some_ydb_serverless_database_id\",\n        }));\n        this.YdbApiEndpoint = myDatabase.Apply(myDatabase =\u003e myDatabase.YdbApiEndpoint);\n    }\n\n    [Output(\"ydbApiEndpoint\")]\n    public Output\u003cstring\u003e YdbApiEndpoint { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-yandex/sdk/go/yandex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"some_ydb_serverless_database_id\"\n\t\tmyDatabase, err := yandex.LookupYdbDatabaseServerless(ctx, \u0026GetYdbDatabaseServerlessArgs{\n\t\t\tDatabaseId: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ydbApiEndpoint\", myDatabase.YdbApiEndpoint)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getYdbDatabaseServerless.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of the Yandex Database serverless cluster.\n"
          },
          "folderId": {
            "type": "string",
            "description": "ID of the folder that the Yandex Database serverless cluster belongs to.\nIt will be deduced from provider configuration if not set explicitly.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the Yandex Database serverless cluster.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getYdbDatabaseServerless.\n",
        "properties": {
          "createdAt": {
            "description": "The Yandex Database serverless cluster creation timestamp.\n",
            "type": "string"
          },
          "databaseId": {
            "type": "string"
          },
          "databasePath": {
            "description": "Full database path of the Yandex Database serverless cluster.\nUseful for SDK configuration.\n",
            "type": "string"
          },
          "description": {
            "description": "A description of the Yandex Database serverless cluster.\n",
            "type": "string"
          },
          "documentApiEndpoint": {
            "description": "Document API endpoint of the Yandex Database serverless cluster.\n",
            "type": "string"
          },
          "folderId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key/value label pairs assigned to the Yandex Database serverless cluster.\n",
            "type": "object"
          },
          "locationId": {
            "description": "Location ID of the Yandex Database serverless cluster.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "description": "Status of the Yandex Database serverless cluster.\n",
            "type": "string"
          },
          "tlsEnabled": {
            "description": "Whether TLS is enabled for the Yandex Database serverless cluster.\nUseful for SDK configuration.\n",
            "type": "boolean"
          },
          "ydbApiEndpoint": {
            "description": "API endpoint of the Yandex Database serverless cluster.\nUseful for SDK configuration.\n",
            "type": "string"
          },
          "ydbFullEndpoint": {
            "description": "Full endpoint of the Yandex Database serverless cluster.\n",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "databasePath",
          "description",
          "documentApiEndpoint",
          "id",
          "labels",
          "locationId",
          "status",
          "tlsEnabled",
          "ydbApiEndpoint",
          "ydbFullEndpoint"
        ],
        "type": "object"
      }
    }
  }
}
