{
  "name": "flexibleengine",
  "version": "1.46.0",
  "description": "A Pulumi provider dynamically bridged from flexibleengine.",
  "attribution": "This Pulumi package is based on the [`flexibleengine` Terraform Provider](https://github.com/flexibleenginecloud/terraform-provider-flexibleengine).",
  "repository": "https://github.com/flexibleenginecloud/terraform-provider-flexibleengine",
  "publisher": "flexibleenginecloud",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "compatibility": "tfbridge20",
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true
    },
    "go": {
      "importBasePath": "github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine",
      "rootPackageName": "flexibleengine",
      "liftSingleValueMethodReturns": true,
      "generateExtraInputTypes": true,
      "respectSchemaVersion": true
    },
    "java": {
      "basePackage": "",
      "buildFiles": "",
      "gradleNexusPublishPluginVersion": "",
      "gradleTest": ""
    },
    "nodejs": {
      "packageDescription": "A Pulumi provider dynamically bridged from flexibleengine.",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/flexibleenginecloud/terraform-provider-flexibleengine)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-flexibleengine` repo](https://github.com/flexibleenginecloud/terraform-provider-flexibleengine/issues).",
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true,
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true
    },
    "python": {
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/flexibleenginecloud/terraform-provider-flexibleengine)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-flexibleengine` repo](https://github.com/flexibleenginecloud/terraform-provider-flexibleengine/issues).",
      "compatibility": "tfbridge20",
      "respectSchemaVersion": true,
      "pyproject": {
        "enabled": true
      }
    }
  },
  "config": {
    "variables": {
      "accessKey": {
        "type": "string",
        "description": "The access key of the FlexibleEngine cloud to use.\n"
      },
      "authUrl": {
        "type": "string",
        "description": "The Identity authentication URL.\n"
      },
      "cacertFile": {
        "type": "string",
        "description": "A Custom CA certificate.\n"
      },
      "cert": {
        "type": "string",
        "description": "A client certificate to authenticate with.\n"
      },
      "cloud": {
        "type": "string",
        "description": "The endpoint of cloud provider, defaults to prod-cloud-ocb.orange-business.com\n"
      },
      "domainId": {
        "type": "string",
        "description": "The ID of the Domain to scope to (Identity v3).\n"
      },
      "domainName": {
        "type": "string",
        "description": "The name of the Domain to scope to (Identity v3).\n"
      },
      "endpoints": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        },
        "description": "Experimental Feature: the custom endpoints used to override the default endpoint URL\n"
      },
      "insecure": {
        "type": "boolean",
        "description": "Trust self-signed certificates.\n"
      },
      "key": {
        "type": "string",
        "description": "A client private key to authenticate with.\n"
      },
      "maxRetries": {
        "type": "number",
        "description": "How many times HTTP connection should be retried until giving up.\n"
      },
      "password": {
        "type": "string",
        "description": "Password to login with.\n",
        "secret": true
      },
      "region": {
        "type": "string",
        "description": "The FlexibleEngine region to connect to.\n"
      },
      "secretKey": {
        "type": "string",
        "description": "The secret key of the FlexibleEngine cloud to use.\n"
      },
      "securityToken": {
        "type": "string",
        "description": "The security token to authenticate with a temporary security credential.\n"
      },
      "tenantId": {
        "type": "string",
        "description": "The ID of the Tenant (Identity v2) or Project (Identity v3) to login with.\n"
      },
      "tenantName": {
        "type": "string",
        "description": "The name of the Tenant (Identity v2) or Project (Identity v3) to login with.\n"
      },
      "token": {
        "type": "string",
        "description": "Authentication token to use as an alternative to username/password.\n"
      },
      "userId": {
        "type": "string",
        "description": "User ID to login with.\n"
      },
      "userName": {
        "type": "string",
        "description": "Username to login with.\n"
      }
    },
    "defaults": [
      "region"
    ]
  },
  "types": {
    "flexibleengine:index/AntiddosV1Timeouts:AntiddosV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/AomServiceDiscoveryRuleDiscoveryRule:AomServiceDiscoveryRuleDiscoveryRule": {
      "properties": {
        "checkContents": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the matched value. This is a list of strings.\n"
        },
        "checkMode": {
          "type": "string",
          "description": "Specifies the match condition. The values can be **contain** and **equals**.\n"
        },
        "checkType": {
          "type": "string",
          "description": "Specifies the match type. The values can be **cmdLine**, **env** and **scope**.\n"
        }
      },
      "type": "object",
      "required": [
        "checkContents",
        "checkMode",
        "checkType"
      ]
    },
    "flexibleengine:index/AomServiceDiscoveryRuleLogPathRule:AomServiceDiscoveryRuleLogPathRule": {
      "properties": {
        "args": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the command. This is a list of strings.\n"
        },
        "nameType": {
          "type": "string",
          "description": "Specifies the value type, which can be **cmdLineHash**.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the log path. This is a list of strings.\n\n<a name=\"name_rules_object\"></a>\nThe `name_rules` block supports:\n"
        }
      },
      "type": "object",
      "required": [
        "args",
        "nameType",
        "values"
      ]
    },
    "flexibleengine:index/AomServiceDiscoveryRuleNameRules:AomServiceDiscoveryRuleNameRules": {
      "properties": {
        "applicationNameRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleNameRulesApplicationNameRule:AomServiceDiscoveryRuleNameRulesApplicationNameRule"
          },
          "description": "Specifies the application name rule. If the value of `name_type` is\n**cmdLine**, `args` is in the format of [\"start\", \"end\"], indicating that the characters between start and end in\nthe command are extracted. If the value of `name_type` is **env**, `args` is in the format of [\"aa\"], indicating that\nthe environment variable named aa is extracted. If the value of `name_type` is **str**, `args` is in the format of\n[\"fix\"], indicating that the application name is suffixed with fix. If the value of `name_type` is **cmdLineHash**,\n`args` is in the format of [\"0001\"] and `value` is in the format of [\"ser\"], indicating that the application name is\nser when the startup command is 0001. The object structure is documented below.\n\n<a name=\"basic_name_rule_object\"></a>\nThe `service_name_rule` block and `application_name_rule` block support:\n"
        },
        "serviceNameRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleNameRulesServiceNameRule:AomServiceDiscoveryRuleNameRulesServiceNameRule"
          },
          "description": "Specifies the service name rule. If there are multiple objects in the array,\nthe character strings extracted from these objects constitute the service name. If the value of `name_type` is\n**cmdLine**, `args` is in the format of [\"start\", \"end\"], indicating that the characters between start and end\nin the command are extracted. If the value of `name_type` is **env**, `args` is in the format of [\"aa\"],\nindicating that the environment variable named aa is extracted. If the value of `name_type` is **str**, `args` is in the\nformat of [\"fix\"], indicating that the service name is suffixed with fix. If the value of `name_type` is\n**cmdLineHash**, `args` is in the format of [\"0001\"] and `value` is in the format of [\"ser\"], indicating that the\nservice name is ser when the startup command is 0001. The object structure is\ndocumented below.\n"
        }
      },
      "type": "object",
      "required": [
        "applicationNameRules",
        "serviceNameRules"
      ]
    },
    "flexibleengine:index/AomServiceDiscoveryRuleNameRulesApplicationNameRule:AomServiceDiscoveryRuleNameRulesApplicationNameRule": {
      "properties": {
        "args": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the input value.\n"
        },
        "nameType": {
          "type": "string",
          "description": "Specifies the value type. The value can be **cmdLineHash**, **cmdLine**, **env**\nand **str**.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the application name, which is mandatory only when the value of\n`name_type` is **cmdLineHash**.\n"
        }
      },
      "type": "object",
      "required": [
        "args",
        "nameType"
      ]
    },
    "flexibleengine:index/AomServiceDiscoveryRuleNameRulesServiceNameRule:AomServiceDiscoveryRuleNameRulesServiceNameRule": {
      "properties": {
        "args": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the input value.\n"
        },
        "nameType": {
          "type": "string",
          "description": "Specifies the value type. The value can be **cmdLineHash**, **cmdLine**, **env**\nand **str**.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the application name, which is mandatory only when the value of\n`name_type` is **cmdLineHash**.\n"
        }
      },
      "type": "object",
      "required": [
        "args",
        "nameType"
      ]
    },
    "flexibleengine:index/AomServiceDiscoveryRuleTimeouts:AomServiceDiscoveryRuleTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ApiGatewayApiBackendParameter:ApiGatewayApiBackendParameter": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the parameter. The description cannot exceed 255\ncharacters.\n"
        },
        "location": {
          "type": "string",
          "description": "Specifies the parameter location, which can be 'PATH', 'QUERY' or 'HEADER'.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the parameter name. A parameter name consists of 1–32 characters, starting with\na letter. Only letters, digits, periods (.), hyphens (-), and underscores (_) are allowed.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the parameter type, which can be 'REQUEST', 'CONSTANT', or 'SYSTEM'.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the parameter value, which is a string of not more than 255 characters. The\nvalue varies depending on the parameter type:\n+ 'REQUEST': parameter name in `request_parameter`\n+ 'CONSTANT': real value of the parameter\n+ 'SYSTEM': gateway parameter name\n"
        }
      },
      "type": "object",
      "required": [
        "location",
        "name",
        "value"
      ]
    },
    "flexibleengine:index/ApiGatewayApiFunctionBackend:ApiGatewayApiFunctionBackend": {
      "properties": {
        "functionUrn": {
          "type": "string",
          "description": "Specifies the function URN.\n"
        },
        "invocationType": {
          "type": "string",
          "description": "Specifies the invocation mode, which can be 'async' or 'sync'.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Timeout duration (in ms) for API Gateway to request for FunctionGraph. Defaults to 50000.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the function version.\n"
        }
      },
      "type": "object",
      "required": [
        "functionUrn",
        "invocationType",
        "version"
      ]
    },
    "flexibleengine:index/ApiGatewayApiHttpBackend:ApiGatewayApiHttpBackend": {
      "properties": {
        "method": {
          "type": "string",
          "description": "Specifies the backend request method, including 'GET','POST','PUT' and etc..\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the backend request protocol. The value can be 'HTTP' and 'HTTPS'.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Timeout duration (in ms) for API Gateway to request for the backend service. Defaults to\n50000.\n"
        },
        "uri": {
          "type": "string",
          "description": "Specifies the backend request path. The value must comply with URI specifications.\n"
        },
        "urlDomain": {
          "type": "string",
          "description": "Specifies the backend service address. An endpoint URL is in the format of\n\"domain name (or IP address):port number\", with up to 255 characters. This parameter and `vpc_channel` are\nalternative.\n"
        },
        "vpcChannel": {
          "type": "string",
          "description": "Specifies the VPC channel ID. This parameter and `url_domain` are alternative.\n"
        }
      },
      "type": "object",
      "required": [
        "method",
        "protocol",
        "uri"
      ]
    },
    "flexibleengine:index/ApiGatewayApiMockBackend:ApiGatewayApiMockBackend": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the Mock backend. The description cannot exceed 255\ncharacters.\n"
        },
        "resultContent": {
          "type": "string",
          "description": "Specifies the return result.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the version of the Mock backend.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ApiGatewayApiRequestParameter:ApiGatewayApiRequestParameter": {
      "properties": {
        "default": {
          "type": "string",
          "description": "Specifies the default value when the parameter is optional.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the parameter. The description cannot exceed 255\ncharacters.\n"
        },
        "location": {
          "type": "string",
          "description": "Specifies the input parameter location, which can be 'PATH', 'QUERY' or 'HEADER'.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the input parameter name. A parameter name consists of 1–32 characters, starting\nwith a letter. Only letters, digits, periods (.), hyphens (-), and underscores (_) are allowed.\n"
        },
        "required": {
          "type": "boolean",
          "description": "Specifies whether the parameter is mandatory or not.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the input parameter type, which can be 'STRING' or 'NUMBER'.\n"
        }
      },
      "type": "object",
      "required": [
        "location",
        "name",
        "required",
        "type"
      ]
    },
    "flexibleengine:index/ApiGatewayApiTimeouts:ApiGatewayApiTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ApiGatewayGroupTimeouts:ApiGatewayGroupTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ApigApiBackendParam:ApigApiBackendParam": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the constant or system parameter, which contain a\nmaximum of 255 characters, and the angle brackets (< and >) are not allowed.\n"
        },
        "location": {
          "type": "string",
          "description": "Specifies the location of the backend parameter. The valid values are **PATH**,\n**QUERY** and **HEADER**.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the backend policy name, which can contains of 3 to 64 characters and start with\na letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "systemParamType": {
          "type": "string",
          "description": "Specifies the type of the system parameter.  \nThe valid values are **frontend**, **backend** and **internal**, defaults to **internal**.\n\n<a name=\"apig_api_mock\"></a>\nThe `mock` block supports:\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the condition type of the backend policy. The valid values are **Equal**,\n**Enumerated** and **Matching**, default to **Equal**.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the condition type. For a condition with the input parameter source:\n+ If the condition type is **Enumerated**, separate condition values with commas.\n+ If the condition type is **Matching**, enter a regular expression compatible with PERL.\n\nFor a condition with the Source IP address source, enter IPv4 addresses and separate them with commas. The CIDR\naddress format is supported.\n"
        }
      },
      "type": "object",
      "required": [
        "location",
        "name",
        "type",
        "value"
      ]
    },
    "flexibleengine:index/ApigApiFuncGraph:ApigApiFuncGraph": {
      "properties": {
        "authorizerId": {
          "type": "string",
          "description": "Specifies the ID of the backend custom authorization.\n\n<a name=\"apig_api_conditions\"></a>\nThe `conditions` block supports:\n"
        },
        "functionUrn": {
          "type": "string",
          "description": "Specifies the URN of the function graph.\n"
        },
        "invocationType": {
          "type": "string",
          "description": "Specifies the invocation mode. The valid values are **async** and **sync**,\ndefault to **sync**.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the timeout, in ms, which allowed for APIG to request the backend service. The\nvalid value is range from 1 to 600,000, default to 5,000.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the version of the function graph.\n"
        }
      },
      "type": "object",
      "required": [
        "functionUrn"
      ]
    },
    "flexibleengine:index/ApigApiFuncGraphPolicy:ApigApiFuncGraphPolicy": {
      "properties": {
        "authorizerId": {
          "type": "string",
          "description": "Specifies the ID of the backend custom authorization.\n\n<a name=\"apig_api_conditions\"></a>\nThe `conditions` block supports:\n"
        },
        "backendParams": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiFuncGraphPolicyBackendParam:ApigApiFuncGraphPolicyBackendParam"
          },
          "description": "Specifies an array of one or more backend parameters. The maximum of request\nparameters is 50. The object structure is documented above.\n"
        },
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiFuncGraphPolicyCondition:ApigApiFuncGraphPolicyCondition"
          },
          "description": "Specifies an array of one or more policy conditions. Up to five conditions can be set.\nThe object structure is documented below.\n"
        },
        "effectiveMode": {
          "type": "string",
          "description": "Specifies the effective mode of the backend policy. The valid values are **ALL**\nand **ANY**, default to **ANY**.\n"
        },
        "functionUrn": {
          "type": "string",
          "description": "Specifies the URN of the function graph.\n"
        },
        "invocationMode": {
          "type": "string",
          "description": "Specifies the invocation mode of the function graph. The valid values are\n**async** and **sync**, default to **sync**.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the backend policy name, which can contains of 3 to 64 characters and start with\na letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the timeout, in ms, which allowed for APIG to request the backend service. The\nvalid value is range from 1 to 600,000, default to 5,000.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the version of the function graph.\n"
        }
      },
      "type": "object",
      "required": [
        "conditions",
        "functionUrn",
        "name"
      ]
    },
    "flexibleengine:index/ApigApiFuncGraphPolicyBackendParam:ApigApiFuncGraphPolicyBackendParam": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the constant or system parameter, which contain a\nmaximum of 255 characters, and the angle brackets (< and >) are not allowed.\n"
        },
        "location": {
          "type": "string",
          "description": "Specifies the location of the backend parameter. The valid values are **PATH**,\n**QUERY** and **HEADER**.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the backend policy name, which can contains of 3 to 64 characters and start with\na letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "systemParamType": {
          "type": "string",
          "description": "Specifies the type of the system parameter.  \nThe valid values are **frontend**, **backend** and **internal**, defaults to **internal**.\n\n<a name=\"apig_api_mock\"></a>\nThe `mock` block supports:\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the condition type of the backend policy. The valid values are **Equal**,\n**Enumerated** and **Matching**, default to **Equal**.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the condition type. For a condition with the input parameter source:\n+ If the condition type is **Enumerated**, separate condition values with commas.\n+ If the condition type is **Matching**, enter a regular expression compatible with PERL.\n\nFor a condition with the Source IP address source, enter IPv4 addresses and separate them with commas. The CIDR\naddress format is supported.\n"
        }
      },
      "type": "object",
      "required": [
        "location",
        "name",
        "type",
        "value"
      ]
    },
    "flexibleengine:index/ApigApiFuncGraphPolicyCondition:ApigApiFuncGraphPolicyCondition": {
      "properties": {
        "paramName": {
          "type": "string",
          "description": "Specifies the request parameter name. This parameter is required if the policy type\nis param.\n"
        },
        "source": {
          "type": "string",
          "description": "Specifies the policy type. The valid values are **param** and **source**, default to\n**source**.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the condition type of the backend policy. The valid values are **Equal**,\n**Enumerated** and **Matching**, default to **Equal**.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the condition type. For a condition with the input parameter source:\n+ If the condition type is **Enumerated**, separate condition values with commas.\n+ If the condition type is **Matching**, enter a regular expression compatible with PERL.\n\nFor a condition with the Source IP address source, enter IPv4 addresses and separate them with commas. The CIDR\naddress format is supported.\n"
        }
      },
      "type": "object",
      "required": [
        "value"
      ]
    },
    "flexibleengine:index/ApigApiMock:ApigApiMock": {
      "properties": {
        "authorizerId": {
          "type": "string",
          "description": "Specifies the ID of the backend custom authorization.\n\n<a name=\"apig_api_conditions\"></a>\nThe `conditions` block supports:\n"
        },
        "response": {
          "type": "string",
          "description": "Specifies the response of the backend policy, which contain a maximum of 2,048\ncharacters, and the angle brackets (< and >) are not allowed.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ApigApiMockPolicy:ApigApiMockPolicy": {
      "properties": {
        "authorizerId": {
          "type": "string",
          "description": "Specifies the ID of the backend custom authorization.\n\n<a name=\"apig_api_conditions\"></a>\nThe `conditions` block supports:\n"
        },
        "backendParams": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiMockPolicyBackendParam:ApigApiMockPolicyBackendParam"
          },
          "description": "Specifies an array of one or more backend parameters. The maximum of request\nparameters is 50. The object structure is documented above.\n"
        },
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiMockPolicyCondition:ApigApiMockPolicyCondition"
          },
          "description": "Specifies an array of one or more policy conditions. Up to five conditions can be set.\nThe object structure is documented below.\n"
        },
        "effectiveMode": {
          "type": "string",
          "description": "Specifies the effective mode of the backend policy. The valid values are **ALL**\nand **ANY**, default to **ANY**.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the backend policy name, which can contains of 3 to 64 characters and start with\na letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "response": {
          "type": "string",
          "description": "Specifies the response of the backend policy, which contain a maximum of 2,048\ncharacters, and the angle brackets (< and >) are not allowed.\n"
        }
      },
      "type": "object",
      "required": [
        "conditions",
        "name"
      ]
    },
    "flexibleengine:index/ApigApiMockPolicyBackendParam:ApigApiMockPolicyBackendParam": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the constant or system parameter, which contain a\nmaximum of 255 characters, and the angle brackets (< and >) are not allowed.\n"
        },
        "location": {
          "type": "string",
          "description": "Specifies the location of the backend parameter. The valid values are **PATH**,\n**QUERY** and **HEADER**.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the backend policy name, which can contains of 3 to 64 characters and start with\na letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "systemParamType": {
          "type": "string",
          "description": "Specifies the type of the system parameter.  \nThe valid values are **frontend**, **backend** and **internal**, defaults to **internal**.\n\n<a name=\"apig_api_mock\"></a>\nThe `mock` block supports:\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the condition type of the backend policy. The valid values are **Equal**,\n**Enumerated** and **Matching**, default to **Equal**.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the condition type. For a condition with the input parameter source:\n+ If the condition type is **Enumerated**, separate condition values with commas.\n+ If the condition type is **Matching**, enter a regular expression compatible with PERL.\n\nFor a condition with the Source IP address source, enter IPv4 addresses and separate them with commas. The CIDR\naddress format is supported.\n"
        }
      },
      "type": "object",
      "required": [
        "location",
        "name",
        "type",
        "value"
      ]
    },
    "flexibleengine:index/ApigApiMockPolicyCondition:ApigApiMockPolicyCondition": {
      "properties": {
        "paramName": {
          "type": "string",
          "description": "Specifies the request parameter name. This parameter is required if the policy type\nis param.\n"
        },
        "source": {
          "type": "string",
          "description": "Specifies the policy type. The valid values are **param** and **source**, default to\n**source**.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the condition type of the backend policy. The valid values are **Equal**,\n**Enumerated** and **Matching**, default to **Equal**.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the condition type. For a condition with the input parameter source:\n+ If the condition type is **Enumerated**, separate condition values with commas.\n+ If the condition type is **Matching**, enter a regular expression compatible with PERL.\n\nFor a condition with the Source IP address source, enter IPv4 addresses and separate them with commas. The CIDR\naddress format is supported.\n"
        }
      },
      "type": "object",
      "required": [
        "value"
      ]
    },
    "flexibleengine:index/ApigApiPublishmentHistory:ApigApiPublishmentHistory": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the current publishment.\n"
        },
        "versionId": {
          "type": "string",
          "description": "Specifies the version ID of the current publishment.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "versionId"
      ]
    },
    "flexibleengine:index/ApigApiRequestParam:ApigApiRequestParam": {
      "properties": {
        "default": {
          "type": "string",
          "description": "Specifies the default value of the request parameter, which contain a maximum of 255\ncharacters, and the angle brackets (< and >) are not allowed.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the constant or system parameter, which contain a\nmaximum of 255 characters, and the angle brackets (< and >) are not allowed.\n"
        },
        "enumeration": {
          "type": "string",
          "description": "The enumerated value.\n"
        },
        "example": {
          "type": "string",
          "description": "Specifies the example value of the request parameter, which contain a maximum of 255\ncharacters, and the angle brackets (< and >) are not allowed.\n"
        },
        "location": {
          "type": "string",
          "description": "Specifies the location of the backend parameter. The valid values are **PATH**,\n**QUERY** and **HEADER**.\n"
        },
        "maximum": {
          "type": "number",
          "description": "Specifies the maximum value or size of the request parameter.\n"
        },
        "minimum": {
          "type": "number",
          "description": "Specifies the minimum value or size of the request parameter. For string type,\nThe `maximum` and `minimum` means size. For number type, they means value.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the backend policy name, which can contains of 3 to 64 characters and start with\na letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "passthrough": {
          "type": "boolean",
          "description": "Whether to transparently transfer the parameter.\n"
        },
        "required": {
          "type": "boolean",
          "description": "Specifies whether the request parameter is required.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the condition type of the backend policy. The valid values are **Equal**,\n**Enumerated** and **Matching**, default to **Equal**.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "enumeration",
            "name"
          ]
        }
      }
    },
    "flexibleengine:index/ApigApiWeb:ApigApiWeb": {
      "properties": {
        "authorizerId": {
          "type": "string",
          "description": "Specifies the ID of the backend custom authorization.\n\n<a name=\"apig_api_conditions\"></a>\nThe `conditions` block supports:\n"
        },
        "backendAddress": {
          "type": "string",
          "description": "Specifies the backend service address, which consists of a domain name or IP\naddress, and a port number, with not more than 255 characters. The backend service address must be in the format \"Host\nname:Port number\", for example, apig.example.com:7443. If the port number is not specified, the default HTTPS port 443\nor the default HTTP port 80 is used. The backend service address can contain environment variables, each starting with\na letter and consisting of 3 to 32 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed.\n"
        },
        "hostHeader": {
          "type": "string",
          "description": "Specifies the proxy host header. The host header can be customized for requests to\nbe forwarded to cloud servers through the VPC channel. By default, the original host header of the request is used.\n"
        },
        "path": {
          "type": "string",
          "description": "Specifies the backend request address, which can contain a maximum of 512 characters and\nmust comply with URI specifications.\n+ The request address can contain request parameters enclosed with brackets ({}).\n+ The request address can contain special characters, such as asterisks (*), percent signs (%), hyphens (-) and\nunderscores (_) and must comply with URI specifications.\n+ The address can contain environment variables, each starting with a letter and consisting of 3 to 32 characters.\nOnly letters, digits, hyphens (-), and underscores (_) are allowed in environment variables.\n"
        },
        "requestMethod": {
          "type": "string",
          "description": "Specifies the backend request method of the API. The valid types are **GET**,\n**POST**, **PUT**, **DELETE**, **HEAD**, **PATCH**, **OPTIONS** and **ANY**.\n"
        },
        "requestProtocol": {
          "type": "string",
          "description": "Specifies the backend request protocol. The valid values are **HTTP** and\n**HTTPS**, default to **HTTPS**.\n"
        },
        "retryCount": {
          "type": "number",
          "description": "The number of retry attempts to request the backend service.\n"
        },
        "sslEnable": {
          "type": "boolean",
          "description": "Specifies the indicates whether to enable two-way authentication, default to false.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the timeout, in ms, which allowed for APIG to request the backend service. The\nvalid value is range from 1 to 600,000, default to 5,000.\n"
        },
        "vpcChannelId": {
          "type": "string",
          "description": "Specifies the VPC channel ID. This parameter and `backend_address` are\nalternative.\n"
        }
      },
      "type": "object",
      "required": [
        "path"
      ]
    },
    "flexibleengine:index/ApigApiWebPolicy:ApigApiWebPolicy": {
      "properties": {
        "authorizerId": {
          "type": "string",
          "description": "Specifies the ID of the backend custom authorization.\n\n<a name=\"apig_api_conditions\"></a>\nThe `conditions` block supports:\n"
        },
        "backendAddress": {
          "type": "string",
          "description": "Specifies the backend service address, which consists of a domain name or IP\naddress, and a port number, with not more than 255 characters. The backend service address must be in the format \"Host\nname:Port number\", for example, apig.example.com:7443. If the port number is not specified, the default HTTPS port 443\nor the default HTTP port 80 is used. The backend service address can contain environment variables, each starting with\na letter and consisting of 3 to 32 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed.\n"
        },
        "backendParams": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiWebPolicyBackendParam:ApigApiWebPolicyBackendParam"
          },
          "description": "Specifies an array of one or more backend parameters. The maximum of request\nparameters is 50. The object structure is documented above.\n"
        },
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiWebPolicyCondition:ApigApiWebPolicyCondition"
          },
          "description": "Specifies an array of one or more policy conditions. Up to five conditions can be set.\nThe object structure is documented below.\n"
        },
        "effectiveMode": {
          "type": "string",
          "description": "Specifies the effective mode of the backend policy. The valid values are **ALL**\nand **ANY**, default to **ANY**.\n"
        },
        "hostHeader": {
          "type": "string",
          "description": "Specifies the proxy host header. The host header can be customized for requests to\nbe forwarded to cloud servers through the VPC channel. By default, the original host header of the request is used.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the backend policy name, which can contains of 3 to 64 characters and start with\na letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "path": {
          "type": "string",
          "description": "Specifies the backend request address, which can contain a maximum of 512 characters and\nmust comply with URI specifications.\n+ The request address can contain request parameters enclosed with brackets ({}).\n+ The request address can contain special characters, such as asterisks (*), percent signs (%), hyphens (-) and\nunderscores (_) and must comply with URI specifications.\n+ The address can contain environment variables, each starting with a letter and consisting of 3 to 32 characters.\nOnly letters, digits, hyphens (-), and underscores (_) are allowed in environment variables.\n"
        },
        "requestMethod": {
          "type": "string",
          "description": "Specifies the backend request method of the API. The valid types are **GET**,\n**POST**, **PUT**, **DELETE**, **HEAD**, **PATCH**, **OPTIONS** and **ANY**.\n"
        },
        "requestProtocol": {
          "type": "string",
          "description": "Specifies the backend request protocol. The valid values are **HTTP** and\n**HTTPS**, default to **HTTPS**.\n"
        },
        "retryCount": {
          "type": "number",
          "description": "The number of retry attempts to request the backend service.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the timeout, in ms, which allowed for APIG to request the backend service. The\nvalid value is range from 1 to 600,000, default to 5,000.\n"
        },
        "vpcChannelId": {
          "type": "string",
          "description": "Specifies the VPC channel ID. This parameter and `backend_address` are\nalternative.\n"
        }
      },
      "type": "object",
      "required": [
        "conditions",
        "name",
        "path",
        "requestMethod"
      ]
    },
    "flexibleengine:index/ApigApiWebPolicyBackendParam:ApigApiWebPolicyBackendParam": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the constant or system parameter, which contain a\nmaximum of 255 characters, and the angle brackets (< and >) are not allowed.\n"
        },
        "location": {
          "type": "string",
          "description": "Specifies the location of the backend parameter. The valid values are **PATH**,\n**QUERY** and **HEADER**.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the backend policy name, which can contains of 3 to 64 characters and start with\na letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "systemParamType": {
          "type": "string",
          "description": "Specifies the type of the system parameter.  \nThe valid values are **frontend**, **backend** and **internal**, defaults to **internal**.\n\n<a name=\"apig_api_mock\"></a>\nThe `mock` block supports:\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the condition type of the backend policy. The valid values are **Equal**,\n**Enumerated** and **Matching**, default to **Equal**.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the condition type. For a condition with the input parameter source:\n+ If the condition type is **Enumerated**, separate condition values with commas.\n+ If the condition type is **Matching**, enter a regular expression compatible with PERL.\n\nFor a condition with the Source IP address source, enter IPv4 addresses and separate them with commas. The CIDR\naddress format is supported.\n"
        }
      },
      "type": "object",
      "required": [
        "location",
        "name",
        "type",
        "value"
      ]
    },
    "flexibleengine:index/ApigApiWebPolicyCondition:ApigApiWebPolicyCondition": {
      "properties": {
        "paramName": {
          "type": "string",
          "description": "Specifies the request parameter name. This parameter is required if the policy type\nis param.\n"
        },
        "source": {
          "type": "string",
          "description": "Specifies the policy type. The valid values are **param** and **source**, default to\n**source**.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the condition type of the backend policy. The valid values are **Equal**,\n**Enumerated** and **Matching**, default to **Equal**.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the condition type. For a condition with the input parameter source:\n+ If the condition type is **Enumerated**, separate condition values with commas.\n+ If the condition type is **Matching**, enter a regular expression compatible with PERL.\n\nFor a condition with the Source IP address source, enter IPv4 addresses and separate them with commas. The CIDR\naddress format is supported.\n"
        }
      },
      "type": "object",
      "required": [
        "value"
      ]
    },
    "flexibleengine:index/ApigApplicationAuthorizationTimeouts:ApigApplicationAuthorizationTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ApigChannelHealthCheck:ApigChannelHealthCheck": {
      "properties": {
        "enableClientSsl": {
          "type": "boolean",
          "description": "Specifies whether to enable two-way authentication.  \nDefaults to **false**.\n"
        },
        "httpCodes": {
          "type": "string",
          "description": "Specifies the response codes for determining a successful HTTP response.  \nThe valid value ranges from `100` to `599` and the valid formats are as follows:\n+ The multiple values, for example, **200,201,202**.\n+ The range, for example, **200-299**.\n+ Both multiple values and ranges, for example, **201,202,210-299**.\n"
        },
        "interval": {
          "type": "number",
          "description": "Specifies the interval between consecutive checks, in second.  \nThe valid value ranges from `1` to `300`.\n"
        },
        "method": {
          "type": "string",
          "description": "Specifies the request method for health check.  \nThe valid values are **GET** and **HEAD**.\n"
        },
        "path": {
          "type": "string",
          "description": "Specifies the destination path for health checks.  \nRequired if the `protocol` is **HTTP** or **HTTPS**.\n"
        },
        "port": {
          "type": "number",
          "description": "Specifies the destination host port for health check.  \nThe valid value ranges from `0` to `65535`.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the microservice for performing health check on backend servers.  \nThe valid values are **TCP**, **HTTP** and **HTTPS**, defaults to **TCP**.\n"
        },
        "status": {
          "type": "number",
          "description": "Specifies the status of health check.  \nThe valid values are as follows:\n+ **1**: Normal.\n+ **2**: Abnormal.\n\nDefaults to **1** (normal).\n\n<a name=\"channel_microservice\"></a>\nThe `microservice` block supports:\n"
        },
        "thresholdAbnormal": {
          "type": "number",
          "description": "Specifies the unhealthy threshold, which refers to the number of consecutive\nfailed checks required for a backend server to be considered unhealthy.\nThe valid value ranges from `1` to `10`.\n"
        },
        "thresholdNormal": {
          "type": "number",
          "description": "Specifies the the healthy threshold, which refers to the number of consecutive\nsuccessful checks required for a backend server to be considered healthy.\nThe valid value ranges from `1` to `10`.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the timeout for determining whether a health check fails, in second.  \nThe value must be less than the value of the time `interval`.\nThe valid value ranges from `1` to `30`.\n"
        }
      },
      "type": "object",
      "required": [
        "interval",
        "protocol",
        "thresholdAbnormal",
        "thresholdNormal",
        "timeout"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "enableClientSsl",
            "httpCodes",
            "interval",
            "method",
            "path",
            "port",
            "protocol",
            "status",
            "thresholdAbnormal",
            "thresholdNormal",
            "timeout"
          ]
        }
      }
    },
    "flexibleengine:index/ApigChannelMember:ApigChannelMember": {
      "properties": {
        "groupName": {
          "type": "string",
          "description": "Specifies the IP address each backend servers.\nIf omitted, means that all backend servers are both in one group.\n"
        },
        "host": {
          "type": "string",
          "description": "Specifies the IP address each backend servers.  \nRequired if the `member_type` is **ecs**.\nThis parameter and `member.id` are alternative.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies the ECS ID for each backend servers.  \nRequired if the `member_type` is **ecs**.\nThis parameter and `member.host` are alternative.\n"
        },
        "isBackup": {
          "type": "boolean",
          "description": "Specifies whether this member is the backup member.  \nDefaults to **false**.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the backend server.  \nRequired if the `member.id` is set.\nThis parameter and `member.host` are alternative.\n"
        },
        "port": {
          "type": "number",
          "description": "Specifies the destination host port for health check.  \nThe valid value ranges from `0` to `65535`.\n"
        },
        "status": {
          "type": "number",
          "description": "Specifies the status of health check.  \nThe valid values are as follows:\n+ **1**: Normal.\n+ **2**: Abnormal.\n\nDefaults to **1** (normal).\n\n<a name=\"channel_microservice\"></a>\nThe `microservice` block supports:\n"
        },
        "weight": {
          "type": "number",
          "description": "Specifies the weight of current backend server.  \nThe valid value ranges from `0` to `10000`, defaults to `0`.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "groupName",
            "host",
            "id",
            "isBackup",
            "name",
            "port",
            "status",
            "weight"
          ]
        }
      }
    },
    "flexibleengine:index/ApigChannelMemberGroup:ApigChannelMemberGroup": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the member group.\n"
        },
        "microserviceLabels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the microservice tags of the backend server group.\n\n<a name=\"channel_members\"></a>\nThe `member` block supports:\n"
        },
        "microservicePort": {
          "type": "number",
          "description": "Specifies the microservice port of the backend server group.  \nThe valid value ranges from `0` to `65535`.\n"
        },
        "microserviceVersion": {
          "type": "string",
          "description": "Specifies the microservice version of the backend server group.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the backend server.  \nRequired if the `member.id` is set.\nThis parameter and `member.host` are alternative.\n"
        },
        "weight": {
          "type": "number",
          "description": "Specifies the weight of current backend server.  \nThe valid value ranges from `0` to `10000`, defaults to `0`.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "description",
            "microserviceLabels",
            "microservicePort",
            "microserviceVersion",
            "name",
            "weight"
          ]
        }
      }
    },
    "flexibleengine:index/ApigChannelMicroservice:ApigChannelMicroservice": {
      "properties": {
        "cceConfig": {
          "$ref": "#/types/flexibleengine:index%2FApigChannelMicroserviceCceConfig:ApigChannelMicroserviceCceConfig",
          "description": "Specifies the CCE microservice details.  \nThe cce_config structure is documented below.\n\n<a name=\"microservice_cce_config\"></a>\nThe `cce_config` block supports:\n"
        },
        "cseConfig": {
          "$ref": "#/types/flexibleengine:index%2FApigChannelMicroserviceCseConfig:ApigChannelMicroserviceCseConfig",
          "description": "schema:Internal; The CSE microservice details.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ApigChannelMicroserviceCceConfig:ApigChannelMicroserviceCceConfig": {
      "properties": {
        "clusterId": {
          "type": "string",
          "description": "Specifies the CCE cluster ID.\n"
        },
        "labelKey": {
          "type": "string",
          "description": "The service label key.\n"
        },
        "labelValue": {
          "type": "string",
          "description": "The service label value.\n"
        },
        "namespace": {
          "type": "string",
          "description": "Specifies the namespace, such as the default namespace for CCE cluster: **default**.\n"
        },
        "workloadName": {
          "type": "string",
          "description": "Specifies the workload name.\n"
        },
        "workloadType": {
          "type": "string",
          "description": "Specifies the workload type.\n+ **deployment**: Stateless load.\n+ **statefulset**: Stateful load.\n+ **daemonset**: Daemons set.\n"
        }
      },
      "type": "object",
      "required": [
        "clusterId",
        "namespace",
        "workloadType"
      ]
    },
    "flexibleengine:index/ApigChannelMicroserviceCseConfig:ApigChannelMicroserviceCseConfig": {
      "properties": {
        "engineId": {
          "type": "string",
          "description": "schema:Internal; The microservice engine ID.\n"
        },
        "serviceId": {
          "type": "string",
          "description": "schema:Internal; The microservice ID.\n"
        }
      },
      "type": "object",
      "required": [
        "engineId",
        "serviceId"
      ]
    },
    "flexibleengine:index/ApigCustomAuthorizerIdentity:ApigCustomAuthorizerIdentity": {
      "properties": {
        "location": {
          "type": "string",
          "description": "Specifies the parameter location, which support 'HEADER' and 'QUERY'.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the parameter to be verified.\nThe parameter includes front-end and back-end parameters.\n"
        },
        "validation": {
          "type": "string",
          "description": "Specifies the parameter verification expression.\nIf omitted, the custom authorizer will not perform verification.\nThe valid value is range form 1 to 2,048.\n"
        }
      },
      "type": "object",
      "required": [
        "location",
        "name"
      ]
    },
    "flexibleengine:index/ApigGroupEnvironment:ApigGroupEnvironment": {
      "properties": {
        "environmentId": {
          "type": "string",
          "description": "Specifies the APIG environment ID of the associated APIG group.\n"
        },
        "variables": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigGroupEnvironmentVariable:ApigGroupEnvironmentVariable"
          },
          "description": "Specifies an array of one or more APIG environment variables. The object structure is\ndocumented below. The environment variables of different groups are isolated in the same environment.\n"
        }
      },
      "type": "object",
      "required": [
        "environmentId",
        "variables"
      ]
    },
    "flexibleengine:index/ApigGroupEnvironmentVariable:ApigGroupEnvironmentVariable": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The variable ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the variable name, which can contains of 3 to 32 characters, starting with a\nletter. Only letters, digits, hyphens (-), and underscores (_) are allowed. In the definition of an API, `name` (\ncase-sensitive) indicates a variable, such as #Name#. It is replaced by the actual value when the API is published in\nan environment. The variable names are not allowed to be repeated for an API group.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the environment ariable value, which can contains of 1 to 255 characters. Only\nletters, digits and special characters (_-/.:) are allowed.\n\n> **NOTE:** The variable value will be displayed in plain text on the console.\n"
        },
        "variableId": {
          "type": "string",
          "description": "schema: Deprecated; The ID of the variable that the group has.\n",
          "deprecationMessage": "Deprecated"
        }
      },
      "type": "object",
      "required": [
        "name",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name",
            "value",
            "variableId"
          ]
        }
      }
    },
    "flexibleengine:index/ApigInstanceTimeouts:ApigInstanceTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ApigResponseRule:ApigResponseRule": {
      "properties": {
        "body": {
          "type": "string",
          "description": "Specifies the body template of the API response rule, e.g.\n`{\\\"code\\\":\\\"$context.authorizer.frontend.code\\\",\\\"message\\\":\\\"$context.authorizer.frontend.message\\\"}`\n"
        },
        "errorType": {
          "type": "string",
          "description": "Specifies the type of the API custom response rule.\n+ **AUTH_FAILURE**: Authentication failed.\n+ **AUTH_HEADER_MISSING**: The identity source is missing.\n+ **AUTHORIZER_FAILURE**: Custom authentication failed.\n+ **AUTHORIZER_CONF_FAILURE**: There has been a custom authorizer error.\n+ **AUTHORIZER_IDENTITIES_FAILURE**: The identity source of the custom authorizer is invalid.\n+ **BACKEND_UNAVAILABLE**: The backend service is unavailable.\n+ **BACKEND_TIMEOUT**: Communication with the backend service timed out.\n+ **THROTTLED**: The request was rejected due to request throttling.\n+ **UNAUTHORIZED**: The app you are using has not been authorized to call the API.\n+ **ACCESS_DENIED**: Access denied.\n+ **NOT_FOUND**: No API is found.\n+ **REQUEST_PARAMETERS_FAILURE**: The request parameters are incorrect.\n+ **DEFAULT_4XX**: Another 4XX error occurred.\n+ **DEFAULT_5XX**: Another 5XX error occurred.\n"
        },
        "statusCode": {
          "type": "number",
          "description": "Specifies the HTTP status code of the API response rule.\n"
        }
      },
      "type": "object",
      "required": [
        "body",
        "errorType"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "body",
            "errorType",
            "statusCode"
          ]
        }
      }
    },
    "flexibleengine:index/ApigSignatureAssociateTimeouts:ApigSignatureAssociateTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ApigThrottlingPolicyAppThrottle:ApigThrottlingPolicyAppThrottle": {
      "properties": {
        "id": {
          "type": "string",
          "description": "ID of the special application throttling policy.\n"
        },
        "maxApiRequests": {
          "type": "number",
          "description": "Specifies the maximum number of times an API can be accessed within a specified\nperiod. The value of this parameter cannot exceed the default limit 200 TPS.\n"
        },
        "throttlingObjectId": {
          "type": "string",
          "description": "The object ID which the special throttling policy belongs.\n"
        },
        "throttlingObjectName": {
          "type": "string",
          "description": "The object name which the special application throttling policy belongs.\n"
        }
      },
      "type": "object",
      "required": [
        "maxApiRequests",
        "throttlingObjectId"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "maxApiRequests",
            "throttlingObjectId",
            "throttlingObjectName"
          ]
        }
      }
    },
    "flexibleengine:index/ApigThrottlingPolicyUserThrottle:ApigThrottlingPolicyUserThrottle": {
      "properties": {
        "id": {
          "type": "string",
          "description": "ID of the special application throttling policy.\n"
        },
        "maxApiRequests": {
          "type": "number",
          "description": "Specifies the maximum number of times an API can be accessed within a specified\nperiod.\n"
        },
        "throttlingObjectId": {
          "type": "string",
          "description": "Specifies the object ID which the special throttling policy belongs.\n"
        },
        "throttlingObjectName": {
          "type": "string",
          "description": "The object name which the special application throttling policy belongs.\n"
        }
      },
      "type": "object",
      "required": [
        "maxApiRequests",
        "throttlingObjectId"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "maxApiRequests",
            "throttlingObjectId",
            "throttlingObjectName"
          ]
        }
      }
    },
    "flexibleengine:index/ApigVpcChannelMember:ApigVpcChannelMember": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Specifies the ECS ID for each backend servers.\nRequired if `member_type` is *ECS*.\nThis parameter and `ip_address` are alternative.\n"
        },
        "ipAddress": {
          "type": "string",
          "description": "Specifies the IP address each backend servers.\nRequired if `member_type` is *EIP*.\n"
        },
        "weight": {
          "type": "number",
          "description": "Specifies the backend server weight.\nThe valid values are range from 1 to 100, default to 1.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/AsConfigurationInstanceConfig:AsConfigurationInstanceConfig": {
      "properties": {
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsConfigurationInstanceConfigDisk:AsConfigurationInstanceConfigDisk"
          },
          "description": "The disk group information. System disks are mandatory and data disks are optional.\nThe dick structure is described below.\n"
        },
        "flavor": {
          "type": "string",
          "description": "The flavor ID.\n"
        },
        "image": {
          "type": "string",
          "description": "The image ID.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "When using the existing instance specifications as the template to\ncreate AS configurations, specify this argument. In this case, flavor, image,\nand disk arguments do not take effect. If the instance_id argument is not specified,\nflavor, image, and disk arguments are mandatory.\n"
        },
        "keyName": {
          "type": "string",
          "description": "The name of the SSH key pair used to log in to the instance.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Metadata key/value pairs to make available from\nwithin the instance.\n"
        },
        "personalities": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsConfigurationInstanceConfigPersonality:AsConfigurationInstanceConfigPersonality"
          },
          "description": "Customize the personality of an instance by\ndefining one or more files and their contents. The personality structure\nis described below.\n"
        },
        "publicIp": {
          "$ref": "#/types/flexibleengine:index%2FAsConfigurationInstanceConfigPublicIp:AsConfigurationInstanceConfigPublicIp",
          "description": "The elastic IP address of the instance. The public_ip structure\nis described below.\n"
        },
        "userData": {
          "type": "string",
          "description": "The user data to provide when launching the instance.\nThe file content must be encoded with Base64. Changing this creates a new AS configuration.\n"
        }
      },
      "type": "object",
      "required": [
        "keyName"
      ]
    },
    "flexibleengine:index/AsConfigurationInstanceConfigDisk:AsConfigurationInstanceConfigDisk": {
      "properties": {
        "diskType": {
          "type": "string",
          "description": "Whether the disk is a system disk or a data disk. Option `DATA` indicates\na data disk. option `SYS` indicates a system disk.\n"
        },
        "size": {
          "type": "number",
          "description": "The disk size. The unit is GB. The system disk size ranges from 1 to 32768,\nand the data disk size ranges from 10 to 32768.\n"
        },
        "volumeType": {
          "type": "string",
          "description": "The disk type, which must be the same as the disk type available in the system.\nThe options include `SATA` (common I/O disk type) and `SSD` (ultra-high I/O disk type).\n"
        }
      },
      "type": "object",
      "required": [
        "diskType",
        "size",
        "volumeType"
      ]
    },
    "flexibleengine:index/AsConfigurationInstanceConfigPersonality:AsConfigurationInstanceConfigPersonality": {
      "properties": {
        "content": {
          "type": "string",
          "description": "The content of the injected file, which must be encoded with base64.\n"
        },
        "path": {
          "type": "string",
          "description": "The absolute path of the destination file.\n"
        }
      },
      "type": "object",
      "required": [
        "content",
        "path"
      ]
    },
    "flexibleengine:index/AsConfigurationInstanceConfigPublicIp:AsConfigurationInstanceConfigPublicIp": {
      "properties": {
        "eip": {
          "$ref": "#/types/flexibleengine:index%2FAsConfigurationInstanceConfigPublicIpEip:AsConfigurationInstanceConfigPublicIpEip",
          "description": "The configuration parameter for creating an elastic IP address\nthat will be automatically assigned to the instance. The eip structure is described below.\n"
        }
      },
      "type": "object",
      "required": [
        "eip"
      ]
    },
    "flexibleengine:index/AsConfigurationInstanceConfigPublicIpEip:AsConfigurationInstanceConfigPublicIpEip": {
      "properties": {
        "bandwidth": {
          "$ref": "#/types/flexibleengine:index%2FAsConfigurationInstanceConfigPublicIpEipBandwidth:AsConfigurationInstanceConfigPublicIpEipBandwidth",
          "description": "The bandwidth information. The structure is described below.\n"
        },
        "ipType": {
          "type": "string",
          "description": "The IP address type. The system only supports `5_bgp` (indicates dynamic BGP).\n"
        }
      },
      "type": "object",
      "required": [
        "bandwidth",
        "ipType"
      ]
    },
    "flexibleengine:index/AsConfigurationInstanceConfigPublicIpEipBandwidth:AsConfigurationInstanceConfigPublicIpEipBandwidth": {
      "properties": {
        "chargingMode": {
          "type": "string",
          "description": "The bandwidth charging mode. The system only supports `traffic`.\n"
        },
        "shareType": {
          "type": "string",
          "description": "The bandwidth sharing type. The system only supports `PER` (indicates exclusive\nbandwidth).\n"
        },
        "size": {
          "type": "number",
          "description": "The bandwidth (Mbit/s). The value range is 1 to 300.\n"
        }
      },
      "type": "object",
      "required": [
        "chargingMode",
        "shareType",
        "size"
      ]
    },
    "flexibleengine:index/AsConfigurationV1InstanceConfig:AsConfigurationV1InstanceConfig": {
      "properties": {
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsConfigurationV1InstanceConfigDisk:AsConfigurationV1InstanceConfigDisk"
          }
        },
        "flavor": {
          "type": "string"
        },
        "image": {
          "type": "string"
        },
        "instanceId": {
          "type": "string"
        },
        "keyName": {
          "type": "string"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "personalities": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsConfigurationV1InstanceConfigPersonality:AsConfigurationV1InstanceConfigPersonality"
          }
        },
        "publicIp": {
          "$ref": "#/types/flexibleengine:index%2FAsConfigurationV1InstanceConfigPublicIp:AsConfigurationV1InstanceConfigPublicIp"
        },
        "userData": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "keyName"
      ]
    },
    "flexibleengine:index/AsConfigurationV1InstanceConfigDisk:AsConfigurationV1InstanceConfigDisk": {
      "properties": {
        "diskType": {
          "type": "string"
        },
        "size": {
          "type": "number"
        },
        "volumeType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "diskType",
        "size",
        "volumeType"
      ]
    },
    "flexibleengine:index/AsConfigurationV1InstanceConfigPersonality:AsConfigurationV1InstanceConfigPersonality": {
      "properties": {
        "content": {
          "type": "string"
        },
        "path": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "content",
        "path"
      ]
    },
    "flexibleengine:index/AsConfigurationV1InstanceConfigPublicIp:AsConfigurationV1InstanceConfigPublicIp": {
      "properties": {
        "eip": {
          "$ref": "#/types/flexibleengine:index%2FAsConfigurationV1InstanceConfigPublicIpEip:AsConfigurationV1InstanceConfigPublicIpEip"
        }
      },
      "type": "object",
      "required": [
        "eip"
      ]
    },
    "flexibleengine:index/AsConfigurationV1InstanceConfigPublicIpEip:AsConfigurationV1InstanceConfigPublicIpEip": {
      "properties": {
        "bandwidth": {
          "$ref": "#/types/flexibleengine:index%2FAsConfigurationV1InstanceConfigPublicIpEipBandwidth:AsConfigurationV1InstanceConfigPublicIpEipBandwidth"
        },
        "ipType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "bandwidth",
        "ipType"
      ]
    },
    "flexibleengine:index/AsConfigurationV1InstanceConfigPublicIpEipBandwidth:AsConfigurationV1InstanceConfigPublicIpEipBandwidth": {
      "properties": {
        "chargingMode": {
          "type": "string"
        },
        "shareType": {
          "type": "string"
        },
        "size": {
          "type": "number"
        }
      },
      "type": "object",
      "required": [
        "chargingMode",
        "shareType",
        "size"
      ]
    },
    "flexibleengine:index/AsGroupLbaasListener:AsGroupLbaasListener": {
      "properties": {
        "poolId": {
          "type": "string",
          "description": "Specifies the backend ECS group ID.\n"
        },
        "protocolPort": {
          "type": "number",
          "description": "Specifies the backend protocol, which is the port on which\na backend ECS listens for traffic. The number of the port ranges from 1 to 65535.\n"
        },
        "weight": {
          "type": "number",
          "description": "Specifies the weight, which determines the portion of requests a\nbackend ECS processes compared to other backend ECSs added to the same listener. The value\nof this parameter ranges from 0 to 100. The default value is 1.\n"
        }
      },
      "type": "object",
      "required": [
        "poolId",
        "protocolPort"
      ]
    },
    "flexibleengine:index/AsGroupNetwork:AsGroupNetwork": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The network UUID.\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "flexibleengine:index/AsGroupSecurityGroup:AsGroupSecurityGroup": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of the security group.\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "flexibleengine:index/AsGroupTimeouts:AsGroupTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/AsGroupV1LbaasListener:AsGroupV1LbaasListener": {
      "properties": {
        "poolId": {
          "type": "string"
        },
        "protocolPort": {
          "type": "number"
        },
        "weight": {
          "type": "number"
        }
      },
      "type": "object",
      "required": [
        "poolId",
        "protocolPort"
      ]
    },
    "flexibleengine:index/AsGroupV1Network:AsGroupV1Network": {
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "flexibleengine:index/AsGroupV1SecurityGroup:AsGroupV1SecurityGroup": {
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "flexibleengine:index/AsGroupV1Timeouts:AsGroupV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/AsInstanceAttachTimeouts:AsInstanceAttachTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/AsPolicyV1ScalingPolicyAction:AsPolicyV1ScalingPolicyAction": {
      "properties": {
        "instanceNumber": {
          "type": "number",
          "description": "The number of instances to be operated. The default number is 1.\n"
        },
        "operation": {
          "type": "string",
          "description": "The operation to be performed. The options include `ADD` (default), `REMOVE`,\nand `SET`.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/AsPolicyV1ScheduledPolicy:AsPolicyV1ScheduledPolicy": {
      "properties": {
        "endTime": {
          "type": "string",
          "description": "The end time of the scaling action triggered periodically.\nThe time format complies with UTC. This argument is mandatory when `scaling_policy_type`\nis set to `RECURRENCE`. The time format is YYYY-MM-DDThh:mmZ.\n"
        },
        "launchTime": {
          "type": "string",
          "description": "The time when the scaling action is triggered. If `scaling_policy_type`\nis set to `SCHEDULED`, the time format is YYYY-MM-DDThh:mmZ. If `scaling_policy_type` is set to\n`RECURRENCE`, the time format is hh:mm.\n"
        },
        "recurrenceType": {
          "type": "string",
          "description": "The periodic triggering type. This argument is mandatory when\n`scaling_policy_type` is set to `RECURRENCE`. The options include `Daily`, `Weekly`, and `Monthly`.\n"
        },
        "recurrenceValue": {
          "type": "string",
          "description": "The frequency at which scaling actions are triggered.\n"
        },
        "startTime": {
          "type": "string",
          "description": "The start time of the scaling action triggered periodically.\nThe time format complies with UTC. The current time is used by default. The time\nformat is YYYY-MM-DDThh:mmZ.\n"
        }
      },
      "type": "object",
      "required": [
        "launchTime"
      ]
    },
    "flexibleengine:index/BlockstorageVolumeV2Attachment:BlockstorageVolumeV2Attachment": {
      "properties": {
        "device": {
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "instanceId": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "device",
        "id",
        "instanceId"
      ]
    },
    "flexibleengine:index/BlockstorageVolumeV2Timeouts:BlockstorageVolumeV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CbrPolicyBackupCycle:CbrPolicyBackupCycle": {
      "properties": {
        "days": {
          "type": "string",
          "description": "Specifies the weekly backup day of backup schedule. It supports seven days a week (MO, TU,\nWE, TH, FR, SA, SU) and this parameter is separated by a comma (,) without spaces, between date and date during the\nconfiguration.\n"
        },
        "executionTimes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the backup time. Automated backups will be triggered at the backup\ntime. The current time is in the UTC format (HH:MM). The minutes in the list must be set to **00** and the hours\ncannot be repeated. In the replication policy, you are advised to set one time point for one day.\n\n<a name=\"cbr_policy_long_term_retention\"></a>\nThe `long_term_retention` block supports:\n"
        },
        "interval": {
          "type": "number",
          "description": "Specifies the interval (in days) of backup schedule. The value range is `1` to `30`. This\nparameter and `days` are alternative.\n"
        }
      },
      "type": "object",
      "required": [
        "executionTimes"
      ]
    },
    "flexibleengine:index/CbrPolicyLongTermRetention:CbrPolicyLongTermRetention": {
      "properties": {
        "daily": {
          "type": "number",
          "description": "Specifies the latest backup of each day is saved in the long term.\n"
        },
        "fullBackupInterval": {
          "type": "number",
          "description": "Specifies how often (after how many incremental backups) a full backup is\nperformed. The valid value ranges from `-1` to `100`.\nIf `-1` is specified, full backup will not be performed.\n"
        },
        "monthly": {
          "type": "number",
          "description": "Specifies the latest backup of each month is saved in the long term.\n"
        },
        "weekly": {
          "type": "number",
          "description": "Specifies the latest backup of each week is saved in the long term.\n"
        },
        "yearly": {
          "type": "number",
          "description": "Specifies the latest backup of each year is saved in the long term.\n\n> A maximum of 10 backups are retained for failed periodic backup tasks. They are retained for one month and can be\nmanually deleted on the web console.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CbrVaultPolicy:CbrVaultPolicy": {
      "properties": {
        "destinationVaultId": {
          "type": "string",
          "description": "Specifies the ID of destination vault to which the replication policy\nwill associated.\n\n> Only one policy of each type (backup and replication) can be associated.\n\n<a name=\"cbr_vault_resources\"></a>\nThe `resources` block supports:\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies the policy ID.\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "flexibleengine:index/CbrVaultResource:CbrVaultResource": {
      "properties": {
        "excludes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the array of disk IDs which will be excluded in the backup.\nOnly **server** vault support this parameter.\n"
        },
        "includes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the array of disk or SFS file system IDs which will be included in the backup.\nOnly **disk** and **turbo** vault support this parameter.\n"
        },
        "serverId": {
          "type": "string",
          "description": "Specifies the ID of the ECS instance to be backed up.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "excludes",
            "includes"
          ]
        }
      }
    },
    "flexibleengine:index/CbrVaultTimeouts:CbrVaultTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CceAddonV3Timeouts:CceAddonV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CceAddonV3Values:CceAddonV3Values": {
      "properties": {
        "basic": {
          "type": "string",
          "description": "The basic parameters in json string format.\nChanging this will create a new resource.\n"
        },
        "custom": {
          "type": "string",
          "description": "The custom parameters in json string format.\nChanging this will create a new resource.\n"
        },
        "flavor": {
          "type": "string",
          "description": "The flavor parameters in json string format.\nChanging this will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "basic"
      ]
    },
    "flexibleengine:index/CceClusterV3CertificateCluster:CceClusterV3CertificateCluster": {
      "properties": {
        "certificateAuthorityData": {
          "type": "string",
          "description": "The certificate data.\n"
        },
        "name": {
          "type": "string",
          "description": "Cluster name. Changing this parameter will create a new cluster resource.\n"
        },
        "server": {
          "type": "string",
          "description": "The server IP address.\n"
        }
      },
      "type": "object",
      "required": [
        "certificateAuthorityData",
        "name",
        "server"
      ]
    },
    "flexibleengine:index/CceClusterV3CertificateUser:CceClusterV3CertificateUser": {
      "properties": {
        "clientCertificateData": {
          "type": "string",
          "description": "The client certificate data.\n"
        },
        "clientKeyData": {
          "type": "string",
          "description": "The client key data.\n"
        },
        "name": {
          "type": "string",
          "description": "Cluster name. Changing this parameter will create a new cluster resource.\n"
        }
      },
      "type": "object",
      "required": [
        "clientCertificateData",
        "clientKeyData",
        "name"
      ]
    },
    "flexibleengine:index/CceClusterV3Master:CceClusterV3Master": {
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the availability zone of the master node.\nChanging this creates a new cluster.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "availabilityZone"
          ]
        }
      }
    },
    "flexibleengine:index/CceClusterV3Timeouts:CceClusterV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CceNamespaceTimeouts:CceNamespaceTimeouts": {
      "properties": {
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CceNodePoolV3DataVolume:CceNodePoolV3DataVolume": {
      "properties": {
        "extendParams": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the disk expansion parameters in key/value pair format.\nChanging this will create a new CCE node pool resource.\n"
        },
        "kmsKeyId": {
          "type": "string",
          "description": "Specifies the KMS key ID. This is used to encrypt the volume.\nChanging this will create a new CCE node pool resource.\n\n> You need to create an agency (EVSAccessKMS) when disk encryption is used in the current project for the first time ever.\nThe account and permission of the created agency are `op_svc_evs` and **KMS Administrator**, respectively.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the disk size in GB.\nChanging this will create a new CCE node pool resource.\n"
        },
        "volumetype": {
          "type": "string",
          "description": "Specifies the disk type.\nChanging this will create a new CCE node pool resource.\n"
        }
      },
      "type": "object",
      "required": [
        "size",
        "volumetype"
      ]
    },
    "flexibleengine:index/CceNodePoolV3RootVolume:CceNodePoolV3RootVolume": {
      "properties": {
        "extendParams": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the disk expansion parameters in key/value pair format.\nChanging this will create a new CCE node pool resource.\n"
        },
        "kmsKeyId": {
          "type": "string",
          "description": "Specifies the KMS key ID. This is used to encrypt the volume.\nChanging this will create a new CCE node pool resource.\n\n> You need to create an agency (EVSAccessKMS) when disk encryption is used in the current project for the first time ever.\nThe account and permission of the created agency are `op_svc_evs` and **KMS Administrator**, respectively.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the disk size in GB.\nChanging this will create a new CCE node pool resource.\n"
        },
        "volumetype": {
          "type": "string",
          "description": "Specifies the disk type.\nChanging this will create a new CCE node pool resource.\n"
        }
      },
      "type": "object",
      "required": [
        "size",
        "volumetype"
      ]
    },
    "flexibleengine:index/CceNodePoolV3Taint:CceNodePoolV3Taint": {
      "properties": {
        "effect": {
          "type": "string",
          "description": "Available options are *NoSchedule*, *PreferNoSchedule* and *NoExecute*.\n"
        },
        "key": {
          "type": "string",
          "description": "A key must contain 1 to 63 characters starting with a letter or digit.\nOnly letters, digits, hyphens (-), underscores (_), and periods (.) are allowed.\nA DNS subdomain name can be used as the prefix of a key.\n"
        },
        "value": {
          "type": "string",
          "description": "A value must start with a letter or digit and can contain a maximum of 63 characters,\nincluding letters, digits, hyphens (-), underscores (_), and periods (.).\n"
        }
      },
      "type": "object",
      "required": [
        "effect",
        "key",
        "value"
      ]
    },
    "flexibleengine:index/CceNodePoolV3Timeouts:CceNodePoolV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CceNodeV3DataVolume:CceNodeV3DataVolume": {
      "properties": {
        "extendParams": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the disk expansion parameters in key/value pair format.\nChanging this will create a new resource.\n"
        },
        "kmsKeyId": {
          "type": "string",
          "description": "Specifies the ID of a KMS key. This is used to encrypt the volume.\nChanging this will create a new resource.\n\n> You need to create an agency (EVSAccessKMS) when disk encryption is used in the current project for the first\ntime ever. The account and permission of the created agency are `op_svc_evs` and **KMS Administrator**, respectively.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the disk size in GB.Changing this will create a new resource.\n"
        },
        "volumetype": {
          "type": "string",
          "description": "Specifies the disk type.Changing this will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "size",
        "volumetype"
      ]
    },
    "flexibleengine:index/CceNodeV3RootVolume:CceNodeV3RootVolume": {
      "properties": {
        "extendParams": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the disk expansion parameters in key/value pair format.\n"
        },
        "kmsKeyId": {
          "type": "string",
          "description": "Specifies the ID of a KMS key. This is used to encrypt the volume.\n\n> You need to create an agency (EVSAccessKMS) when disk encryption is used in the current project for the first time ever.\nThe account and permission of the created agency are `op_svc_evs` and **KMS Administrator**, respectively.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the disk size in GB.\n"
        },
        "volumetype": {
          "type": "string",
          "description": "Specifies the disk type.\n"
        }
      },
      "type": "object",
      "required": [
        "size",
        "volumetype"
      ]
    },
    "flexibleengine:index/CceNodeV3Taint:CceNodeV3Taint": {
      "properties": {
        "effect": {
          "type": "string",
          "description": "Available options are NoSchedule, PreferNoSchedule, and NoExecute.\nChanging this parameter will create a new resource.\n"
        },
        "key": {
          "type": "string",
          "description": "A key must contain 1 to 63 characters starting with a letter or digit. Only\nletters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain name can be used as\nthe prefix of a key. Changing this parameter will create a new resource.\n"
        },
        "value": {
          "type": "string",
          "description": "A value must start with a letter or digit and can contain a maximum of 63\ncharacters, including letters, digits, hyphens (-), underscores (_), and periods (.).Changing this parameter will\ncreate a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "effect",
        "key",
        "value"
      ]
    },
    "flexibleengine:index/CceNodeV3Timeouts:CceNodeV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CcePvcTimeouts:CcePvcTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CesAlarmruleAlarmAction:CesAlarmruleAlarmAction": {
      "properties": {
        "notificationLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "specifies the list of objects to be notified\nif the alarm status changes, the maximum length is 5.\nif type is set to *notification*, the value of notification_list cannot be empty.\nif type is set to *autoscaling*, the value of notification_list must be **[]**\nand the value of namespace must be *SYS.AS*.\nNote: to enable the autoscaling alarm rules take effect, you must bind scaling\npolicies.\n"
        },
        "type": {
          "type": "string",
          "description": "specifies the type of action triggered by an alarm. the\nvalue can be *notification* or *autoscaling*.\n- notification: indicates that a notification will be sent to the user.\n- autoscaling: indicates that a scaling action will be triggered.\n"
        }
      },
      "type": "object",
      "required": [
        "notificationLists",
        "type"
      ]
    },
    "flexibleengine:index/CesAlarmruleCondition:CesAlarmruleCondition": {
      "properties": {
        "comparisonOperator": {
          "type": "string",
          "description": "Specifies the comparison condition of alarm\nthresholds. The value can be >, =, <, >=, or <=.\n"
        },
        "count": {
          "type": "number",
          "description": "Specifies the number of consecutive occurrence times.\nThe value ranges from 1 to 5.\n"
        },
        "filter": {
          "type": "string",
          "description": "Specifies the data rollup methods. The value can be\nmax, min, average, sum, and vaiance.\n"
        },
        "period": {
          "type": "number",
          "description": "Specifies the alarm checking period in seconds. The\nvalue can be 1, 300, 1200, 3600, 14400, and 86400.\nNote: If period is set to 1, the raw metric data is used to determine\nwhether to generate an alarm.\n"
        },
        "suppressDuration": {
          "type": "number"
        },
        "unit": {
          "type": "string",
          "description": "Specifies the data unit.\n"
        },
        "value": {
          "type": "number",
          "description": "Specifies the alarm threshold. The value ranges from\n0 to Number of 1.7976931348623157e+308.\n"
        }
      },
      "type": "object",
      "required": [
        "comparisonOperator",
        "count",
        "filter",
        "period",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "comparisonOperator",
            "count",
            "filter",
            "period",
            "suppressDuration",
            "value"
          ]
        }
      }
    },
    "flexibleengine:index/CesAlarmruleInsufficientdataAction:CesAlarmruleInsufficientdataAction": {
      "properties": {
        "notificationLists": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "notificationLists",
        "type"
      ]
    },
    "flexibleengine:index/CesAlarmruleMetric:CesAlarmruleMetric": {
      "properties": {
        "dimensions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCesAlarmruleMetricDimension:CesAlarmruleMetricDimension"
          },
          "description": "Specifies the list of metric dimensions. Currently,\nthe maximum length of the dimesion list that are supported is 3. The structure\nis described below.\n"
        },
        "metricName": {
          "type": "string",
          "description": "Specifies the metric name. The value can be a string\nof 1 to 64 characters that must start with a letter and can consists of uppercase\nletters, lowercase letters, numbers, or underscores (_).\n"
        },
        "namespace": {
          "type": "string",
          "description": "Specifies the namespace in **service.item** format.\nservice.item can be a string of 3 to 32 characters that must start with a letter and\ncan consists of uppercase letters, lowercase letters, numbers, or underscores (_).\nFor details, see [Services Interconnected with Cloud Eye](https://docs.prod-cloud-ocb.orange-business.com/en-us/api/ces/ces_03_0059.html).\n"
        }
      },
      "type": "object",
      "required": [
        "dimensions",
        "metricName",
        "namespace"
      ]
    },
    "flexibleengine:index/CesAlarmruleMetricDimension:CesAlarmruleMetricDimension": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Specifies the dimension name. The value can be a string\nof 1 to 32 characters that must start with a letter and can consists of uppercase\nletters, lowercase letters, numbers, underscores (_), or hyphens (-).\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the dimension value. The value can be a string\nof 1 to 64 characters that must start with a letter or a number and can consists\nof uppercase letters, lowercase letters, numbers, underscores (_), or hyphens\n(-).\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "value"
      ]
    },
    "flexibleengine:index/CesAlarmruleOkAction:CesAlarmruleOkAction": {
      "properties": {
        "notificationLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "specifies the list of objects to be notified\nif the alarm status changes, the maximum length is 5.\n"
        },
        "type": {
          "type": "string",
          "description": "specifies the type of action triggered by an alarm. the\nvalue is notification.\nnotification: indicates that a notification will be sent to the user.\n"
        }
      },
      "type": "object",
      "required": [
        "notificationLists",
        "type"
      ]
    },
    "flexibleengine:index/CesAlarmruleTimeouts:CesAlarmruleTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ComputeBmsServerV2BlockDevice:ComputeBmsServerV2BlockDevice": {
      "properties": {
        "bootIndex": {
          "type": "number"
        },
        "deleteOnTermination": {
          "type": "boolean"
        },
        "destinationType": {
          "type": "string"
        },
        "deviceName": {
          "type": "string"
        },
        "guestFormat": {
          "type": "string"
        },
        "sourceType": {
          "type": "string"
        },
        "uuid": {
          "type": "string",
          "description": "The network UUID to attach to the bms server.\nChanging this creates a new bms server. It is Required unless `port`  or `name` is provided\n"
        },
        "volumeSize": {
          "type": "number"
        },
        "volumeType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "sourceType"
      ]
    },
    "flexibleengine:index/ComputeBmsServerV2Network:ComputeBmsServerV2Network": {
      "properties": {
        "accessNetwork": {
          "type": "boolean",
          "description": "Specifies if this network should be used for\nprovisioning access. Accepts true or false. Defaults to false.\n"
        },
        "fixedIpV4": {
          "type": "string",
          "description": "Specifies a fixed IPv4 address to be used on this\nnetwork. Changing this creates a new bms server.\n"
        },
        "fixedIpV6": {
          "type": "string",
          "description": "Specifies a fixed IPv6 address to be used on this\nnetwork. Changing this creates a new bms server.\n"
        },
        "mac": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The human-readable name of the network. Changing this creates a new bms server.\nIt is Required unless `uuid` or `port` is provided.\n"
        },
        "port": {
          "type": "string",
          "description": "The port UUID of a network to attach to the bms server.\nChanging this creates a new server.It is Required unless `uuid` or `name` is provided\n"
        },
        "uuid": {
          "type": "string",
          "description": "The network UUID to attach to the bms server.\nChanging this creates a new bms server. It is Required unless `port`  or `name` is provided\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fixedIpV4",
            "fixedIpV6",
            "mac",
            "name",
            "port",
            "uuid"
          ]
        }
      }
    },
    "flexibleengine:index/ComputeBmsServerV2Timeouts:ComputeBmsServerV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ComputeInstanceV2BlockDevice:ComputeInstanceV2BlockDevice": {
      "properties": {
        "bootIndex": {
          "type": "number",
          "description": "The boot index of the volume. It defaults to 0, which\nindicates that it's a system disk. Changing this creates a new server.\n"
        },
        "deleteOnTermination": {
          "type": "boolean",
          "description": "Delete the volume / block device upon\ntermination of the instance. Defaults to false. Changing this creates a new server.\n"
        },
        "destinationType": {
          "type": "string",
          "description": "The type that gets created. Possible values\nare \"volume\" and \"local\". Changing this creates a new server.\n"
        },
        "deviceName": {
          "type": "string"
        },
        "deviceType": {
          "type": "string"
        },
        "diskBus": {
          "type": "string",
          "description": "The low-level disk bus that will be used, for example, *virtio*, *scsi*.\nMost common thing is to leave this empty. Changing this creates a new server.\n\n<a name=\"ecs_scheduler_hints\"></a>\nThe `scheduler_hints` block supports:\n"
        },
        "guestFormat": {
          "type": "string"
        },
        "sourceType": {
          "type": "string",
          "description": "The source type of the device. Must be one of\n\"blank\", \"image\", \"volume\", or \"snapshot\". Changing this creates a new server.\n"
        },
        "uuid": {
          "type": "string",
          "description": "The UUID of the image, volume, or snapshot.\nIt is Required unless `source_type` is set to `\"blank\"`. Changing this creates a new server.\n"
        },
        "volumeSize": {
          "type": "number",
          "description": "The size of the volume to create (in gigabytes). Required\nin the following combinations: source=image and destination=volume, source=blank and destination=local,\nand source=blank and destination=volume. Changing this creates a new server.\n"
        },
        "volumeType": {
          "type": "string",
          "description": "Currently, the value can be `SSD` (ultra-I/O disk type),\n`SAS` (high I/O disk type), or `SATA` (common I/O disk type). Changing this creates a new server.\n"
        }
      },
      "type": "object",
      "required": [
        "sourceType"
      ]
    },
    "flexibleengine:index/ComputeInstanceV2Network:ComputeInstanceV2Network": {
      "properties": {
        "accessNetwork": {
          "type": "boolean",
          "description": "Specifies if this network should be used for\nprovisioning access. Accepts true or false. Defaults to false.\n\n<a name=\"ecs_arg_block_device\"></a>\nThe `block_device` block supports:\n"
        },
        "fixedIpV4": {
          "type": "string",
          "description": "Specifies a fixed IPv4 address to be used on this\nnetwork. Changing this creates a new server.\n"
        },
        "fixedIpV6": {
          "type": "string",
          "description": "Specifies a fixed IPv6 address to be used on this\nnetwork. Changing this creates a new server.\n"
        },
        "mac": {
          "type": "string",
          "description": "The MAC address of the NIC on that network.\n"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the resource.\n",
          "deprecationMessage": "Deprecated"
        },
        "port": {
          "type": "string",
          "description": "The port UUID of a network to attach to the server.\nIt is **Required** unless `uuid` is provided. Changing this creates a new server.\n"
        },
        "uuid": {
          "type": "string",
          "description": "The UUID of the image, volume, or snapshot.\nIt is Required unless `source_type` is set to `\"blank\"`. Changing this creates a new server.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fixedIpV4",
            "fixedIpV6",
            "mac",
            "name",
            "port",
            "uuid"
          ]
        }
      }
    },
    "flexibleengine:index/ComputeInstanceV2Personality:ComputeInstanceV2Personality": {
      "properties": {
        "content": {
          "type": "string"
        },
        "file": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "content",
        "file"
      ]
    },
    "flexibleengine:index/ComputeInstanceV2SchedulerHint:ComputeInstanceV2SchedulerHint": {
      "properties": {
        "buildNearHostIp": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "dehId": {
          "type": "string",
          "description": "Specifies the DeH ID.This parameter takes effect only when the value of tenancy\nis dedicated. If you do not specify this parameter, the system will automatically assign a DeH to you to deploy ECSs.\n"
        },
        "differentHosts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "deprecationMessage": "Deprecated"
        },
        "group": {
          "type": "string",
          "description": "Specifies the **anti-affinity** group ID.\nThe instance will be placed into that group. Changing this creates a new server.\n"
        },
        "queries": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "deprecationMessage": "Deprecated"
        },
        "sameHosts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "deprecationMessage": "Deprecated"
        },
        "targetCell": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "tenancy": {
          "type": "string",
          "description": "Specifies whether the ECS is created on a Dedicated Host (DeH) or in a\nshared pool (default). The value can be **shared** or **dedicated**.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dehId"
          ]
        }
      }
    },
    "flexibleengine:index/ComputeInstanceV2Timeouts:ComputeInstanceV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ComputeInstanceV2VolumeAttached:ComputeInstanceV2VolumeAttached": {
      "properties": {
        "bootIndex": {
          "type": "number",
          "description": "The boot index of the volume. It defaults to 0, which\nindicates that it's a system disk. Changing this creates a new server.\n"
        },
        "pciAddress": {
          "type": "string",
          "description": "The volume pci address on that attachment.\n"
        },
        "size": {
          "type": "number",
          "description": "The volume size on that attachment.\n"
        },
        "type": {
          "type": "string",
          "description": "The volume type on that attachment.\n"
        },
        "uuid": {
          "type": "string",
          "description": "The UUID of the image, volume, or snapshot.\nIt is Required unless `source_type` is set to `\"blank\"`. Changing this creates a new server.\n"
        }
      },
      "type": "object",
      "required": [
        "bootIndex",
        "pciAddress",
        "size",
        "type",
        "uuid"
      ]
    },
    "flexibleengine:index/ComputeInterfaceAttachV2Timeouts:ComputeInterfaceAttachV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ComputeVolumeAttachV2Timeouts:ComputeVolumeAttachV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CsbsBackupPolicyV1Resource:CsbsBackupPolicyV1Resource": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Specifies the ID of the object to be backed up.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies backup object name.\n"
        },
        "type": {
          "type": "string",
          "description": "Entity object type of the backup object.\nIf the type is VMs, the value is **OS::Nova::Server**.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "type"
      ]
    },
    "flexibleengine:index/CsbsBackupPolicyV1ScheduledOperation:CsbsBackupPolicyV1ScheduledOperation": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies Scheduling period description.The value consists of 0 to 255\ncharacters and must not contain a greater-than sign (>) or less-than sign (<).\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies whether the scheduling period is enabled. Default value is **true**.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies Scheduling period ID.\n"
        },
        "maxBackups": {
          "type": "number",
          "description": "Specifies maximum number of backups that can be automatically created for a\nbackup object.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies Scheduling period name.The value consists of 1 to 255 characters and\ncan contain only letters, digits, underscores (_), and hyphens (-).\n"
        },
        "operationType": {
          "type": "string",
          "description": "Specifies Operation type, which can be backup.\n"
        },
        "permanent": {
          "type": "boolean",
          "description": "Specifies whether backups are permanently retained.\n"
        },
        "retentionDurationDays": {
          "type": "number",
          "description": "Specifies duration of retaining a backup, in days.\n"
        },
        "triggerId": {
          "type": "string",
          "description": "Specifies Scheduler ID.\n"
        },
        "triggerName": {
          "type": "string",
          "description": "Specifies Scheduler name.\n"
        },
        "triggerPattern": {
          "type": "string",
          "description": "Specifies Scheduling policy of the scheduler.\n"
        },
        "triggerType": {
          "type": "string",
          "description": "Specifies Scheduler type.\n"
        }
      },
      "type": "object",
      "required": [
        "operationType",
        "triggerPattern"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "operationType",
            "permanent",
            "triggerId",
            "triggerName",
            "triggerPattern",
            "triggerType"
          ]
        }
      }
    },
    "flexibleengine:index/CsbsBackupPolicyV1Timeouts:CsbsBackupPolicyV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CsbsBackupV1Timeouts:CsbsBackupV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CsbsBackupV1VmMetadata:CsbsBackupV1VmMetadata": {
      "properties": {
        "cloudServiceType": {
          "type": "string",
          "description": "Specifies ECS type.\n"
        },
        "disk": {
          "type": "number",
          "description": "Shows system disk size corresponding to the ECS specifications.\n"
        },
        "eip": {
          "type": "string",
          "description": "Specifies elastic IP address of the ECS.\n"
        },
        "imageType": {
          "type": "string",
          "description": "Specifies image type.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of backup data.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "It specifies internal IP address of the ECS.\n"
        },
        "ram": {
          "type": "number",
          "description": "Specifies memory size of the ECS, in MB.\n"
        },
        "vcpus": {
          "type": "number",
          "description": "Specifies CPU cores corresponding to the ECS.\n"
        }
      },
      "type": "object",
      "required": [
        "cloudServiceType",
        "disk",
        "eip",
        "imageType",
        "name",
        "privateIp",
        "ram",
        "vcpus"
      ]
    },
    "flexibleengine:index/CsbsBackupV1VolumeBackup:CsbsBackupV1VolumeBackup": {
      "properties": {
        "averageSpeed": {
          "type": "number",
          "description": "Specifies the average speed.\n"
        },
        "bootable": {
          "type": "boolean",
          "description": "Specifies whether the disk is bootable.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies Cinder backup ID.\n"
        },
        "imageType": {
          "type": "string",
          "description": "Specifies image type.\n"
        },
        "incremental": {
          "type": "boolean",
          "description": "Shows whether incremental backup is used.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of backup data.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies accumulated size (MB) of backups.\n"
        },
        "snapshotId": {
          "type": "string",
          "description": "ID of snapshot.\n"
        },
        "sourceVolumeId": {
          "type": "string",
          "description": "It specifies source volume ID.\n"
        },
        "sourceVolumeName": {
          "type": "string",
          "description": "Specifies source volume name.\n"
        },
        "sourceVolumeSize": {
          "type": "number",
          "description": "Shows source volume size in GB.\n"
        },
        "spaceSavingRatio": {
          "type": "number",
          "description": "Specifies space saving rate.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of backup Volume.\n"
        }
      },
      "type": "object",
      "required": [
        "averageSpeed",
        "bootable",
        "id",
        "imageType",
        "incremental",
        "name",
        "size",
        "snapshotId",
        "sourceVolumeId",
        "sourceVolumeName",
        "sourceVolumeSize",
        "spaceSavingRatio",
        "status"
      ]
    },
    "flexibleengine:index/CseMicroserviceEngineConfigCenterAddress:CseMicroserviceEngineConfigCenterAddress": {
      "properties": {
        "private": {
          "type": "string",
          "description": "The internal access address.\n"
        },
        "public": {
          "type": "string",
          "description": "The public access address. This address is only set when EIP is bound.\n"
        }
      },
      "type": "object",
      "required": [
        "private",
        "public"
      ]
    },
    "flexibleengine:index/CseMicroserviceEngineServiceRegistryAddress:CseMicroserviceEngineServiceRegistryAddress": {
      "properties": {
        "private": {
          "type": "string",
          "description": "The internal access address.\n"
        },
        "public": {
          "type": "string",
          "description": "The public access address. This address is only set when EIP is bound.\n"
        }
      },
      "type": "object",
      "required": [
        "private",
        "public"
      ]
    },
    "flexibleengine:index/CseMicroserviceEngineTimeouts:CseMicroserviceEngineTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CseMicroserviceInstanceDataCenter:CseMicroserviceInstanceDataCenter": {
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the custom availability zone name of the data center.\nChanging this will create a new microservice instance.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the data center name.\nChanging this will create a new microservice instance.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the custom region name of the data center.\nChanging this will create a new microservice instance.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "name",
        "region"
      ]
    },
    "flexibleengine:index/CseMicroserviceInstanceHealthCheck:CseMicroserviceInstanceHealthCheck": {
      "properties": {
        "interval": {
          "type": "number",
          "description": "Specifies the heartbeat interval. The unit is **s** (second).\nChanging this will create a new microservice instance.\n"
        },
        "maxRetries": {
          "type": "number",
          "description": "Specifies the maximum retries.\nChanging this will create a new microservice instance.\n"
        },
        "mode": {
          "type": "string",
          "description": "Specifies the heartbeat mode. The valid values are **push** and **pull**.\nChanging this will create a new microservice instance.\n"
        },
        "port": {
          "type": "number",
          "description": "Specifies the port number.\nChanging this will create a new microservice instance.\n\n<a name=\"microservice_instance_data_center\"></a>\nThe `data_center` block supports:\n"
        }
      },
      "type": "object",
      "required": [
        "interval",
        "maxRetries",
        "mode"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "interval",
            "maxRetries",
            "mode",
            "port"
          ]
        }
      }
    },
    "flexibleengine:index/CssClusterV1BackupStrategy:CssClusterV1BackupStrategy": {
      "properties": {
        "keepDays": {
          "type": "number",
          "description": "Specifies the number of days to retain the generated\nsnapshots. Snapshots are reserved for seven days by default.\n"
        },
        "prefix": {
          "type": "string",
          "description": "Specifies the prefix of the snapshot that is automatically\ncreated. The default value is \"snapshot\".\n"
        },
        "startTime": {
          "type": "string",
          "description": "Specifies the time when a snapshot is automatically\ncreated everyday. Snapshots can only be created on the hour. The time format is\nthe time followed by the time zone, specifically, **HH:mm z**. In the format, HH:mm\nrefers to the hour time and z refers to the time zone. For example, \"00:00 GMT+01:00\"\nand \"01:00 GMT+03:00\".\n"
        }
      },
      "type": "object",
      "required": [
        "startTime"
      ]
    },
    "flexibleengine:index/CssClusterV1Node:CssClusterV1Node": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Instance ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the cluster name. It contains 4 to 32 characters. Only letters,\ndigits,  hyphens (-), and underscores (_) are allowed. The value must start with a letter.\nChanging this parameter will create a new resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Supported type: ess (indicating the Elasticsearch node).\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "type"
      ]
    },
    "flexibleengine:index/CssClusterV1NodeConfig:CssClusterV1NodeConfig": {
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the availability zone(s). You can set multiple\nvailability zones, and use commas (,) to separate one from another. Cluster instances will be evenly distributed to\neach AZ. The `node_number` should be greater than or equal to the number of available zones.\nChanging this parameter will create a new resource.\n\n<a name=\"css_network_info_object\"></a>\nThe `network_info` block supports:\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the instance flavor name. For example: value range of flavor `ess.\nspec-2u8g`:\n40 GB to 800 GB; value range of flavor `ess.spec-4u16g`: 40 GB to 1600 GB; value range of flavor `ess.spec-8u32g`:\n80 GB to 3200 GB; value range of flavor `ess.spec-16u64g`: 100 GB to 6400 GB; value range of flavor `ess.spec-32u128g`:\n100 GB to 10240 GB. Changing this parameter will create a new resource.\n"
        },
        "networkInfo": {
          "$ref": "#/types/flexibleengine:index%2FCssClusterV1NodeConfigNetworkInfo:CssClusterV1NodeConfigNetworkInfo",
          "description": "Specifies the network information. network_info\nobject structure is documented below. Changing this parameter will create a new resource.\n"
        },
        "volume": {
          "$ref": "#/types/flexibleengine:index%2FCssClusterV1NodeConfigVolume:CssClusterV1NodeConfigVolume",
          "description": "Specifies the information about the volume. volume\nobject structure is documented below. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "flavor",
        "networkInfo",
        "volume"
      ]
    },
    "flexibleengine:index/CssClusterV1NodeConfigNetworkInfo:CssClusterV1NodeConfigNetworkInfo": {
      "properties": {
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the security group ID. All instances in a cluster must\nhave the same security group. Changing this parameter will create a new resource.\n\n<a name=\"css_volume_object\"></a>\nThe `volume` block supports:\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet. All instances in a cluster must have\nthe same subnet which should be configured with a **DNS address**. Changing this parameter will create a new resource.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID, which is used for configuring cluster network.\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "securityGroupId",
        "subnetId",
        "vpcId"
      ]
    },
    "flexibleengine:index/CssClusterV1NodeConfigVolume:CssClusterV1NodeConfigVolume": {
      "properties": {
        "size": {
          "type": "number",
          "description": "Specifies the volume size in GB, which must be a multiple of 10.\n"
        },
        "volumeType": {
          "type": "string",
          "description": "Specifies the volume type. Changing this parameter will create a new\nresource. Supported value:\n- **COMMON**: The SATA disk is used;\n- **HIGH**: The SAS disk is used;\n- **ULTRAHIGH**: The solid-state drive (SSD) is used.\n\n<a name=\"css_backup_strategy_object\"></a>\nThe `backup_strategy` block supports:\n"
        }
      },
      "type": "object",
      "required": [
        "size",
        "volumeType"
      ]
    },
    "flexibleengine:index/CssClusterV1Timeouts:CssClusterV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CssSnapshotV1Timeouts:CssSnapshotV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/CtsTrackerV1Timeouts:CtsTrackerV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DcsBackupV1Timeouts:DcsBackupV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DcsInstanceV1Timeouts:DcsInstanceV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DdmAccountSchema:DdmAccountSchema": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the DDM account.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the associated schema.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "description",
            "name"
          ]
        }
      }
    },
    "flexibleengine:index/DdmAccountTimeouts:DdmAccountTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DdmInstanceNode:DdmInstanceNode": {
      "properties": {
        "ip": {
          "type": "string",
          "description": "Indicates the IP address of the DDM instance node.\n"
        },
        "port": {
          "type": "string",
          "description": "Indicates the port of the DDM instance node.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the status of the DDM instance node.\n"
        }
      },
      "type": "object",
      "required": [
        "ip",
        "port",
        "status"
      ]
    },
    "flexibleengine:index/DdmInstanceTimeouts:DdmInstanceTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DdmSchemaDataNode:DdmSchemaDataNode": {
      "properties": {
        "adminPassword": {
          "type": "string",
          "description": "Specifies the password for logging in to the associated RDS instance.\n",
          "secret": true
        },
        "adminUser": {
          "type": "string",
          "description": "Specifies the username for logging in to the associated RDS instance.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies the ID of the RDS instance associated with the schema.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DDM schema.\nAn instance name starts with a letter, consists of 2 to 48 characters, and can contain only lowercase letters,\ndigits, and underscores (_). Cannot contain keywords information_schema, mysql, performance_schema, or sys.\n\nChanging this parameter will create a new resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the status of the associated RDS instance.\n"
        }
      },
      "type": "object",
      "required": [
        "adminPassword",
        "adminUser",
        "id"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "adminPassword",
            "adminUser",
            "id",
            "name",
            "status"
          ]
        }
      }
    },
    "flexibleengine:index/DdmSchemaShard:DdmSchemaShard": {
      "properties": {
        "dbSlot": {
          "type": "number",
          "description": "Indicates the number of shards.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies the ID of the RDS instance associated with the schema.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DDM schema.\nAn instance name starts with a letter, consists of 2 to 48 characters, and can contain only lowercase letters,\ndigits, and underscores (_). Cannot contain keywords information_schema, mysql, performance_schema, or sys.\n\nChanging this parameter will create a new resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the status of the associated RDS instance.\n"
        }
      },
      "type": "object",
      "required": [
        "dbSlot",
        "id",
        "name",
        "status"
      ]
    },
    "flexibleengine:index/DdmSchemaTimeouts:DdmSchemaTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DdsBackupDatastore:DdsBackupDatastore": {
      "properties": {
        "type": {
          "type": "string",
          "description": "Indicates the DB engine.\n"
        },
        "version": {
          "type": "string",
          "description": "Indicates the database version. The value can be **4.2**, **4.0**, or **3.4**.\n"
        }
      },
      "type": "object",
      "required": [
        "type",
        "version"
      ]
    },
    "flexibleengine:index/DdsBackupTimeouts:DdsBackupTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DdsDatabaseRoleInheritedPrivilege:DdsDatabaseRoleInheritedPrivilege": {
      "properties": {
        "actions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The operation permission list.\n"
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseRoleInheritedPrivilegeResource:DdsDatabaseRoleInheritedPrivilegeResource"
          },
          "description": "The details of the resource to which the privilege belongs.\nThe object structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "actions",
        "resources"
      ]
    },
    "flexibleengine:index/DdsDatabaseRoleInheritedPrivilegeResource:DdsDatabaseRoleInheritedPrivilegeResource": {
      "properties": {
        "collection": {
          "type": "string",
          "description": "The database collection type.\n"
        },
        "dbName": {
          "type": "string",
          "description": "Specifies the database name to which this owned role belongs.\nChanging this parameter will create a new role.\n"
        }
      },
      "type": "object",
      "required": [
        "collection",
        "dbName"
      ]
    },
    "flexibleengine:index/DdsDatabaseRolePrivilege:DdsDatabaseRolePrivilege": {
      "properties": {
        "actions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The operation permission list.\n"
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseRolePrivilegeResource:DdsDatabaseRolePrivilegeResource"
          },
          "description": "The details of the resource to which the privilege belongs.\nThe object structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "actions",
        "resources"
      ]
    },
    "flexibleengine:index/DdsDatabaseRolePrivilegeResource:DdsDatabaseRolePrivilegeResource": {
      "properties": {
        "collection": {
          "type": "string",
          "description": "The database collection type.\n"
        },
        "dbName": {
          "type": "string",
          "description": "Specifies the database name to which this owned role belongs.\nChanging this parameter will create a new role.\n"
        }
      },
      "type": "object",
      "required": [
        "collection",
        "dbName"
      ]
    },
    "flexibleengine:index/DdsDatabaseRoleRole:DdsDatabaseRoleRole": {
      "properties": {
        "dbName": {
          "type": "string",
          "description": "Specifies the database name to which this owned role belongs.\nChanging this parameter will create a new role.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of role owned by the current role.\nThe name can contain `1` to `64` characters, only letters, digits, underscores (_), hyphens (-) and dots (.) are\nallowed. Changing this parameter will create a new role.\n"
        }
      },
      "type": "object",
      "required": [
        "dbName",
        "name"
      ]
    },
    "flexibleengine:index/DdsDatabaseRoleTimeouts:DdsDatabaseRoleTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DdsDatabaseUserInheritedPrivilege:DdsDatabaseUserInheritedPrivilege": {
      "properties": {
        "actions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The operation permission list.\n"
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseUserInheritedPrivilegeResource:DdsDatabaseUserInheritedPrivilegeResource"
          },
          "description": "The details of the resource to which the privilege belongs.\nThe object structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "actions",
        "resources"
      ]
    },
    "flexibleengine:index/DdsDatabaseUserInheritedPrivilegeResource:DdsDatabaseUserInheritedPrivilegeResource": {
      "properties": {
        "collection": {
          "type": "string",
          "description": "The database collection type.\n"
        },
        "dbName": {
          "type": "string",
          "description": "Specifies the database name to which this owned role belongs.\nChanging this parameter will create a new user.\n"
        }
      },
      "type": "object",
      "required": [
        "collection",
        "dbName"
      ]
    },
    "flexibleengine:index/DdsDatabaseUserPrivilege:DdsDatabaseUserPrivilege": {
      "properties": {
        "actions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The operation permission list.\n"
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseUserPrivilegeResource:DdsDatabaseUserPrivilegeResource"
          },
          "description": "The details of the resource to which the privilege belongs.\nThe object structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "actions",
        "resources"
      ]
    },
    "flexibleengine:index/DdsDatabaseUserPrivilegeResource:DdsDatabaseUserPrivilegeResource": {
      "properties": {
        "collection": {
          "type": "string",
          "description": "The database collection type.\n"
        },
        "dbName": {
          "type": "string",
          "description": "Specifies the database name to which this owned role belongs.\nChanging this parameter will create a new user.\n"
        }
      },
      "type": "object",
      "required": [
        "collection",
        "dbName"
      ]
    },
    "flexibleengine:index/DdsDatabaseUserRole:DdsDatabaseUserRole": {
      "properties": {
        "dbName": {
          "type": "string",
          "description": "Specifies the database name to which this owned role belongs.\nChanging this parameter will create a new user.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of role owned by the current user.\nThe name can contain `1` to `64` characters, only letters, digits, underscores (_), hyphens (-) and dots (.) are\nallowed. Changing this parameter will create a new user.\n"
        }
      },
      "type": "object",
      "required": [
        "dbName",
        "name"
      ]
    },
    "flexibleengine:index/DdsDatabaseUserTimeouts:DdsDatabaseUserTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DdsInstanceV3BackupStrategy:DdsInstanceV3BackupStrategy": {
      "properties": {
        "keepDays": {
          "type": "number",
          "description": "Specifies the number of days to retain the generated backup files.\nThe value range is from 0 to 732.\n+ If this parameter is set to 0, the automated backup policy is not set.\n+ If this parameter is not transferred, the automated backup policy is enabled by default.\nBackup files are stored for seven days by default.\n"
        },
        "startTime": {
          "type": "string",
          "description": "Specifies the backup time window. Automated backups will be triggered\nduring the backup time window. The value cannot be empty. It must be a valid value in the\n\"hh:mm-HH:MM\" format. The current time is in the UTC format.\n+ The HH value must be 1 greater than the hh value.\n+ The values from mm and MM must be the same and must be set to any of the following 00, 15, 30, or 45.\n"
        }
      },
      "type": "object",
      "required": [
        "keepDays",
        "startTime"
      ]
    },
    "flexibleengine:index/DdsInstanceV3Datastore:DdsInstanceV3Datastore": {
      "properties": {
        "storageEngine": {
          "type": "string",
          "description": "Specifies the storage engine of the DB instance. The valid values are\n`wiredTiger` and `rocksDB`.Changing this will create a new resource.\n\n<a name=\"dds_flavor\"></a>\nThe `flavor` block supports:\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the node type. Valid value: mongos, shard, config, replica.\nChanging this creates a new resource.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the DB instance version. The valid values are 3.4, 4.0 and 4.2.\nChanging this will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "type",
        "version"
      ]
    },
    "flexibleengine:index/DdsInstanceV3Flavor:DdsInstanceV3Flavor": {
      "properties": {
        "num": {
          "type": "number",
          "description": "Specifies the node quantity. Valid value:\n+ the number of mongos ranges from 2 to 12.\n+ the number of shard ranges from 2 to 12.\n+ config: the value is 1.\n+ replica: the value is 1.\nChanging this creates a new resource.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the disk size. The value must be a multiple of 10. The unit is GB.\nThis parameter is mandatory for nodes except mongos and invalid for mongos. Changing this creates a new resource.\n"
        },
        "specCode": {
          "type": "string",
          "description": "Specifies the resource specification code.\nChanging this creates a new resource. Valid values:\n\nengine_name | type | vcpus | ram | speccode\n---- | --- | ---\nDDS-Community | mongos | 1 | 4 | dds.mongodb.s3.medium.4.mongos\nDDS-Community | mongos | 2 | 8 | dds.mongodb.s3.large.4.mongos\nDDS-Community | mongos | 4 | 16 | dds.mongodb.s3.xlarge.4.mongos\nDDS-Community | mongos | 8 | 32 | dds.mongodb.s3.2xlarge.4.mongos\nDDS-Community | mongos | 16 | 64 | dds.mongodb.s3.4xlarge.4.mongos\nDDS-Community | shard | 1 | 4 | dds.mongodb.s3.medium.4.shard\nDDS-Community | shard | 2 | 8 | dds.mongodb.s3.large.4.shard\nDDS-Community | shard | 4 | 16 | dds.mongodb.s3.xlarge.4.shard\nDDS-Community | shard | 8 | 32 | dds.mongodb.s3.2xlarge.4.shard\nDDS-Community | shard | 16 | 64 | dds.mongodb.s3.4xlarge.4.shard\nDDS-Community | config | 2 | 4 | dds.mongodb.s3.large.2.config\nDDS-Community | replica | 1 | 4 | dds.mongodb.s3.medium.4.repset\nDDS-Community | replica | 2 | 8 | dds.mongodb.s3.large.4.repset\nDDS-Community | replica | 4 | 16 | dds.mongodb.s3.xlarge.4.repset\nDDS-Community | replica | 8 | 32 | dds.mongodb.s3.2xlarge.4.repset\nDDS-Community | replica | 16 | 64 | dds.mongodb.s3.4xlarge.4.repset\n\n<a name=\"dds_backup_strategy\"></a>\nThe `backup_strategy` block supports:\n"
        },
        "storage": {
          "type": "string",
          "description": "Specifies the disk type. Valid value: ULTRAHIGH which indicates the type SSD.\nChanging this creates a new resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the node type. Valid value: mongos, shard, config, replica.\nChanging this creates a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "num",
        "specCode",
        "type"
      ]
    },
    "flexibleengine:index/DdsInstanceV3Node:DdsInstanceV3Node": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the DB instance name. The DB instance name of the same\ntype is unique in the same tenant. Changing this creates a new instance.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "Indicates the private IP address of a node. This parameter is valid only for\nmongos nodes, replica set instances, and single node instances.\n"
        },
        "publicIp": {
          "type": "string",
          "description": "Indicates the EIP that has been bound on a node. This parameter is valid only for\nmongos nodes of cluster instances, primary nodes and secondary nodes of replica set instances,\nand single node instances.\n"
        },
        "role": {
          "type": "string",
          "description": "Indicates the node role.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the node type. Valid value: mongos, shard, config, replica.\nChanging this creates a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "privateIp",
        "publicIp",
        "role",
        "status",
        "type"
      ]
    },
    "flexibleengine:index/DdsInstanceV3Timeouts:DdsInstanceV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DdsParameterTemplateParameter:DdsParameterTemplateParameter": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the parameter template description.\nThe description must consist of a maximum of 256 characters and cannot contain the carriage\nreturn character or the following special characters: >!<\"&'=.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the parameter template name.\nThe value must be 1 to 64 characters in length and start with a letter (from A to Z or from a to z).\nIt is case-sensitive and can contain only letters, digits (from 0 to 9), hyphens (-), and underscores (_).\n"
        },
        "readonly": {
          "type": "boolean",
          "description": "Indicates whether the parameter is read-only.\n+ If the value is **true**, the parameter is read-only.\n+ If the value is **false**, the parameter is not read-only.\n"
        },
        "restartRequired": {
          "type": "boolean",
          "description": "Indicates whether the instance needs to be restarted.\n+ If the value is **true**, restart is required.\n+ If the value is **false**, restart is not required.\n"
        },
        "type": {
          "type": "string",
          "description": "Indicates the parameter type. The value can be integer, string, boolean, float, or list.\n"
        },
        "value": {
          "type": "string",
          "description": "Indicates the parameter value.\n"
        },
        "valueRange": {
          "type": "string",
          "description": "Indicates the value range.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "name",
        "readonly",
        "restartRequired",
        "type",
        "value",
        "valueRange"
      ]
    },
    "flexibleengine:index/DisStreamPartition:DisStreamPartition": {
      "properties": {
        "hashRange": {
          "type": "string",
          "description": "Possible value range of the hash key used by each partition.\n"
        },
        "id": {
          "type": "string",
          "description": "The ID of the partition.\n"
        },
        "sequenceNumberRange": {
          "type": "string",
          "description": "Sequence number range of each partition.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the partition.\n"
        }
      },
      "type": "object",
      "required": [
        "hashRange",
        "id",
        "sequenceNumberRange",
        "status"
      ]
    },
    "flexibleengine:index/DliDatasourceConnectionHost:DliDatasourceConnectionHost": {
      "properties": {
        "ip": {
          "type": "string",
          "description": "IPv4 address of the host.\n"
        },
        "name": {
          "type": "string",
          "description": "The user-defined host name.\n"
        }
      },
      "type": "object",
      "required": [
        "ip",
        "name"
      ]
    },
    "flexibleengine:index/DliDatasourceConnectionRoute:DliDatasourceConnectionRoute": {
      "properties": {
        "cidr": {
          "type": "string",
          "description": "The CIDR of the route.\n"
        },
        "name": {
          "type": "string",
          "description": "The user-defined host name.\n"
        }
      },
      "type": "object",
      "required": [
        "cidr",
        "name"
      ]
    },
    "flexibleengine:index/DliFlinksqlJobTimeouts:DliFlinksqlJobTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DliQueueTimeouts:DliQueueTimeouts": {
      "properties": {
        "default": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DliSparkJobDependentPackage:DliSparkJobDependentPackage": {
      "properties": {
        "groupName": {
          "type": "string"
        },
        "packages": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDliSparkJobDependentPackagePackage:DliSparkJobDependentPackagePackage"
          }
        }
      },
      "type": "object",
      "required": [
        "groupName",
        "packages"
      ]
    },
    "flexibleengine:index/DliSparkJobDependentPackagePackage:DliSparkJobDependentPackagePackage": {
      "properties": {
        "packageName": {
          "type": "string",
          "description": "Specifies the resource name of the package.\nChanging this parameter will submit a new spark job.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the resource type of the package.\nChanging this parameter will submit a new spark job.\n"
        }
      },
      "type": "object",
      "required": [
        "packageName",
        "type"
      ]
    },
    "flexibleengine:index/DliSparkJobTimeouts:DliSparkJobTimeouts": {
      "properties": {
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DliSqlJobConf:DliSqlJobConf": {
      "properties": {
        "dliSqlJobTimeout": {
          "type": "number",
          "description": "Sets the job running timeout interval. If the timeout interval\nexpires, the job is canceled. Unit: `ms`. Changing this parameter will create a new resource.\n"
        },
        "dliSqlSqlasyncEnabled": {
          "type": "boolean",
          "description": "Specifies whether DDL and DCL statements are executed\nasynchronously. The value true indicates that asynchronous execution is enabled. Default value is `false`.\nChanging this parameter will create a new resource.\n"
        },
        "sparkSqlAutoBroadcastJoinThreshold": {
          "type": "number",
          "description": "Maximum size of the table that\ndisplays all working nodes when a connection is executed. You can set this parameter to -1 to disable the display.\nDefault value is `209715200`. Changing this parameter will create a new resource.\nCurrently, only the configuration unit metastore table that runs the ANALYZE TABLE COMPUTE statistics no-scan\ncommand and the file-based data source table that directly calculates statistics based on data files are supported.\nChanging this parameter will create a new resource.\n"
        },
        "sparkSqlBadRecordsPath": {
          "type": "string",
          "description": "Path of bad records. Changing this parameter will create\na new resource.\n"
        },
        "sparkSqlDynamicPartitionOverwriteEnabled": {
          "type": "boolean",
          "description": "In dynamic mode, Spark does not delete\nthe previous partitions and only overwrites the partitions without data during execution. Default value is `false`.\nChanging this parameter will create a new resource.\n"
        },
        "sparkSqlFilesMaxPartitionBytes": {
          "type": "number",
          "description": "Maximum number of bytes to be packed into a\nsingle partition when a file is read. Default value is `134217728`.\nChanging this parameter will create a new resource.\n"
        },
        "sparkSqlMaxRecordsPerFile": {
          "type": "number",
          "description": "Maximum number of records to be written\ninto a single file. If the value is zero or negative, there is no limit. Default value is `0`.\nChanging this parameter will create a new resource.\n"
        },
        "sparkSqlShufflePartitions": {
          "type": "number",
          "description": "Default number of partitions used to filter\ndata for join or aggregation. Default value is `4096`. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DliSqlJobTimeouts:DliSqlJobTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DliTableColumn:DliTableColumn": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies description of the table.\nChanging this parameter will create a new resource.\n"
        },
        "isPartition": {
          "type": "boolean",
          "description": "Specifies whether the column is a partition column. The value\n`true` indicates a partition column, and the value false indicates a non-partition column. The default value\nis false. Changing this parameter will create a new resource.\n\n> When creating a partition table, ensure that at least one column in the table is a non-partition column.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the table name. The name can contain only digits, letters,\nand underscores, but cannot contain only digits or start with an underscore. Length range: 1 to 128 characters.\nChanging this parameter will create a new resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies data type of column. Changing this parameter will create a new\nresource.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "type"
      ]
    },
    "flexibleengine:index/DliTableTimeouts:DliTableTimeouts": {
      "properties": {
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DmsKafkaInstanceTimeouts:DmsKafkaInstanceTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DmsRocketmqInstanceCrossVpcAccess:DmsRocketmqInstanceCrossVpcAccess": {
      "properties": {
        "advertisedIp": {
          "type": "string"
        },
        "lisenterIp": {
          "type": "string"
        },
        "listenerIp": {
          "type": "string"
        },
        "port": {
          "type": "number"
        },
        "portId": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "advertisedIp",
        "lisenterIp",
        "listenerIp",
        "port",
        "portId"
      ]
    },
    "flexibleengine:index/DmsRocketmqInstanceTimeouts:DmsRocketmqInstanceTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DmsRocketmqTopicBroker:DmsRocketmqTopicBroker": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Indicates the name of the broker.\n"
        },
        "readQueueNum": {
          "type": "number",
          "description": "Indicates the read queues number of the broker. It's useless when create a topic.\n"
        },
        "writeQueueNum": {
          "type": "number",
          "description": "Indicates the read queues number of the broker. It's useless when create a topic.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "readQueueNum",
            "writeQueueNum"
          ]
        }
      }
    },
    "flexibleengine:index/DmsRocketmqUserGroupPerm:DmsRocketmqUserGroupPerm": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Indicates the name of a topic or consumer group.\n"
        },
        "perm": {
          "type": "string",
          "description": "Indicates the permissions of the topic or consumer group.\nValue options: **PUB|SUB**, **PUB**, **SUB**, **DENY**.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "perm"
          ]
        }
      }
    },
    "flexibleengine:index/DmsRocketmqUserTopicPerm:DmsRocketmqUserTopicPerm": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Indicates the name of a topic or consumer group.\n"
        },
        "perm": {
          "type": "string",
          "description": "Indicates the permissions of the topic or consumer group.\nValue options: **PUB|SUB**, **PUB**, **SUB**, **DENY**.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "perm"
          ]
        }
      }
    },
    "flexibleengine:index/DnsPtrrecordV2Timeouts:DnsPtrrecordV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DnsRecordsetV2Timeouts:DnsRecordsetV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DnsZoneV2Router:DnsZoneV2Router": {
      "properties": {
        "routerId": {
          "type": "string",
          "description": "The VPC UUID.\n"
        },
        "routerRegion": {
          "type": "string",
          "description": "The region of the VPC. Defaults to the `region`.\n"
        }
      },
      "type": "object",
      "required": [
        "routerId"
      ]
    },
    "flexibleengine:index/DnsZoneV2Timeouts:DnsZoneV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DrsJobDestinationDb:DrsJobDestinationDb": {
      "properties": {
        "engineType": {
          "type": "string",
          "description": "Specifies the migration engine type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **mysql**:  MySQL migration, MySQL synchronization use.\n+ **mongodb**: Mongodb migration use.\n+ **cloudDataGuard-mysql**: Disaster recovery use.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the instance id of database when it is a RDS database.\nChanging this parameter will create a new resource.\n"
        },
        "ip": {
          "type": "string",
          "description": "Specifies the IP of database. Changing this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the job name. The name consists of 4 to 50 characters, starting with\na letter. Only letters, digits, underscores (_) and hyphens (-) are allowed.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the password of database.\nChanging this parameter will create a new resource.\n",
          "secret": true
        },
        "port": {
          "type": "number",
          "description": "Specifies the port of database. Changing this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "sslCertCheckSum": {
          "type": "string",
          "description": "Specifies the checksum of SSL certificate content.\nIt is mandatory when `ssl_enabled` is `true`. Changing this parameter will create a new resource.\n"
        },
        "sslCertKey": {
          "type": "string",
          "description": "Specifies the SSL certificate content, encrypted with base64.\nIt is mandatory when `ssl_enabled` is `true`. Changing this parameter will create a new resource.\n"
        },
        "sslCertName": {
          "type": "string",
          "description": "Specifies SSL certificate name.\nIt is mandatory when `ssl_enabled` is `true`. Changing this parameter will create a new resource.\n"
        },
        "sslCertPassword": {
          "type": "string",
          "description": "Specifies SSL certificate password. It is mandatory when\n`ssl_enabled` is `true` and the certificate file suffix is `.p12`. Changing this parameter will create a new resource.\n"
        },
        "sslEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable SSL connection.\nChanging this parameter will create a new resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet of database when it is a RDS database.\nIt is mandatory when `direction` is `down`. Changing this parameter will create a new resource.\n"
        },
        "user": {
          "type": "string",
          "description": "Specifies the user name of database.\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "engineType",
        "ip",
        "password",
        "port",
        "user"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "engineType",
            "ip",
            "name",
            "password",
            "port",
            "region",
            "user"
          ]
        }
      }
    },
    "flexibleengine:index/DrsJobLimitSpeed:DrsJobLimitSpeed": {
      "properties": {
        "endTime": {
          "type": "string",
          "description": "Specifies the time to end speed limit, this time is UTC time. The input must\nend at 59 minutes, the format is `hh:mm`, for example: 15:59. Changing this parameter will create a new resource.\n"
        },
        "speed": {
          "type": "string",
          "description": "Specifies the transmission speed, the value range is 1 to 9999, unit: `MB/s`.\nChanging this parameter will create a new resource.\n"
        },
        "startTime": {
          "type": "string",
          "description": "Specifies the time to start speed limit, this time is UTC time. The start\ntime is the whole hour, if there is a minute, it will be ignored, the format is `hh:mm`, and the hour number\nis two digits, for example: 01:00. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "endTime",
        "speed",
        "startTime"
      ]
    },
    "flexibleengine:index/DrsJobSourceDb:DrsJobSourceDb": {
      "properties": {
        "engineType": {
          "type": "string",
          "description": "Specifies the migration engine type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **mysql**:  MySQL migration, MySQL synchronization use.\n+ **mongodb**: Mongodb migration use.\n+ **cloudDataGuard-mysql**: Disaster recovery use.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the instance id of database when it is a RDS database.\nChanging this parameter will create a new resource.\n"
        },
        "ip": {
          "type": "string",
          "description": "Specifies the IP of database. Changing this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the job name. The name consists of 4 to 50 characters, starting with\na letter. Only letters, digits, underscores (_) and hyphens (-) are allowed.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the password of database.\nChanging this parameter will create a new resource.\n",
          "secret": true
        },
        "port": {
          "type": "number",
          "description": "Specifies the port of database. Changing this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "sslCertCheckSum": {
          "type": "string",
          "description": "Specifies the checksum of SSL certificate content.\nIt is mandatory when `ssl_enabled` is `true`. Changing this parameter will create a new resource.\n"
        },
        "sslCertKey": {
          "type": "string",
          "description": "Specifies the SSL certificate content, encrypted with base64.\nIt is mandatory when `ssl_enabled` is `true`. Changing this parameter will create a new resource.\n"
        },
        "sslCertName": {
          "type": "string",
          "description": "Specifies SSL certificate name.\nIt is mandatory when `ssl_enabled` is `true`. Changing this parameter will create a new resource.\n"
        },
        "sslCertPassword": {
          "type": "string",
          "description": "Specifies SSL certificate password. It is mandatory when\n`ssl_enabled` is `true` and the certificate file suffix is `.p12`. Changing this parameter will create a new resource.\n"
        },
        "sslEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable SSL connection.\nChanging this parameter will create a new resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet of database when it is a RDS database.\nIt is mandatory when `direction` is `down`. Changing this parameter will create a new resource.\n"
        },
        "user": {
          "type": "string",
          "description": "Specifies the user name of database.\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "engineType",
        "ip",
        "password",
        "port",
        "user"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "engineType",
            "ip",
            "name",
            "password",
            "port",
            "region",
            "user"
          ]
        }
      }
    },
    "flexibleengine:index/DrsJobTimeouts:DrsJobTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/DwsClusterV1Endpoint:DwsClusterV1Endpoint": {
      "properties": {
        "connectInfo": {
          "type": "string",
          "description": "Private network connection information\n"
        },
        "jdbcUrl": {
          "type": "string",
          "description": "JDBC URL. The following is the default format:\njdbc:postgresql://< public_connect_info>/<YOUR_DATABASE_NAME>\n"
        }
      },
      "type": "object",
      "required": [
        "connectInfo",
        "jdbcUrl"
      ]
    },
    "flexibleengine:index/DwsClusterV1PublicEndpoint:DwsClusterV1PublicEndpoint": {
      "properties": {
        "jdbcUrl": {
          "type": "string",
          "description": "JDBC URL. The following is the default format:\njdbc:postgresql://< public_connect_info>/<YOUR_DATABASE_NAME>\n"
        },
        "publicConnectInfo": {
          "type": "string",
          "description": "Public network connection information\n"
        }
      },
      "type": "object",
      "required": [
        "jdbcUrl",
        "publicConnectInfo"
      ]
    },
    "flexibleengine:index/DwsClusterV1PublicIp:DwsClusterV1PublicIp": {
      "properties": {
        "eipId": {
          "type": "string",
          "description": "EIP ID. Changing this will create a new resource.\n"
        },
        "publicBindType": {
          "type": "string",
          "description": "Binding type of an EIP. The value can be\neither of the following: *auto_assign*, *not_use* and *bind_existing*.\nThe default value is *not_use*. Changing this will create a new resource.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "eipId",
            "publicBindType"
          ]
        }
      }
    },
    "flexibleengine:index/DwsClusterV1Timeouts:DwsClusterV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ElbBackendTimeouts:ElbBackendTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ElbHealthTimeouts:ElbHealthTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ElbIpgroupIpList:ElbIpgroupIpList": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Human-readable description for the ip.\n"
        },
        "ip": {
          "type": "string",
          "description": "IP address or CIDR block.\n"
        }
      },
      "type": "object",
      "required": [
        "ip"
      ]
    },
    "flexibleengine:index/ElbListenerTimeouts:ElbListenerTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ElbLoadbalancerTimeouts:ElbLoadbalancerTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ElbSecurityPolicyListener:ElbSecurityPolicyListener": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The listener id.\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "flexibleengine:index/EnterpriseProjectTimeouts:EnterpriseProjectTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/FgsFunctionCustomImage:FgsFunctionCustomImage": {
      "properties": {
        "url": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "url"
      ]
    },
    "flexibleengine:index/FgsFunctionFuncMount:FgsFunctionFuncMount": {
      "properties": {
        "localMountPath": {
          "type": "string",
          "description": "Specifies the function access path.\n"
        },
        "mountResource": {
          "type": "string",
          "description": "Specifies the ID of the mounted resource (corresponding cloud service).\n"
        },
        "mountSharePath": {
          "type": "string",
          "description": "Specifies the remote mount path. Example: 192.168.0.12:/data.\n"
        },
        "mountType": {
          "type": "string",
          "description": "Specifies the mount type. Options: sfs, sfsTurbo, and ecs.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of file system.\n"
        }
      },
      "type": "object",
      "required": [
        "localMountPath",
        "mountResource",
        "mountSharePath",
        "mountType"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "localMountPath",
            "mountResource",
            "mountSharePath",
            "mountType",
            "status"
          ]
        }
      }
    },
    "flexibleengine:index/FgsFunctionTimeouts:FgsFunctionTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/FgsFunctionVersion:FgsFunctionVersion": {
      "properties": {
        "aliases": {
          "$ref": "#/types/flexibleengine:index%2FFgsFunctionVersionAliases:FgsFunctionVersionAliases",
          "description": "The aliases management for specified version.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the function.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "flexibleengine:index/FgsFunctionVersionAliases:FgsFunctionVersionAliases": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the function.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the function.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "flexibleengine:index/FgsTriggerApig:FgsTriggerApig": {
      "properties": {
        "apiName": {
          "type": "string",
          "description": "Specifies the API name. Changing this will create a new trigger resource.\n"
        },
        "envName": {
          "type": "string",
          "description": "Specifies the API environment name.\nChanging this will create a new trigger resource.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the ID of the APIG group to which the API belongs.\nChanging this will create a new trigger resource.\n"
        },
        "instanceId": {
          "type": "string"
        },
        "requestProtocol": {
          "type": "string",
          "description": "Specifies the request protocol of the API. The valid value are\n**HTTP** and **HTTPS**. Default to **HTTPS**. Changing this will create a new trigger resource.\n"
        },
        "securityAuthentication": {
          "type": "string",
          "description": "Specifies the security authentication mode. The valid values\nare **NONE**, **APP** and **IAM**, default to **IAM**. Changing this will create a new trigger resource.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the timeout for request sending. The valid value is range form\n`1` to `60,000`, default to `5,000`. Changing this will create a new trigger resource.\n"
        }
      },
      "type": "object",
      "required": [
        "apiName",
        "envName",
        "groupId"
      ]
    },
    "flexibleengine:index/FgsTriggerDis:FgsTriggerDis": {
      "properties": {
        "maxFetchBytes": {
          "type": "number",
          "description": "Specifies the maximum volume of data that can be obtained for a single\nrequest, in Byte. Only the records with a size smaller than this value can be obtained.\nThe valid value is range from `1,024` to `4,194,304`.\nChanging this will create a new trigger resource.\n"
        },
        "pullPeriod": {
          "type": "number",
          "description": "Specifies the interval at which data is pulled from the specified stream.\nThe valid value is range from `2` to `60,000`.\nChanging this will create a new trigger resource.\n"
        },
        "serialEnable": {
          "type": "boolean",
          "description": "Specifies the determines whether to pull data only after the data pulled\nin the last period has been processed.\nChanging this will create a new trigger resource.\n\n<a name=\"fgs_trigger_apig\"></a>\nThe `apig` block supports:\n"
        },
        "startingPosition": {
          "type": "string",
          "description": "Specifies the type of starting position for DIS queue.\nThe valid values are as follows:\n+ **TRIM_HORIZON**: Starts reading from the earliest data stored in the partitions.\n+ **LATEST**: Starts reading from the latest data stored in the partitions.\nChanging this will create a new trigger resource.\n"
        },
        "streamName": {
          "type": "string",
          "description": "Specifies the name of the DIS stream resource.\nChanging this will create a new trigger resource.\n"
        }
      },
      "type": "object",
      "required": [
        "maxFetchBytes",
        "pullPeriod",
        "serialEnable",
        "startingPosition",
        "streamName"
      ]
    },
    "flexibleengine:index/FgsTriggerKafka:FgsTriggerKafka": {
      "properties": {
        "batchSize": {
          "type": "number"
        },
        "instanceId": {
          "type": "string"
        },
        "password": {
          "type": "string",
          "secret": true
        },
        "topicIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "userName": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "instanceId",
        "topicIds"
      ]
    },
    "flexibleengine:index/FgsTriggerLts:FgsTriggerLts": {
      "properties": {
        "logGroupId": {
          "type": "string"
        },
        "logTopicId": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "logGroupId",
        "logTopicId"
      ]
    },
    "flexibleengine:index/FgsTriggerObs:FgsTriggerObs": {
      "properties": {
        "bucketName": {
          "type": "string",
          "description": "Specifies the OBS bucket name.\nChanging this will create a new trigger resource.\n"
        },
        "eventNotificationName": {
          "type": "string",
          "description": "Specifies the event notification name.\nChanging this will create a new trigger resource.\n"
        },
        "events": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the events that can trigger functions.\nChanging this will create a new trigger resource.\nThe valid values are as follows:\n+ **ObjectCreated**, **Put**, **Post**, **Copy** and **CompleteMultipartUpload**.\n+ **ObjectRemoved**, **Delete** and **DeleteMarkerCreated**.\n\n> **NOTE:** If **ObjectCreated** is configured, **Put**, **Post**, **Copy** and **CompleteMultipartUpload** cannot\nbe configured. If **ObjectRemoved** is configured, **Delete** and **DeleteMarkerCreated** cannot be configured.\n"
        },
        "prefix": {
          "type": "string",
          "description": "Specifies the prefix to limit notifications to objects beginning with this keyword.\nChanging this will create a new trigger resource.\n"
        },
        "suffix": {
          "type": "string",
          "description": "Specifies the suffix to limit notifications to objects ending with this keyword.\nChanging this will create a new trigger resource.\n\n<a name=\"fgs_trigger_smn\"></a>\nThe `smn` block supports:\n"
        }
      },
      "type": "object",
      "required": [
        "bucketName",
        "eventNotificationName",
        "events"
      ]
    },
    "flexibleengine:index/FgsTriggerSmn:FgsTriggerSmn": {
      "properties": {
        "topicUrn": {
          "type": "string",
          "description": "Specifies the Uniform Resource Name (URN) for SMN topic.\nChanging this will create a new trigger resource.\n\n<a name=\"fgs_trigger_dis\"></a>\nThe `dis` block supports:\n"
        }
      },
      "type": "object",
      "required": [
        "topicUrn"
      ]
    },
    "flexibleengine:index/FgsTriggerTimeouts:FgsTriggerTimeouts": {
      "properties": {
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/FgsTriggerTimer:FgsTriggerTimer": {
      "properties": {
        "additionalInformation": {
          "type": "string",
          "description": "Specifies the event used by the timer to trigger the function.\nChanging this will create a new trigger resource.\n\n<a name=\"fgs_trigger_obs\"></a>\nThe `obs` block supports:\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the trigger name, which can contains of 1 to 64 characters.\nThe name must start with a letter, only letters, digits, hyphens (-) and underscores (_) are allowed.\nChanging this will create a new trigger resource.\n"
        },
        "schedule": {
          "type": "string",
          "description": "Specifies the time schedule.\nFor the rate type, schedule is composed of time and time unit.\nThe time unit supports minutes (m), hours (h) and days (d).\nFor the corn expression, please refer to the\n[User Guide](https://docs.prod-cloud-ocb.orange-business.com/usermanual/functiongraph/functiongraph_01_0908.html).\nChanging this will create a new trigger resource.\n"
        },
        "scheduleType": {
          "type": "string",
          "description": "Specifies the type of the time schedule.\nThe valid values are **Rate** and **Cron**.\nChanging this will create a new trigger resource.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "schedule",
        "scheduleType"
      ]
    },
    "flexibleengine:index/FwFirewallGroupV2Timeouts:FwFirewallGroupV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/FwPolicyV2Timeouts:FwPolicyV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/GaussdbCassandraInstanceBackupStrategy:GaussdbCassandraInstanceBackupStrategy": {
      "properties": {
        "keepDays": {
          "type": "number",
          "description": "Specifies the number of days to retain the generated backup files. The value ranges from\n0 to 35. If this parameter is set to 0, the automated backup policy is not set. If this parameter is not transferred,\nthe automated backup policy is enabled by default. Backup files are stored for seven days by default.\n"
        },
        "startTime": {
          "type": "string",
          "description": "Specifies the backup time window. Automated backups will be triggered during the\nbackup time window. It must be a valid value in the \"hh:mm-HH:MM\" format. The current time is in the UTC format. The\nHH value must be 1 greater than the hh value. The values of mm and MM must be the same and must be set to 00. Example\nvalue: 08:00-09:00, 03:00-04:00.\n"
        }
      },
      "type": "object",
      "required": [
        "startTime"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "keepDays",
            "startTime"
          ]
        }
      }
    },
    "flexibleengine:index/GaussdbCassandraInstanceDatastore:GaussdbCassandraInstanceDatastore": {
      "properties": {
        "engine": {
          "type": "string",
          "description": "Specifies the database engine. Only \"GeminiDB-Cassandra\" is supported now.\nChanging this parameter will create a new resource.\n"
        },
        "storageEngine": {
          "type": "string",
          "description": "Specifies the storage engine. Only \"rocksDB\" is supported now.\nChanging this parameter will create a new resource.\n\n<a name=\"gaussdb_backup_strategy\"></a>\nThe `backup_strategy` block supports:\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the database version.\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "engine",
        "storageEngine",
        "version"
      ]
    },
    "flexibleengine:index/GaussdbCassandraInstanceNode:GaussdbCassandraInstanceNode": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the instance name, which can be the same as an existing instance name. The value\nmust be 4 to 64 characters in length and start with a letter. It is case-sensitive and can contain only letters,\ndigits, hyphens (-), and underscores (_).\n"
        },
        "privateIp": {
          "type": "string",
          "description": "Indicates the private IP address of a node.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        },
        "supportReduce": {
          "type": "boolean",
          "description": "Indicates whether the node support reduce or not.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "privateIp",
        "status",
        "supportReduce"
      ]
    },
    "flexibleengine:index/GaussdbCassandraInstanceTimeouts:GaussdbCassandraInstanceTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/GaussdbInfluxInstanceBackupStrategy:GaussdbInfluxInstanceBackupStrategy": {
      "properties": {
        "keepDays": {
          "type": "number",
          "description": "Specifies the number of days to retain the generated backup files. The value ranges from\n**0** to **35**. If this parameter is set to **0**, the automated backup policy is not set. If this parameter is not\ntransferred, the automated backup policy is enabled by default. Backup files are stored for seven days by default.\n"
        },
        "startTime": {
          "type": "string",
          "description": "Specifies the backup time window. Automated backups will be triggered during the\nbackup time window. It must be a valid value in the \"hh:mm-HH:MM\" format. The current time is in the UTC format. The\nHH value must be 1 greater than the hh value. The values of mm and MM must be the same and must be set to 00. Example\nvalue: 08:00-09:00, 03:00-04:00.\n"
        }
      },
      "type": "object",
      "required": [
        "startTime"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "keepDays",
            "startTime"
          ]
        }
      }
    },
    "flexibleengine:index/GaussdbInfluxInstanceDatastore:GaussdbInfluxInstanceDatastore": {
      "properties": {
        "engine": {
          "type": "string",
          "description": "Specifies the database engine. Only **influxdb** is supported now.\nChanging this parameter will create a new resource.\n"
        },
        "storageEngine": {
          "type": "string",
          "description": "Specifies the storage engine. Only **rocksDB** is supported now.\nChanging this parameter will create a new resource.\n\n<a name=\"gaussdb_backup_strategy\"></a>\nThe `backup_strategy` block supports:\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the database version.\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "engine",
        "storageEngine",
        "version"
      ]
    },
    "flexibleengine:index/GaussdbInfluxInstanceNode:GaussdbInfluxInstanceNode": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the instance name, which can be the same as an existing instance name. The\nvalue must be **4** to **64** characters in length and start with a letter. It is case-sensitive and can contain only\nletters, digits, hyphens (-), and underscores (_).\n"
        },
        "privateIp": {
          "type": "string",
          "description": "Indicates the private IP address of a node.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        },
        "supportReduce": {
          "type": "boolean",
          "description": "Indicates whether the node support reduce or not.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "privateIp",
        "status",
        "supportReduce"
      ]
    },
    "flexibleengine:index/GaussdbInfluxInstanceTimeouts:GaussdbInfluxInstanceTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/IdentityAclIpCidr:IdentityAclIpCidr": {
      "properties": {
        "cidr": {
          "type": "string",
          "description": "Specifies the IPv4 CIDR block, for example, **192.168.0.0/24**.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies a description about an IPv4 CIDR block. This parameter can contain a\nmaximum of 255 characters and the following characters are not allowed:**@#%^&*<>\\\\**.\n"
        }
      },
      "type": "object",
      "required": [
        "cidr"
      ]
    },
    "flexibleengine:index/IdentityAclIpRange:IdentityAclIpRange": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies a description about an IP address range. This parameter can contain a\nmaximum of 255 characters and the following characters are not allowed:**@#%^&*<>\\\\**.\n\n->**NOTE:** Up to 200 `ip_cidrs` and `ip_ranges` can be created in total for each access method.\n"
        },
        "range": {
          "type": "string",
          "description": "Specifies the Ip address range, for example, **0.0.0.0-255.255.255.0**.\n"
        }
      },
      "type": "object",
      "required": [
        "range"
      ]
    },
    "flexibleengine:index/IdentityAgencyV3ProjectRole:IdentityAgencyV3ProjectRole": {
      "properties": {
        "project": {
          "type": "string",
          "description": "Specifies the name of project.\n"
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of role names.\n\n> **NOTE**\n- At least one of `project_role` and `domain_roles` must be specified when creating an agency.\n- We can get all **System-Defined Roles** from\n[FlexibleEngine](https://docs.prod-cloud-ocb.orange-business.com/permissions/index.html) or\ndata.flexibleengine_identity_role_v3.\n"
        }
      },
      "type": "object",
      "required": [
        "project",
        "roles"
      ]
    },
    "flexibleengine:index/IdentityAgencyV3Timeouts:IdentityAgencyV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/IdentityProjectV3Timeouts:IdentityProjectV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/IdentityProviderConversionConversionRule:IdentityProviderConversionConversionRule": {
      "properties": {
        "locals": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FIdentityProviderConversionConversionRuleLocal:IdentityProviderConversionConversionRuleLocal"
          },
          "description": "Specifies the federated user information on the cloud platform. The local\nobject structure is documented below.\n"
        },
        "remotes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FIdentityProviderConversionConversionRuleRemote:IdentityProviderConversionConversionRuleRemote"
          },
          "description": "Specifies Federated user information in the IDP system. The remote object\nstructure is documented below.\n\n> **NOTE:**\nIf the protocol of identity provider is SAML, this field is an expression consisting of assertion\nattributes and operators.\nIf the protocol of identity provider is OIDC, the value of this field is determined by the ID token.\n\n<a name=\"IAM_local\"></a>\nThe `local` block supports:\n"
        }
      },
      "type": "object",
      "required": [
        "locals",
        "remotes"
      ]
    },
    "flexibleengine:index/IdentityProviderConversionConversionRuleLocal:IdentityProviderConversionConversionRuleLocal": {
      "properties": {
        "group": {
          "type": "string",
          "description": "Specifies the user group to which the federated user belongs on the cloud platform.\n\n<a name=\"IAM_remote\"></a>\nThe `remote` block supports:\n"
        },
        "username": {
          "type": "string",
          "description": "Specifies the name of a federated user on the cloud platform.\n"
        }
      },
      "type": "object",
      "required": [
        "username"
      ]
    },
    "flexibleengine:index/IdentityProviderConversionConversionRuleRemote:IdentityProviderConversionConversionRuleRemote": {
      "properties": {
        "attribute": {
          "type": "string",
          "description": "Specifies the attribute in the IDP assertion.\n"
        },
        "condition": {
          "type": "string",
          "description": "Specifies the condition of conversion rule.\nAvailable options are:\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the rule is matched only if the specified strings appear in the attribute type.\n"
        }
      },
      "type": "object",
      "required": [
        "attribute"
      ]
    },
    "flexibleengine:index/IdentityProviderConversionRule:IdentityProviderConversionRule": {
      "properties": {
        "locals": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FIdentityProviderConversionRuleLocal:IdentityProviderConversionRuleLocal"
          },
          "description": "The federated user information on the cloud platform. The local object structure is\ndocumented below.\n"
        },
        "remotes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FIdentityProviderConversionRuleRemote:IdentityProviderConversionRuleRemote"
          },
          "description": "The description of the identity provider. The remote object structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "locals",
        "remotes"
      ]
    },
    "flexibleengine:index/IdentityProviderConversionRuleLocal:IdentityProviderConversionRuleLocal": {
      "properties": {
        "group": {
          "type": "string",
          "description": "The user group to which the federated user belongs on the cloud platform.\n"
        },
        "username": {
          "type": "string",
          "description": "The name of a federated user on the cloud platform.\n"
        }
      },
      "type": "object",
      "required": [
        "group",
        "username"
      ]
    },
    "flexibleengine:index/IdentityProviderConversionRuleRemote:IdentityProviderConversionRuleRemote": {
      "properties": {
        "attribute": {
          "type": "string",
          "description": "The attribute in the IDP assertion.\n"
        },
        "condition": {
          "type": "string",
          "description": "The condition of conversion rule.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The rule is matched only if the specified strings appear in the attribute type.\n"
        }
      },
      "type": "object",
      "required": [
        "attribute",
        "condition",
        "values"
      ]
    },
    "flexibleengine:index/IdentityProviderOpenidConnectConfig:IdentityProviderOpenidConnectConfig": {
      "properties": {
        "accessType": {
          "type": "string",
          "description": "Specifies the access type of the identity provider.\nAvailable options are:\n"
        },
        "authorizationEndpoint": {
          "type": "string",
          "description": "Specifies the authorization endpoint of the OpenID Connect identity\nprovider. This field is required only if the access type is set to `program_console`.\n"
        },
        "clientId": {
          "type": "string",
          "description": "Specifies the ID of a client registered with the OpenID Connect identity provider.\n"
        },
        "providerUrl": {
          "type": "string",
          "description": "Specifies the URL of the identity provider.\nThis field corresponds to the iss field in the ID token.\n"
        },
        "responseMode": {
          "type": "string",
          "description": "Response mode.\nValid values is *form_post* and *fragment*, default value is *form_post*.\nThis field is required only if the access type is set to `program_console`.\n"
        },
        "responseType": {
          "type": "string",
          "description": "Response type. Valid values is *id_token*, default value is *id_token*.\nThis field is required only if the access type is set to `program_console`.\n"
        },
        "scopes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the scopes of authorization requests. It is an array of one or more scopes.\nValid values are *openid*, *email*, *profile* and other values defined by you.\nThis field is required only if the access type is set to `program_console`.\n"
        },
        "signingKey": {
          "type": "string",
          "description": "Public key used to sign the ID token of the OpenID Connect identity provider.\nThis field is required only if the protocol is set to *oidc*.\n"
        }
      },
      "type": "object",
      "required": [
        "accessType",
        "clientId",
        "providerUrl",
        "signingKey"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "accessType",
            "authorizationEndpoint",
            "clientId",
            "providerUrl",
            "scopes",
            "signingKey"
          ]
        }
      }
    },
    "flexibleengine:index/ImagesImageCopyTimeouts:ImagesImageCopyTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ImagesImageShareAccepterTimeouts:ImagesImageShareAccepterTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ImagesImageShareTimeouts:ImagesImageShareTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ImagesImageTimeouts:ImagesImageTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ImagesImageV2Timeouts:ImagesImageV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/KmsKeyV1Timeouts:KmsKeyV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/LbCertificateV2Timeouts:LbCertificateV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/LbL7policyV2Timeouts:LbL7policyV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/LbL7ruleV2Timeouts:LbL7ruleV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/LbListenerV2Timeouts:LbListenerV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/LbListenerV3Timeouts:LbListenerV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/LbLoadbalancerV2Timeouts:LbLoadbalancerV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/LbLoadbalancerV3Timeouts:LbLoadbalancerV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/LbMemberV2Timeouts:LbMemberV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/LbMemberV3Timeouts:LbMemberV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/LbMonitorV2Timeouts:LbMonitorV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/LbPoolV2Persistence:LbPoolV2Persistence": {
      "properties": {
        "cookieName": {
          "type": "string",
          "description": "The name of the cookie if persistence mode is set\nappropriately. It is Required if `type = APP_COOKIE`. Changing this will create a new resource.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the sticky session timeout duration in minutes. This parameter is\ninvalid when type is set to APP_COOKIE. Changing this will create a new resource.\nThe value range varies depending on the protocol of the backend server group:\n\n+ When the protocol of the backend server group is TCP or UDP, the value ranges from 1 to 60.\n+ When the protocol of the backend server group is HTTP or HTTPS, the value ranges from 1 to 1440.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of persistence mode. The current specification\nsupports SOURCE_IP, HTTP_COOKIE, and APP_COOKIE. Changing this will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "timeout",
            "type"
          ]
        }
      }
    },
    "flexibleengine:index/LbPoolV2Timeouts:LbPoolV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/LbPoolV3Persistence:LbPoolV3Persistence": {
      "properties": {
        "cookieName": {
          "type": "string",
          "description": "Specifies the name of the cookie if persistence mode is set\nappropriately. Required if `type = APP_COOKIE`.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the sticky session timeout duration in minutes. This parameter is\ninvalid when type is set to APP_COOKIE. The value range varies depending on the protocol of the backend server group:\n+ When the protocol of the backend server group is TCP or UDP, the value ranges from 1 to 60.\n+ When the protocol of the backend server group is HTTP or HTTPS, the value ranges from 1 to 1440.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of persistence mode. The current specification supports\nSOURCE_IP, HTTP_COOKIE, and APP_COOKIE.\n"
        }
      },
      "type": "object",
      "required": [
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "timeout",
            "type"
          ]
        }
      }
    },
    "flexibleengine:index/LbPoolV3Timeouts:LbPoolV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/LbWhitelistV2Timeouts:LbWhitelistV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/MlsInstanceV1MrsCluster:MlsInstanceV1MrsCluster": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Specifies the ID of the MRS cluster. Changing this creates a new instance.\n"
        },
        "userName": {
          "type": "string",
          "description": "Specifies the MRS cluster username. This parameter is mandatory\nonly when the MRS cluster is in the security mode. Changing this creates a new instance.\n"
        },
        "userPassword": {
          "type": "string",
          "description": "Specifies the password of the MRS cluster user. The password\nand username work in a pair. Changing this creates a new instance.\n",
          "secret": true
        }
      },
      "type": "object",
      "required": [
        "id"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "userName",
            "userPassword"
          ]
        }
      }
    },
    "flexibleengine:index/MlsInstanceV1Network:MlsInstanceV1Network": {
      "properties": {
        "availableZone": {
          "type": "string",
          "description": "Specifies the AZ of the instance.\nChanging this creates a new instance.\n"
        },
        "publicIp": {
          "$ref": "#/types/flexibleengine:index%2FMlsInstanceV1NetworkPublicIp:MlsInstanceV1NetworkPublicIp",
          "description": "Specifies the IP address of the instance. The public_ip\nobject structure is documented below. Changing this creates a new instance.\n\n<a name=\"mls_public_ip\"></a>\nThe `public_ip` block supports:\n"
        },
        "securityGroup": {
          "type": "string",
          "description": "Specifies the ID of the security group of the instance.\nChanging this creates a new instance.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet where the instance resides.\nChanging this creates a new instance.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the virtual private cloud (VPC) where the\ninstance resides. Changing this creates a new instance.\n"
        }
      },
      "type": "object",
      "required": [
        "availableZone",
        "publicIp",
        "subnetId",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "availableZone",
            "publicIp",
            "securityGroup",
            "subnetId",
            "vpcId"
          ]
        }
      }
    },
    "flexibleengine:index/MlsInstanceV1NetworkPublicIp:MlsInstanceV1NetworkPublicIp": {
      "properties": {
        "bindType": {
          "type": "string",
          "description": "Specifies the bind type. Possible values: `auto_assign` and\n`not_use`. Changing this creates a new instance.\n\n<a name=\"mls_mrs_cluster\"></a>\nThe `mrs_cluster` block supports:\n"
        },
        "eipId": {
          "type": "string",
          "description": "Indicates the EIP ID, This is returned only when bind_type is set to auto_assign.\n"
        }
      },
      "type": "object",
      "required": [
        "bindType"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "bindType",
            "eipId"
          ]
        }
      }
    },
    "flexibleengine:index/MlsInstanceV1Timeouts:MlsInstanceV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ModelartsDatasetDataSource:ModelartsDatasetDataSource": {
      "properties": {
        "clusterId": {
          "type": "string",
          "description": "Specifies the cluster ID of DWS/MRS when `data_type` is `1` or `4`.\nChanging this parameter will create a new resource.\n"
        },
        "dataType": {
          "type": "number",
          "description": "Specifies the type of data source. The options are as follows:\n+ **0**: OBS.\n+ **1**: GaussDB(DWS).\n+ **2**: DLI.\n+ **4**: MRS.\n\nChanging this parameter will create a new resource.\n"
        },
        "databaseName": {
          "type": "string",
          "description": "Specifies the database name of DWS/DLI when `data_type` is `1` or `2`.\nChanging this parameter will create a new resource.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the password of database when `data_type` is `1`.\nChanging this parameter will create a new resource.\n",
          "secret": true
        },
        "path": {
          "type": "string",
          "description": "Specifies the OBS path when `data_type` is `0`\nor the hdsf path when `data_type` is `4`. All the file in this directory and subdirectories will be which be imported\nto the dataset. Changing this parameter will create a new resource.\n"
        },
        "queueName": {
          "type": "string",
          "description": "Specifies the queue name of DLI when `data_type` is `2`.\nChanging this parameter will create a new resource.\n"
        },
        "tableName": {
          "type": "string",
          "description": "Specifies the table name of DWS/DLI when `data_type` is `1` or `2`.\nChanging this parameter will create a new resource.\n"
        },
        "userName": {
          "type": "string",
          "description": "Specifies the user name of databse when `data_type` is `1`.\nChanging this parameter will create a new resource.\n"
        },
        "withColumnHeader": {
          "type": "boolean",
          "description": "Specifies whether the data contains table header when the type\nof dataset is `400`(Table type). Default value is `true`. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ModelartsDatasetLabel:ModelartsDatasetLabel": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Specifies the name of label.\n"
        },
        "propertyColor": {
          "type": "string",
          "description": "Specifies color of label.\n"
        },
        "propertyShape": {
          "type": "string",
          "description": "Specifies shape of label. Valid values include: `bndbox`, `polygon`,\n`circle`, `line`, `dashed`, `point`, `polyline`.\n"
        },
        "propertyShortcut": {
          "type": "string",
          "description": "Specifies shortcut of label.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "propertyColor",
            "propertyShape",
            "propertyShortcut"
          ]
        }
      }
    },
    "flexibleengine:index/ModelartsDatasetLabelFormat:ModelartsDatasetLabelFormat": {
      "properties": {
        "labelSeparator": {
          "type": "string",
          "description": "Specifies the separator between label and label.\nChanging this parameter will create a new resource.\n"
        },
        "textLabelSeparator": {
          "type": "string",
          "description": "Specifies the separator between text and label.\nChanging this parameter will create a new resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies Label type for text classification.\nThe optional values are as follows:\n\n+ **0**: Label and text are separated, distinguished by the suffix `_result`.\nFor example: the text file is `abc.txt`, and the label file is \"`abc_result.txt`.\n+ **1**: Default, labels and text are in one file, separated by a delimiter. The separator between text and labels,\nthe separator between label and label can be specified by `label_separato` and `text_label_separator`.\n\nDefault value is `1`.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ModelartsDatasetSchema:ModelartsDatasetSchema": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Specifies the field name. Changing this parameter will create a new resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the field type. Valid values include: `String`, `Short`, `Int`,\n`Long`, `Double`, `Float`, `Byte`, `Date`, `Timestamp`, `Bool`. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "type"
      ]
    },
    "flexibleengine:index/ModelartsDatasetTimeouts:ModelartsDatasetTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ModelartsDatasetVersionTimeouts:ModelartsDatasetVersionTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/MrsClusterV1AddJob:MrsClusterV1AddJob": {
      "properties": {
        "arguments": {
          "type": "string",
          "description": "Key parameter for program execution The parameter\nis specified by the function of the user's program. MRS is only responsible\nfor loading the parameter. The parameter contains a maximum of 2047 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n"
        },
        "fileAction": {
          "type": "string",
          "description": "Data import and export import export\n"
        },
        "hiveScriptPath": {
          "type": "string",
          "description": "SQL program path This parameter is needed\nby Spark Script and Hive Script jobs only and must meet the following requirements:\nContains a maximum of 1023 characters, excluding special characters such as\n;|&><'$. The address cannot be empty or full of spaces. Starts with / or s3a://.\nEnds with .sql. sql is case-insensitive.\n"
        },
        "hql": {
          "type": "string",
          "description": "HiveQL statement\n"
        },
        "input": {
          "type": "string",
          "description": "Path for inputting data, which must start with / or s3a://.\nA correct OBS path is required. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n"
        },
        "jarPath": {
          "type": "string",
          "description": "Path of the .jar file or .sql file for program execution\nThe parameter must meet the following requirements: Contains a maximum of 1023\ncharacters, excluding special characters such as ;|&><'$. The address cannot\nbe empty or full of spaces. Starts with / or s3a://. Spark Script must end with\n.sql; while MapReduce and Spark Jar must end with .jar. sql and jar are case-insensitive.\n"
        },
        "jobLog": {
          "type": "string",
          "description": "Path for storing job logs that record job running status.\nThis path must start with / or s3a://. A correct OBS path is required. The parameter\ncontains a maximum of 1023 characters, excluding special characters such as\n;|&>'<$, and can be empty.\n"
        },
        "jobName": {
          "type": "string",
          "description": "Job name It contains only 1 to 64 letters, digits,\nhyphens (-), and underscores (_). NOTE: Identical job names are allowed but\nnot recommended.\n"
        },
        "jobType": {
          "type": "number",
          "description": "Job type. 1: MapReduce 2: Spark 3: Hive Script 4: HiveQL\n(not supported currently) 5: DistCp, importing and exporting data (not supported\nin this API currently). 6: Spark Script 7: Spark SQL, submitting Spark SQL statements\n(not supported in this API currently). NOTE: Spark and Hive jobs can be added\nto only clusters including Spark and Hive components.\n"
        },
        "output": {
          "type": "string",
          "description": "Path for outputting data, which must start with / or\ns3a://. A correct OBS path is required. If the path does not exist, the system\nautomatically creates it. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n"
        },
        "shutdownCluster": {
          "type": "boolean",
          "description": "Whether to delete the cluster after the jobs\nare complete true: Yes false: No\n"
        },
        "submitJobOnceClusterRun": {
          "type": "boolean",
          "description": "true: A job is submitted when a\ncluster is created. false: A job is submitted separately. The parameter is set\nto true in this example.\n"
        }
      },
      "type": "object",
      "required": [
        "jarPath",
        "jobName",
        "jobType",
        "submitJobOnceClusterRun"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "arguments",
            "fileAction",
            "hiveScriptPath",
            "hql",
            "input",
            "jarPath",
            "jobLog",
            "jobName",
            "jobType",
            "output",
            "shutdownCluster",
            "submitJobOnceClusterRun"
          ]
        }
      }
    },
    "flexibleengine:index/MrsClusterV1ComponentList:MrsClusterV1ComponentList": {
      "properties": {
        "componentDesc": {
          "type": "string",
          "description": "Component description.\n"
        },
        "componentId": {
          "type": "string",
          "description": "Component ID. For example, component_id of Hadoop is MRS 3.1.0-LTS.1_001, MRS 2.1.0_001,\nMRS 2.0.1_001, and MRS 1.8.9_001.\n"
        },
        "componentName": {
          "type": "string",
          "description": "the Component name.\n+ MRS 3.1.0-LTS.1 supports the following components:\n- The analysis cluster contains the following components: Hadoop, Spark2x, HBase, Hive, Hue, HetuEngine,\nLoader, Flink, Oozie, ZooKeeper, Ranger, and Tez.\n- The streaming cluster contains the following components: Kafka, Flume, ZooKeeper, and Ranger.\n+ MRS 2.0.1 supports the following components:\n- The analysis cluster contains the following components: Presto, Hadoop, Spark, HBase, Hive, Hue, Loader, and Tez\n- The streaming cluster contains the following components: Kafka, Storm, and Flume.\n+ MRS 1.8.9 supports the following components:\n- The analysis cluster contains the following components: Presto, Hadoop, Spark, HBase, Opentsdb, Hive, Hue, Loader,\nand Flink.\n- The streaming cluster contains the following components: Kafka, KafkaManager, Storm, and Flume.\n"
        },
        "componentVersion": {
          "type": "string",
          "description": "Component version.\n"
        }
      },
      "type": "object",
      "required": [
        "componentName"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "componentDesc",
            "componentId",
            "componentName",
            "componentVersion"
          ]
        }
      }
    },
    "flexibleengine:index/MrsClusterV1Timeouts:MrsClusterV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/MrsClusterV2AnalysisCoreNodes:MrsClusterV2AnalysisCoreNodes": {
      "properties": {
        "assignedRoles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the roles deployed in a node group. This argument is\n**Required** when the cluster type is CUSTOM. Each character string represents a role expression.\nChanging this will create a new MRS cluster resource.\n\n**Role expression definition:**\n\n+ If the role is deployed on all nodes in the node group, set this parameter to role_name, for example: `DataNode`.\n+ If the role is deployed on a specified subscript node in the node group: role_name:index1,index2..., indexN,\nfor example: `DataNode:1,2`. The subscript starts from 1.\n+ Some roles support multi-instance deployment (that is, multiple instances of the same role are deployed on a node):\nrole_name[instance_count], for example: `EsNode[9]`.\n\n[Mapping between roles and components](https://docs.prod-cloud-ocb.orange-business.com/api/mrs/mrs_02_0106.html)\n\n> `DBService` is a basic component of a cluster. Components such as Hive, Hue, Oozie, Loader, and Redis, and Loader\nstore their metadata in DBService, and provide the metadata backup and restoration functions by using DBService.\n"
        },
        "dataVolumeCount": {
          "type": "number",
          "description": "Specifies the data disk number of the nodes. The number configuration\nof each node are as follows:\n+ master_nodes: 1.\n+ analysis_core_nodes: minimum is one and the maximum is subject to the configuration of the corresponding flavor.\n+ streaming_core_nodes: minimum is one and the maximum is subject to the configuration of the corresponding flavor.\n+ analysis_task_nodes: minimum is zero and the maximum is subject to the configuration of the corresponding flavor.\n+ streaming_task_nodes: minimum is zero and the maximum is subject to the configuration of the corresponding flavor.\n\nChanging this will create a new MRS cluster resource.\n"
        },
        "dataVolumeSize": {
          "type": "number",
          "description": "Specifies the data disk size of the nodes,in GB. The value range is 10\nto 32768. Required if `data_volume_count` is greater than zero. Changing this will create a new MRS cluster resource.\n"
        },
        "dataVolumeType": {
          "type": "string",
          "description": "Specifies the data disk flavor of the nodes.\nRequired if `data_volume_count` is greater than zero. Changing this will create a new MRS cluster resource.\nThe following disk types are supported:\n+ `SATA`: common I/O disk\n+ `SAS`: high I/O disk\n+ `SSD`: ultra-high I/O disk\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the instance specifications for each nodes in node group.\nChanging this will create a new MRS cluster resource.\n"
        },
        "hostIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The host list of this nodes group in the cluster.\n"
        },
        "nodeNumber": {
          "type": "number",
          "description": "Specifies the number of nodes for the node group.\nOnly the core group and task group updations are allowed. The number of nodes after scaling cannot be less than the\nnumber of nodes originally created. It is **ForceNew** when the node type are **master_nodes** or **custom_nodes**,\nand changing this will create a new MRS cluster resource.\n"
        },
        "rootVolumeSize": {
          "type": "number",
          "description": "Specifies the system disk size of the nodes. Changing this will create\na new MRS cluster resource.\n"
        },
        "rootVolumeType": {
          "type": "string",
          "description": "Specifies the system disk flavor of the nodes. Changing this will\ncreate a new MRS cluster resource.\n"
        }
      },
      "type": "object",
      "required": [
        "dataVolumeCount",
        "flavor",
        "nodeNumber",
        "rootVolumeSize",
        "rootVolumeType"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dataVolumeCount",
            "flavor",
            "hostIps",
            "nodeNumber",
            "rootVolumeSize",
            "rootVolumeType"
          ]
        }
      }
    },
    "flexibleengine:index/MrsClusterV2AnalysisTaskNodes:MrsClusterV2AnalysisTaskNodes": {
      "properties": {
        "assignedRoles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the roles deployed in a node group. This argument is\n**Required** when the cluster type is CUSTOM. Each character string represents a role expression.\nChanging this will create a new MRS cluster resource.\n\n**Role expression definition:**\n\n+ If the role is deployed on all nodes in the node group, set this parameter to role_name, for example: `DataNode`.\n+ If the role is deployed on a specified subscript node in the node group: role_name:index1,index2..., indexN,\nfor example: `DataNode:1,2`. The subscript starts from 1.\n+ Some roles support multi-instance deployment (that is, multiple instances of the same role are deployed on a node):\nrole_name[instance_count], for example: `EsNode[9]`.\n\n[Mapping between roles and components](https://docs.prod-cloud-ocb.orange-business.com/api/mrs/mrs_02_0106.html)\n\n> `DBService` is a basic component of a cluster. Components such as Hive, Hue, Oozie, Loader, and Redis, and Loader\nstore their metadata in DBService, and provide the metadata backup and restoration functions by using DBService.\n"
        },
        "dataVolumeCount": {
          "type": "number",
          "description": "Specifies the data disk number of the nodes. The number configuration\nof each node are as follows:\n+ master_nodes: 1.\n+ analysis_core_nodes: minimum is one and the maximum is subject to the configuration of the corresponding flavor.\n+ streaming_core_nodes: minimum is one and the maximum is subject to the configuration of the corresponding flavor.\n+ analysis_task_nodes: minimum is zero and the maximum is subject to the configuration of the corresponding flavor.\n+ streaming_task_nodes: minimum is zero and the maximum is subject to the configuration of the corresponding flavor.\n\nChanging this will create a new MRS cluster resource.\n"
        },
        "dataVolumeSize": {
          "type": "number",
          "description": "Specifies the data disk size of the nodes,in GB. The value range is 10\nto 32768. Required if `data_volume_count` is greater than zero. Changing this will create a new MRS cluster resource.\n"
        },
        "dataVolumeType": {
          "type": "string",
          "description": "Specifies the data disk flavor of the nodes.\nRequired if `data_volume_count` is greater than zero. Changing this will create a new MRS cluster resource.\nThe following disk types are supported:\n+ `SATA`: common I/O disk\n+ `SAS`: high I/O disk\n+ `SSD`: ultra-high I/O disk\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the instance specifications for each nodes in node group.\nChanging this will create a new MRS cluster resource.\n"
        },
        "hostIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The host list of this nodes group in the cluster.\n"
        },
        "nodeNumber": {
          "type": "number",
          "description": "Specifies the number of nodes for the node group.\nOnly the core group and task group updations are allowed. The number of nodes after scaling cannot be less than the\nnumber of nodes originally created. It is **ForceNew** when the node type are **master_nodes** or **custom_nodes**,\nand changing this will create a new MRS cluster resource.\n"
        },
        "rootVolumeSize": {
          "type": "number",
          "description": "Specifies the system disk size of the nodes. Changing this will create\na new MRS cluster resource.\n"
        },
        "rootVolumeType": {
          "type": "string",
          "description": "Specifies the system disk flavor of the nodes. Changing this will\ncreate a new MRS cluster resource.\n"
        }
      },
      "type": "object",
      "required": [
        "dataVolumeCount",
        "flavor",
        "nodeNumber",
        "rootVolumeSize",
        "rootVolumeType"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dataVolumeCount",
            "flavor",
            "hostIps",
            "nodeNumber",
            "rootVolumeSize",
            "rootVolumeType"
          ]
        }
      }
    },
    "flexibleengine:index/MrsClusterV2Component:MrsClusterV2Component": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Component description.\n"
        },
        "id": {
          "type": "string",
          "description": "Component ID. For example, component_id of Hadoop is MRS 3.1.0-LTS.1_001, MRS 2.0.1_001, and MRS 1.8.9_001.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the MRS cluster. The name can contain 2 to 64\ncharacters, which may consist of letters, digits, underscores (_) and hyphens (-). Changing this will create a new\nMRS cluster resource.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the MRS cluster version. Currently, `MRS 1.8.9`,\n`MRS 2.0.1`, and `MRS 3.1.0-LTS.1` are supported. Changing this will create a new MRS cluster resource.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "id",
        "name",
        "version"
      ]
    },
    "flexibleengine:index/MrsClusterV2CustomNode:MrsClusterV2CustomNode": {
      "properties": {
        "assignedRoles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the roles deployed in a node group. This argument is\n**Required** when the cluster type is CUSTOM. Each character string represents a role expression.\nChanging this will create a new MRS cluster resource.\n\n**Role expression definition:**\n\n+ If the role is deployed on all nodes in the node group, set this parameter to role_name, for example: `DataNode`.\n+ If the role is deployed on a specified subscript node in the node group: role_name:index1,index2..., indexN,\nfor example: `DataNode:1,2`. The subscript starts from 1.\n+ Some roles support multi-instance deployment (that is, multiple instances of the same role are deployed on a node):\nrole_name[instance_count], for example: `EsNode[9]`.\n\n[Mapping between roles and components](https://docs.prod-cloud-ocb.orange-business.com/api/mrs/mrs_02_0106.html)\n\n> `DBService` is a basic component of a cluster. Components such as Hive, Hue, Oozie, Loader, and Redis, and Loader\nstore their metadata in DBService, and provide the metadata backup and restoration functions by using DBService.\n"
        },
        "dataVolumeCount": {
          "type": "number",
          "description": "Specifies the data disk number of the nodes. The number configuration\nof each node are as follows:\n+ master_nodes: 1.\n+ analysis_core_nodes: minimum is one and the maximum is subject to the configuration of the corresponding flavor.\n+ streaming_core_nodes: minimum is one and the maximum is subject to the configuration of the corresponding flavor.\n+ analysis_task_nodes: minimum is zero and the maximum is subject to the configuration of the corresponding flavor.\n+ streaming_task_nodes: minimum is zero and the maximum is subject to the configuration of the corresponding flavor.\n\nChanging this will create a new MRS cluster resource.\n"
        },
        "dataVolumeSize": {
          "type": "number",
          "description": "Specifies the data disk size of the nodes,in GB. The value range is 10\nto 32768. Required if `data_volume_count` is greater than zero. Changing this will create a new MRS cluster resource.\n"
        },
        "dataVolumeType": {
          "type": "string",
          "description": "Specifies the data disk flavor of the nodes.\nRequired if `data_volume_count` is greater than zero. Changing this will create a new MRS cluster resource.\nThe following disk types are supported:\n+ `SATA`: common I/O disk\n+ `SAS`: high I/O disk\n+ `SSD`: ultra-high I/O disk\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the instance specifications for each nodes in node group.\nChanging this will create a new MRS cluster resource.\n"
        },
        "groupName": {
          "type": "string",
          "description": "Specifies the name of nodes for the node group.\nThis argument is **Required** when the cluster type is CUSTOM. Changing this will create a new MRS cluster resource.\n"
        },
        "hostIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The host list of this nodes group in the cluster.\n"
        },
        "nodeNumber": {
          "type": "number",
          "description": "Specifies the number of nodes for the node group.\nOnly the core group and task group updations are allowed. The number of nodes after scaling cannot be less than the\nnumber of nodes originally created. It is **ForceNew** when the node type are **master_nodes** or **custom_nodes**,\nand changing this will create a new MRS cluster resource.\n"
        },
        "rootVolumeSize": {
          "type": "number",
          "description": "Specifies the system disk size of the nodes. Changing this will create\na new MRS cluster resource.\n"
        },
        "rootVolumeType": {
          "type": "string",
          "description": "Specifies the system disk flavor of the nodes. Changing this will\ncreate a new MRS cluster resource.\n"
        }
      },
      "type": "object",
      "required": [
        "dataVolumeCount",
        "flavor",
        "groupName",
        "nodeNumber",
        "rootVolumeSize",
        "rootVolumeType"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dataVolumeCount",
            "flavor",
            "groupName",
            "hostIps",
            "nodeNumber",
            "rootVolumeSize",
            "rootVolumeType"
          ]
        }
      }
    },
    "flexibleengine:index/MrsClusterV2MasterNodes:MrsClusterV2MasterNodes": {
      "properties": {
        "assignedRoles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the roles deployed in a node group. This argument is\n**Required** when the cluster type is CUSTOM. Each character string represents a role expression.\nChanging this will create a new MRS cluster resource.\n\n**Role expression definition:**\n\n+ If the role is deployed on all nodes in the node group, set this parameter to role_name, for example: `DataNode`.\n+ If the role is deployed on a specified subscript node in the node group: role_name:index1,index2..., indexN,\nfor example: `DataNode:1,2`. The subscript starts from 1.\n+ Some roles support multi-instance deployment (that is, multiple instances of the same role are deployed on a node):\nrole_name[instance_count], for example: `EsNode[9]`.\n\n[Mapping between roles and components](https://docs.prod-cloud-ocb.orange-business.com/api/mrs/mrs_02_0106.html)\n\n> `DBService` is a basic component of a cluster. Components such as Hive, Hue, Oozie, Loader, and Redis, and Loader\nstore their metadata in DBService, and provide the metadata backup and restoration functions by using DBService.\n"
        },
        "dataVolumeCount": {
          "type": "number",
          "description": "Specifies the data disk number of the nodes. The number configuration\nof each node are as follows:\n+ master_nodes: 1.\n+ analysis_core_nodes: minimum is one and the maximum is subject to the configuration of the corresponding flavor.\n+ streaming_core_nodes: minimum is one and the maximum is subject to the configuration of the corresponding flavor.\n+ analysis_task_nodes: minimum is zero and the maximum is subject to the configuration of the corresponding flavor.\n+ streaming_task_nodes: minimum is zero and the maximum is subject to the configuration of the corresponding flavor.\n\nChanging this will create a new MRS cluster resource.\n"
        },
        "dataVolumeSize": {
          "type": "number",
          "description": "Specifies the data disk size of the nodes,in GB. The value range is 10\nto 32768. Required if `data_volume_count` is greater than zero. Changing this will create a new MRS cluster resource.\n"
        },
        "dataVolumeType": {
          "type": "string",
          "description": "Specifies the data disk flavor of the nodes.\nRequired if `data_volume_count` is greater than zero. Changing this will create a new MRS cluster resource.\nThe following disk types are supported:\n+ `SATA`: common I/O disk\n+ `SAS`: high I/O disk\n+ `SSD`: ultra-high I/O disk\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the instance specifications for each nodes in node group.\nChanging this will create a new MRS cluster resource.\n"
        },
        "hostIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The host list of this nodes group in the cluster.\n"
        },
        "nodeNumber": {
          "type": "number",
          "description": "Specifies the number of nodes for the node group.\nOnly the core group and task group updations are allowed. The number of nodes after scaling cannot be less than the\nnumber of nodes originally created. It is **ForceNew** when the node type are **master_nodes** or **custom_nodes**,\nand changing this will create a new MRS cluster resource.\n"
        },
        "rootVolumeSize": {
          "type": "number",
          "description": "Specifies the system disk size of the nodes. Changing this will create\na new MRS cluster resource.\n"
        },
        "rootVolumeType": {
          "type": "string",
          "description": "Specifies the system disk flavor of the nodes. Changing this will\ncreate a new MRS cluster resource.\n"
        }
      },
      "type": "object",
      "required": [
        "dataVolumeCount",
        "flavor",
        "nodeNumber",
        "rootVolumeSize",
        "rootVolumeType"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dataVolumeCount",
            "flavor",
            "hostIps",
            "nodeNumber",
            "rootVolumeSize",
            "rootVolumeType"
          ]
        }
      }
    },
    "flexibleengine:index/MrsClusterV2StreamingCoreNodes:MrsClusterV2StreamingCoreNodes": {
      "properties": {
        "assignedRoles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the roles deployed in a node group. This argument is\n**Required** when the cluster type is CUSTOM. Each character string represents a role expression.\nChanging this will create a new MRS cluster resource.\n\n**Role expression definition:**\n\n+ If the role is deployed on all nodes in the node group, set this parameter to role_name, for example: `DataNode`.\n+ If the role is deployed on a specified subscript node in the node group: role_name:index1,index2..., indexN,\nfor example: `DataNode:1,2`. The subscript starts from 1.\n+ Some roles support multi-instance deployment (that is, multiple instances of the same role are deployed on a node):\nrole_name[instance_count], for example: `EsNode[9]`.\n\n[Mapping between roles and components](https://docs.prod-cloud-ocb.orange-business.com/api/mrs/mrs_02_0106.html)\n\n> `DBService` is a basic component of a cluster. Components such as Hive, Hue, Oozie, Loader, and Redis, and Loader\nstore their metadata in DBService, and provide the metadata backup and restoration functions by using DBService.\n"
        },
        "dataVolumeCount": {
          "type": "number",
          "description": "Specifies the data disk number of the nodes. The number configuration\nof each node are as follows:\n+ master_nodes: 1.\n+ analysis_core_nodes: minimum is one and the maximum is subject to the configuration of the corresponding flavor.\n+ streaming_core_nodes: minimum is one and the maximum is subject to the configuration of the corresponding flavor.\n+ analysis_task_nodes: minimum is zero and the maximum is subject to the configuration of the corresponding flavor.\n+ streaming_task_nodes: minimum is zero and the maximum is subject to the configuration of the corresponding flavor.\n\nChanging this will create a new MRS cluster resource.\n"
        },
        "dataVolumeSize": {
          "type": "number",
          "description": "Specifies the data disk size of the nodes,in GB. The value range is 10\nto 32768. Required if `data_volume_count` is greater than zero. Changing this will create a new MRS cluster resource.\n"
        },
        "dataVolumeType": {
          "type": "string",
          "description": "Specifies the data disk flavor of the nodes.\nRequired if `data_volume_count` is greater than zero. Changing this will create a new MRS cluster resource.\nThe following disk types are supported:\n+ `SATA`: common I/O disk\n+ `SAS`: high I/O disk\n+ `SSD`: ultra-high I/O disk\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the instance specifications for each nodes in node group.\nChanging this will create a new MRS cluster resource.\n"
        },
        "hostIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The host list of this nodes group in the cluster.\n"
        },
        "nodeNumber": {
          "type": "number",
          "description": "Specifies the number of nodes for the node group.\nOnly the core group and task group updations are allowed. The number of nodes after scaling cannot be less than the\nnumber of nodes originally created. It is **ForceNew** when the node type are **master_nodes** or **custom_nodes**,\nand changing this will create a new MRS cluster resource.\n"
        },
        "rootVolumeSize": {
          "type": "number",
          "description": "Specifies the system disk size of the nodes. Changing this will create\na new MRS cluster resource.\n"
        },
        "rootVolumeType": {
          "type": "string",
          "description": "Specifies the system disk flavor of the nodes. Changing this will\ncreate a new MRS cluster resource.\n"
        }
      },
      "type": "object",
      "required": [
        "dataVolumeCount",
        "flavor",
        "nodeNumber",
        "rootVolumeSize",
        "rootVolumeType"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dataVolumeCount",
            "flavor",
            "hostIps",
            "nodeNumber",
            "rootVolumeSize",
            "rootVolumeType"
          ]
        }
      }
    },
    "flexibleengine:index/MrsClusterV2StreamingTaskNodes:MrsClusterV2StreamingTaskNodes": {
      "properties": {
        "assignedRoles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the roles deployed in a node group. This argument is\n**Required** when the cluster type is CUSTOM. Each character string represents a role expression.\nChanging this will create a new MRS cluster resource.\n\n**Role expression definition:**\n\n+ If the role is deployed on all nodes in the node group, set this parameter to role_name, for example: `DataNode`.\n+ If the role is deployed on a specified subscript node in the node group: role_name:index1,index2..., indexN,\nfor example: `DataNode:1,2`. The subscript starts from 1.\n+ Some roles support multi-instance deployment (that is, multiple instances of the same role are deployed on a node):\nrole_name[instance_count], for example: `EsNode[9]`.\n\n[Mapping between roles and components](https://docs.prod-cloud-ocb.orange-business.com/api/mrs/mrs_02_0106.html)\n\n> `DBService` is a basic component of a cluster. Components such as Hive, Hue, Oozie, Loader, and Redis, and Loader\nstore their metadata in DBService, and provide the metadata backup and restoration functions by using DBService.\n"
        },
        "dataVolumeCount": {
          "type": "number",
          "description": "Specifies the data disk number of the nodes. The number configuration\nof each node are as follows:\n+ master_nodes: 1.\n+ analysis_core_nodes: minimum is one and the maximum is subject to the configuration of the corresponding flavor.\n+ streaming_core_nodes: minimum is one and the maximum is subject to the configuration of the corresponding flavor.\n+ analysis_task_nodes: minimum is zero and the maximum is subject to the configuration of the corresponding flavor.\n+ streaming_task_nodes: minimum is zero and the maximum is subject to the configuration of the corresponding flavor.\n\nChanging this will create a new MRS cluster resource.\n"
        },
        "dataVolumeSize": {
          "type": "number",
          "description": "Specifies the data disk size of the nodes,in GB. The value range is 10\nto 32768. Required if `data_volume_count` is greater than zero. Changing this will create a new MRS cluster resource.\n"
        },
        "dataVolumeType": {
          "type": "string",
          "description": "Specifies the data disk flavor of the nodes.\nRequired if `data_volume_count` is greater than zero. Changing this will create a new MRS cluster resource.\nThe following disk types are supported:\n+ `SATA`: common I/O disk\n+ `SAS`: high I/O disk\n+ `SSD`: ultra-high I/O disk\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the instance specifications for each nodes in node group.\nChanging this will create a new MRS cluster resource.\n"
        },
        "hostIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The host list of this nodes group in the cluster.\n"
        },
        "nodeNumber": {
          "type": "number",
          "description": "Specifies the number of nodes for the node group.\nOnly the core group and task group updations are allowed. The number of nodes after scaling cannot be less than the\nnumber of nodes originally created. It is **ForceNew** when the node type are **master_nodes** or **custom_nodes**,\nand changing this will create a new MRS cluster resource.\n"
        },
        "rootVolumeSize": {
          "type": "number",
          "description": "Specifies the system disk size of the nodes. Changing this will create\na new MRS cluster resource.\n"
        },
        "rootVolumeType": {
          "type": "string",
          "description": "Specifies the system disk flavor of the nodes. Changing this will\ncreate a new MRS cluster resource.\n"
        }
      },
      "type": "object",
      "required": [
        "dataVolumeCount",
        "flavor",
        "nodeNumber",
        "rootVolumeSize",
        "rootVolumeType"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dataVolumeCount",
            "flavor",
            "hostIps",
            "nodeNumber",
            "rootVolumeSize",
            "rootVolumeType"
          ]
        }
      }
    },
    "flexibleengine:index/MrsClusterV2Timeouts:MrsClusterV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/MrsHybridClusterV1AnalysisCoreNodes:MrsHybridClusterV1AnalysisCoreNodes": {
      "properties": {
        "dataVolumeCount": {
          "type": "number",
          "description": "Number of data disks of the node\nValue range: 0 to 10\n"
        },
        "dataVolumeSize": {
          "type": "number",
          "description": "Data disk size of the node\nValue range: 100 GB to 32000 GB\n"
        },
        "dataVolumeType": {
          "type": "string",
          "description": "Data disk storage type of the node, supporting SATA and SSD currently\n- SATA: common I/O\n- SSD: Ultrahigh-speed I/O\n"
        },
        "flavor": {
          "type": "string",
          "description": "Best match based on several years of commissioning\nexperience. MRS supports specifications of hosts, and host specifications are\ndetermined by CPUs, memory, and disks space.\n- Master nodes support s1.4xlarge and s1.8xlarge, c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4,\nc3.8xlarge.4, c3.15xlarge.4.\n- Core nodes of a streaming cluster support s1.xlarge, c2.2xlarge, s1.2xlarge, s1.4xlarge, s1.8xlarge, d1.8xlarge,\nc3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4.\n- Core nodes of an analysis cluster support all specifications c2.2xlarge, s1.xlarge, s1.4xlarge, s1.8xlarge,\nd1.xlarge, d1.2xlarge, d1.4xlarge, d1.8xlarge, , c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2,\nc3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4, d2.xlarge.8, d2.2xlarge.8, d2.4xlarge.8, d2.8xlarge.8.\n\nThe following provides specification details.\n\nnode_size | CPU(core) | Memory(GB) | System Disk | Data Disk\n--- | --- | --- | --- | ---\nc2.2xlarge.linux.mrs | 8  | 16  | 40 | -\ncc3.xlarge.4.linux.mrs | 4  | 16  | 40 | -\ncc3.2xlarge.4.linux.mrs | 8  | 32  | 40 | -\ncc3.4xlarge.4.linux.mrs | 16 | 64  | 40 | -\ncc3.8xlarge.4.linux.mrs | 32 | 128 | 40 | -\ns1.xlarge.linux.mrs  | 4  | 16  | 40 | -\ns1.4xlarge.linux.mrs | 16 | 64  | 40 | -\ns1.8xlarge.linux.mrs | 32 | 128 | 40 | -\ns3.xlarge.4.linux.mrs| 4  | 16  | 40 | -\ns3.2xlarge.4.linux.mrs| 8 | 32  | 40 | -\ns3.4xlarge.4.linux.mrs| 16 | 64  | 40 | -\nd1.xlarge.linux.mrs  | 6  | 55  | 40 | 1.8 TB x 3 HDDs\nd1.2xlarge.linux.mrs | 12 | 110 | 40 | 1.8 TB x 6 HDDs\nd1.4xlarge.linux.mrs | 24 | 220 | 40 | 1.8 TB x 12 HDDs\nd1.8xlarge.linux.mrs | 48 | 440 | 40 | 1.8 TB x 24 HDDs\nd2.xlarge.linux.mrs  | 4  | 32  | 40 | -\nd2.2xlarge.linux.mrs | 8 | 64 | 40 | -\nd2.4xlarge.linux.mrs | 16 | 128 | 40 | 1.8TB*8HDDs\nd2.8xlarge.linux.mrs | 32 | 256 | 40 | 1.8TB*16HDDs\n"
        },
        "nodeNumber": {
          "type": "number",
          "description": "Number of nodes. The value ranges from 0 to 500 and the default value is 0.\nThe total number of Core and Task nodes cannot exceed 500.\n"
        },
        "rootVolumeSize": {
          "type": "number"
        },
        "rootVolumeType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "dataVolumeCount",
        "dataVolumeSize",
        "dataVolumeType",
        "flavor",
        "nodeNumber"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dataVolumeCount",
            "dataVolumeSize",
            "dataVolumeType",
            "flavor",
            "nodeNumber",
            "rootVolumeSize",
            "rootVolumeType"
          ]
        }
      }
    },
    "flexibleengine:index/MrsHybridClusterV1AnalysisTaskNodes:MrsHybridClusterV1AnalysisTaskNodes": {
      "properties": {
        "dataVolumeCount": {
          "type": "number",
          "description": "Number of data disks of the node\nValue range: 0 to 10\n"
        },
        "dataVolumeSize": {
          "type": "number",
          "description": "Data disk size of the node\nValue range: 100 GB to 32000 GB\n"
        },
        "dataVolumeType": {
          "type": "string",
          "description": "Data disk storage type of the node, supporting SATA and SSD currently\n- SATA: common I/O\n- SSD: Ultrahigh-speed I/O\n"
        },
        "flavor": {
          "type": "string",
          "description": "Best match based on several years of commissioning\nexperience. MRS supports specifications of hosts, and host specifications are\ndetermined by CPUs, memory, and disks space.\n- Master nodes support s1.4xlarge and s1.8xlarge, c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4,\nc3.8xlarge.4, c3.15xlarge.4.\n- Core nodes of a streaming cluster support s1.xlarge, c2.2xlarge, s1.2xlarge, s1.4xlarge, s1.8xlarge, d1.8xlarge,\nc3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4.\n- Core nodes of an analysis cluster support all specifications c2.2xlarge, s1.xlarge, s1.4xlarge, s1.8xlarge,\nd1.xlarge, d1.2xlarge, d1.4xlarge, d1.8xlarge, , c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2,\nc3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4, d2.xlarge.8, d2.2xlarge.8, d2.4xlarge.8, d2.8xlarge.8.\n\nThe following provides specification details.\n\nnode_size | CPU(core) | Memory(GB) | System Disk | Data Disk\n--- | --- | --- | --- | ---\nc2.2xlarge.linux.mrs | 8  | 16  | 40 | -\ncc3.xlarge.4.linux.mrs | 4  | 16  | 40 | -\ncc3.2xlarge.4.linux.mrs | 8  | 32  | 40 | -\ncc3.4xlarge.4.linux.mrs | 16 | 64  | 40 | -\ncc3.8xlarge.4.linux.mrs | 32 | 128 | 40 | -\ns1.xlarge.linux.mrs  | 4  | 16  | 40 | -\ns1.4xlarge.linux.mrs | 16 | 64  | 40 | -\ns1.8xlarge.linux.mrs | 32 | 128 | 40 | -\ns3.xlarge.4.linux.mrs| 4  | 16  | 40 | -\ns3.2xlarge.4.linux.mrs| 8 | 32  | 40 | -\ns3.4xlarge.4.linux.mrs| 16 | 64  | 40 | -\nd1.xlarge.linux.mrs  | 6  | 55  | 40 | 1.8 TB x 3 HDDs\nd1.2xlarge.linux.mrs | 12 | 110 | 40 | 1.8 TB x 6 HDDs\nd1.4xlarge.linux.mrs | 24 | 220 | 40 | 1.8 TB x 12 HDDs\nd1.8xlarge.linux.mrs | 48 | 440 | 40 | 1.8 TB x 24 HDDs\nd2.xlarge.linux.mrs  | 4  | 32  | 40 | -\nd2.2xlarge.linux.mrs | 8 | 64 | 40 | -\nd2.4xlarge.linux.mrs | 16 | 128 | 40 | 1.8TB*8HDDs\nd2.8xlarge.linux.mrs | 32 | 256 | 40 | 1.8TB*16HDDs\n"
        },
        "nodeNumber": {
          "type": "number",
          "description": "Number of nodes. The value ranges from 0 to 500 and the default value is 0.\nThe total number of Core and Task nodes cannot exceed 500.\n"
        },
        "rootVolumeSize": {
          "type": "number"
        },
        "rootVolumeType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "dataVolumeCount",
        "dataVolumeSize",
        "dataVolumeType",
        "flavor",
        "nodeNumber"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dataVolumeCount",
            "dataVolumeSize",
            "dataVolumeType",
            "flavor",
            "nodeNumber",
            "rootVolumeSize",
            "rootVolumeType"
          ]
        }
      }
    },
    "flexibleengine:index/MrsHybridClusterV1Component:MrsHybridClusterV1Component": {
      "properties": {
        "componentDesc": {
          "type": "string",
          "description": "Component description.\n"
        },
        "componentId": {
          "type": "string",
          "description": "Component ID. For example, component_id of Hadoop is MRS 3.1.0-LTS.1_001, MRS 2.1.0_001,\nMRS 2.0.1_001, and MRS 1.8.9_001.\n"
        },
        "componentName": {
          "type": "string",
          "description": "Component name.\n"
        },
        "componentVersion": {
          "type": "string",
          "description": "Component version.\n"
        }
      },
      "type": "object",
      "required": [
        "componentDesc",
        "componentId",
        "componentName",
        "componentVersion"
      ]
    },
    "flexibleengine:index/MrsHybridClusterV1MasterNodes:MrsHybridClusterV1MasterNodes": {
      "properties": {
        "dataVolumeCount": {
          "type": "number",
          "description": "Number of data disks of the node\nValue range: 0 to 10\n"
        },
        "dataVolumeSize": {
          "type": "number",
          "description": "Data disk size of the node\nValue range: 100 GB to 32000 GB\n"
        },
        "dataVolumeType": {
          "type": "string",
          "description": "Data disk storage type of the node, supporting SATA and SSD currently\n- SATA: common I/O\n- SSD: Ultrahigh-speed I/O\n"
        },
        "flavor": {
          "type": "string",
          "description": "Best match based on several years of commissioning\nexperience. MRS supports specifications of hosts, and host specifications are\ndetermined by CPUs, memory, and disks space.\n- Master nodes support s1.4xlarge and s1.8xlarge, c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4,\nc3.8xlarge.4, c3.15xlarge.4.\n- Core nodes of a streaming cluster support s1.xlarge, c2.2xlarge, s1.2xlarge, s1.4xlarge, s1.8xlarge, d1.8xlarge,\nc3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4.\n- Core nodes of an analysis cluster support all specifications c2.2xlarge, s1.xlarge, s1.4xlarge, s1.8xlarge,\nd1.xlarge, d1.2xlarge, d1.4xlarge, d1.8xlarge, , c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2,\nc3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4, d2.xlarge.8, d2.2xlarge.8, d2.4xlarge.8, d2.8xlarge.8.\n\nThe following provides specification details.\n\nnode_size | CPU(core) | Memory(GB) | System Disk | Data Disk\n--- | --- | --- | --- | ---\nc2.2xlarge.linux.mrs | 8  | 16  | 40 | -\ncc3.xlarge.4.linux.mrs | 4  | 16  | 40 | -\ncc3.2xlarge.4.linux.mrs | 8  | 32  | 40 | -\ncc3.4xlarge.4.linux.mrs | 16 | 64  | 40 | -\ncc3.8xlarge.4.linux.mrs | 32 | 128 | 40 | -\ns1.xlarge.linux.mrs  | 4  | 16  | 40 | -\ns1.4xlarge.linux.mrs | 16 | 64  | 40 | -\ns1.8xlarge.linux.mrs | 32 | 128 | 40 | -\ns3.xlarge.4.linux.mrs| 4  | 16  | 40 | -\ns3.2xlarge.4.linux.mrs| 8 | 32  | 40 | -\ns3.4xlarge.4.linux.mrs| 16 | 64  | 40 | -\nd1.xlarge.linux.mrs  | 6  | 55  | 40 | 1.8 TB x 3 HDDs\nd1.2xlarge.linux.mrs | 12 | 110 | 40 | 1.8 TB x 6 HDDs\nd1.4xlarge.linux.mrs | 24 | 220 | 40 | 1.8 TB x 12 HDDs\nd1.8xlarge.linux.mrs | 48 | 440 | 40 | 1.8 TB x 24 HDDs\nd2.xlarge.linux.mrs  | 4  | 32  | 40 | -\nd2.2xlarge.linux.mrs | 8 | 64 | 40 | -\nd2.4xlarge.linux.mrs | 16 | 128 | 40 | 1.8TB*8HDDs\nd2.8xlarge.linux.mrs | 32 | 256 | 40 | 1.8TB*16HDDs\n"
        },
        "nodeNumber": {
          "type": "number",
          "description": "Number of nodes. The value ranges from 0 to 500 and the default value is 0.\nThe total number of Core and Task nodes cannot exceed 500.\n"
        },
        "rootVolumeSize": {
          "type": "number"
        },
        "rootVolumeType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "dataVolumeCount",
        "dataVolumeSize",
        "dataVolumeType",
        "flavor",
        "nodeNumber"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dataVolumeCount",
            "dataVolumeSize",
            "dataVolumeType",
            "flavor",
            "nodeNumber",
            "rootVolumeSize",
            "rootVolumeType"
          ]
        }
      }
    },
    "flexibleengine:index/MrsHybridClusterV1StreamingCoreNodes:MrsHybridClusterV1StreamingCoreNodes": {
      "properties": {
        "dataVolumeCount": {
          "type": "number",
          "description": "Number of data disks of the node\nValue range: 0 to 10\n"
        },
        "dataVolumeSize": {
          "type": "number",
          "description": "Data disk size of the node\nValue range: 100 GB to 32000 GB\n"
        },
        "dataVolumeType": {
          "type": "string",
          "description": "Data disk storage type of the node, supporting SATA and SSD currently\n- SATA: common I/O\n- SSD: Ultrahigh-speed I/O\n"
        },
        "flavor": {
          "type": "string",
          "description": "Best match based on several years of commissioning\nexperience. MRS supports specifications of hosts, and host specifications are\ndetermined by CPUs, memory, and disks space.\n- Master nodes support s1.4xlarge and s1.8xlarge, c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4,\nc3.8xlarge.4, c3.15xlarge.4.\n- Core nodes of a streaming cluster support s1.xlarge, c2.2xlarge, s1.2xlarge, s1.4xlarge, s1.8xlarge, d1.8xlarge,\nc3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4.\n- Core nodes of an analysis cluster support all specifications c2.2xlarge, s1.xlarge, s1.4xlarge, s1.8xlarge,\nd1.xlarge, d1.2xlarge, d1.4xlarge, d1.8xlarge, , c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2,\nc3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4, d2.xlarge.8, d2.2xlarge.8, d2.4xlarge.8, d2.8xlarge.8.\n\nThe following provides specification details.\n\nnode_size | CPU(core) | Memory(GB) | System Disk | Data Disk\n--- | --- | --- | --- | ---\nc2.2xlarge.linux.mrs | 8  | 16  | 40 | -\ncc3.xlarge.4.linux.mrs | 4  | 16  | 40 | -\ncc3.2xlarge.4.linux.mrs | 8  | 32  | 40 | -\ncc3.4xlarge.4.linux.mrs | 16 | 64  | 40 | -\ncc3.8xlarge.4.linux.mrs | 32 | 128 | 40 | -\ns1.xlarge.linux.mrs  | 4  | 16  | 40 | -\ns1.4xlarge.linux.mrs | 16 | 64  | 40 | -\ns1.8xlarge.linux.mrs | 32 | 128 | 40 | -\ns3.xlarge.4.linux.mrs| 4  | 16  | 40 | -\ns3.2xlarge.4.linux.mrs| 8 | 32  | 40 | -\ns3.4xlarge.4.linux.mrs| 16 | 64  | 40 | -\nd1.xlarge.linux.mrs  | 6  | 55  | 40 | 1.8 TB x 3 HDDs\nd1.2xlarge.linux.mrs | 12 | 110 | 40 | 1.8 TB x 6 HDDs\nd1.4xlarge.linux.mrs | 24 | 220 | 40 | 1.8 TB x 12 HDDs\nd1.8xlarge.linux.mrs | 48 | 440 | 40 | 1.8 TB x 24 HDDs\nd2.xlarge.linux.mrs  | 4  | 32  | 40 | -\nd2.2xlarge.linux.mrs | 8 | 64 | 40 | -\nd2.4xlarge.linux.mrs | 16 | 128 | 40 | 1.8TB*8HDDs\nd2.8xlarge.linux.mrs | 32 | 256 | 40 | 1.8TB*16HDDs\n"
        },
        "nodeNumber": {
          "type": "number",
          "description": "Number of nodes. The value ranges from 0 to 500 and the default value is 0.\nThe total number of Core and Task nodes cannot exceed 500.\n"
        },
        "rootVolumeSize": {
          "type": "number"
        },
        "rootVolumeType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "dataVolumeCount",
        "dataVolumeSize",
        "dataVolumeType",
        "flavor",
        "nodeNumber"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dataVolumeCount",
            "dataVolumeSize",
            "dataVolumeType",
            "flavor",
            "nodeNumber",
            "rootVolumeSize",
            "rootVolumeType"
          ]
        }
      }
    },
    "flexibleengine:index/MrsHybridClusterV1StreamingTaskNodes:MrsHybridClusterV1StreamingTaskNodes": {
      "properties": {
        "dataVolumeCount": {
          "type": "number",
          "description": "Number of data disks of the node\nValue range: 0 to 10\n"
        },
        "dataVolumeSize": {
          "type": "number",
          "description": "Data disk size of the node\nValue range: 100 GB to 32000 GB\n"
        },
        "dataVolumeType": {
          "type": "string",
          "description": "Data disk storage type of the node, supporting SATA and SSD currently\n- SATA: common I/O\n- SSD: Ultrahigh-speed I/O\n"
        },
        "flavor": {
          "type": "string",
          "description": "Best match based on several years of commissioning\nexperience. MRS supports specifications of hosts, and host specifications are\ndetermined by CPUs, memory, and disks space.\n- Master nodes support s1.4xlarge and s1.8xlarge, c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4,\nc3.8xlarge.4, c3.15xlarge.4.\n- Core nodes of a streaming cluster support s1.xlarge, c2.2xlarge, s1.2xlarge, s1.4xlarge, s1.8xlarge, d1.8xlarge,\nc3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4.\n- Core nodes of an analysis cluster support all specifications c2.2xlarge, s1.xlarge, s1.4xlarge, s1.8xlarge,\nd1.xlarge, d1.2xlarge, d1.4xlarge, d1.8xlarge, , c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2,\nc3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4, d2.xlarge.8, d2.2xlarge.8, d2.4xlarge.8, d2.8xlarge.8.\n\nThe following provides specification details.\n\nnode_size | CPU(core) | Memory(GB) | System Disk | Data Disk\n--- | --- | --- | --- | ---\nc2.2xlarge.linux.mrs | 8  | 16  | 40 | -\ncc3.xlarge.4.linux.mrs | 4  | 16  | 40 | -\ncc3.2xlarge.4.linux.mrs | 8  | 32  | 40 | -\ncc3.4xlarge.4.linux.mrs | 16 | 64  | 40 | -\ncc3.8xlarge.4.linux.mrs | 32 | 128 | 40 | -\ns1.xlarge.linux.mrs  | 4  | 16  | 40 | -\ns1.4xlarge.linux.mrs | 16 | 64  | 40 | -\ns1.8xlarge.linux.mrs | 32 | 128 | 40 | -\ns3.xlarge.4.linux.mrs| 4  | 16  | 40 | -\ns3.2xlarge.4.linux.mrs| 8 | 32  | 40 | -\ns3.4xlarge.4.linux.mrs| 16 | 64  | 40 | -\nd1.xlarge.linux.mrs  | 6  | 55  | 40 | 1.8 TB x 3 HDDs\nd1.2xlarge.linux.mrs | 12 | 110 | 40 | 1.8 TB x 6 HDDs\nd1.4xlarge.linux.mrs | 24 | 220 | 40 | 1.8 TB x 12 HDDs\nd1.8xlarge.linux.mrs | 48 | 440 | 40 | 1.8 TB x 24 HDDs\nd2.xlarge.linux.mrs  | 4  | 32  | 40 | -\nd2.2xlarge.linux.mrs | 8 | 64 | 40 | -\nd2.4xlarge.linux.mrs | 16 | 128 | 40 | 1.8TB*8HDDs\nd2.8xlarge.linux.mrs | 32 | 256 | 40 | 1.8TB*16HDDs\n"
        },
        "nodeNumber": {
          "type": "number",
          "description": "Number of nodes. The value ranges from 0 to 500 and the default value is 0.\nThe total number of Core and Task nodes cannot exceed 500.\n"
        },
        "rootVolumeSize": {
          "type": "number"
        },
        "rootVolumeType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "dataVolumeCount",
        "dataVolumeSize",
        "dataVolumeType",
        "flavor",
        "nodeNumber"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dataVolumeCount",
            "dataVolumeSize",
            "dataVolumeType",
            "flavor",
            "nodeNumber",
            "rootVolumeSize",
            "rootVolumeType"
          ]
        }
      }
    },
    "flexibleengine:index/MrsHybridClusterV1Timeouts:MrsHybridClusterV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/MrsJobV1Timeouts:MrsJobV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/MrsJobV2Timeouts:MrsJobV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/NatGatewayV2Timeouts:NatGatewayV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/NatSnatRuleV2Timeouts:NatSnatRuleV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/NetworkAclTimeouts:NetworkAclTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/NetworkingFloatingipV2Timeouts:NetworkingFloatingipV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/NetworkingNetworkV2Segment:NetworkingNetworkV2Segment": {
      "properties": {
        "networkType": {
          "type": "string",
          "description": "The type of physical network.\n"
        },
        "physicalNetwork": {
          "type": "string",
          "description": "The physical network where this network is implemented.\n"
        },
        "segmentationId": {
          "type": "number",
          "description": "An isolated segment on the physical network.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/NetworkingNetworkV2Timeouts:NetworkingNetworkV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/NetworkingPortV2AllowedAddressPair:NetworkingPortV2AllowedAddressPair": {
      "properties": {
        "ipAddress": {
          "type": "string",
          "description": "The additional IP address. The value can be an IP Address or a CIDR,\nand can not be *0.0.0.0*. A server connected to the port can send a packet with source address\nwhich matches one of the specified allowed address pairs.\nIt is recommended to configure an independent security group for the port if a large CIDR\nblock (subnet mask less than 24) is configured.\n"
        },
        "macAddress": {
          "type": "string",
          "description": "The additional MAC address.\n"
        }
      },
      "type": "object",
      "required": [
        "ipAddress"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "ipAddress",
            "macAddress"
          ]
        }
      }
    },
    "flexibleengine:index/NetworkingPortV2FixedIp:NetworkingPortV2FixedIp": {
      "properties": {
        "ipAddress": {
          "type": "string",
          "description": "The additional IP address. The value can be an IP Address or a CIDR,\nand can not be *0.0.0.0*. A server connected to the port can send a packet with source address\nwhich matches one of the specified allowed address pairs.\nIt is recommended to configure an independent security group for the port if a large CIDR\nblock (subnet mask less than 24) is configured.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The `ipv4_subnet_id` or `ipv6_subnet_id` of the\nVPC Subnet in which to allocate IP address for this port.\n"
        }
      },
      "type": "object",
      "required": [
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "ipAddress",
            "subnetId"
          ]
        }
      }
    },
    "flexibleengine:index/NetworkingPortV2Timeouts:NetworkingPortV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/NetworkingRouterInterfaceV2Timeouts:NetworkingRouterInterfaceV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/NetworkingRouterV2Timeouts:NetworkingRouterV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/NetworkingSecgroupRuleV2Timeouts:NetworkingSecgroupRuleV2Timeouts": {
      "properties": {
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/NetworkingSecgroupV2Timeouts:NetworkingSecgroupV2Timeouts": {
      "properties": {
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/NetworkingSubnetV2AllocationPool:NetworkingSubnetV2AllocationPool": {
      "properties": {
        "end": {
          "type": "string",
          "description": "The ending addresss.\n"
        },
        "start": {
          "type": "string",
          "description": "The starting address.\n"
        }
      },
      "type": "object",
      "required": [
        "end",
        "start"
      ]
    },
    "flexibleengine:index/NetworkingSubnetV2HostRoute:NetworkingSubnetV2HostRoute": {
      "properties": {
        "destinationCidr": {
          "type": "string",
          "description": "The destination CIDR.\n"
        },
        "nextHop": {
          "type": "string",
          "description": "The next hop in the route.\n"
        }
      },
      "type": "object",
      "required": [
        "destinationCidr",
        "nextHop"
      ]
    },
    "flexibleengine:index/NetworkingSubnetV2Timeouts:NetworkingSubnetV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/NetworkingVipV2Timeouts:NetworkingVipV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ObsBucketAclAccountPermission:ObsBucketAclAccountPermission": {
      "properties": {
        "accessToAcls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to acl. Valid values are **READ_ACP** and **WRITE_ACP**.\n"
        },
        "accessToBuckets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to bucket. Valid values are **READ** and **WRITE**.\n"
        },
        "accountId": {
          "type": "string",
          "description": "Specifies the account id to authorize. The account id cannot be the bucket owner,\nand must be unique.\n"
        }
      },
      "type": "object",
      "required": [
        "accountId"
      ]
    },
    "flexibleengine:index/ObsBucketAclLogDeliveryUserPermission:ObsBucketAclLogDeliveryUserPermission": {
      "properties": {
        "accessToAcls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to acl. Valid values are **READ_ACP** and **WRITE_ACP**.\n"
        },
        "accessToBuckets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to bucket. Valid values are **READ** and **WRITE**.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ObsBucketAclOwnerPermission:ObsBucketAclOwnerPermission": {
      "properties": {
        "accessToAcls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to acl. Valid values are **READ_ACP** and **WRITE_ACP**.\n"
        },
        "accessToBuckets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to bucket. Valid values are **READ** and **WRITE**.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ObsBucketAclPublicPermission:ObsBucketAclPublicPermission": {
      "properties": {
        "accessToAcls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to acl. Valid values are **READ_ACP** and **WRITE_ACP**.\n"
        },
        "accessToBuckets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to bucket. Valid values are **READ** and **WRITE**.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ObsBucketCorsRule:ObsBucketCorsRule": {
      "properties": {
        "allowedHeaders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the allowed header of cross-origin requests.\nOnly CORS requests matching the allowed header are valid.\n"
        },
        "allowedMethods": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the acceptable operation type of buckets and objects.\nThe methods include `GET`, `PUT`, `POST`, `DELETE` or `HEAD`.\n"
        },
        "allowedOrigins": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Requests from this origin can access the bucket. Multiple matching rules are\nallowed. One rule occupies one line, and allows one wildcard character (*) at most.\n"
        },
        "exposeHeaders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the exposed header in CORS responses, providing additional information\nfor clients.\n"
        },
        "maxAgeSeconds": {
          "type": "number",
          "description": "Specifies the duration that your browser can cache CORS responses, expressed in\nseconds. The default value is 100.\n\n<a name=\"obs_lifecycle_rule\"></a>\nThe `lifecycle_rule` object supports:\n"
        }
      },
      "type": "object",
      "required": [
        "allowedMethods",
        "allowedOrigins"
      ]
    },
    "flexibleengine:index/ObsBucketLifecycleRule:ObsBucketLifecycleRule": {
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Specifies lifecycle rule status.\n"
        },
        "expirations": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketLifecycleRuleExpiration:ObsBucketLifecycleRuleExpiration"
          },
          "description": "Specifies a period when objects that have been last updated are automatically deleted.\nThe expiration object structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for lifecycle rules. The Rule Name contains a maximum of 255 characters.\n"
        },
        "noncurrentVersionExpirations": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketLifecycleRuleNoncurrentVersionExpiration:ObsBucketLifecycleRuleNoncurrentVersionExpiration"
          },
          "description": "Specifies a period when noncurrent object versions are automatically\ndeleted. The noncurrent_version_expiration object structure is documented below.\n"
        },
        "noncurrentVersionTransitions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketLifecycleRuleNoncurrentVersionTransition:ObsBucketLifecycleRuleNoncurrentVersionTransition"
          },
          "description": "Specifies a period when noncurrent object versions are automatically\ntransitioned to `STANDARD_IA` or `GLACIER` storage class.\nThe noncurrent_version_transition object structure is documented below.\n\nAt least one of `expiration`, `transition`, `noncurrent_version_expiration`, `noncurrent_version_transition` must\nbe specified.\n\n<a name=\"obs_expiration\"></a>\nThe `expiration` object supports:\n"
        },
        "prefix": {
          "type": "string",
          "description": "Object key prefix identifying one or more objects to which the rule applies.\nIf omitted, all objects in the bucket will be managed by the lifecycle rule.\nThe prefix cannot start or end with a slash (/), cannot have consecutive slashes (/),\nand cannot contain the following special characters: \\:*?\"<>|.\n"
        },
        "transitions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketLifecycleRuleTransition:ObsBucketLifecycleRuleTransition"
          },
          "description": "Specifies a period when objects that have been last updated are automatically\ntransitioned to `STANDARD_IA` or `GLACIER` storage class.\nThe transition object structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "enabled",
        "name"
      ]
    },
    "flexibleengine:index/ObsBucketLifecycleRuleExpiration:ObsBucketLifecycleRuleExpiration": {
      "properties": {
        "days": {
          "type": "number",
          "description": "Specifies the number of days when noncurrent object versions are automatically\ntransitioned to the specified storage class.\n"
        }
      },
      "type": "object",
      "required": [
        "days"
      ]
    },
    "flexibleengine:index/ObsBucketLifecycleRuleNoncurrentVersionExpiration:ObsBucketLifecycleRuleNoncurrentVersionExpiration": {
      "properties": {
        "days": {
          "type": "number",
          "description": "Specifies the number of days when noncurrent object versions are automatically\ntransitioned to the specified storage class.\n"
        }
      },
      "type": "object",
      "required": [
        "days"
      ]
    },
    "flexibleengine:index/ObsBucketLifecycleRuleNoncurrentVersionTransition:ObsBucketLifecycleRuleNoncurrentVersionTransition": {
      "properties": {
        "days": {
          "type": "number",
          "description": "Specifies the number of days when noncurrent object versions are automatically\ntransitioned to the specified storage class.\n"
        },
        "storageClass": {
          "type": "string",
          "description": "The class of storage used to store the object. Only \"STANDARD_IA\" and \"GLACIER\"\nare supported.\n"
        }
      },
      "type": "object",
      "required": [
        "days",
        "storageClass"
      ]
    },
    "flexibleengine:index/ObsBucketLifecycleRuleTransition:ObsBucketLifecycleRuleTransition": {
      "properties": {
        "days": {
          "type": "number",
          "description": "Specifies the number of days when noncurrent object versions are automatically\ntransitioned to the specified storage class.\n"
        },
        "storageClass": {
          "type": "string",
          "description": "The class of storage used to store the object. Only \"STANDARD_IA\" and \"GLACIER\"\nare supported.\n"
        }
      },
      "type": "object",
      "required": [
        "days",
        "storageClass"
      ]
    },
    "flexibleengine:index/ObsBucketLogging:ObsBucketLogging": {
      "properties": {
        "agency": {
          "type": "string",
          "description": "Specifies the IAM agency of OBS cloud service.\n\n> The IAM agency requires the `PutObject` permission for the target bucket.  If default encryption is enabled for the\ntarget bucket, the agency also requires the `KMS Administrator` permission in the region where the target bucket is\nlocated.\n\n<a name=\"obs_website\"></a>\nThe `website` object supports:\n"
        },
        "targetBucket": {
          "type": "string",
          "description": "The name of the bucket that will receive the log objects.\nThe acl policy of the target bucket should be `log-delivery-write`.\n"
        },
        "targetPrefix": {
          "type": "string",
          "description": "To specify a key prefix for log objects.\n"
        }
      },
      "type": "object",
      "required": [
        "targetBucket"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "agency",
            "targetBucket"
          ]
        }
      }
    },
    "flexibleengine:index/ObsBucketNotificationsNotification:ObsBucketNotificationsNotification": {
      "properties": {
        "events": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Type of events that need to be notified. The events include `ObjectCreated:*`,\n`ObjectCreated:Put`, `ObjectCreated:Post`, `ObjectCreated:Copy`, `ObjectCreated:CompleteMultipartUpload`,\n`ObjectRemoved:*`, `ObjectRemoved:Delete`, `ObjectRemoved:DeleteMarkerCreated`.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of OBS Notification. If not specified, the system assigns an ID\nautomatically.\n"
        },
        "prefix": {
          "type": "string",
          "description": "Specifies the prefix filtering rule. The value contains a maximum of 1024 characters.\n"
        },
        "suffix": {
          "type": "string",
          "description": "Specifies the suffix filtering rule. The value contains a maximum of 1024 characters.\n"
        },
        "topicUrn": {
          "type": "string",
          "description": "Specifies the SMN topic that authorizes OBS to publish messages.\n"
        }
      },
      "type": "object",
      "required": [
        "events",
        "topicUrn"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "events",
            "name",
            "prefix",
            "suffix",
            "topicUrn"
          ]
        }
      }
    },
    "flexibleengine:index/ObsBucketObjectAclAccountPermission:ObsBucketObjectAclAccountPermission": {
      "properties": {
        "accessToAcls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to acl. Valid values are **READ_ACP** and **WRITE_ACP**.\n"
        },
        "accessToObjects": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to object. Only **READ** supported.\n"
        },
        "accountId": {
          "type": "string",
          "description": "Specifies the account id to authorize. The account id cannot be the object owner,\nand must be unique.\n"
        }
      },
      "type": "object",
      "required": [
        "accountId"
      ]
    },
    "flexibleengine:index/ObsBucketObjectAclOwnerPermission:ObsBucketObjectAclOwnerPermission": {
      "properties": {
        "accessToAcls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to acl. Valid values are **READ_ACP** and **WRITE_ACP**.\n"
        },
        "accessToObjects": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to object. Only **READ** supported.\n"
        }
      },
      "type": "object",
      "required": [
        "accessToAcls",
        "accessToObjects"
      ]
    },
    "flexibleengine:index/ObsBucketObjectAclPublicPermission:ObsBucketObjectAclPublicPermission": {
      "properties": {
        "accessToAcls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to acl. Valid values are **READ_ACP** and **WRITE_ACP**.\n"
        },
        "accessToObjects": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access to object. Only **READ** supported.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/ObsBucketReplicationRule:ObsBucketReplicationRule": {
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Specifies cross-region replication rule status. Defaults to `true`.\n"
        },
        "id": {
          "type": "string",
          "description": "The ID of a rule in UUID format.\n"
        },
        "prefix": {
          "type": "string",
          "description": "Specifies the object key prefix identifying one or more objects to which the rule\napplies and duplicated prefixes are not supported. If omitted, all objects in the bucket will be managed by the\nlifecycle rule. To copy a folder, end the prefix with a slash (/), for example, imgs/.\n"
        },
        "storageClass": {
          "type": "string",
          "description": "Specifies the storage class for replicated objects. Valid values are \"STANDARD\",\n\"WARM\" (Infrequent Access) and \"COLD\" (Archive).\nIf omitted, the storage class of object copies is the same as that of objects in the source bucket.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id"
          ]
        }
      }
    },
    "flexibleengine:index/ObsBucketWebsite:ObsBucketWebsite": {
      "properties": {
        "errorDocument": {
          "type": "string",
          "description": "Specifies the error page returned when an error occurs during static website\naccess. Only HTML, JPG, PNG, BMP, and WEBP files under the root directory are supported.\n"
        },
        "indexDocument": {
          "type": "string",
          "description": "Specifies the default homepage of the static website, only HTML web pages are\nsupported. It is **Optional** if using `redirect_all_requests_to`.\nOBS only allows files such as `index.html` in the root directory of a bucket to function as the default homepage.\nThat is to say, do not set the default homepage with a multi-level directory structure (for example, /page/index.html).\n"
        },
        "redirectAllRequestsTo": {
          "type": "string",
          "description": "A hostname to redirect all website requests for this bucket to.\nHostname can optionally be prefixed with a protocol (`http://` or `https://`) to use when redirecting requests.\nThe default is the protocol that is used in the original request.\n"
        },
        "routingRules": {
          "type": "string",
          "description": "A JSON or XML format containing routing rules describing redirect behavior and\nwhen redirects are applied.\nEach rule contains a `Condition` and a `Redirect` as shown in the following table:\n\nParameter | Key\n--- | ---\nCondition | KeyPrefixEquals, HttpErrorCodeReturnedEquals\nRedirect | Protocol, HostName, ReplaceKeyPrefixWith, ReplaceKeyWith, HttpRedirectCode\n\n<a name=\"obs_cors_rule\"></a>\nThe `cors_rule` object supports:\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RdsAccountTimeouts:RdsAccountTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RdsBackupDatabase:RdsBackupDatabase": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Database to be backed up for Microsoft SQL Server.\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "flexibleengine:index/RdsBackupTimeouts:RdsBackupTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RdsCrossRegionBackupStrategyTimeouts:RdsCrossRegionBackupStrategyTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RdsDatabasePrivilegeTimeouts:RdsDatabasePrivilegeTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RdsDatabasePrivilegeUser:RdsDatabasePrivilegeUser": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Specifies the username of the database account.\n"
        },
        "readonly": {
          "type": "boolean",
          "description": "Specifies the read-only permission. The value can be:\n+ **true**: indicates the read-only permission.\n+ **false**: indicates the read and write permission.\n\nThe default value is **false**.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "readonly"
          ]
        }
      }
    },
    "flexibleengine:index/RdsDatabaseTimeouts:RdsDatabaseTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RdsInstanceV1Backupstrategy:RdsInstanceV1Backupstrategy": {
      "properties": {
        "keepdays": {
          "type": "number",
          "description": "Specifies the number of days to retain the generated backup files.\nIts value range is 0 to 35. If this parameter is not specified or set to 0, the\nautomated backup policy is disabled.\n"
        },
        "starttime": {
          "type": "string",
          "description": "Indicates the backup start time that has been set.\nThe backup task will be triggered within one hour after the backup start time.\nValid value: The value cannot be empty. It must use the hh:mm:ss format and\nmust be valid. The current time is the UTC time.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RdsInstanceV1Datastore:RdsInstanceV1Datastore": {
      "properties": {
        "type": {
          "type": "string",
          "description": "Specifies the DB engine. Currently, MySQL, PostgreSQL, and\nMicrosoft SQL Server are supported. The value is MySQL, PostgreSQL, or SQLServer.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the DB instance version.\n\n* Available value for attributes\n\n<!-- markdownlint-disable MD033 -->\ntype | version\n---- | ---\nPostgreSQL | 9.5.5 <br> 9.6.3 <br> 9.6.5\nMySQL| 5.6.33 <br>5.6.30  <br>5.6.34 <br>5.6.35 <br>5.7.17\nSQLServer| 2014 SP2 SE\n"
        }
      },
      "type": "object",
      "required": [
        "type",
        "version"
      ]
    },
    "flexibleengine:index/RdsInstanceV1Ha:RdsInstanceV1Ha": {
      "properties": {
        "enable": {
          "type": "boolean",
          "description": "Specifies the configured parameters on the HA.\nValid value: The value is true or false. The value true indicates creating\nHA DB instances. The value false indicates creating a single DB instance.\n"
        },
        "replicationmode": {
          "type": "string",
          "description": "Specifies the replication mode for the standby DB instance.\nThe value cannot be empty.\nFor MySQL, the value is async or semisync.\nFor PostgreSQL, the value is async or sync.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RdsInstanceV1Nics:RdsInstanceV1Nics": {
      "properties": {
        "subnetid": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "subnetid"
      ]
    },
    "flexibleengine:index/RdsInstanceV1Securitygroup:RdsInstanceV1Securitygroup": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Specifies the ID obtained from the securitygroup.\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "flexibleengine:index/RdsInstanceV1Timeouts:RdsInstanceV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RdsInstanceV1Volume:RdsInstanceV1Volume": {
      "properties": {
        "size": {
          "type": "number",
          "description": "Specifies the volume size.\nIts value must be a multiple of 10 and the value range is 100 GB to 2000 GB.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the volume type. Valid value:\nIt must be COMMON (SATA) or ULTRAHIGH (SSD) and is case-sensitive.\n"
        }
      },
      "type": "object",
      "required": [
        "size",
        "type"
      ]
    },
    "flexibleengine:index/RdsInstanceV3BackupStrategy:RdsInstanceV3BackupStrategy": {
      "properties": {
        "keepDays": {
          "type": "number",
          "description": "Specifies the retention days for specific backup files. The value range is from 0 to\n732. If this parameter is not specified or set to 0, the automated backup policy is disabled.\n\n> **NOTE:** Primary/standby DB instances of Microsoft SQL Server do not support disabling the automated backup\npolicy.\n"
        },
        "period": {
          "type": "string"
        },
        "startTime": {
          "type": "string",
          "description": "Specifies the backup time window. Automated backups will be triggered during the\nbackup time window. It must be a valid value in the **hh:mm-HH:MM** format.\nThe current time is in the UTC format. The HH value must be 1 greater than the hh value. The values of mm and MM must\nbe the same and must be set to any of the following: 00, 15, 30, or 45. Example value: 08:15-09:15 23:00-00:00.\n\n<a name=\"rds_parameters\"></a>\nThe `parameters` block supports:\n"
        }
      },
      "type": "object",
      "required": [
        "startTime"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "keepDays",
            "period",
            "startTime"
          ]
        }
      }
    },
    "flexibleengine:index/RdsInstanceV3Db:RdsInstanceV3Db": {
      "properties": {
        "password": {
          "type": "string",
          "description": "Specifies the database password. The value cannot be\nempty and should contain 8 to 32 characters, including uppercase\nand lowercase letters, digits, and the following special\ncharacters: ~!@#%^*-_=+? You are advised to enter a strong\npassword to improve security, preventing security risks such as\nbrute force cracking. Changing this parameter will create a new resource.\n",
          "secret": true
        },
        "port": {
          "type": "number",
          "description": "Specifies the database port.\n+ The MySQL database port ranges from 1024 to 65535 (excluding 12017 and 33071, which are occupied by the RDS system\nand cannot be used). The default value is 3306.\n+ The PostgreSQL database port ranges from 2100 to 9500. The default value is 5432.\n+ The Microsoft SQL Server database port can be 1433 or ranges from 2100 to 9500, excluding 5355 and 5985.\nThe default value is 1433.\n+ The MariaDB database port ranges from 1024 to 65535 (excluding 12017 and 33071, which are occupied by the RDS system\nand cannot be used). The default value is 3306.\n\n<a name=\"rds_volume\"></a>\nThe `volume` block supports:\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the volume type. Its value can be any of the following\nand is case-sensitive:\n+ *COMMON*: indicates the SATA type.\n+ *ULTRAHIGH*: indicates the SSD type.\n+ *CLOUDSSD*: cloud SSD storage. This storage type is supported only with general-purpose and dedicated DB\ninstances.\n\nChanging this parameter will create a new resource.\n"
        },
        "userName": {
          "type": "string",
          "description": "Indicates the default username of database.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the database version. The supported versions of each database\nare as follows:\n+ **MySQL**: MySQL databases support **5.6**, **5.7** and **8.0**.\n+ **PostgreSQL**: PostgreSQL databases support **9.5**, **9.6**, **10**, **11**, **12**, **13**, **14** and\n**1.0 (Enhanced Edition)**.\n+ **SQLServer**: SQLServer databases support **2014 SE** and **2014 EE**.\n+ **MariaDB**: MariaDB databases support **10.5**.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "type",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "port",
            "type",
            "userName",
            "version"
          ]
        }
      }
    },
    "flexibleengine:index/RdsInstanceV3Node:RdsInstanceV3Node": {
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the list of AZ name.\nChanging this parameter will create a new resource.\n"
        },
        "id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the parameter name. Some of them needs the instance to be restarted\nto take effect.\n"
        },
        "role": {
          "type": "string",
          "description": "Indicates the node type. The value can be master or slave,\nindicating the primary node or standby node respectively.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "id",
        "name",
        "role",
        "status"
      ]
    },
    "flexibleengine:index/RdsInstanceV3Parameter:RdsInstanceV3Parameter": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Specifies the parameter name. Some of them needs the instance to be restarted\nto take effect.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the parameter value.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "value"
      ]
    },
    "flexibleengine:index/RdsInstanceV3Restore:RdsInstanceV3Restore": {
      "properties": {
        "backupId": {
          "type": "string"
        },
        "databaseName": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "instanceId": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "backupId",
        "instanceId"
      ]
    },
    "flexibleengine:index/RdsInstanceV3Timeouts:RdsInstanceV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "default": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RdsInstanceV3Volume:RdsInstanceV3Volume": {
      "properties": {
        "diskEncryptionId": {
          "type": "string",
          "description": "Specifies the key ID for disk encryption.\nChanging this parameter will create a new resource.\n\n<a name=\"rds_backup_strategy\"></a>\nThe `backup_strategy` block supports:\n"
        },
        "limitSize": {
          "type": "number"
        },
        "size": {
          "type": "number",
          "description": "Specifies the volume size. Its value range is from 40 GB to 4000 GB.\nThe value must be a multiple of 10 and greater than the original size.\n"
        },
        "triggerThreshold": {
          "type": "number"
        },
        "type": {
          "type": "string",
          "description": "Specifies the volume type. Its value can be any of the following\nand is case-sensitive:\n+ *COMMON*: indicates the SATA type.\n+ *ULTRAHIGH*: indicates the SSD type.\n+ *CLOUDSSD*: cloud SSD storage. This storage type is supported only with general-purpose and dedicated DB\ninstances.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "size",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "diskEncryptionId",
            "size",
            "type"
          ]
        }
      }
    },
    "flexibleengine:index/RdsParametergroupV3ConfigurationParameter:RdsParametergroupV3ConfigurationParameter": {
      "properties": {
        "description": {
          "type": "string",
          "description": "The parameter group description. It contains a maximum of 256 characters and\ncannot contain the following special characters:>!<\"&'= the value is left blank by default.\n"
        },
        "name": {
          "type": "string",
          "description": "The parameter group name. It contains a maximum of 64 characters.\n"
        },
        "readonly": {
          "type": "boolean",
          "description": "Indicates whether the parameter is read-only.\n"
        },
        "restartRequired": {
          "type": "boolean",
          "description": "Indicates whether a restart is required.\n"
        },
        "type": {
          "type": "string",
          "description": "The DB engine. Currently, MySQL, PostgreSQL, and Microsoft SQL Server are supported.\nThe value is case-insensitive and can be **mysql**, **postgresql**, **sqlserver**or **mariadb**.\n"
        },
        "value": {
          "type": "string",
          "description": "Indicates the parameter value.\n"
        },
        "valueRange": {
          "type": "string",
          "description": "Indicates the parameter value range.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "name",
        "readonly",
        "restartRequired",
        "type",
        "value",
        "valueRange"
      ]
    },
    "flexibleengine:index/RdsParametergroupV3Datastore:RdsParametergroupV3Datastore": {
      "properties": {
        "type": {
          "type": "string",
          "description": "The DB engine. Currently, MySQL, PostgreSQL, and Microsoft SQL Server are supported.\nThe value is case-insensitive and can be **mysql**, **postgresql**, **sqlserver**or **mariadb**.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the database version.\n\n+ MySQL databases support MySQL 5.6 and 5.7. Example value: 5.7.\n+ PostgreSQL databases support PostgreSQL 9.5 and 9.6. Example value: 9.5.\n+ MariaDB databases support MariaDB 10.5. Example value: 10.5.\n"
        }
      },
      "type": "object",
      "required": [
        "type",
        "version"
      ]
    },
    "flexibleengine:index/RdsParametergroupV3Timeouts:RdsParametergroupV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RdsReadReplicaV3Db:RdsReadReplicaV3Db": {
      "properties": {
        "port": {
          "type": "number",
          "description": "Indicates the database port information.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the volume type. Its value can be any of the following\nand is case-sensitive:\n- ULTRAHIGH: indicates the SSD type.\n- ULTRAHIGHPRO: indicates the ultra-high I/O.\n\nChanging this parameter will create a new resource.\n"
        },
        "userName": {
          "type": "string",
          "description": "Indicates the default username of database.\n"
        },
        "version": {
          "type": "string",
          "description": "Indicates the database version.\n"
        }
      },
      "type": "object",
      "required": [
        "port",
        "type",
        "userName",
        "version"
      ]
    },
    "flexibleengine:index/RdsReadReplicaV3Timeouts:RdsReadReplicaV3Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RdsReadReplicaV3Volume:RdsReadReplicaV3Volume": {
      "properties": {
        "diskEncryptionId": {
          "type": "string",
          "description": "Specifies the key ID for disk encryption.\nChanging this parameter will create a new resource.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the volume size. Its value range is from **40** GB to **4000** GB. The value must\nbe a multiple of 10 and greater than the original size.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the volume type. Its value can be any of the following\nand is case-sensitive:\n- ULTRAHIGH: indicates the SSD type.\n- ULTRAHIGHPRO: indicates the ultra-high I/O.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "size",
            "type"
          ]
        }
      }
    },
    "flexibleengine:index/RdsSqlAuditTimeouts:RdsSqlAuditTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RtsSoftwareConfigV1Timeouts:RtsSoftwareConfigV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/RtsStackV1Timeouts:RtsStackV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/S3BucketCorsRule:S3BucketCorsRule": {
      "properties": {
        "allowedHeaders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies which headers are allowed.\n"
        },
        "allowedMethods": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies which methods are allowed. Can be `GET`, `PUT`, `POST`, `DELETE`\nor `HEAD`.\n"
        },
        "allowedOrigins": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies which origins are allowed.\n"
        },
        "exposeHeaders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies expose header in the response.\n"
        },
        "maxAgeSeconds": {
          "type": "number",
          "description": "Specifies time in seconds that browser can cache the response for a preflight\nrequest.\n\n<a name=\"obs_versioning\"></a>\nThe `versioning` object supports:\n"
        }
      },
      "type": "object",
      "required": [
        "allowedMethods",
        "allowedOrigins"
      ]
    },
    "flexibleengine:index/S3BucketLifecycleRule:S3BucketLifecycleRule": {
      "properties": {
        "abortIncompleteMultipartUploadDays": {
          "type": "number",
          "description": "Specifies the number of days after initiating a multipart\nupload when the multipart upload must be completed.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies lifecycle rule status.\n"
        },
        "expirations": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FS3BucketLifecycleRuleExpiration:S3BucketLifecycleRuleExpiration"
          },
          "description": "Specifies a period in the object's expire.\nThe expiration object structure is documented below.\n"
        },
        "id": {
          "type": "string",
          "description": "Unique identifier for the rule.\n"
        },
        "noncurrentVersionExpirations": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FS3BucketLifecycleRuleNoncurrentVersionExpiration:S3BucketLifecycleRuleNoncurrentVersionExpiration"
          },
          "description": "Specifies when noncurrent object versions expire.\nThe noncurrent_version_expiration object structure is documented below.\n\nAt least one of `expiration`, `noncurrent_version_expiration` must be specified.\n\n<a name=\"obs_expiration\"></a>\nThe `expiration` object supports:\n"
        },
        "prefix": {
          "type": "string",
          "description": "Object key prefix identifying one or more objects to which the rule applies.\n"
        }
      },
      "type": "object",
      "required": [
        "enabled"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "enabled",
            "id"
          ]
        }
      }
    },
    "flexibleengine:index/S3BucketLifecycleRuleExpiration:S3BucketLifecycleRuleExpiration": {
      "properties": {
        "date": {
          "type": "string",
          "description": "Specifies the date after which you want the corresponding action to take effect.\n"
        },
        "days": {
          "type": "number",
          "description": "Specifies the number of days an object is noncurrent object versions expire.\n"
        },
        "expiredObjectDeleteMarker": {
          "type": "boolean",
          "description": "On a versioned bucket (versioning-enabled or versioning-suspended\nbucket), you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete\nmarkers.\n\n<a name=\"obs_noncurrent_version_expiration\"></a>\nThe `noncurrent_version_expiration` object supports:\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/S3BucketLifecycleRuleNoncurrentVersionExpiration:S3BucketLifecycleRuleNoncurrentVersionExpiration": {
      "properties": {
        "days": {
          "type": "number",
          "description": "Specifies the number of days an object is noncurrent object versions expire.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/S3BucketLogging:S3BucketLogging": {
      "properties": {
        "targetBucket": {
          "type": "string",
          "description": "The name of the bucket that will receive the log objects.\n"
        },
        "targetPrefix": {
          "type": "string",
          "description": "To specify a key prefix for log objects.\n\n<a name=\"obs_lifecycle_rule\"></a>\nThe `lifecycle_rule` object supports:\n"
        }
      },
      "type": "object",
      "required": [
        "targetBucket"
      ]
    },
    "flexibleengine:index/S3BucketVersioning:S3BucketVersioning": {
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Specifies lifecycle rule status.\n"
        },
        "mfaDelete": {
          "type": "boolean",
          "description": "Enable MFA delete for either change the versioning state of your bucket or\npermanently delete an object version. Default is `false`.\n\n<a name=\"obs_logging\"></a>\nThe `logging` object supports:\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/S3BucketWebsite:S3BucketWebsite": {
      "properties": {
        "errorDocument": {
          "type": "string",
          "description": "An absolute path to the document to return in case of a 4XX error.\n"
        },
        "indexDocument": {
          "type": "string",
          "description": "Amazon S3 returns this index document when requests are made to the root domain\nor any of the subfolders. It is **Optional** if using `redirect_all_requests_to`.\n"
        },
        "redirectAllRequestsTo": {
          "type": "string",
          "description": "A hostname to redirect all website requests for this bucket to.\nHostname can optionally be prefixed with a protocol (`http://` or `https://`) to use when redirecting requests.\nThe default is the protocol that is used in the original request.\n"
        },
        "routingRules": {
          "type": "string",
          "description": "A json array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html)\ndescribing redirect behavior and when redirects are applied.\n\n<a name=\"obs_cors_rule\"></a>\nThe `cors_rule` object supports:\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SdrsDrillV1Timeouts:SdrsDrillV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SdrsProtectedinstanceV1Timeouts:SdrsProtectedinstanceV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SdrsProtectiongroupV1Timeouts:SdrsProtectiongroupV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SdrsReplicationAttachV1Timeouts:SdrsReplicationAttachV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SdrsReplicationPairV1Timeouts:SdrsReplicationPairV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SfsAccessRuleV2Timeouts:SfsAccessRuleV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SfsFileSystemV2AccessRule:SfsFileSystemV2AccessRule": {
      "properties": {
        "accessLevel": {
          "type": "string",
          "description": "Specifies the access level of the shared file system. Possible values are *ro*\n(read-only) and *rw* (read-write). The default value is *rw* (read/write). Changing this will create a new access rule.\n"
        },
        "accessRuleId": {
          "type": "string",
          "description": "The UUID of the share access rule.\n"
        },
        "accessTo": {
          "type": "string",
          "description": "Specifies the value that defines the access rule. The value contains 1 to 255\ncharacters. Changing this will create a new access rule. The value varies according to the scenario:\n+ Set the VPC ID in VPC authorization scenarios.\n+ Set this parameter in IP address authorization scenario.\n\n- For an NFS shared file system, the value in the format of *VPC_ID#IP_address#priority#user_permission*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#100#all_squash,root_squash.\n\n- For a CIFS shared file system, the value in the format of *VPC_ID#IP_address#priority*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#0.\n\n> **NOTE:** If you want to create more access rules, please using flexibleengine_sfs_access_rule_v2.\n"
        },
        "accessType": {
          "type": "string",
          "description": "Specifies the type of the share access rule. The default value is *cert*.\nChanging this will create a new access rule.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the share access rule.\n"
        }
      },
      "type": "object",
      "required": [
        "accessLevel",
        "accessRuleId",
        "accessTo",
        "accessType",
        "status"
      ]
    },
    "flexibleengine:index/SfsFileSystemV2Timeouts:SfsFileSystemV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SfsTurboTimeouts:SfsTurboTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SmnSubscriptionV2Extension:SmnSubscriptionV2Extension": {
      "properties": {
        "clientId": {
          "type": "string"
        },
        "clientSecret": {
          "type": "string"
        },
        "keyword": {
          "type": "string"
        },
        "signSecret": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SmsServerTemplateTimeouts:SmsServerTemplateTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SmsTaskTargetServerDisk:SmsTaskTargetServerDisk": {
      "properties": {
        "deviceType": {
          "type": "string",
          "description": "Specifies the partition type. The value can be **NORMAL** and **OS**.\nChanging this parameter will create a new resource.\n"
        },
        "diskId": {
          "type": "string",
          "description": "Specifies the disk index, e.g. \"0\".\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the volume name. In Windows, it indicates the drive letter,\nand in Linux, it indicates the device ID, e.g. \"/dev/sda1\".\nChanging this parameter will create a new resource.\n"
        },
        "physicalVolumes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FSmsTaskTargetServerDiskPhysicalVolume:SmsTaskTargetServerDiskPhysicalVolume"
          },
          "description": "Specifies an array of physical volume informations.\nThe object is documented below. Changing this parameter will create a new resource.\n\n<a name=\"physical_volumes_object\"></a>\nThe `physical_volumes` block supports:\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the volume size in MB. Changing this parameter will create a new resource.\n"
        },
        "usedSize": {
          "type": "number",
          "description": "Specifies the used space in MB.\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "deviceType",
        "name",
        "size"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "deviceType",
            "diskId",
            "name",
            "size",
            "usedSize"
          ]
        }
      }
    },
    "flexibleengine:index/SmsTaskTargetServerDiskPhysicalVolume:SmsTaskTargetServerDiskPhysicalVolume": {
      "properties": {
        "deviceType": {
          "type": "string",
          "description": "Specifies the partition type. The value can be **NORMAL** and **OS**.\nChanging this parameter will create a new resource.\n"
        },
        "fileSystem": {
          "type": "string",
          "description": "Specifies the file system type, e.g. \"ext4\".\nChanging this parameter will create a new resource.\n"
        },
        "index": {
          "type": "number",
          "description": "Specifies the serial number of the volume.\nChanging this parameter will create a new resource.\n"
        },
        "mountPoint": {
          "type": "string",
          "description": "Specifies the mount point, e.g. \"/\".\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the volume name. In Windows, it indicates the drive letter,\nand in Linux, it indicates the device ID, e.g. \"/dev/sda1\".\nChanging this parameter will create a new resource.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the volume size in MB. Changing this parameter will create a new resource.\n"
        },
        "usedSize": {
          "type": "number",
          "description": "Specifies the used space in MB.\nChanging this parameter will create a new resource.\n"
        },
        "uuid": {
          "type": "string",
          "description": "Specifies the GUID of the volume.\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "deviceType",
        "fileSystem",
        "index",
        "mountPoint",
        "name",
        "size"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "deviceType",
            "fileSystem",
            "index",
            "mountPoint",
            "name",
            "size",
            "usedSize",
            "uuid"
          ]
        }
      }
    },
    "flexibleengine:index/SmsTaskTimeouts:SmsTaskTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SwrOrganizationTimeouts:SwrOrganizationTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SwrOrganizationUsersSelfPermission:SwrOrganizationUsersSelfPermission": {
      "properties": {
        "permission": {
          "type": "string",
          "description": "Specifies the permission of the existing IAM user.\nThe values can be **Manage**, **Write** and **Read**.\n"
        },
        "userId": {
          "type": "string",
          "description": "Specifies the ID of the existing IAM user.\n"
        },
        "userName": {
          "type": "string",
          "description": "Specifies the name of the existing IAM user.\n"
        }
      },
      "type": "object",
      "required": [
        "permission",
        "userId",
        "userName"
      ]
    },
    "flexibleengine:index/SwrOrganizationUsersTimeouts:SwrOrganizationUsersTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SwrOrganizationUsersUser:SwrOrganizationUsersUser": {
      "properties": {
        "permission": {
          "type": "string",
          "description": "Specifies the permission of the existing IAM user.\nThe values can be **Manage**, **Write** and **Read**.\n"
        },
        "userId": {
          "type": "string",
          "description": "Specifies the ID of the existing IAM user.\n"
        },
        "userName": {
          "type": "string",
          "description": "Specifies the name of the existing IAM user.\n"
        }
      },
      "type": "object",
      "required": [
        "permission",
        "userId"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "permission",
            "userId",
            "userName"
          ]
        }
      }
    },
    "flexibleengine:index/SwrRepositorySharingTimeouts:SwrRepositorySharingTimeouts": {
      "properties": {
        "default": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/SwrRepositoryTimeouts:SwrRepositoryTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/TmsTagsTag:TmsTagsTag": {
      "properties": {
        "key": {
          "type": "string",
          "description": "Specifies the tag key. The value can contain up to 36 characters.\nOnly letters, digits, hyphens (-), underscores (_), and Unicode characters from \\u4e00 to \\u9fff are allowed.\nChanging this will create a new resource.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the tag value. The value can contain up to 43 characters.\nOnly letters, digits, periods (.), hyphens (-), and underscores (_), and Unicode characters from \\u4e00 to \\u9fff\nare allowed. Changing this will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "key",
        "value"
      ]
    },
    "flexibleengine:index/TmsTagsTimeouts:TmsTagsTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VbsBackupPolicyV2Timeouts:VbsBackupPolicyV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VbsBackupV2Timeouts:VbsBackupV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcEipAssociateTimeouts:VpcEipAssociateTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcEipBandwidth:VpcEipBandwidth": {
      "properties": {
        "chargeMode": {
          "type": "string",
          "description": "Specifies whether the bandwidth is billed by traffic or by bandwidth size.\nOnly **traffic** supported now. Changing this creates a new EIP.\n"
        },
        "name": {
          "type": "string",
          "description": "The bandwidth name, which is a string of 1 to 64 characters\nthat contain letters, digits, underscores (_), and hyphens (-).\n"
        },
        "shareType": {
          "type": "string",
          "description": "Specifies the bandwidth type.\nThe value is *PER*, indicating that the bandwidth is dedicated.\nChanging this creates a new EIP.\n"
        },
        "size": {
          "type": "number",
          "description": "The bandwidth size. The value ranges from 1 to 1000 Mbit/s.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "shareType",
        "size"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "chargeMode",
            "name",
            "shareType",
            "size"
          ]
        }
      }
    },
    "flexibleengine:index/VpcEipPublicip:VpcEipPublicip": {
      "properties": {
        "ipAddress": {
          "type": "string",
          "description": "The value must be a valid IP address in the available IP address segment.\nChanging this creates a new EIP.\n"
        },
        "portId": {
          "type": "string",
          "description": "The port id which this EIP will associate with. If the value\nis not specified, the EIP will be in unbind state.\n"
        },
        "type": {
          "type": "string",
          "description": "The value must be a type supported by the system. Only **5_bgp** supported now.\nChanging this creates a new EIP.\n"
        }
      },
      "type": "object",
      "required": [
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "ipAddress",
            "portId",
            "type"
          ]
        }
      }
    },
    "flexibleengine:index/VpcEipTimeouts:VpcEipTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcEipV1Bandwidth:VpcEipV1Bandwidth": {
      "properties": {
        "chargeMode": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "shareType": {
          "type": "string"
        },
        "size": {
          "type": "number"
        }
      },
      "type": "object",
      "required": [
        "name",
        "shareType",
        "size"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "chargeMode",
            "name",
            "shareType",
            "size"
          ]
        }
      }
    },
    "flexibleengine:index/VpcEipV1Publicip:VpcEipV1Publicip": {
      "properties": {
        "ipAddress": {
          "type": "string"
        },
        "portId": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "ipAddress",
            "portId",
            "type"
          ]
        }
      }
    },
    "flexibleengine:index/VpcEipV1Timeouts:VpcEipV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcFlowLogV1Timeouts:VpcFlowLogV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcPeeringConnectionAccepterV2Timeouts:VpcPeeringConnectionAccepterV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcPeeringConnectionV2Timeouts:VpcPeeringConnectionV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcRouteTableRoute:VpcRouteTableRoute": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the supplementary information about the route.\nThe value is a string of no more than 255 characters and cannot contain angle brackets (< or >).\n"
        },
        "destination": {
          "type": "string",
          "description": "Specifies the destination address in the CIDR notation format,\nfor example, 192.168.200.0/24. The destination of each route must be unique and cannot overlap\nwith any subnet in the VPC.\n"
        },
        "nexthop": {
          "type": "string",
          "description": "Specifies the next hop.\n+ If the route type is **ecs**, the value is an ECS instance ID in the VPC.\n+ If the route type is **eni**, the value is the extension NIC of an ECS in the VPC.\n+ If the route type is **vip**, the value is a virtual IP address.\n+ If the route type is **nat**, the value is a VPN gateway ID.\n+ If the route type is **peering**, the value is a VPC peering connection ID.\n+ If the route type is **vpn**, the value is a VPN gateway ID.\n+ If the route type is **dc**, the value is a Direct Connect gateway ID.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the route type. Currently, the value can be:\n**ecs**, **eni**, **vip**, **nat**, **peering**, **vpn** and **dc**.\n"
        }
      },
      "type": "object",
      "required": [
        "destination",
        "nexthop",
        "type"
      ]
    },
    "flexibleengine:index/VpcRouteTableTimeouts:VpcRouteTableTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcRouteTimeouts:VpcRouteTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcRouteV2Timeouts:VpcRouteV2Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcSubnetV1Timeouts:VpcSubnetV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcV1Route:VpcV1Route": {
      "properties": {
        "destination": {
          "type": "string"
        },
        "nexthop": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "destination",
        "nexthop"
      ]
    },
    "flexibleengine:index/VpcV1Timeouts:VpcV1Timeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcepApprovalConnection:VpcepApprovalConnection": {
      "properties": {
        "domainId": {
          "type": "string",
          "description": "The user's domain ID.\n"
        },
        "endpointId": {
          "type": "string",
          "description": "The unique ID of the VPC endpoint.\n"
        },
        "packetId": {
          "type": "number",
          "description": "The packet ID of the VPC endpoint.\n"
        },
        "status": {
          "type": "string",
          "description": "The connection status of the VPC endpoint.\n"
        }
      },
      "type": "object",
      "required": [
        "domainId",
        "endpointId",
        "packetId",
        "status"
      ]
    },
    "flexibleengine:index/VpcepApprovalTimeouts:VpcepApprovalTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcepEndpointTimeouts:VpcepEndpointTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcepServiceConnection:VpcepServiceConnection": {
      "properties": {
        "domainId": {
          "type": "string",
          "description": "The user's domain ID.\n"
        },
        "endpointId": {
          "type": "string",
          "description": "The unique ID of the VPC endpoint.\n"
        },
        "packetId": {
          "type": "number",
          "description": "The packet ID of the VPC endpoint.\n"
        },
        "status": {
          "type": "string",
          "description": "The connection status of the VPC endpoint.\n"
        }
      },
      "type": "object",
      "required": [
        "domainId",
        "endpointId",
        "packetId",
        "status"
      ]
    },
    "flexibleengine:index/VpcepServicePortMapping:VpcepServicePortMapping": {
      "properties": {
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol used in port mappings.\nThe value can be *TCP* or *UDP*. The default value is *TCP*.\n"
        },
        "servicePort": {
          "type": "number",
          "description": "Specifies the port for accessing the VPC endpoint service.\nThis port is provided by the backend service to provide services. The value ranges from 1 to 65535.\n"
        },
        "terminalPort": {
          "type": "number",
          "description": "Specifies the port for accessing the VPC endpoint.\nThis port is provided by the VPC endpoint, allowing you to access the VPC endpoint service.\nThe value ranges from 1 to 65535.\n"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/VpcepServiceTimeouts:VpcepServiceTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/WafCertificateTimeouts:WafCertificateTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/WafDedicatedCertificateTimeouts:WafDedicatedCertificateTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/WafDedicatedDomainServer:WafDedicatedDomainServer": {
      "properties": {
        "address": {
          "type": "string",
          "description": "IP address or domain name of the web server that the client accesses. For\nexample, `192.168.1.1` or `www.example.com`. Changing this creates a new service.\n"
        },
        "clientProtocol": {
          "type": "string",
          "description": "Protocol type of the client. The options include `HTTP` and `HTTPS`.\nChanging this creates a new service.\n"
        },
        "port": {
          "type": "number",
          "description": "Port number used by the web server. The value ranges from 0 to 65535. Changing this\ncreates a new service.\n"
        },
        "serverProtocol": {
          "type": "string",
          "description": "Protocol used by WAF to forward client requests to the server. The\noptions include `HTTP` and `HTTPS`. Changing this creates a new service.\n"
        },
        "type": {
          "type": "string",
          "description": "Server network type, IPv4 or IPv6. Valid values are: `ipv4` and `ipv6`. Changing\nthis creates a new service.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "The id of the vpc used by the server. Changing this creates a service.\n"
        }
      },
      "type": "object",
      "required": [
        "address",
        "clientProtocol",
        "port",
        "serverProtocol",
        "type",
        "vpcId"
      ]
    },
    "flexibleengine:index/WafDedicatedInstanceTimeouts:WafDedicatedInstanceTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/WafDedicatedPolicyOption:WafDedicatedPolicyOption": {
      "properties": {
        "basicWebProtection": {
          "type": "boolean",
          "description": "Indicates whether Basic Web Protection is enabled.\n"
        },
        "blacklist": {
          "type": "boolean",
          "description": "Indicates whether Blacklist and Whitelist is enabled.\n"
        },
        "ccAttackProtection": {
          "type": "boolean",
          "description": "Indicates whether CC Attack Protection is enabled.\n"
        },
        "crawler": {
          "type": "boolean",
          "description": "Indicates whether the master crawler detection switch in Basic Web Protection is enabled.\n"
        },
        "crawlerEngine": {
          "type": "boolean",
          "description": "Indicates whether the Search Engine switch in Basic Web Protection is enabled.\n"
        },
        "crawlerOther": {
          "type": "boolean",
          "description": "Indicates whether detection of other crawlers in Basic Web Protection is enabled.\n"
        },
        "crawlerScanner": {
          "type": "boolean",
          "description": "Indicates whether the Scanner switch in Basic Web Protection is enabled.\n"
        },
        "crawlerScript": {
          "type": "boolean",
          "description": "Indicates whether the Script Tool switch in Basic Web Protection is enabled.\n"
        },
        "dataMasking": {
          "type": "boolean",
          "description": "Indicates whether Data Masking is enabled.\n"
        },
        "falseAlarmMasking": {
          "type": "boolean",
          "description": "Indicates whether False Alarm Masking is enabled.\n"
        },
        "generalCheck": {
          "type": "boolean",
          "description": "Indicates whether General Check in Basic Web Protection is enabled.\n"
        },
        "preciseProtection": {
          "type": "boolean",
          "description": "Indicates whether Precise Protection is enabled.\n"
        },
        "webTamperProtection": {
          "type": "boolean",
          "description": "Indicates whether Web Tamper Protection is enabled.\n"
        },
        "webshell": {
          "type": "boolean",
          "description": "Indicates whether webshell detection in Basic Web Protection is enabled.\n"
        }
      },
      "type": "object",
      "required": [
        "basicWebProtection",
        "blacklist",
        "ccAttackProtection",
        "crawler",
        "crawlerEngine",
        "crawlerOther",
        "crawlerScanner",
        "crawlerScript",
        "dataMasking",
        "falseAlarmMasking",
        "generalCheck",
        "preciseProtection",
        "webTamperProtection",
        "webshell"
      ]
    },
    "flexibleengine:index/WafDedicatedPolicyTimeouts:WafDedicatedPolicyTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/WafDomainServer:WafDomainServer": {
      "properties": {
        "address": {
          "type": "string",
          "description": "IP address or domain name of the web server that the client accesses.\nFor example, `192.168.1.1` or `www.a.com`.\n"
        },
        "clientProtocol": {
          "type": "string",
          "description": "Protocol type of the client. The options are *HTTP* and *HTTPS*.\n"
        },
        "port": {
          "type": "number",
          "description": "Port number used by the web server. The value ranges from 0 to 65535, for example, 8080.\n"
        },
        "serverProtocol": {
          "type": "string",
          "description": "Protocol used by WAF to forward client requests to the server.\nThe options are *HTTP* and *HTTPS*.\n"
        }
      },
      "type": "object",
      "required": [
        "address",
        "port"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "address",
            "clientProtocol",
            "port",
            "serverProtocol"
          ]
        }
      }
    },
    "flexibleengine:index/WafDomainTimeouts:WafDomainTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/WafPolicyProtectionStatus:WafPolicyProtectionStatus": {
      "properties": {
        "basicWebProtection": {
          "type": "boolean",
          "description": "Specifies whether Basic Web Protection is enabled.\n"
        },
        "blacklist": {
          "type": "boolean",
          "description": "Specifies whether Blacklist and Whitelist is enabled.\n"
        },
        "ccProtection": {
          "type": "boolean",
          "description": "Specifies whether CC Attack Protection is enabled.\n"
        },
        "crawlerEngine": {
          "type": "boolean",
          "description": "Specifies whether the Search Engine switch in Basic Web Protection is enabled.\n"
        },
        "crawlerOther": {
          "type": "boolean",
          "description": "Specifies whether detection of other crawlers in Basic Web Protection is enabled.\n"
        },
        "crawlerScanner": {
          "type": "boolean",
          "description": "Specifies whether the Scanner switch in Basic Web Protection is enabled.\n"
        },
        "crawlerScript": {
          "type": "boolean",
          "description": "Specifies whether the Script Tool switch in Basic Web Protection is enabled.\n"
        },
        "dataMasking": {
          "type": "boolean",
          "description": "Specifies whether Data Masking is enabled.\n"
        },
        "falseAlarmMasking": {
          "type": "boolean",
          "description": "Specifies whether False Alarm Masking is enabled.\n"
        },
        "generalCheck": {
          "type": "boolean",
          "description": "Specifies whether General Check in Basic Web Protection is enabled.\n"
        },
        "preciseProtection": {
          "type": "boolean",
          "description": "Specifies whether Precise Protection is enabled.\n"
        },
        "webTamperProtection": {
          "type": "boolean",
          "description": "Specifies whether Web Tamper Protection is enabled.\n"
        },
        "webshell": {
          "type": "boolean",
          "description": "Specifies whether webshell detection in Basic Web Protection is enabled.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "basicWebProtection",
            "blacklist",
            "ccProtection",
            "crawlerEngine",
            "crawlerOther",
            "crawlerScanner",
            "crawlerScript",
            "dataMasking",
            "falseAlarmMasking",
            "generalCheck",
            "preciseProtection",
            "webTamperProtection",
            "webshell"
          ]
        }
      }
    },
    "flexibleengine:index/WafPolicyTimeouts:WafPolicyTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "flexibleengine:index/WafRulePreciseProtectionCondition:WafRulePreciseProtectionCondition": {
      "properties": {
        "content": {
          "type": "string",
          "description": "Specifies the content matching the condition.\n"
        },
        "field": {
          "type": "string",
          "description": "Specifies the matched field. The value can be *path*, *user-agent*, *ip*,\n*params*, *cookie*, *referer*, and *header*.\n"
        },
        "logic": {
          "type": "string",
          "description": "Specifies the logic relationship. The value can be *contain*, *not_contain*,\n*equal*, *not_equal*, *prefix*, *not_prefix*, *suffix*, and *not_suffix*.\nIf `field` is set to *ip*, `logic` can only be *equal* or *not_equal*.\n"
        },
        "subfield": {
          "type": "string",
          "description": "Specifies the matched subfield.\n- If `field` is set to *cookie*, subfield indicates cookie name.\n- If `field` is set to *params*, subfield indicates param name.\n- If `field` is set to *header*, subfield indicates an option in the header.\n"
        }
      },
      "type": "object",
      "required": [
        "content",
        "field",
        "logic"
      ]
    },
    "flexibleengine:index/getApigEnvironmentsEnvironment:getApigEnvironmentsEnvironment": {
      "properties": {
        "createTime": {
          "type": "string",
          "description": "Time when the APIG environment was created, in RFC-3339 format.\n"
        },
        "description": {
          "type": "string",
          "description": "The description about the API environment.\n"
        },
        "id": {
          "type": "string",
          "description": "ID of the APIG environment.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API environment. The API environment name consists of 3 to 64\ncharacters, starting with a letter. Only letters, digits and underscores (_) are allowed.\n"
        }
      },
      "type": "object",
      "required": [
        "createTime",
        "description",
        "id",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getApigGroupsGroup:getApigGroupsGroup": {
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The creation time of the API group.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the API group.\n"
        },
        "environments": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetApigGroupsGroupEnvironment:getApigGroupsGroupEnvironment"
          },
          "description": "The array of one or more environments of the API group.\nThe environment structure is documented below.\n"
        },
        "id": {
          "type": "string",
          "description": "The variable ID.\n"
        },
        "isDefault": {
          "type": "number",
          "description": "Indicates whether the API group is the default group.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the API group name used to query.\n"
        },
        "onSellStatus": {
          "type": "number",
          "description": "Whether it has been listed on the cloud store.\nThe valid values are as follows:\n+ **1**: Listed.\n+ **2**: Not listed.\n+ **3**: Under review.\n"
        },
        "slDomain": {
          "type": "string",
          "description": "The subdomain name assigned by the system by default.\n"
        },
        "slDomains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of subdomain names assigned by the system by default.\n"
        },
        "status": {
          "type": "number",
          "description": "The current status of the API group.\nThe valid values are as follows:\n+ **1**: Normal.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The latest update time of the API group.\n"
        },
        "urlDomains": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetApigGroupsGroupUrlDomain:getApigGroupsGroupUrlDomain"
          },
          "description": "List of independent domains bound on the API group.\nThe url_domains structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "description",
        "environments",
        "id",
        "isDefault",
        "name",
        "onSellStatus",
        "slDomain",
        "slDomains",
        "status",
        "updatedAt",
        "urlDomains"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getApigGroupsGroupEnvironment:getApigGroupsGroupEnvironment": {
      "properties": {
        "environmentId": {
          "type": "string",
          "description": "The ID of the environment to which the variables belong.\n"
        },
        "variables": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetApigGroupsGroupEnvironmentVariable:getApigGroupsGroupEnvironmentVariable"
          },
          "description": "The array of one or more environment variables.  \nThe variable structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "environmentId",
        "variables"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getApigGroupsGroupEnvironmentVariable:getApigGroupsGroupEnvironmentVariable": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The variable ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the API group name used to query.\n"
        },
        "value": {
          "type": "string",
          "description": "The variable value.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getApigGroupsGroupUrlDomain:getApigGroupsGroupUrlDomain": {
      "properties": {
        "cnameStatus": {
          "type": "number",
          "description": "CNAME resolution status of the domain name.\nThe valid values are as follows:\n+ **1**: Not resolved.\n+ **2**: Resolving.\n+ **3**: Resolved.\n+ **4**: Resolution failed.\n"
        },
        "id": {
          "type": "string",
          "description": "The variable ID.\n"
        },
        "isHasTrustedRootCa": {
          "type": "boolean",
          "description": "Whether a trusted root certificate (CA) exists. The value is true\nif trusted_root_ca exists in the bound certificate. The default is **false**.\n"
        },
        "minSslVersion": {
          "type": "string",
          "description": "Minimum SSL version. The default is **TLSv1.1**.\nThe valid values are as follows:\n+ **TLSv1.1**\n+ **TLSv1.2**\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the API group name used to query.\n"
        },
        "sslId": {
          "type": "string",
          "description": "The SSL certificate ID.\n"
        },
        "sslName": {
          "type": "string",
          "description": "The SSL certificate name.\n"
        },
        "verifiedClientCertificateEnabled": {
          "type": "boolean",
          "description": "Whether to enable client certificate verification.\nThis parameter is available only when a certificate is bound. It is enabled by default if trusted_root_ca exists,\nand disabled if trusted_root_ca does not exist. The default is **false**.\n"
        }
      },
      "type": "object",
      "required": [
        "cnameStatus",
        "id",
        "isHasTrustedRootCa",
        "minSslVersion",
        "name",
        "sslId",
        "sslName",
        "verifiedClientCertificateEnabled"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getAsConfigurationsConfiguration:getAsConfigurationsConfiguration": {
      "properties": {
        "instanceConfigs": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetAsConfigurationsConfigurationInstanceConfig:getAsConfigurationsConfigurationInstanceConfig"
          },
          "description": "The list of information about instance configurations.\nThe instance_config structure is documented below.\n"
        },
        "scalingConfigurationName": {
          "type": "string",
          "description": "The AS configuration name.\n"
        },
        "status": {
          "type": "string",
          "description": "The AS configuration status, the value can be **Bound** or **Unbound**.\n"
        }
      },
      "type": "object",
      "required": [
        "instanceConfigs",
        "scalingConfigurationName",
        "status"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getAsConfigurationsConfigurationInstanceConfig:getAsConfigurationsConfigurationInstanceConfig": {
      "properties": {
        "chargingMode": {
          "type": "string",
          "description": "The bandwidth billing mode, the value can be **traffic** or **bandwidth**.\n"
        },
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetAsConfigurationsConfigurationInstanceConfigDisk:getAsConfigurationsConfigurationInstanceConfigDisk"
          },
          "description": "The list of disk group information. The disk structure is documented below.\n"
        },
        "ecsGroupId": {
          "type": "string",
          "description": "The ECS group ID.\n"
        },
        "flavor": {
          "type": "string",
          "description": "The ECS flavor name.\n"
        },
        "flavorPriorityPolicy": {
          "type": "string",
          "description": "The priority policy used when there are multiple flavors\nand instances to be created using an AS configuration. The value can be `PICK_FIRST` and `COST_FIRST`.\n"
        },
        "image": {
          "type": "string",
          "description": "The ECS image ID.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "The ECS instance ID when using its specification as the template to create AS configurations.\n"
        },
        "keyName": {
          "type": "string",
          "description": "The name of the SSH key pair used to log in to the instance.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to make available from within the instance.\n"
        },
        "personalities": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetAsConfigurationsConfigurationInstanceConfigPersonality:getAsConfigurationsConfigurationInstanceConfigPersonality"
          },
          "description": "The list of information about the injected file.\nThe personality structure is documented below.\n"
        },
        "publicIps": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetAsConfigurationsConfigurationInstanceConfigPublicIp:getAsConfigurationsConfigurationInstanceConfigPublicIp"
          },
          "description": "The EIP list of the ECS instance.\nThe public_ip structure is documented below.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more security group IDs.\n"
        },
        "userData": {
          "type": "string",
          "description": "The user data to provide when launching the instance.\n"
        }
      },
      "type": "object",
      "required": [
        "chargingMode",
        "disks",
        "ecsGroupId",
        "flavor",
        "flavorPriorityPolicy",
        "image",
        "instanceId",
        "keyName",
        "metadata",
        "personalities",
        "publicIps",
        "securityGroupIds",
        "userData"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getAsConfigurationsConfigurationInstanceConfigDisk:getAsConfigurationsConfigurationInstanceConfigDisk": {
      "properties": {
        "diskType": {
          "type": "string",
          "description": "The disk type.\n"
        },
        "kmsId": {
          "type": "string",
          "description": "The encryption KMS ID of the **DATA** disk.\n"
        },
        "size": {
          "type": "number",
          "description": "The bandwidth (Mbit/s).\n"
        },
        "volumeType": {
          "type": "string",
          "description": "The volume type.\n"
        }
      },
      "type": "object",
      "required": [
        "diskType",
        "kmsId",
        "size",
        "volumeType"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getAsConfigurationsConfigurationInstanceConfigPersonality:getAsConfigurationsConfigurationInstanceConfigPersonality": {
      "properties": {
        "content": {
          "type": "string",
          "description": "The content of the injected file.\n"
        },
        "path": {
          "type": "string",
          "description": "The path of the injected file.\n"
        }
      },
      "type": "object",
      "required": [
        "content",
        "path"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getAsConfigurationsConfigurationInstanceConfigPublicIp:getAsConfigurationsConfigurationInstanceConfigPublicIp": {
      "properties": {
        "eips": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetAsConfigurationsConfigurationInstanceConfigPublicIpEip:getAsConfigurationsConfigurationInstanceConfigPublicIpEip"
          },
          "description": "The list of EIP configuration that will be automatically assigned to the instance.\nThe eip object structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "eips"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getAsConfigurationsConfigurationInstanceConfigPublicIpEip:getAsConfigurationsConfigurationInstanceConfigPublicIpEip": {
      "properties": {
        "bandwidths": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetAsConfigurationsConfigurationInstanceConfigPublicIpEipBandwidth:getAsConfigurationsConfigurationInstanceConfigPublicIpEipBandwidth"
          },
          "description": "The list of bandwidth information.\nThe bandwidth object structure is documented below.\n"
        },
        "ipType": {
          "type": "string",
          "description": "The EIP type.\n"
        }
      },
      "type": "object",
      "required": [
        "bandwidths",
        "ipType"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getAsConfigurationsConfigurationInstanceConfigPublicIpEipBandwidth:getAsConfigurationsConfigurationInstanceConfigPublicIpEipBandwidth": {
      "properties": {
        "chargingMode": {
          "type": "string",
          "description": "The bandwidth billing mode, the value can be **traffic** or **bandwidth**.\n"
        },
        "shareType": {
          "type": "string",
          "description": "The bandwidth sharing type.\n"
        },
        "size": {
          "type": "number",
          "description": "The bandwidth (Mbit/s).\n"
        }
      },
      "type": "object",
      "required": [
        "chargingMode",
        "shareType",
        "size"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getAsGroupsGroup:getAsGroupsGroup": {
      "properties": {
        "activityType": {
          "type": "string",
          "description": "The type of the AS action.\n"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The AZ information.\n"
        },
        "coolDownTime": {
          "type": "number",
          "description": "The cooling duration, in seconds..\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The time when an AS group was created. The time format complies with UTC.\n"
        },
        "currentInstanceNumber": {
          "type": "number",
          "description": "The number of current instances in the AS group.\n"
        },
        "deletePublicip": {
          "type": "boolean",
          "description": "Whether to delete the EIP bound to the ECS when deleting the ECS.\n"
        },
        "deleteVolume": {
          "type": "boolean",
          "description": "Whether to delete the data disks attached to the ECS when deleting the ECS.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the AS group.\n"
        },
        "desireInstanceNumber": {
          "type": "number",
          "description": "The expected number of instances in the AS group.\n"
        },
        "detail": {
          "type": "string",
          "description": "Details about the AS group. If a scaling action fails, this parameter is used to record errors.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the AS group.\nChanging this will create a new resource.\n"
        },
        "healthPeriodicAuditGracePeriod": {
          "type": "number",
          "description": "The grace period for health check.\n"
        },
        "healthPeriodicAuditMethod": {
          "type": "string",
          "description": "The health check method.\n"
        },
        "healthPeriodicAuditTime": {
          "type": "number",
          "description": "The health check interval.\n"
        },
        "iamAgencyName": {
          "type": "string",
          "description": "The agency name.\n"
        },
        "instanceTerminatePolicy": {
          "type": "string",
          "description": "The instance removal policy.\n"
        },
        "instances": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The scaling group instances ids.\n"
        },
        "isScaling": {
          "type": "boolean",
          "description": "The scaling flag of the AS group.\n"
        },
        "lbaasListeners": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetAsGroupsGroupLbaasListener:getAsGroupsGroupLbaasListener"
          },
          "description": "The enhanced load balancers.\nThe lbaas_listeners structure is documented below.\n"
        },
        "maxInstanceNumber": {
          "type": "number",
          "description": "The maximum number of instances in the AS group.\n"
        },
        "minInstanceNumber": {
          "type": "number",
          "description": "The minimum number of instances in the AS group.\n"
        },
        "multiAzScalingPolicy": {
          "type": "string",
          "description": "The priority policy used to select target AZs when adjusting the number of\ninstances in an AS group.\n"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetAsGroupsGroupNetwork:getAsGroupsGroupNetwork"
          },
          "description": "The network information.\nThe networks structure is documented below.\n"
        },
        "scalingConfigurationId": {
          "type": "string",
          "description": "Specifies the AS configuration ID, which can be obtained using\nthe API for listing AS configurations.\n"
        },
        "scalingConfigurationName": {
          "type": "string",
          "description": "The AS configuration name.\n"
        },
        "scalingGroupId": {
          "type": "string",
          "description": "The AS group ID.\n"
        },
        "scalingGroupName": {
          "type": "string",
          "description": "The name of the AS group.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetAsGroupsGroupSecurityGroup:getAsGroupsGroupSecurityGroup"
          },
          "description": "The security group information.\nThe security_groups structure is documented below.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the AS group status. The options are as follows:\n- **INSERVICE**: indicates that the AS group is functional.\n- **PAUSED**: indicates that the AS group is paused.\n- **ERROR**: indicates that the AS group malfunctions.\n- **DELETING**: indicates that the AS group is being deleted.\n- **FREEZED**: indicates that the AS group has been frozen.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The tag of AS group.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "The ID of the VPC to which the AS group belongs.\n"
        }
      },
      "type": "object",
      "required": [
        "activityType",
        "availabilityZones",
        "coolDownTime",
        "createdAt",
        "currentInstanceNumber",
        "deletePublicip",
        "deleteVolume",
        "description",
        "desireInstanceNumber",
        "detail",
        "enterpriseProjectId",
        "healthPeriodicAuditGracePeriod",
        "healthPeriodicAuditMethod",
        "healthPeriodicAuditTime",
        "iamAgencyName",
        "instanceTerminatePolicy",
        "instances",
        "isScaling",
        "lbaasListeners",
        "maxInstanceNumber",
        "minInstanceNumber",
        "multiAzScalingPolicy",
        "networks",
        "scalingConfigurationId",
        "scalingConfigurationName",
        "scalingGroupId",
        "scalingGroupName",
        "securityGroups",
        "status",
        "tags",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getAsGroupsGroupLbaasListener:getAsGroupsGroupLbaasListener": {
      "properties": {
        "poolId": {
          "type": "string",
          "description": "The backend ECS group ID.\n"
        },
        "protocolPort": {
          "type": "number",
          "description": "The backend protocol ID, which is the port on which a backend ECS listens for traffic.\n"
        },
        "weight": {
          "type": "number",
          "description": "The weight, which determines the portion of requests a backend ECS processes\ncompared to other backend ECSs added to the same listener.\n"
        }
      },
      "type": "object",
      "required": [
        "poolId",
        "protocolPort",
        "weight"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getAsGroupsGroupNetwork:getAsGroupsGroupNetwork": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the security group.\n"
        },
        "ipv6BandwidthId": {
          "type": "string",
          "description": "The ID of the shared bandwidth of an IPv6 address.\n"
        },
        "ipv6Enable": {
          "type": "boolean",
          "description": "Specifies whether to support IPv6 addresses.\n"
        },
        "sourceDestCheck": {
          "type": "boolean",
          "description": "Whether processesing only traffic that is destined specifically for it.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "ipv6BandwidthId",
        "ipv6Enable",
        "sourceDestCheck"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getAsGroupsGroupSecurityGroup:getAsGroupsGroupSecurityGroup": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the security group.\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCbrBackupChildren:getCbrBackupChildren": {
      "properties": {
        "checkpointId": {
          "type": "string",
          "description": "The restore point ID of the sub-backup resource.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The creation time of the sub-backup.\n"
        },
        "description": {
          "type": "string",
          "description": "The sub-backup description.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "The enterprise project to which the backup sub-backup resource belongs.\n"
        },
        "expiredAt": {
          "type": "string",
          "description": "The expiration time of the sub-backup.\n"
        },
        "extendInfos": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetCbrBackupChildrenExtendInfo:getCbrBackupChildrenExtendInfo"
          },
          "description": "The extended information. The object structure is documented below.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies the backup ID.\n"
        },
        "name": {
          "type": "string",
          "description": "The sub-backup name.\n"
        },
        "replicationRecords": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetCbrBackupChildrenReplicationRecord:getCbrBackupChildrenReplicationRecord"
          },
          "description": "The replication records. The object structure is\ndocumented above.\n"
        },
        "resourceAz": {
          "type": "string",
          "description": "The availability zone where the backup sub-backup resource is located.\n"
        },
        "resourceId": {
          "type": "string",
          "description": "The sub-backup resource ID.\n"
        },
        "resourceName": {
          "type": "string",
          "description": "The sub-backup resource name.\n"
        },
        "resourceSize": {
          "type": "number",
          "description": "The sub-backup resource size, in GB.\n"
        },
        "resourceType": {
          "type": "string",
          "description": "The sub-backup resource type.\n"
        },
        "status": {
          "type": "string",
          "description": "The sub-backup status.\n"
        },
        "type": {
          "type": "string",
          "description": "The sub-backup type.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The latest update time of the sub-backup.\n"
        },
        "vaultId": {
          "type": "string",
          "description": "The vault to which the backup resource belongs.\n"
        }
      },
      "type": "object",
      "required": [
        "checkpointId",
        "createdAt",
        "description",
        "enterpriseProjectId",
        "expiredAt",
        "extendInfos",
        "id",
        "name",
        "replicationRecords",
        "resourceAz",
        "resourceId",
        "resourceName",
        "resourceSize",
        "resourceType",
        "status",
        "type",
        "updatedAt",
        "vaultId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCbrBackupChildrenExtendInfo:getCbrBackupChildrenExtendInfo": {
      "properties": {
        "autoTrigger": {
          "type": "boolean",
          "description": "Whether the backup is automatically generated.\n"
        },
        "bootable": {
          "type": "boolean",
          "description": "Whether the backup is a system disk backup.\n"
        },
        "containSystemDisk": {
          "type": "boolean",
          "description": "Whether the VM backup data contains system disk data.\n"
        },
        "encrypted": {
          "type": "boolean",
          "description": "Whether the backup is encrypted.\n"
        },
        "incremental": {
          "type": "boolean",
          "description": "Whether the backup is an incremental backup.\n"
        },
        "isSystemDisk": {
          "type": "boolean",
          "description": "Whether the disk is a system disk.\n"
        },
        "osRegistryImages": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The ID list of images created using backups.\n"
        },
        "snapshotId": {
          "type": "string",
          "description": "Snapshot ID of the disk backup.\n"
        },
        "supportLld": {
          "type": "boolean",
          "description": "Whether to allow lazyloading for fast restoration.\n"
        },
        "supportedRestoreMode": {
          "type": "string",
          "description": "The restoration mode.\n"
        }
      },
      "type": "object",
      "required": [
        "autoTrigger",
        "bootable",
        "containSystemDisk",
        "encrypted",
        "incremental",
        "isSystemDisk",
        "osRegistryImages",
        "snapshotId",
        "supportLld",
        "supportedRestoreMode"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCbrBackupChildrenReplicationRecord:getCbrBackupChildrenReplicationRecord": {
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The creation time of the sub-backup.\n"
        },
        "destinationBackupId": {
          "type": "string",
          "description": "The ID of the destination backup used for replication.\n"
        },
        "destinationCheckpointId": {
          "type": "string",
          "description": "The record ID of the destination backup used for replication.\n"
        },
        "destinationProjectId": {
          "type": "string",
          "description": "The ID of the replication destination project.\n"
        },
        "destinationRegion": {
          "type": "string",
          "description": "The replication destination region.\n"
        },
        "destinationVaultId": {
          "type": "string",
          "description": "The destination vault ID.\n"
        },
        "extraInfos": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetCbrBackupChildrenReplicationRecordExtraInfo:getCbrBackupChildrenReplicationRecordExtraInfo"
          },
          "description": "The additional information of the replication.\nThe object structure is documented below.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies the backup ID.\n"
        },
        "sourceBackupId": {
          "type": "string",
          "description": "The ID of the source backup used for replication.\n"
        },
        "sourceCheckpointId": {
          "type": "string",
          "description": "The ID of the source backup record used for replication.\n"
        },
        "sourceProjectId": {
          "type": "string",
          "description": "The ID of the replication source project.\n"
        },
        "sourceRegion": {
          "type": "string",
          "description": "The replication source region.\n"
        },
        "status": {
          "type": "string",
          "description": "The sub-backup status.\n"
        },
        "vaultId": {
          "type": "string",
          "description": "The vault to which the backup resource belongs.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "destinationBackupId",
        "destinationCheckpointId",
        "destinationProjectId",
        "destinationRegion",
        "destinationVaultId",
        "extraInfos",
        "id",
        "sourceBackupId",
        "sourceCheckpointId",
        "sourceProjectId",
        "sourceRegion",
        "status",
        "vaultId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCbrBackupChildrenReplicationRecordExtraInfo:getCbrBackupChildrenReplicationRecordExtraInfo": {
      "properties": {
        "autoTrigger": {
          "type": "boolean",
          "description": "Whether the backup is automatically generated.\n"
        },
        "destinationVaultId": {
          "type": "string",
          "description": "The destination vault ID.\n"
        },
        "failCode": {
          "type": "string",
          "description": "The error code.\n"
        },
        "failReason": {
          "type": "string",
          "description": "The error cause.\n"
        },
        "progress": {
          "type": "number",
          "description": "The replication progress.\n"
        }
      },
      "type": "object",
      "required": [
        "autoTrigger",
        "destinationVaultId",
        "failCode",
        "failReason",
        "progress"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCbrBackupExtendInfo:getCbrBackupExtendInfo": {
      "properties": {
        "autoTrigger": {
          "type": "boolean",
          "description": "Whether the backup is automatically generated.\n"
        },
        "bootable": {
          "type": "boolean",
          "description": "Whether the backup is a system disk backup.\n"
        },
        "containSystemDisk": {
          "type": "boolean",
          "description": "Whether the VM backup data contains system disk data.\n"
        },
        "encrypted": {
          "type": "boolean",
          "description": "Whether the backup is encrypted.\n"
        },
        "incremental": {
          "type": "boolean",
          "description": "Whether the backup is an incremental backup.\n"
        },
        "isSystemDisk": {
          "type": "boolean",
          "description": "Whether the disk is a system disk.\n"
        },
        "osRegistryImages": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The ID list of images created using backups.\n"
        },
        "snapshotId": {
          "type": "string",
          "description": "Snapshot ID of the disk backup.\n"
        },
        "supportLld": {
          "type": "boolean",
          "description": "Whether to allow lazyloading for fast restoration.\n"
        },
        "supportedRestoreMode": {
          "type": "string",
          "description": "The restoration mode.\n"
        }
      },
      "type": "object",
      "required": [
        "autoTrigger",
        "bootable",
        "containSystemDisk",
        "encrypted",
        "incremental",
        "isSystemDisk",
        "osRegistryImages",
        "snapshotId",
        "supportLld",
        "supportedRestoreMode"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCbrBackupReplicationRecord:getCbrBackupReplicationRecord": {
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The creation time of the sub-backup.\n"
        },
        "destinationBackupId": {
          "type": "string",
          "description": "The ID of the destination backup used for replication.\n"
        },
        "destinationCheckpointId": {
          "type": "string",
          "description": "The record ID of the destination backup used for replication.\n"
        },
        "destinationProjectId": {
          "type": "string",
          "description": "The ID of the replication destination project.\n"
        },
        "destinationRegion": {
          "type": "string",
          "description": "The replication destination region.\n"
        },
        "destinationVaultId": {
          "type": "string",
          "description": "The destination vault ID.\n"
        },
        "extraInfos": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetCbrBackupReplicationRecordExtraInfo:getCbrBackupReplicationRecordExtraInfo"
          },
          "description": "The additional information of the replication.\nThe object structure is documented below.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies the backup ID.\n"
        },
        "sourceBackupId": {
          "type": "string",
          "description": "The ID of the source backup used for replication.\n"
        },
        "sourceCheckpointId": {
          "type": "string",
          "description": "The ID of the source backup record used for replication.\n"
        },
        "sourceProjectId": {
          "type": "string",
          "description": "The ID of the replication source project.\n"
        },
        "sourceRegion": {
          "type": "string",
          "description": "The replication source region.\n"
        },
        "status": {
          "type": "string",
          "description": "The sub-backup status.\n"
        },
        "vaultId": {
          "type": "string",
          "description": "The vault to which the backup resource belongs.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "destinationBackupId",
        "destinationCheckpointId",
        "destinationProjectId",
        "destinationRegion",
        "destinationVaultId",
        "extraInfos",
        "id",
        "sourceBackupId",
        "sourceCheckpointId",
        "sourceProjectId",
        "sourceRegion",
        "status",
        "vaultId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCbrBackupReplicationRecordExtraInfo:getCbrBackupReplicationRecordExtraInfo": {
      "properties": {
        "autoTrigger": {
          "type": "boolean",
          "description": "Whether the backup is automatically generated.\n"
        },
        "destinationVaultId": {
          "type": "string",
          "description": "The destination vault ID.\n"
        },
        "failCode": {
          "type": "string",
          "description": "The error code.\n"
        },
        "failReason": {
          "type": "string",
          "description": "The error cause.\n"
        },
        "progress": {
          "type": "number",
          "description": "The replication progress.\n"
        }
      },
      "type": "object",
      "required": [
        "autoTrigger",
        "destinationVaultId",
        "failCode",
        "failReason",
        "progress"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCbrVaultsVault:getCbrVaultsVault": {
      "properties": {
        "allocated": {
          "type": "number",
          "description": "The allocated capacity of the vault, in GB.\n"
        },
        "autoExpandEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable automatic expansion of the backup protection\ntype vault. Defaults to **false**.\n"
        },
        "consistentLevel": {
          "type": "string",
          "description": "Specifies the consistent level (specification) of the vault.\nThe valid values are as follows:\n+ **[crash_consistent](https://docs.prod-cloud-ocb.orange-business.com/usermanual/cbr/cbr_03_0109.html)**\n+ **[app_consistent](https://docs.prod-cloud-ocb.orange-business.com/usermanual/cbr/cbr_03_0109.html)**\n\nOnly server type vaults support application consistent.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the ID of the enterprise project to which the vault belongs.\n"
        },
        "id": {
          "type": "string",
          "description": "The vault ID in UUID format.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the vault name. This parameter can contain a maximum of 64\ncharacters, which may consist of letters, digits, underscores(_) and hyphens (-).\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the ID of the policy associated with the vault.\nThe `policy_id` cannot be used with the vault of replicate protection type.\n"
        },
        "protectionType": {
          "type": "string",
          "description": "Specifies the protection type of the vault.\nThe valid values are **backup** and **replication**. Vaults of type **disk** don't support **replication**.\n"
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetCbrVaultsVaultResource:getCbrVaultsVaultResource"
          },
          "description": "The array of one or more resources to attach to the vault.\nThe object structure is documented below.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the vault sapacity, in GB. The valid value range is `1` to `10,485,760`.\n"
        },
        "specCode": {
          "type": "string",
          "description": "The specification code.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the vault status, including **available**, **lock**, **frozen** and **error**.\n"
        },
        "storage": {
          "type": "string",
          "description": "The name of the bucket for the vault.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the vault.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the object type of the vault. The vaild values are as follows:\n+ **server** (Cloud Servers)\n+ **disk** (EVS Disks)\n+ **turbo** (SFS Turbo file systems)\n"
        },
        "used": {
          "type": "number",
          "description": "The used capacity, in GB.\n"
        }
      },
      "type": "object",
      "required": [
        "allocated",
        "autoExpandEnabled",
        "consistentLevel",
        "enterpriseProjectId",
        "id",
        "name",
        "policyId",
        "protectionType",
        "resources",
        "size",
        "specCode",
        "status",
        "storage",
        "tags",
        "type",
        "used"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCbrVaultsVaultResource:getCbrVaultsVaultResource": {
      "properties": {
        "excludes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The array of disk IDs which will be excluded in the backup.\n"
        },
        "includes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The array of disk or SFS file system IDs which will be included in the backup.\n"
        },
        "serverId": {
          "type": "string",
          "description": "The ID of the ECS instance to be backed up.\n"
        }
      },
      "type": "object",
      "required": [
        "excludes",
        "includes",
        "serverId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCceAddonTemplateSupportVersion:getCceAddonTemplateSupportVersion": {
      "properties": {
        "bareMetals": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The cluster (Bare Metal) version that the add-on template supported.\n"
        },
        "virtualMachines": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The cluster (Virtual Machine) version that the add-on template supported.\n"
        }
      },
      "type": "object",
      "required": [
        "bareMetals",
        "virtualMachines"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCceClusterV3Master:getCceClusterV3Master": {
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "The availability zone (AZ) of the master node.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCceClustersCluster:getCceClustersCluster": {
      "properties": {
        "authenticationMode": {
          "type": "string",
          "description": "The authentication mode of the cluster, possible values are x509 and rbac. Defaults to **rbac**.\n"
        },
        "billingMode": {
          "type": "number",
          "description": "The charging mode of the cluster.\n"
        },
        "certificateClusters": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetCceClustersClusterCertificateCluster:getCceClustersClusterCertificateCluster"
          },
          "description": "The certificate clusters.\nThe certificate_clusters object structure is documented below.\n"
        },
        "certificateUsers": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetCceClustersClusterCertificateUser:getCceClustersClusterCertificateUser"
          },
          "description": "The certificate users\nThe certificate_users object structure is documented below.\n"
        },
        "clusterType": {
          "type": "string",
          "description": "Specifies the type of the cluster. Possible values: **VirtualMachine**, **BareMetal**.\n"
        },
        "clusterVersion": {
          "type": "string",
          "description": "The version of the cluster.\n"
        },
        "containerNetworkCidr": {
          "type": "string",
          "description": "The container network segment.\n"
        },
        "containerNetworkType": {
          "type": "string",
          "description": "The container network type: **overlay_l2** , **underlay_ipvlan**, **vpc-router** or **eni**.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the cluster.\n"
        },
        "endpoints": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetCceClustersClusterEndpoint:getCceClustersClusterEndpoint"
          },
          "description": "The access addresses of kube-apiserver in the cluster.\nThe endpoints object structure is documented below.\n"
        },
        "eniSubnetCidr": {
          "type": "string",
          "description": "The ENI network segment.\n"
        },
        "eniSubnetId": {
          "type": "string",
          "description": "The ENI subnet ID.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project ID of the cluster.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "The specification of the cluster.\n"
        },
        "id": {
          "type": "string",
          "description": "The ID of the cluster.\n"
        },
        "kubeConfigRaw": {
          "type": "string",
          "description": "The raw Kubernetes config to be used by kubectl and other compatible tools.\n"
        },
        "masters": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetCceClustersClusterMaster:getCceClustersClusterMaster"
          },
          "description": "The advanced configuration of master nodes.The masters object structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the cluster.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "The security group ID of the cluster.\n"
        },
        "serviceNetworkCidr": {
          "type": "string",
          "description": "The service network segment.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the status of the cluster.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the VPC Subnet used to create the node.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID to which the cluster belongs.\n"
        }
      },
      "type": "object",
      "required": [
        "authenticationMode",
        "billingMode",
        "certificateClusters",
        "certificateUsers",
        "clusterType",
        "clusterVersion",
        "containerNetworkCidr",
        "containerNetworkType",
        "description",
        "endpoints",
        "eniSubnetCidr",
        "eniSubnetId",
        "enterpriseProjectId",
        "flavorId",
        "id",
        "kubeConfigRaw",
        "masters",
        "name",
        "securityGroupId",
        "serviceNetworkCidr",
        "status",
        "subnetId",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCceClustersClusterCertificateCluster:getCceClustersClusterCertificateCluster": {
      "properties": {
        "certificateAuthorityData": {
          "type": "string",
          "description": "The certificate data.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the cluster.\n"
        },
        "server": {
          "type": "string",
          "description": "The server IP address.\n"
        }
      },
      "type": "object",
      "required": [
        "certificateAuthorityData",
        "name",
        "server"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCceClustersClusterCertificateUser:getCceClustersClusterCertificateUser": {
      "properties": {
        "clientCertificateData": {
          "type": "string",
          "description": "The client certificate data.\n"
        },
        "clientKeyData": {
          "type": "string",
          "description": "The client key data.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the cluster.\n"
        }
      },
      "type": "object",
      "required": [
        "clientCertificateData",
        "clientKeyData",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCceClustersClusterEndpoint:getCceClustersClusterEndpoint": {
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of the cluster access address.\n+ **Internal**: The user's subnet access address.\n+ **External**: The public network access address.\n"
        },
        "url": {
          "type": "string",
          "description": "The URL of the cluster access address.\n"
        }
      },
      "type": "object",
      "required": [
        "type",
        "url"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCceClustersClusterMaster:getCceClustersClusterMaster": {
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "The availability zone (AZ) of the master node.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCceNodeV3DataVolume:getCceNodeV3DataVolume": {
      "properties": {
        "diskSize": {
          "type": "number",
          "description": "Disk size in GB.\n"
        },
        "volumeType": {
          "type": "string",
          "description": "Disk type.\n"
        }
      },
      "type": "object",
      "required": [
        "diskSize",
        "volumeType"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCceNodesNode:getCceNodesNode": {
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "The available partitions where the node is located.\n"
        },
        "billingMode": {
          "type": "number",
          "description": "The node's billing mode: The value is 0 (on demand).\n"
        },
        "dataVolumes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetCceNodesNodeDataVolume:getCceNodesNodeDataVolume"
          },
          "description": "The data related configuration. The volume object structure is documented below.\n"
        },
        "ecsGroupId": {
          "type": "string",
          "description": "The ID of ECS group to which the node belongs.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "The flavor ID to be used.\n"
        },
        "id": {
          "type": "string",
          "description": "The ID of the node.\n"
        },
        "keyPair": {
          "type": "string",
          "description": "The key pair name when logging in to select the key pair mode.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the node.\n"
        },
        "os": {
          "type": "string",
          "description": "The operating system of the node.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "The private IP of the node.\n"
        },
        "publicIp": {
          "type": "string",
          "description": "The elastic IP parameters of the node.\n"
        },
        "rootVolumes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetCceNodesNodeRootVolume:getCceNodesNodeRootVolume"
          },
          "description": "The system disk related configuration. The volume object structure is documented below.\n"
        },
        "serverId": {
          "type": "string",
          "description": "The node's virtual machine ID in ECS.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the status of the node.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the subnet to which the NIC belongs.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The tags of a VM node, key/value pair format.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "billingMode",
        "dataVolumes",
        "ecsGroupId",
        "flavorId",
        "id",
        "keyPair",
        "name",
        "os",
        "privateIp",
        "publicIp",
        "rootVolumes",
        "serverId",
        "status",
        "subnetId",
        "tags"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCceNodesNodeDataVolume:getCceNodesNodeDataVolume": {
      "properties": {
        "extendParams": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Disk expansion parameters.\n"
        },
        "size": {
          "type": "number",
          "description": "Disk size in GB.\n"
        },
        "volumetype": {
          "type": "string",
          "description": "Disk type.\n"
        }
      },
      "type": "object",
      "required": [
        "extendParams",
        "size",
        "volumetype"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCceNodesNodeRootVolume:getCceNodesNodeRootVolume": {
      "properties": {
        "extendParams": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Disk expansion parameters.\n"
        },
        "size": {
          "type": "number",
          "description": "Disk size in GB.\n"
        },
        "volumetype": {
          "type": "string",
          "description": "Disk type.\n"
        }
      },
      "type": "object",
      "required": [
        "extendParams",
        "size",
        "volumetype"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getComputeBmsNicV2FixedIp:getComputeBmsNicV2FixedIp": {
      "properties": {
        "ipAddress": {
          "type": "string",
          "description": "Specifies the NIC private IP address.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the subnet (subnet_id) corresponding to the private IP address of the NIC.\n"
        }
      },
      "type": "object",
      "required": [
        "ipAddress",
        "subnetId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getComputeBmsServerV2Network:getComputeBmsServerV2Network": {
      "properties": {
        "fixedIpV4": {
          "type": "string"
        },
        "fixedIpV6": {
          "type": "string"
        },
        "mac": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of BMS.\n"
        },
        "port": {
          "type": "string"
        },
        "uuid": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "fixedIpV4",
        "fixedIpV6",
        "mac",
        "name",
        "port",
        "uuid"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getComputeBmsServerV2SecurityGroup:getComputeBmsServerV2SecurityGroup": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of BMS.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getComputeInstanceV2BlockDevice:getComputeInstanceV2BlockDevice": {
      "properties": {
        "bootIndex": {
          "type": "number",
          "description": "The volume boot index on that attachment.\n"
        },
        "pciAddress": {
          "type": "string",
          "description": "The volume pci address on that attachment.\n"
        },
        "size": {
          "type": "number",
          "description": "The volume size on that attachment.\n"
        },
        "type": {
          "type": "string",
          "description": "The volume type on that attachment.\n"
        },
        "uuid": {
          "type": "string",
          "description": "The volume id on that attachment.\n"
        }
      },
      "type": "object",
      "required": [
        "bootIndex",
        "pciAddress",
        "size",
        "type",
        "uuid"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getComputeInstanceV2Network:getComputeInstanceV2Network": {
      "properties": {
        "fixedIpV4": {
          "type": "string",
          "description": "Specifies the IPv4 addresses of the server.\n"
        },
        "fixedIpV6": {
          "type": "string",
          "description": "The Fixed IPv6 address of the instance on that network.\n"
        },
        "mac": {
          "type": "string",
          "description": "The MAC address of the NIC on that network.\n"
        },
        "port": {
          "type": "string",
          "description": "The port ID corresponding to the IP address on that network.\n"
        },
        "uuid": {
          "type": "string",
          "description": "The volume id on that attachment.\n"
        }
      },
      "type": "object",
      "required": [
        "fixedIpV4",
        "fixedIpV6",
        "mac",
        "port",
        "uuid"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getComputeInstanceV2SchedulerHint:getComputeInstanceV2SchedulerHint": {
      "properties": {
        "group": {
          "type": "string",
          "description": "The UUID of a Server Group where the instance will be placed into.\n"
        }
      },
      "type": "object",
      "required": [
        "group"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getComputeInstancesInstance:getComputeInstancesInstance": {
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the availability zone where the instance is located.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "Specifies the flavor ID.\n"
        },
        "flavorName": {
          "type": "string",
          "description": "Specifies the flavor name of the instance.\n"
        },
        "floatingIp": {
          "type": "string",
          "description": "The EIP address that is associated to the instance.\n"
        },
        "id": {
          "type": "string",
          "description": "The instance ID in UUID format.\n"
        },
        "imageId": {
          "type": "string",
          "description": "Specifies the image ID of the instance.\n"
        },
        "imageName": {
          "type": "string",
          "description": "The image name of the instance.\n"
        },
        "keyPair": {
          "type": "string",
          "description": "Specifies the key pair that is used to authenticate the instance.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The metadata of the instance in key/value format.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the server name, which can be queried with a regular expression.\n"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetComputeInstancesInstanceNetwork:getComputeInstancesInstanceNetwork"
          },
          "description": "An array of one or more networks to attach to the instance.\nThe network object structure is documented below.\n"
        },
        "schedulerHints": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetComputeInstancesInstanceSchedulerHint:getComputeInstancesInstanceSchedulerHint"
          },
          "description": "The scheduler with hints on how the instance should be launched.\nThe scheduler_hints object structure is documented below.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more security group names\nto associate with the instance.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the status of the instance. The valid values are as follows:\n+ **ACTIVE**: The instance is running properly.\n+ **SHUTOFF**: The instance has been properly stopped.\n+ **ERROR**: An error has occurred on the instance.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The tags of the instance in key/value format.\n"
        },
        "userData": {
          "type": "string",
          "description": "The user data (information after encoding) configured during instance creation.\n"
        },
        "volumeAttacheds": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetComputeInstancesInstanceVolumeAttached:getComputeInstancesInstanceVolumeAttached"
          },
          "description": "An array of one or more disks to attach to the instance.\nThe volume_attached object structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "flavorId",
        "flavorName",
        "floatingIp",
        "id",
        "imageId",
        "imageName",
        "keyPair",
        "metadata",
        "name",
        "networks",
        "schedulerHints",
        "securityGroups",
        "status",
        "tags",
        "userData",
        "volumeAttacheds"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getComputeInstancesInstanceNetwork:getComputeInstancesInstanceNetwork": {
      "properties": {
        "fixedIpV4": {
          "type": "string",
          "description": "Specifies the IPv4 addresses of the server.\n"
        },
        "fixedIpV6": {
          "type": "string",
          "description": "The Fixed IPv6 address of the instance on that network.\n"
        },
        "mac": {
          "type": "string",
          "description": "The MAC address of the NIC on that network.\n"
        },
        "port": {
          "type": "string",
          "description": "The port ID corresponding to the IP address on that network.\n"
        },
        "uuid": {
          "type": "string",
          "description": "The network UUID to attach to the server.\n"
        }
      },
      "type": "object",
      "required": [
        "fixedIpV4",
        "fixedIpV6",
        "mac",
        "port",
        "uuid"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getComputeInstancesInstanceSchedulerHint:getComputeInstancesInstanceSchedulerHint": {
      "properties": {
        "group": {
          "type": "string",
          "description": "The UUID of a Server Group where the instance will be placed into.\n"
        }
      },
      "type": "object",
      "required": [
        "group"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getComputeInstancesInstanceVolumeAttached:getComputeInstancesInstanceVolumeAttached": {
      "properties": {
        "isSysVolume": {
          "type": "boolean",
          "description": "Whether the volume is the system disk.\n"
        },
        "volumeId": {
          "type": "string",
          "description": "The volume id on that attachment.\n"
        }
      },
      "type": "object",
      "required": [
        "isSysVolume",
        "volumeId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getComputeServergroupsServergroup:getComputeServergroupsServergroup": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The server group ID in UUID format.\n"
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more instance ID attached to the server group.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the server group name.\n"
        },
        "policies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The set of policies for the server group.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "members",
        "name",
        "policies"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCsbsBackupPolicyV1Resource:getCsbsBackupPolicyV1Resource": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Specifies the ID of backup policy.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the backup policy name.\n"
        },
        "type": {
          "type": "string",
          "description": "Entity object type of the backup object.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCsbsBackupPolicyV1ScheduledOperation:getCsbsBackupPolicyV1ScheduledOperation": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies Scheduling period description.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies whether the scheduling period is enabled.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies the ID of backup policy.\n"
        },
        "maxBackups": {
          "type": "number",
          "description": "Specifies maximum number of backups that can be automatically created for a backup object.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the backup policy name.\n"
        },
        "operationType": {
          "type": "string",
          "description": "Specifies Operation type, which can be backup.\n"
        },
        "permanent": {
          "type": "boolean",
          "description": "Specifies whether backups are permanently retained.\n"
        },
        "retentionDurationDays": {
          "type": "number",
          "description": "Specifies duration of retaining a backup, in days.\n"
        },
        "triggerId": {
          "type": "string",
          "description": "Specifies Scheduler ID.\n"
        },
        "triggerName": {
          "type": "string",
          "description": "Specifies Scheduler name.\n"
        },
        "triggerPattern": {
          "type": "string",
          "description": "Specifies Scheduling policy of the scheduler.\n"
        },
        "triggerType": {
          "type": "string",
          "description": "Specifies Scheduler type.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "enabled",
        "id",
        "maxBackups",
        "name",
        "operationType",
        "permanent",
        "retentionDurationDays",
        "triggerId",
        "triggerName",
        "triggerPattern",
        "triggerType"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCsbsBackupV1VmMetadata:getCsbsBackupV1VmMetadata": {
      "properties": {
        "cloudServiceType": {
          "type": "string",
          "description": "Specifies ECS type.\n"
        },
        "disk": {
          "type": "number",
          "description": "Shows system disk size corresponding to the ECS specifications.\n"
        },
        "eip": {
          "type": "string",
          "description": "Specifies elastic IP address of the ECS.\n"
        },
        "imageType": {
          "type": "string",
          "description": "Specifies image type.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of backup data.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "It specifies internal IP address of the ECS.\n"
        },
        "ram": {
          "type": "number",
          "description": "Specifies memory size of the ECS, in MB.\n"
        },
        "vcpus": {
          "type": "number",
          "description": "Specifies CPU cores corresponding to the ECS.\n"
        }
      },
      "type": "object",
      "required": [
        "cloudServiceType",
        "disk",
        "eip",
        "imageType",
        "name",
        "privateIp",
        "ram",
        "vcpus"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCsbsBackupV1VolumeBackup:getCsbsBackupV1VolumeBackup": {
      "properties": {
        "averageSpeed": {
          "type": "number",
          "description": "Specifies the average speed.\n"
        },
        "bootable": {
          "type": "boolean",
          "description": "Specifies whether the disk is bootable.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies the ID of backup.\n"
        },
        "imageType": {
          "type": "string",
          "description": "Specifies image type.\n"
        },
        "incremental": {
          "type": "boolean",
          "description": "Shows whether incremental backup is used.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of backup data.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies accumulated size (MB) of backups.\n"
        },
        "snapshotId": {
          "type": "string",
          "description": "ID of snapshot.\n"
        },
        "sourceVolumeId": {
          "type": "string",
          "description": "It specifies source volume ID.\n"
        },
        "sourceVolumeName": {
          "type": "string",
          "description": "Specifies source volume name.\n"
        },
        "sourceVolumeSize": {
          "type": "number",
          "description": "Shows source volume size in GB.\n"
        },
        "spaceSavingRatio": {
          "type": "number",
          "description": "Specifies the space saving rate.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the backup status.\n"
        }
      },
      "type": "object",
      "required": [
        "averageSpeed",
        "bootable",
        "id",
        "imageType",
        "incremental",
        "name",
        "size",
        "snapshotId",
        "sourceVolumeId",
        "sourceVolumeName",
        "sourceVolumeSize",
        "spaceSavingRatio",
        "status"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getCssFlavorsFlavor:getCssFlavorsFlavor": {
      "properties": {
        "diskRange": {
          "type": "string",
          "description": "The disk capacity range of an instance, in GB.\n"
        },
        "id": {
          "type": "string",
          "description": "The ID of CSS flavor.\n"
        },
        "memory": {
          "type": "number",
          "description": "Specifies the memory size(GB) in the CSS flavor.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the CSS flavor.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to obtain the CSS flavors. If omitted, the\nprovider-level region will be used.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the node instance type. The options are `ess`, `ess-cold`, `ess-master`\nand `ess-client`.\n"
        },
        "vcpus": {
          "type": "number",
          "description": "Specifies the number of vCPUs in the CSS flavor.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the engine version. The options are `6.5.4`, `7.1.1`, `7.6.2`, `7.9.3`\nand `7.10.2`.\n"
        }
      },
      "type": "object",
      "required": [
        "diskRange",
        "id",
        "memory",
        "name",
        "region",
        "type",
        "vcpus",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDcsFlavorsFlavor:getDcsFlavorsFlavor": {
      "properties": {
        "availableZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of available zones where the cache specification can be used.\n"
        },
        "cacheMode": {
          "type": "string",
          "description": "The mode of a cache engine. The valid values are as follows:\n"
        },
        "capacity": {
          "type": "number",
          "description": "The total memory of the cache, in GB.\n+ **Redis4.0, Redis5.0 and Redis6.0**: Stand-alone and active/standby type instance values:\n`0.125`, `0.25`, `0.5`, `1`, `2`, `4`, `8`, `16`, `32` and `64`.\nCluster instance specifications support `4`,`8`,`16`,`24`, `32`, `48`, `64`, `96`, `128`, `192`,\n`256`, `384`, `512`, `768` and `1024`.\n+ **Redis3.0**: Stand-alone and active/standby type instance values: `2`, `4`, `8`, `16`, `32` and `64`.\nProxy cluster instance specifications support `64`, `128`, `256`, `512`, and `1024`.\n+ **Memcached**: Stand-alone and active/standby type instance values: `2`, `4`, `8`, `16`, `32` and `64`.\n"
        },
        "chargingModes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "cpuArchitecture": {
          "type": "string",
          "description": "The CPU architecture of cache instance.\nValid values *x86_64* and *aarch64*.\n"
        },
        "engine": {
          "type": "string",
          "description": "The engine of the cache instance. Valid values are *Redis* and *Memcached*.\nDefault value is *Redis*.\n"
        },
        "engineVersions": {
          "type": "string",
          "description": "Supported versions of the specification.\n"
        },
        "ipCount": {
          "type": "number",
          "description": "Number of IP addresses corresponding to the specifications.\n"
        },
        "name": {
          "type": "string",
          "description": "The flavor name of the cache instance.\n"
        }
      },
      "type": "object",
      "required": [
        "availableZones",
        "cacheMode",
        "capacity",
        "chargingModes",
        "cpuArchitecture",
        "engine",
        "engineVersions",
        "ipCount",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDcsInstancesInstance:getDcsInstancesInstance": {
      "properties": {
        "accessUser": {
          "type": "string",
          "description": "Indicates the username used for accessing a DCS Memcached instance.\n"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the code of the AZ where the cache node resides.\n"
        },
        "capacity": {
          "type": "number",
          "description": "Specifies the cache capacity. Unit: GB.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Indicates the description of an instance.\n"
        },
        "domainName": {
          "type": "string",
          "description": "Indicates the domain name of the instance.\n"
        },
        "engine": {
          "type": "string",
          "description": "Indicates a cache engine.\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Indicates the version of a cache engine.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Indicates the enterprise project id of the dcs instance.\n"
        },
        "flavor": {
          "type": "string",
          "description": "Indicates the flavor of the cache instance.\n"
        },
        "id": {
          "type": "string",
          "description": "Indicates the ID of the instance.\n"
        },
        "maintainBegin": {
          "type": "string",
          "description": "Indicates the time at which the maintenance time window starts.\n"
        },
        "maintainEnd": {
          "type": "string",
          "description": "Indicates the time at which the maintenance time window ends.\n"
        },
        "maxMemory": {
          "type": "number",
          "description": "Indicates the total memory size. Unit: MB.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of an instance.\n"
        },
        "orderId": {
          "type": "string",
          "description": "Indicates the ID of the order that created the instance.\n"
        },
        "port": {
          "type": "number",
          "description": "Indicates the port of the cache instance.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "Specifies the subnet Network ID.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Indicates the ID of the security group which the instance belongs to.\n"
        },
        "securityGroupName": {
          "type": "string",
          "description": "Indicates the name of security group which the instance belongs to.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the cache instance status. The valid values are **RUNNING**, **ERROR**,\n**RESTARTING**, **FROZEN**, **EXTENDING**, **RESTORING**, **FLUSHING**.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Indicates the ID of subnet which the instance belongs to.\n"
        },
        "subnetName": {
          "type": "string",
          "description": "Indicates the name of subnet which the instance belongs to.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Indicates The key/value pairs to associate with the DCS instance.\n"
        },
        "usedMemory": {
          "type": "number",
          "description": "Indicates the size of the used memory. Unit: MB.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Indicates the ID of VPC which the instance belongs to.\n"
        },
        "vpcName": {
          "type": "string",
          "description": "Indicates the name of VPC which the instance belongs to.\n"
        }
      },
      "type": "object",
      "required": [
        "accessUser",
        "availabilityZones",
        "capacity",
        "chargingMode",
        "description",
        "domainName",
        "engine",
        "engineVersion",
        "enterpriseProjectId",
        "flavor",
        "id",
        "maintainBegin",
        "maintainEnd",
        "maxMemory",
        "name",
        "orderId",
        "port",
        "privateIp",
        "securityGroupId",
        "securityGroupName",
        "status",
        "subnetId",
        "subnetName",
        "tags",
        "usedMemory",
        "vpcId",
        "vpcName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDcsTemplatesTemplate:getDcsTemplatesTemplate": {
      "properties": {
        "cacheMode": {
          "type": "string",
          "description": "Specifies the DCS instance type. Value options:\n+ **single**: single-node.\n+ **ha**: master/standby.\n+ **cluster**: Redis Cluster.\n+ **proxy**: Proxy Cluster.\n"
        },
        "description": {
          "type": "string",
          "description": "Indicates the description of the template.\n"
        },
        "engine": {
          "type": "string",
          "description": "Specifies the cache engine. Value options: **Redis**, **Memcached**.\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Specifies the cache engine version. Value options: **4.0**, **5.0**, **6.0**.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the template.\n"
        },
        "productType": {
          "type": "string",
          "description": "Specifies the product edition. Value options:\n+ **generic**: standard edition.\n+ **enterprise**: professional edition.\n"
        },
        "storageType": {
          "type": "string",
          "description": "Specifies the storage type. Value options: **DRAM**, **SSD**.\n"
        },
        "templateId": {
          "type": "string",
          "description": "Specifies the ID of the template.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the template. Value options:\n+ **sys**: system template.\n+ **user**: custom template.\n"
        }
      },
      "type": "object",
      "required": [
        "cacheMode",
        "description",
        "engine",
        "engineVersion",
        "name",
        "productType",
        "storageType",
        "templateId",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDdmAccountsAccount:getDdmAccountsAccount": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Indicates the schema description.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DDM account.\n"
        },
        "permissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the basic permissions of the DDM account.\n"
        },
        "schemas": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetDdmAccountsAccountSchema:getDdmAccountsAccountSchema"
          },
          "description": "Indicates the schemas that associated with the account.\nThe Schema structure is documented below.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the status of the DDM account.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "name",
        "permissions",
        "schemas",
        "status"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDdmAccountsAccountSchema:getDdmAccountsAccountSchema": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Indicates the schema description.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DDM account.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDdmEnginesEngine:getDdmEnginesEngine": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Indicates the ID of the engine.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the engine version.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDdmFlavorsFlavor:getDdmFlavorsFlavor": {
      "properties": {
        "code": {
          "type": "string",
          "description": "Specifies the VM flavor types recorded in DDM.\n"
        },
        "cpuArch": {
          "type": "string",
          "description": "Specifies the compute resource architecture type. The options are **X86** and **ARM**.\n"
        },
        "id": {
          "type": "string",
          "description": "Indicates the ID of a flavor.\n"
        },
        "memory": {
          "type": "number",
          "description": "Specifies the memory size. Unit GB.\n"
        },
        "vcpus": {
          "type": "number",
          "description": "Specifies the number of CPUs.\n"
        }
      },
      "type": "object",
      "required": [
        "code",
        "cpuArch",
        "id",
        "memory",
        "vcpus"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDdmInstanceNodesNode:getDdmInstanceNodesNode": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Indicates the ID of the DDM instance node.\n"
        },
        "ip": {
          "type": "string",
          "description": "Indicates the IP address of the DDM instance node.\n"
        },
        "port": {
          "type": "string",
          "description": "Indicates the port of the DDM instance node.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the status of the DDM instance node.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "ip",
        "port",
        "status"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDdmInstancesInstance:getDdmInstancesInstance": {
      "properties": {
        "accessIp": {
          "type": "string",
          "description": "Indicates the address for accessing the DDM instance.\n"
        },
        "accessPort": {
          "type": "string",
          "description": "Indicates the port for accessing the DDM instance.\n"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the list of availability zones.\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Specifies the engine version.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the instance.\n"
        },
        "nodeNum": {
          "type": "number",
          "description": "Indicates the number of nodes.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Indicates the ID of a security group.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the status of the instance.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Indicates the ID of a subnet.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Indicates the ID of a VPC.\n"
        }
      },
      "type": "object",
      "required": [
        "accessIp",
        "accessPort",
        "availabilityZones",
        "engineVersion",
        "enterpriseProjectId",
        "name",
        "nodeNum",
        "securityGroupId",
        "status",
        "subnetId",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDdmSchemasSchema:getDdmSchemasSchema": {
      "properties": {
        "dataNodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetDdmSchemasSchemaDataNode:getDdmSchemasSchemaDataNode"
          },
          "description": "Indicates the RDS instances associated with the schema.\nThe DataNode structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DDM schema.\n"
        },
        "shardMode": {
          "type": "string",
          "description": "Specifies the sharding mode of the schema. Values option: **cluster**, **single**.\n"
        },
        "shardNumber": {
          "type": "number",
          "description": "Indicates the number of shards in the same working mode.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the status of the DDM schema.\n"
        }
      },
      "type": "object",
      "required": [
        "dataNodes",
        "name",
        "shardMode",
        "shardNumber",
        "status"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDdmSchemasSchemaDataNode:getDdmSchemasSchemaDataNode": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Indicates the node ID of the associated RDS instance.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DDM schema.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the status of the DDM schema.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "status"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDdsFlavorsV3Flavor:getDdsFlavorsV3Flavor": {
      "properties": {
        "memory": {
          "type": "string",
          "description": "Specifies the ram of the dds flavor in GB.\n"
        },
        "specCode": {
          "type": "string",
          "description": "The name of the dds flavor.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the dds falvor. \"mongos\", \"shard\", \"config\",\n\"replica\" and \"single\" are supported.\n"
        },
        "vcpus": {
          "type": "string",
          "description": "Specifies the vcpus of the dds flavor.\n"
        }
      },
      "type": "object",
      "required": [
        "memory",
        "specCode",
        "type",
        "vcpus"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDdsInstancesInstance:getDdsInstancesInstance": {
      "properties": {
        "backupStrategies": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetDdsInstancesInstanceBackupStrategy:getDdsInstancesInstanceBackupStrategy"
          },
          "description": "Indicates backup strategy.\nThe backup_strategy object structure is documented below.\n"
        },
        "datastores": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetDdsInstancesInstanceDatastore:getDdsInstancesInstanceDatastore"
          },
          "description": "Indicates database information.\nThe datastore object structure is documented below.\n"
        },
        "dbUsername": {
          "type": "string",
          "description": "Indicates the DB Administrator name.\n"
        },
        "diskEncryptionId": {
          "type": "string",
          "description": "Indicates the disk encryption ID of the instance.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Indicates the enterprise project id of the dds instance.\n"
        },
        "id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "mode": {
          "type": "string",
          "description": "Specifies the mode of the database instance.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the DB instance name.\n"
        },
        "nodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetDdsInstancesInstanceNode:getDdsInstancesInstanceNode"
          },
          "description": "Indicates the instance nodes information.\nThe nodes object structure is documented below.\n"
        },
        "port": {
          "type": "number",
          "description": "Indicates the database port number. The port range is 2100 to 9500.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Indicates the security group ID of the DDS instance.\n"
        },
        "ssl": {
          "type": "boolean",
          "description": "Indicates whether to enable or disable SSL.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the subnet Network ID.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Indicates the key/value pairs to associate with the DDS instance.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID.\n"
        }
      },
      "type": "object",
      "required": [
        "backupStrategies",
        "datastores",
        "dbUsername",
        "diskEncryptionId",
        "enterpriseProjectId",
        "id",
        "mode",
        "name",
        "nodes",
        "port",
        "securityGroupId",
        "ssl",
        "status",
        "subnetId",
        "tags",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDdsInstancesInstanceBackupStrategy:getDdsInstancesInstanceBackupStrategy": {
      "properties": {
        "keepDays": {
          "type": "number",
          "description": "Indicates the number of days to retain the generated backup files.\n"
        },
        "startTime": {
          "type": "string",
          "description": "Indicates the backup time window.\n"
        }
      },
      "type": "object",
      "required": [
        "keepDays",
        "startTime"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDdsInstancesInstanceDatastore:getDdsInstancesInstanceDatastore": {
      "properties": {
        "storageEngine": {
          "type": "string",
          "description": "Indicates the storage engine of the DB instance.\n"
        },
        "type": {
          "type": "string",
          "description": "Indicates the node type.\n"
        },
        "version": {
          "type": "string",
          "description": "Indicates the DB instance version.\n"
        }
      },
      "type": "object",
      "required": [
        "storageEngine",
        "type",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDdsInstancesInstanceNode:getDdsInstancesInstanceNode": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the DB instance name.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "Indicates the private IP address of a node.\n"
        },
        "publicIp": {
          "type": "string",
          "description": "Indicates the EIP that has been bound on a node.\n"
        },
        "role": {
          "type": "string",
          "description": "Indicates the node role.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        },
        "type": {
          "type": "string",
          "description": "Indicates the node type.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "privateIp",
        "publicIp",
        "role",
        "status",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDmsKafkaFlavorsFlavor:getDmsKafkaFlavorsFlavor": {
      "properties": {
        "archTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of supported CPU architectures.\n"
        },
        "chargingModes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of supported billing modes.\n"
        },
        "id": {
          "type": "string",
          "description": "The flavor ID.\n"
        },
        "ios": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetDmsKafkaFlavorsFlavorIo:getDmsKafkaFlavorsFlavorIo"
          },
          "description": "The list of supported disk IO types.\nThe object structure is documented below.\n"
        },
        "properties": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetDmsKafkaFlavorsFlavorProperty:getDmsKafkaFlavorsFlavorProperty"
          },
          "description": "The function property details.\nThe object structure is documented below.\n"
        },
        "supportFeatures": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetDmsKafkaFlavorsFlavorSupportFeature:getDmsKafkaFlavorsFlavorSupportFeature"
          },
          "description": "The list of features supported by the current specification.\nThe object structure is documented below.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies flavor type. The valid values are **single** and **cluster**.\n"
        },
        "vmSpecification": {
          "type": "string",
          "description": "The underlying VM specification.\n"
        }
      },
      "type": "object",
      "required": [
        "archTypes",
        "chargingModes",
        "id",
        "ios",
        "properties",
        "supportFeatures",
        "type",
        "vmSpecification"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDmsKafkaFlavorsFlavorIo:getDmsKafkaFlavorsFlavorIo": {
      "properties": {
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of availability zones with available resources.\n"
        },
        "storageSpecCode": {
          "type": "string",
          "description": "Specifies the disk IO encoding.\n+ **dms.physical.storage.high.v2**: Type of the disk that uses high I/O.\n+ **dms.physical.storage.ultra.v2**: Type of the disk that uses ultra-high I/O.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies flavor type. The valid values are **single** and **cluster**.\n"
        },
        "unavailabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of unavailability zones with available resources.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZones",
        "storageSpecCode",
        "type",
        "unavailabilityZones"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDmsKafkaFlavorsFlavorProperty:getDmsKafkaFlavorsFlavorProperty": {
      "properties": {
        "flavorAlias": {
          "type": "string",
          "description": "The flavor ID alias.\n"
        },
        "maxBandwidthPerBroker": {
          "type": "number",
          "description": "The maximum bandwidth per broker.\n"
        },
        "maxBroker": {
          "type": "number",
          "description": "The maximum number of brokers.\n"
        },
        "maxConsumerPerBroker": {
          "type": "number",
          "description": "The maximum number of consumers per broker.\n"
        },
        "maxPartitionPerBroker": {
          "type": "number",
          "description": "The maximum number of partitions per broker.\n"
        },
        "maxStoragePerNode": {
          "type": "number",
          "description": "The maximum storage per node. The unit is GB.\n"
        },
        "maxTpsPerBroker": {
          "type": "number",
          "description": "The maximum TPS per broker.\n"
        },
        "minBroker": {
          "type": "number",
          "description": "The minimum number of brokers.\n"
        },
        "minStoragePerNode": {
          "type": "number",
          "description": "The minimum storage per node. The unit is GB.\n"
        }
      },
      "type": "object",
      "required": [
        "flavorAlias",
        "maxBandwidthPerBroker",
        "maxBroker",
        "maxConsumerPerBroker",
        "maxPartitionPerBroker",
        "maxStoragePerNode",
        "maxTpsPerBroker",
        "minBroker",
        "minStoragePerNode"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDmsKafkaFlavorsFlavorSupportFeature:getDmsKafkaFlavorsFlavorSupportFeature": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The function name, e.g. **connector_obs**.\n"
        },
        "properties": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetDmsKafkaFlavorsFlavorSupportFeatureProperty:getDmsKafkaFlavorsFlavorSupportFeatureProperty"
          },
          "description": "The function property details.\nThe object structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "properties"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDmsKafkaFlavorsFlavorSupportFeatureProperty:getDmsKafkaFlavorsFlavorSupportFeatureProperty": {
      "properties": {
        "maxNode": {
          "type": "number",
          "description": "The maximum number of nodes for the dump function.\n"
        },
        "maxTask": {
          "type": "number",
          "description": "The maximum number of tasks for the dump function.\n"
        },
        "minNode": {
          "type": "number",
          "description": "The minimum number of nodes for the dump function.\n"
        },
        "minTask": {
          "type": "number",
          "description": "The minimum number of tasks for the dump function.\n"
        }
      },
      "type": "object",
      "required": [
        "maxNode",
        "maxTask",
        "minNode",
        "minTask"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDmsKafkaInstancesInstance:getDmsKafkaInstancesInstance": {
      "properties": {
        "accessUser": {
          "type": "string",
          "description": "The access username.\n"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of AZ names.\n"
        },
        "connectAddress": {
          "type": "string",
          "description": "The IP address for instance connection.\n"
        },
        "crossVpcAccesses": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetDmsKafkaInstancesInstanceCrossVpcAccess:getDmsKafkaInstancesInstanceCrossVpcAccess"
          },
          "description": "Indicates the Access information of cross-VPC. The cross_vpc_accesses\nobject structure is documented below.\n"
        },
        "description": {
          "type": "string",
          "description": "The instance description.\n"
        },
        "dumping": {
          "type": "boolean",
          "description": "Whether to dumping is enabled.\n"
        },
        "enableAutoTopic": {
          "type": "boolean",
          "description": "Whether to enable automatic topic creation.\n"
        },
        "enablePublicIp": {
          "type": "boolean",
          "description": "Whether public access to the instance is enabled.\n"
        },
        "enabledMechanisms": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "engineVersion": {
          "type": "string",
          "description": "The kafka engine version.\n"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "The instance ID.\n"
        },
        "maintainBegin": {
          "type": "string",
          "description": "The time at which a maintenance time window starts, the format is `HH:mm`.\n"
        },
        "maintainEnd": {
          "type": "string",
          "description": "The time at which a maintenance time window ends, the format is `HH:mm`.\n"
        },
        "managementConnectAddress": {
          "type": "string",
          "description": "The connection address of the Kafka manager of an instance.\n"
        },
        "managerUser": {
          "type": "string",
          "description": "The username for logging in to the Kafka Manager.\n"
        },
        "manegementConnectAddress": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Specifies the kafka instance name for data-source queries.\n"
        },
        "networkId": {
          "type": "string",
          "description": "The subnet ID to which the instance belongs.\n"
        },
        "partitionNum": {
          "type": "number",
          "description": "The maximum number of topics in the DMS kafka instance.\n"
        },
        "port": {
          "type": "number",
          "description": "The port number.\n"
        },
        "productId": {
          "type": "string",
          "description": "The product ID used by the instance.\n"
        },
        "publicConnAddresses": {
          "type": "string",
          "description": "The instance public access address.\nThe format of each connection address is `{IP address}:{port}`.\n"
        },
        "publicIpIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The IDs of the elastic IP address (EIP).\n"
        },
        "resourceSpecCode": {
          "type": "string",
          "description": "The resource specifications identifier.\n"
        },
        "retentionPolicy": {
          "type": "string",
          "description": "The action to be taken when the memory usage reaches the disk capacity threshold.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "The security group ID associated with the instance.\n"
        },
        "securityProtocol": {
          "type": "string"
        },
        "sslEnable": {
          "type": "boolean",
          "description": "Whether the Kafka SASL_SSL is enabled.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the kafka instance status for data-source queries.\n"
        },
        "storageSpace": {
          "type": "number",
          "description": "The message storage capacity, in GB unit.\n"
        },
        "storageSpecCode": {
          "type": "string",
          "description": "The storage I/O specification.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the instance.\n"
        },
        "type": {
          "type": "string",
          "description": "The instance type.\n"
        },
        "usedStorageSpace": {
          "type": "number",
          "description": "The used message storage space, in GB unit.\n"
        },
        "userId": {
          "type": "string",
          "description": "The user ID who created the instance.\n"
        },
        "userName": {
          "type": "string",
          "description": "The username who created the instance.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "The VPC ID to which the instance belongs.\n"
        }
      },
      "type": "object",
      "required": [
        "accessUser",
        "availabilityZones",
        "connectAddress",
        "crossVpcAccesses",
        "description",
        "dumping",
        "enableAutoTopic",
        "enablePublicIp",
        "enabledMechanisms",
        "engineVersion",
        "enterpriseProjectId",
        "id",
        "maintainBegin",
        "maintainEnd",
        "managementConnectAddress",
        "managerUser",
        "manegementConnectAddress",
        "name",
        "networkId",
        "partitionNum",
        "port",
        "productId",
        "publicConnAddresses",
        "publicIpIds",
        "resourceSpecCode",
        "retentionPolicy",
        "securityGroupId",
        "securityProtocol",
        "sslEnable",
        "status",
        "storageSpace",
        "storageSpecCode",
        "tags",
        "type",
        "usedStorageSpace",
        "userId",
        "userName",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDmsKafkaInstancesInstanceCrossVpcAccess:getDmsKafkaInstancesInstanceCrossVpcAccess": {
      "properties": {
        "advertisedIp": {
          "type": "string",
          "description": "The advertised IP Address.\n"
        },
        "lisenterIp": {
          "type": "string"
        },
        "listenerIp": {
          "type": "string",
          "description": "The listener IP address.\n"
        },
        "port": {
          "type": "number",
          "description": "The port number.\n"
        },
        "portId": {
          "type": "string",
          "description": "The port ID associated with the address.\n"
        }
      },
      "type": "object",
      "required": [
        "advertisedIp",
        "lisenterIp",
        "listenerIp",
        "port",
        "portId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDmsRocketmqInstancesInstance:getDmsRocketmqInstancesInstance": {
      "properties": {
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the list of availability zone names, where\ninstance brokers reside and which has available resources.\n"
        },
        "brokerAddress": {
          "type": "string",
          "description": "Indicates the service data address.\n"
        },
        "brokerNum": {
          "type": "number",
          "description": "Specifies the broker numbers. Defaults to 1.\n"
        },
        "crossVpcAccesses": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetDmsRocketmqInstancesInstanceCrossVpcAccess:getDmsRocketmqInstancesInstanceCrossVpcAccess"
          },
          "description": "Indicates the Cross-VPC access information.\nThe cross_vpc_accesses object structure is documented below.\n"
        },
        "description": {
          "type": "string",
          "description": "Indicates the description of the DMS RocketMQ instance.\n"
        },
        "enableAcl": {
          "type": "boolean",
          "description": "Indicates whether access control is enabled.\n"
        },
        "enablePublicip": {
          "type": "boolean",
          "description": "Indicates whether to enable public access.\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Indicates the version of the RocketMQ engine.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "Indicates a product ID.\n"
        },
        "id": {
          "type": "string",
          "description": "Indicates the ID of the DMS RocketMQ instance.\n"
        },
        "ipv6Enable": {
          "type": "boolean",
          "description": "Indicates whether to support IPv6. Defaults to false.\n"
        },
        "maintainBegin": {
          "type": "string",
          "description": "Indicates the time at which the maintenance window starts. The format is HH:mm:ss.\n"
        },
        "maintainEnd": {
          "type": "string",
          "description": "Indicates the time at which the maintenance window ends. The format is HH:mm:ss.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DMS RocketMQ instance.\n"
        },
        "namesrvAddress": {
          "type": "string",
          "description": "Indicates the metadata address.\n"
        },
        "newSpecBillingEnable": {
          "type": "boolean",
          "description": "Indicates the whether billing based on new specifications is enabled.\n"
        },
        "nodeNum": {
          "type": "number",
          "description": "Indicates the node quantity.\n"
        },
        "publicBrokerAddress": {
          "type": "string",
          "description": "Indicates the public network service data address.\n"
        },
        "publicNamesrvAddress": {
          "type": "string",
          "description": "Indicates the public network metadata address.\n"
        },
        "publicipAddress": {
          "type": "string",
          "description": "Indicates the public IP address.\n"
        },
        "publicipId": {
          "type": "string",
          "description": "Indicates the ID of the EIP bound to the instance.\nUse commas (,) to separate multiple EIP IDs.\nThis parameter is mandatory if public access is enabled (that is, enable_publicip is set to true).\n"
        },
        "resourceSpecCode": {
          "type": "string",
          "description": "Indicates the resource specifications.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Indicates the ID of a security group.\n"
        },
        "specification": {
          "type": "string",
          "description": "Indicates the instance specification. For a cluster DMS RocketMQ instance, VM specifications\nand the number of nodes are returned.\n"
        },
        "sslEnable": {
          "type": "boolean",
          "description": "Indicates whether the RocketMQ SASL_SSL is enabled. Defaults to false.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the status of the DMS RocketMQ instance.\n"
        },
        "storageSpace": {
          "type": "number",
          "description": "Indicates the message storage capacity. Unit: GB.\n"
        },
        "storageSpecCode": {
          "type": "string",
          "description": "Indicates the storage I/O specification.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Indicates the ID of a subnet.\n"
        },
        "type": {
          "type": "string",
          "description": "Indicates the DMS RocketMQ instance type.\n"
        },
        "usedStorageSpace": {
          "type": "number",
          "description": "Indicates the used message storage space. Unit: GB.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Indicates the ID of a VPC.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZones",
        "brokerAddress",
        "brokerNum",
        "crossVpcAccesses",
        "description",
        "enableAcl",
        "enablePublicip",
        "engineVersion",
        "flavorId",
        "id",
        "ipv6Enable",
        "maintainBegin",
        "maintainEnd",
        "name",
        "namesrvAddress",
        "newSpecBillingEnable",
        "nodeNum",
        "publicBrokerAddress",
        "publicNamesrvAddress",
        "publicipAddress",
        "publicipId",
        "resourceSpecCode",
        "securityGroupId",
        "specification",
        "sslEnable",
        "status",
        "storageSpace",
        "storageSpecCode",
        "subnetId",
        "type",
        "usedStorageSpace",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDmsRocketmqInstancesInstanceCrossVpcAccess:getDmsRocketmqInstancesInstanceCrossVpcAccess": {
      "properties": {
        "advertisedIp": {
          "type": "string",
          "description": "Indicates the advertised IP.\n"
        },
        "lisenterIp": {
          "type": "string"
        },
        "listenerIp": {
          "type": "string",
          "description": "Indicates the IP of the listener.\n"
        },
        "port": {
          "type": "number",
          "description": "Indicates the port.\n"
        },
        "portId": {
          "type": "string",
          "description": "Indicates the port ID associated with the address.\n"
        }
      },
      "type": "object",
      "required": [
        "advertisedIp",
        "lisenterIp",
        "listenerIp",
        "port",
        "portId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDwsFlavorsFlavor:getDwsFlavorsFlavor": {
      "properties": {
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the availability zone where the node resides.\n"
        },
        "datastoreType": {
          "type": "string",
          "description": "The type of datastore. The options are as follows:\n- **dws**: OLAP, elastic scaling, unlimited scaling of compute and storage capacity.\n- **hybrid**: a single data warehouse used for transaction and analytics workloads,\nin single-node or cluster mode.\n- **stream**: built-in time series operators; up to 40:1 compression ratio; applicable to IoT services.\n"
        },
        "elasticVolumeSpecs": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetDwsFlavorsFlavorElasticVolumeSpec:getDwsFlavorsFlavorElasticVolumeSpec"
          },
          "description": "The elastic_volume_specs object structure is documented below.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "The name of the DWS node flavor. It is referenced by **node_type** in `flexibleengine.DwsClusterV1`.\n"
        },
        "memory": {
          "type": "number",
          "description": "Specifies the ram of the DWS node flavor in GB.\n"
        },
        "size": {
          "type": "number",
          "description": "Indicates the Disk size in GB.\n"
        },
        "vcpus": {
          "type": "number",
          "description": "Specifies the vcpus of the DWS node flavor.\n"
        },
        "volumetype": {
          "type": "string",
          "description": "Indicates Disk type.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZones",
        "datastoreType",
        "elasticVolumeSpecs",
        "flavorId",
        "memory",
        "size",
        "vcpus",
        "volumetype"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getDwsFlavorsFlavorElasticVolumeSpec:getDwsFlavorsFlavorElasticVolumeSpec": {
      "properties": {
        "maxSize": {
          "type": "number",
          "description": "Maximum disk size.\n"
        },
        "minSize": {
          "type": "number",
          "description": "Minimum disk size.\n"
        },
        "step": {
          "type": "number",
          "description": "Disk size increment step.\n"
        }
      },
      "type": "object",
      "required": [
        "maxSize",
        "minSize",
        "step"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getElbFlavorsFlavor:getElbFlavorsFlavor": {
      "properties": {
        "bandwidth": {
          "type": "number",
          "description": "Specifies the bandwidth size(Mbit/s) in the flavor.\n"
        },
        "cps": {
          "type": "number",
          "description": "Specifies the cps in the flavor.\n"
        },
        "id": {
          "type": "string",
          "description": "ID of the flavor.\n"
        },
        "maxConnections": {
          "type": "number",
          "description": "Specifies the maximum connections in the flavor.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the flavor.\n"
        },
        "qps": {
          "type": "number",
          "description": "Specifies the qps in the L7 flavor.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the flavor type. Valid values are **L4** and **L7**.\n"
        }
      },
      "type": "object",
      "required": [
        "bandwidth",
        "cps",
        "id",
        "maxConnections",
        "name",
        "qps",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getElbLoadbalancersLoadbalancer:getElbLoadbalancersLoadbalancer": {
      "properties": {
        "autoscalingEnabled": {
          "type": "boolean",
          "description": "Whether the current load balancer enables elastic expansion.\n"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of AZs where the load balancer is created.\n"
        },
        "backendSubnets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Lists the IDs of subnets on the downstream plane.\n"
        },
        "crossVpcBackend": {
          "type": "boolean",
          "description": "Whether to enable IP as a Backend Server.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the ELB load balancer.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project ID.\n"
        },
        "id": {
          "type": "string",
          "description": "The load balancer ID.\n"
        },
        "ipv4Address": {
          "type": "string",
          "description": "The private IPv4 address bound to the load balancer.\n"
        },
        "ipv4PortId": {
          "type": "string",
          "description": "The ID of the port bound to the private IPv4 address of the load balancer.\n"
        },
        "ipv4SubnetId": {
          "type": "string",
          "description": "Specifies the ID of the IPv4 subnet where the load balancer resides.\n"
        },
        "ipv6Address": {
          "type": "string",
          "description": "The IPv6 address bound to the load balancer.\n"
        },
        "ipv6NetworkId": {
          "type": "string",
          "description": "Specifies the ID of the port bound to the IPv6 address of the load balancer.\n"
        },
        "l4FlavorId": {
          "type": "string",
          "description": "Specifies the ID of a flavor at Layer 4.\n"
        },
        "l7FlavorId": {
          "type": "string",
          "description": "Specifies the ID of a flavor at Layer 7.\n"
        },
        "minL7FlavorId": {
          "type": "string",
          "description": "The minimum seven-layer specification ID (specification type L7_elastic) for elastic expansion\nand contraction\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the ELB load balancer.\n"
        },
        "protectionReason": {
          "type": "string",
          "description": "The reason for update protection.\n"
        },
        "protectionStatus": {
          "type": "string",
          "description": "The protection status for update.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies whether the load balancer is a dedicated load balancer, Value options:\n**dedicated**, **share**.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC where the load balancer resides.\n"
        }
      },
      "type": "object",
      "required": [
        "autoscalingEnabled",
        "availabilityZones",
        "backendSubnets",
        "crossVpcBackend",
        "description",
        "enterpriseProjectId",
        "id",
        "ipv4Address",
        "ipv4PortId",
        "ipv4SubnetId",
        "ipv6Address",
        "ipv6NetworkId",
        "l4FlavorId",
        "l7FlavorId",
        "minL7FlavorId",
        "name",
        "protectionReason",
        "protectionStatus",
        "type",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getFgsDependenciesPackage:getFgsDependenciesPackage": {
      "properties": {
        "etag": {
          "type": "string",
          "description": "Unique ID of the dependent package.\n"
        },
        "fileName": {
          "type": "string",
          "description": "File name of the Dependent package.\n"
        },
        "id": {
          "type": "string",
          "description": "Dependent package ID.\n"
        },
        "link": {
          "type": "string",
          "description": "URL of the dependent package in the OBS console.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the dependent package runtime to match.\n"
        },
        "owner": {
          "type": "string",
          "description": "Dependent package owner.\n"
        },
        "runtime": {
          "type": "string",
          "description": "Specifies the dependent package runtime to match. Valid values: **Java8**,\n**Node.js6.10**, **Node.js8.10**, **Node.js10.16**, **Node.js12.13**, **Python2.7**, **Python3.6**, **Go1.8**,\n**Go1.x**, **C#(.NET Core 2.0)**, **C#(.NET Core 2.1)**, **C#(.NET Core 3.1)** and **PHP7.3**.\n"
        },
        "size": {
          "type": "number",
          "description": "Dependent package size.\n"
        }
      },
      "type": "object",
      "required": [
        "etag",
        "fileName",
        "id",
        "link",
        "name",
        "owner",
        "runtime",
        "size"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getGaussdbCassandraFlavorsFlavor:getGaussdbCassandraFlavorsFlavor": {
      "properties": {
        "azStatus": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Indicates the flavor status in each availability zone.\n"
        },
        "memory": {
          "type": "string",
          "description": "Specifies the memory size of the flavors.\n"
        },
        "name": {
          "type": "string",
          "description": "Indicates the spec code of the flavor.\n"
        },
        "vcpus": {
          "type": "string",
          "description": "Specifies the count of vcpus of the flavors.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the engine version of the flavors.\n"
        }
      },
      "type": "object",
      "required": [
        "azStatus",
        "memory",
        "name",
        "vcpus",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getGaussdbCassandraInstancesInstance:getGaussdbCassandraInstancesInstance": {
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "Indicates the availability zone where the node resides.\n"
        },
        "backupStrategies": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetGaussdbCassandraInstancesInstanceBackupStrategy:getGaussdbCassandraInstancesInstanceBackupStrategy"
          },
          "description": "Indicates the advanced backup policy. The backup_strategy object\nstructure is documented below.\n"
        },
        "datastores": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetGaussdbCassandraInstancesInstanceDatastore:getGaussdbCassandraInstancesInstanceDatastore"
          },
          "description": "Indicates the database information. The datastore object structure is documented\nbelow.\n"
        },
        "dbUserName": {
          "type": "string",
          "description": "Indicates the default username.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Indicates the enterprise project id.\n"
        },
        "flavor": {
          "type": "string",
          "description": "Indicates the instance specifications.\n"
        },
        "id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "mode": {
          "type": "string",
          "description": "Indicates the instance mode.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the instance.\n"
        },
        "nodeNum": {
          "type": "number",
          "description": "Indicates the count of the nodes.\n"
        },
        "nodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetGaussdbCassandraInstancesInstanceNode:getGaussdbCassandraInstancesInstanceNode"
          },
          "description": "Indicates the instance nodes information. The nodes object structure is documented below.\n"
        },
        "port": {
          "type": "number",
          "description": "Indicates the database port.\n"
        },
        "privateIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the list of private IP address of the nodes.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the instance. If omitted, the provider-level region will\nbe used.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Indicates the security group ID.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the network ID of a subnet.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Indicates the key/value tags of the instance.\n"
        },
        "volumeSize": {
          "type": "number",
          "description": "Indicates the size of the volume.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "backupStrategies",
        "datastores",
        "dbUserName",
        "enterpriseProjectId",
        "flavor",
        "id",
        "mode",
        "name",
        "nodeNum",
        "nodes",
        "port",
        "privateIps",
        "region",
        "securityGroupId",
        "status",
        "subnetId",
        "tags",
        "volumeSize",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getGaussdbCassandraInstancesInstanceBackupStrategy:getGaussdbCassandraInstancesInstanceBackupStrategy": {
      "properties": {
        "keepDays": {
          "type": "number",
          "description": "Indicates the number of days to retain the generated\n"
        },
        "startTime": {
          "type": "string",
          "description": "Indicates the backup time window.\n"
        }
      },
      "type": "object",
      "required": [
        "keepDays",
        "startTime"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getGaussdbCassandraInstancesInstanceDatastore:getGaussdbCassandraInstancesInstanceDatastore": {
      "properties": {
        "engine": {
          "type": "string",
          "description": "Indicates the database engine.\n"
        },
        "storageEngine": {
          "type": "string",
          "description": "Indicates the database storage engine.\n"
        },
        "version": {
          "type": "string",
          "description": "Indicates the database version.\n"
        }
      },
      "type": "object",
      "required": [
        "engine",
        "storageEngine",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getGaussdbCassandraInstancesInstanceNode:getGaussdbCassandraInstancesInstanceNode": {
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "Indicates the availability zone where the node resides.\n"
        },
        "id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the instance.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "Indicates the private IP address of a node.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        },
        "supportReduce": {
          "type": "boolean",
          "description": "Indicates whether the node support reduce.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "id",
        "name",
        "privateIp",
        "status",
        "supportReduce"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getGaussdbNosqlFlavorsFlavor:getGaussdbNosqlFlavorsFlavor": {
      "properties": {
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "All available zones (on sale) for current flavor.\n"
        },
        "engine": {
          "type": "string",
          "description": "Specifies the type of the database engine. The valid values are as follows:\n+ **cassandra**: The default value and means to query GaussDB (for Cassandra) instance specifications.\n+ **influxdb**: Means to query GaussDB (for Influx) instance specifications.\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Specifies the version of the database engine.\n"
        },
        "memory": {
          "type": "string",
          "description": "Specifies the memory size in gigabytes (GB).\n"
        },
        "name": {
          "type": "string",
          "description": "The spec code of the flavor.\n"
        },
        "vcpus": {
          "type": "string",
          "description": "Specifies the number of vCPUs.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZones",
        "engine",
        "engineVersion",
        "memory",
        "name",
        "vcpus"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getIdentityGroupUser:getIdentityGroupUser": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the identity group.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Indicates the whether the IAM user is enabled.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies the ID of the identity group.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the identity group.\n"
        },
        "passwordExpiresAt": {
          "type": "string",
          "description": "Indicates the time when the password will expire.\nNull indicates that the password has unlimited validity.\n"
        },
        "passwordStatus": {
          "type": "boolean",
          "description": "Indicates the password status. True means that the password needs to be changed,\nand false means that the password is normal.\n"
        },
        "passwordStrength": {
          "type": "string",
          "description": "Indicates the password strength. The value can be high, mid, or low.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "enabled",
        "id",
        "name",
        "passwordExpiresAt",
        "passwordStatus",
        "passwordStrength"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getIdentityProjectsProject:getIdentityProjectsProject": {
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Whether the IAM project is enabled.\n"
        },
        "id": {
          "type": "string",
          "description": "The IAM project ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the IAM project name to query.\n"
        }
      },
      "type": "object",
      "required": [
        "enabled",
        "id",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getIdentityUsersUser:getIdentityUsersUser": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Indicates the description of the IAM user.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies the status of the IAM user, the default value is **true**.\n"
        },
        "groups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the user groups to which an IAM user belongs.\n"
        },
        "id": {
          "type": "string",
          "description": "Indicates the ID of the User.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the IAM user name.\n"
        },
        "passwordExpiresAt": {
          "type": "string",
          "description": "Indicates the time when the password will expire.\nNull indicates that the password has unlimited validity.\n"
        },
        "passwordStatus": {
          "type": "boolean",
          "description": "Indicates the password status. True means that the password needs to be changed,\nand false means that the password is normal.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "enabled",
        "groups",
        "id",
        "name",
        "passwordExpiresAt",
        "passwordStatus"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getImagesImagesImage:getImagesImagesImage": {
      "properties": {
        "backupId": {
          "type": "string",
          "description": "The backup ID of the whole image in the CBR vault.\n"
        },
        "checksum": {
          "type": "string",
          "description": "The checksum of the data associated with the image.\n"
        },
        "containerFormat": {
          "type": "string",
          "description": "The format of the image's container.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The date when the image was created.\n"
        },
        "diskFormat": {
          "type": "string",
          "description": "The format of the image's disk.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project ID of the image.\n"
        },
        "id": {
          "type": "string",
          "description": "The ID of the image\n"
        },
        "imageType": {
          "type": "string",
          "description": "Specifies the environment where the image is used. For a BMS image, the value is **Ironic**.\n"
        },
        "minDiskGb": {
          "type": "number",
          "description": "The minimum amount of disk space required to use the image.\n"
        },
        "minRamMb": {
          "type": "number",
          "description": "The minimum amount of ram required to use the image.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the image. Cannot be used simultaneously with `name_regex`.\n"
        },
        "os": {
          "type": "string",
          "description": "Specifies the image OS type. The value can be **Windows**, **Ubuntu**,\n**RedHat**, **SUSE**, **CentOS**, **Debian**, **OpenSUSE**, **Oracle Linux**, **Fedora**, **Other**,\n**CoreOS**, or **EulerOS**.\n"
        },
        "osVersion": {
          "type": "string",
          "description": "Specifies the OS version. For example, *CentOS 7.4 64bit* or *Ubuntu 18.04 server 64bit*.\n"
        },
        "owner": {
          "type": "string",
          "description": "The owner (UUID) of the image.\n"
        },
        "protected": {
          "type": "boolean",
          "description": "Whether or not the image is protected.\n"
        },
        "sizeBytes": {
          "type": "number",
          "description": "The size of the image (in bytes).\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the image.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The date when the image was last updated.\n"
        },
        "visibility": {
          "type": "string",
          "description": "The visibility of the image. Must be one of\n**public**, **private**, **market** or **shared**.\n"
        }
      },
      "type": "object",
      "required": [
        "backupId",
        "checksum",
        "containerFormat",
        "createdAt",
        "diskFormat",
        "enterpriseProjectId",
        "id",
        "imageType",
        "minDiskGb",
        "minRamMb",
        "name",
        "os",
        "osVersion",
        "owner",
        "protected",
        "sizeBytes",
        "status",
        "updatedAt",
        "visibility"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getLbListenersV2Listener:getLbListenersV2Listener": {
      "properties": {
        "connectionLimit": {
          "type": "number",
          "description": "The maximum number of connections allowed for the listener.\n"
        },
        "defaultPoolId": {
          "type": "string",
          "description": "The ID of the default pool with which the ELB listener is associated.\n"
        },
        "defaultTlsContainerRef": {
          "type": "string",
          "description": "The ID of the server certificate used by the listener.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the ELB listener.\n"
        },
        "http2Enable": {
          "type": "boolean",
          "description": "Whether the ELB listener uses HTTP/2.\n"
        },
        "id": {
          "type": "string",
          "description": "The ELB loadbalancer ID.\n"
        },
        "loadbalancers": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetLbListenersV2ListenerLoadbalancer:getLbListenersV2ListenerLoadbalancer"
          },
          "description": "Listener list.\nThe loadbalancers structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "The listener name.\n"
        },
        "protocol": {
          "type": "string",
          "description": "The listener protocol.  \nThe valid values are **TCP**, **UDP**, **HTTP** and **TERMINATED_HTTPS**.\n"
        },
        "protocolPort": {
          "type": "number",
          "description": "The front-end listening port of the listener.  \nThe valid value is range from `1` to `65535`.\n"
        },
        "sniContainerRefs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of the SNI certificate (server certificates with a domain name) IDs used by the listener.\n"
        }
      },
      "type": "object",
      "required": [
        "connectionLimit",
        "defaultPoolId",
        "defaultTlsContainerRef",
        "description",
        "http2Enable",
        "id",
        "loadbalancers",
        "name",
        "protocol",
        "protocolPort",
        "sniContainerRefs"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getLbListenersV2ListenerLoadbalancer:getLbListenersV2ListenerLoadbalancer": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The ELB loadbalancer ID.\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getModelartsDatasetVersionsVersion:getModelartsDatasetVersionsVersion": {
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The creation time, in UTC format.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the dataset version.\n"
        },
        "files": {
          "type": "number",
          "description": "The total number of samples.\n"
        },
        "id": {
          "type": "string",
          "description": "The ID of the dataset version.\n"
        },
        "isCurrent": {
          "type": "boolean",
          "description": "Whether this version is current version.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the dataset version.\n"
        },
        "splitRatio": {
          "type": "string",
          "description": "Specifies the range of splitting ratio which randomly divides a labeled sample\ninto a training set and a validation set. Separate the minimum and maximum split ratios with commas,\nfor example: \"0.0,1.0\".\n"
        },
        "status": {
          "type": "number",
          "description": "Dataset version status. Valid values are as follows:\n+ **0**: Creating.\n+ **1**: Normal.\n+ **2**: Deleting.\n+ **3**: Deleted.\n+ **4**: Exception.\n"
        },
        "storagePath": {
          "type": "string",
          "description": "The path to save the manifest file of the version.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The last update time, in UTC format.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "description",
        "files",
        "id",
        "isCurrent",
        "name",
        "splitRatio",
        "status",
        "storagePath",
        "updatedAt"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getModelartsDatasetsDataset:getModelartsDatasetsDataset": {
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The dataset creation time.\n"
        },
        "dataFormat": {
          "type": "string",
          "description": "The dataset format. Valid values include: `Default`, `CarbonData`: Carbon format(Supported only for\ntable type dataset.).\n"
        },
        "dataSources": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetModelartsDatasetsDatasetDataSource:getModelartsDatasetsDatasetDataSource"
          },
          "description": "The data sources which is used to imported the source data (such as pictures/files/audio, etc.) in\nthis directory and subdirectories to the dataset. Structure is documented below.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the dataset.\n"
        },
        "id": {
          "type": "string",
          "description": "The ID of the dataset.\n"
        },
        "labels": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetModelartsDatasetsDatasetLabel:getModelartsDatasetsDatasetLabel"
          },
          "description": "The labels information. Structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of datasets.\n"
        },
        "outputPath": {
          "type": "string",
          "description": "The OBS path for storing output files such as labeled files.\n"
        },
        "schemas": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetModelartsDatasetsDatasetSchema:getModelartsDatasetsDatasetSchema"
          },
          "description": "The schema information of source data when `type` is `400`(Table Type). Structure is documented below.\n"
        },
        "status": {
          "type": "number",
          "description": "Dataset status. Valid values are as follows:\n+ **0**: Creating.\n+ **1**: Completed.\n+ **2**: Deleting.\n+ **3**: Deleted.\n+ **4**: Exception.\n+ **5**: Syncing.\n+ **6**: Releasing.\n+ **7**: Version switching.\n+ **8**: Importing.\n"
        },
        "type": {
          "type": "number",
          "description": "Specifies the type of datasets. The options are:\n+ **0**: Image classification, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **1**: Object detection, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **3**: Image segmentation, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **100**: Text classification, supported formats: `.txt`, `.csv`.\n+ **200**: Sound classification, Supported formats: `.wav`.\n+ **400**: Table type, supported formats: Carbon type.\n+ **600**: Video, supported formats: `.mp4`\n+ **900**: Free format.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "dataFormat",
        "dataSources",
        "description",
        "id",
        "labels",
        "name",
        "outputPath",
        "schemas",
        "status",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getModelartsDatasetsDatasetDataSource:getModelartsDatasetsDatasetDataSource": {
      "properties": {
        "dataType": {
          "type": "number",
          "description": "The type of data source. Valid values are as follows:\n+ *0*: OBS.\n+ *1*: GaussDB(DWS).\n+ *2*: DLI.\n+ *4*: MRS.\n"
        },
        "path": {
          "type": "string",
          "description": "The OBS path when `data_type` is `0`(OBS) or the HDFS path when `data_type` is `4`(MRS). All the file in this\ndirectory and subdirectories will be which be imported to the dataset.\n"
        },
        "withColumnHeader": {
          "type": "boolean",
          "description": "Whether the data contains table header when the type of dataset is `400`(Table type).\n"
        }
      },
      "type": "object",
      "required": [
        "dataType",
        "path",
        "withColumnHeader"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getModelartsDatasetsDatasetLabel:getModelartsDatasetsDatasetLabel": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Specifies the name of datasets.\n"
        },
        "propertyColor": {
          "type": "string",
          "description": "The color of label.\n"
        },
        "propertyShape": {
          "type": "string",
          "description": "The shape of label. Valid values include: `bndbox`, `polygon`, `circle`, `line`, `dashed`,\n`point`, `polyline`.\n"
        },
        "propertyShortcut": {
          "type": "string",
          "description": "The shortcut of label.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "propertyColor",
        "propertyShape",
        "propertyShortcut"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getModelartsDatasetsDatasetSchema:getModelartsDatasetsDatasetSchema": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Specifies the name of datasets.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of datasets. The options are:\n+ **0**: Image classification, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **1**: Object detection, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **3**: Image segmentation, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **100**: Text classification, supported formats: `.txt`, `.csv`.\n+ **200**: Sound classification, Supported formats: `.wav`.\n+ **400**: Table type, supported formats: Carbon type.\n+ **600**: Video, supported formats: `.mp4`\n+ **900**: Free format.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getModelartsModelTemplatesTemplate:getModelartsModelTemplatesTemplate": {
      "properties": {
        "arch": {
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "The description of the input parameter.\n"
        },
        "engine": {
          "type": "string",
          "description": "The AI engine.  \nThe valid values are **Caffe**, **Caffe1.0 CPU**, **Caffe1.0 GPU**, **MXNet**, **MXNet1.2.1**,\n**MindSpore**, **PyTorch**, **PyTorch1.0**, **TensorFlow**, and **TensorFlow1.8**.\n"
        },
        "environment": {
          "type": "string",
          "description": "Model runtime environment.  \nThe valid values are **ascend-arm-py2.7**, **python2.7**, and **python3.6**.\n"
        },
        "id": {
          "type": "string",
          "description": "The ID of the input parameter.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the input parameter.\n"
        },
        "templateDocs": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetModelartsModelTemplatesTemplateTemplateDoc:getModelartsModelTemplatesTemplateTemplateDoc"
          },
          "description": "List of template description documents.  \nThe template_docs structure is documented below.\n"
        },
        "templateInputs": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetModelartsModelTemplatesTemplateTemplateInput:getModelartsModelTemplatesTemplateTemplateInput"
          },
          "description": "List of input parameters for the model.\nThe template_inputs structure is documented below.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of model. The valid values are **Classification** and **Common**.\n"
        }
      },
      "type": "object",
      "required": [
        "arch",
        "description",
        "engine",
        "environment",
        "id",
        "name",
        "templateDocs",
        "templateInputs",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getModelartsModelTemplatesTemplateTemplateDoc:getModelartsModelTemplatesTemplateTemplateDoc": {
      "properties": {
        "docName": {
          "type": "string",
          "description": "Document name.\n"
        },
        "docUrl": {
          "type": "string",
          "description": "HTTP(S) link of the document.\n"
        }
      },
      "type": "object",
      "required": [
        "docName",
        "docUrl"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getModelartsModelTemplatesTemplateTemplateInput:getModelartsModelTemplatesTemplateTemplateInput": {
      "properties": {
        "description": {
          "type": "string",
          "description": "The description of the input parameter.\n"
        },
        "id": {
          "type": "string",
          "description": "The ID of the input parameter.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the input parameter.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of model. The valid values are **Classification** and **Common**.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "id",
        "name",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getObsBucketsBucket:getObsBucketsBucket": {
      "properties": {
        "bucket": {
          "type": "string",
          "description": "The name of the OBS bucket.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The date when the OBS bucket was created.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "The enterprise project id of the OBS bucket.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the OBS bucket.\nIf omitted, the provider-level region will be used.\n"
        },
        "storageClass": {
          "type": "string",
          "description": "The storage class of the OBS bucket.\n"
        }
      },
      "type": "object",
      "required": [
        "bucket",
        "createdAt",
        "enterpriseProjectId",
        "region",
        "storageClass"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getRdsBackupsBackup:getRdsBackupsBackup": {
      "properties": {
        "associatedWithDdm": {
          "type": "boolean",
          "description": "Whether a DDM instance has been associated.\n"
        },
        "beginTime": {
          "type": "string",
          "description": "Specifies the start time for obtaining the backup list.\nThe format of the start time is \"yyyy-mm-ddThh:mm:ssZ\".\n"
        },
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetRdsBackupsBackupDatabase:getRdsBackupsBackupDatabase"
          },
          "description": "Database been backed up. The databases structure is documented below.\n"
        },
        "datastores": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetRdsBackupsBackupDatastore:getRdsBackupsBackupDatastore"
          },
          "description": "The database information. The datastore structure is documented below.\n"
        },
        "endTime": {
          "type": "string",
          "description": "Specifies the end time for obtaining the backup list.\nThe format of the end time is \"yyyy-mm-ddThh:mm:ssZ\" and the end time must be later than the start time.\n"
        },
        "id": {
          "type": "string",
          "description": "Backup ID.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the DB instance ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the backup name.\n"
        },
        "size": {
          "type": "number",
          "description": "Backup size in KB.\n"
        },
        "status": {
          "type": "string",
          "description": "Backup status. The options are as follows:\n- **BUILDING**: Backup in progress.\n- **COMPLETED**: Backup completed.\n- **FAILED**: Backup failed.\n- **DELETING**: Backup being deleted.\n"
        },
        "type": {
          "type": "string",
          "description": "DB engine. The value can be: **MySQL**, **PostgreSQL**, **SQL Server**, **MariaDB**.\n"
        }
      },
      "type": "object",
      "required": [
        "associatedWithDdm",
        "beginTime",
        "databases",
        "datastores",
        "endTime",
        "id",
        "instanceId",
        "name",
        "size",
        "status",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getRdsBackupsBackupDatabase:getRdsBackupsBackupDatabase": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Specifies the backup name.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getRdsBackupsBackupDatastore:getRdsBackupsBackupDatastore": {
      "properties": {
        "type": {
          "type": "string",
          "description": "DB engine. The value can be: **MySQL**, **PostgreSQL**, **SQL Server**, **MariaDB**.\n"
        },
        "version": {
          "type": "string",
          "description": "DB engine version.\n"
        }
      },
      "type": "object",
      "required": [
        "type",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getRdsEngineVersionsVersion:getRdsEngineVersionsVersion": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Indicates the database version ID. Its value is unique.\n"
        },
        "name": {
          "type": "string",
          "description": "Indicates the database version number. Only the major version number (two digits) is returned.\nFor example, if the version number is MySQL 5.6.X, only 5.6 is returned.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getRdsFlavorsV3Flavor:getRdsFlavorsV3Flavor": {
      "properties": {
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The availability zones which the RDS flavor belongs to.\n"
        },
        "dbVersions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The Available versions of the database.\n"
        },
        "groupType": {
          "type": "string",
          "description": "Specifies the performance specification, the valid values are as follows:\n- **normal**: General enhanced.\n- **normal2**: General enhanced type II.\n- **dedicatedNormal**: (dedicatedNormalLocalssd): Dedicated for x86.\n- **normalLocalssd**: x86 general type.\n- **general**: General type.\n- **bigmem**: Large memory type.\n"
        },
        "id": {
          "type": "string",
          "description": "The ID of the rds flavor.\n"
        },
        "instanceMode": {
          "type": "string",
          "description": "The mode of instance. Value: *ha*(indicates primary/standby instance),\n*single*(indicates single instance) and *replica*(indicates read replicas).\n"
        },
        "memory": {
          "type": "number",
          "description": "Specifies the memory size(GB) in the RDS flavor.\n"
        },
        "mode": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of the rds flavor.\n"
        },
        "vcpus": {
          "type": "number",
          "description": "Specifies the number of vCPUs in the RDS flavor.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZones",
        "dbVersions",
        "groupType",
        "id",
        "instanceMode",
        "memory",
        "mode",
        "name",
        "vcpus"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getRdsInstancesInstance:getRdsInstancesInstance": {
      "properties": {
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the availability zone where the node resides.\n"
        },
        "backupStrategies": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetRdsInstancesInstanceBackupStrategy:getRdsInstancesInstanceBackupStrategy"
          },
          "description": "Indicates the advanced backup policy. The backup_strategy object structure\nis documented below.\n"
        },
        "created": {
          "type": "string",
          "description": "Indicates the creation time.\n"
        },
        "dbs": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetRdsInstancesInstanceDb:getRdsInstancesInstanceDb"
          },
          "description": "Indicates the database information. The db object structure is documented below.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id.\n"
        },
        "fixedIp": {
          "type": "string",
          "description": "Indicates the intranet floating IP address of the instance.\n"
        },
        "flavor": {
          "type": "string",
          "description": "Indicates the instance specifications.\n"
        },
        "haReplicationMode": {
          "type": "string",
          "description": "Indicates the replication mode for the standby DB instance.\n"
        },
        "id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the instance.\n"
        },
        "nodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetRdsInstancesInstanceNode:getRdsInstancesInstanceNode"
          },
          "description": "Indicates the instance nodes information. The nodes object structure is documented below.\n"
        },
        "paramGroupId": {
          "type": "string",
          "description": "Indicates the configuration ID.\n"
        },
        "privateIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the private ips in list.\n"
        },
        "publicIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the public ips in list.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which query obtain the instances. If omitted, the provider-level region\nwill be used.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Indicates the security group ID.\n"
        },
        "sslEnable": {
          "type": "boolean",
          "description": "Indicates whether to enable SSL.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the network ID of a subnet.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Indicates the tags of the instance.\n"
        },
        "timeZone": {
          "type": "string",
          "description": "Indicates the time zone.\n"
        },
        "volumes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetRdsInstancesInstanceVolume:getRdsInstancesInstanceVolume"
          },
          "description": "Indicates the volume information. The volume object structure is documented below.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZones",
        "backupStrategies",
        "created",
        "dbs",
        "enterpriseProjectId",
        "fixedIp",
        "flavor",
        "haReplicationMode",
        "id",
        "name",
        "nodes",
        "paramGroupId",
        "privateIps",
        "publicIps",
        "region",
        "securityGroupId",
        "sslEnable",
        "status",
        "subnetId",
        "tags",
        "timeZone",
        "volumes",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getRdsInstancesInstanceBackupStrategy:getRdsInstancesInstanceBackupStrategy": {
      "properties": {
        "keepDays": {
          "type": "number",
          "description": "Indicates the number of days to retain the generated.\n"
        },
        "startTime": {
          "type": "string",
          "description": "Indicates the backup time window.\n"
        }
      },
      "type": "object",
      "required": [
        "keepDays",
        "startTime"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getRdsInstancesInstanceDb:getRdsInstancesInstanceDb": {
      "properties": {
        "port": {
          "type": "number",
          "description": "Indicates the database port.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the instance. Valid values are:\n**Single**, **Ha**, **Replica**, and **Enterprise**.\n"
        },
        "userName": {
          "type": "string",
          "description": "Indicates the database username.\n"
        },
        "version": {
          "type": "string",
          "description": "Indicates the database version.\n"
        }
      },
      "type": "object",
      "required": [
        "port",
        "type",
        "userName",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getRdsInstancesInstanceNode:getRdsInstancesInstanceNode": {
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "Indicates the availability zone where the node resides.\n"
        },
        "id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the instance.\n"
        },
        "role": {
          "type": "string",
          "description": "Indicates the node type.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "id",
        "name",
        "role",
        "status"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getRdsInstancesInstanceVolume:getRdsInstancesInstanceVolume": {
      "properties": {
        "diskEncryptionId": {
          "type": "string",
          "description": "Indicates the kms key id.\n"
        },
        "size": {
          "type": "number",
          "description": "Indicates the volume size.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the instance. Valid values are:\n**Single**, **Ha**, **Replica**, and **Enterprise**.\n"
        }
      },
      "type": "object",
      "required": [
        "diskEncryptionId",
        "size",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getRdsStorageTypesStorageType:getRdsStorageTypesStorageType": {
      "properties": {
        "azStatus": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The status details of the AZs to which the specification belongs.\nKey indicates the AZ ID, and value indicates the specification status in the AZ.\nThe options of value are as follows:\n- **normal**: The specifications in the AZ are available.\n- **unsupported**: The specifications are not supported by the AZ.\n- **sellout**: The specifications in the AZ are sold out.\n"
        },
        "name": {
          "type": "string",
          "description": "Indicates the storage type. Its value can be any of the following:\n- **COMMON**: Indicates the SATA type.\n- **ULTRAHIGH**: Indicates the SSD type.\n"
        },
        "supportComputeGroupTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Performance specifications.\nThe options are as follows:\n- **normal**: General-enhanced.\n- **normal2**: General-enhanced II.\n- **armFlavors**: Kunpeng general-enhanced.\n- **dedicicatenormal**: Exclusive x86.\n- **armlocalssd**: Standard Kunpeng.\n- **normallocalssd**: Standard x86.\n- **general**: General-purpose.\n- **dedicated**: Dedicated, which is only supported for cloud SSDs.\n- **rapid**: Dedicated, which is only supported for extreme SSDs.\n- **bigmen**: Large-memory.\n"
        }
      },
      "type": "object",
      "required": [
        "azStatus",
        "name",
        "supportComputeGroupTypes"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getSfsTurbosTurbo:getSfsTurbosTurbo": {
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "The availability zone where the SFS turbo file system is located.\n"
        },
        "availableCapacity": {
          "type": "string",
          "description": "The available capacity of the SFS turbo file system, in GB.\n"
        },
        "cryptKeyId": {
          "type": "string",
          "description": "The ID of a KMS key to encrypt the SFS turbo file system.\n"
        },
        "enhanced": {
          "type": "boolean",
          "description": "Whether the SFS turbo file system is enhanced.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the SFS turbo file systems\nresource.\n"
        },
        "exportLocation": {
          "type": "string",
          "description": "The mount point of the SFS turbo file system.\n"
        },
        "id": {
          "type": "string",
          "description": "The resource ID of the SFS turbo file system.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the SFS turbo file system.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "The ID of the security group to which the SFS turbo belongs.\n"
        },
        "shareProto": {
          "type": "string",
          "description": "Specifies the protocol of the SFS turbo file system. The valid value is **NFS**.\n"
        },
        "shareType": {
          "type": "string",
          "description": "Specifies the type of the SFS turbo file system.\nThe valid values are **STANDARD** and **PERFORMANCE**.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the capacity of the SFS turbo file system, in GB.\nThe value ranges from `500` to `32,768`, and must be larger than `10,240` for an enhanced file system.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the VPC Subnet to which the SFS turbo belongs.\n"
        },
        "version": {
          "type": "string",
          "description": "The version of the SFS turbo file system.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "The ID of the VPC to which the SFS turbo belongs.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "availableCapacity",
        "cryptKeyId",
        "enhanced",
        "enterpriseProjectId",
        "exportLocation",
        "id",
        "name",
        "securityGroupId",
        "shareProto",
        "shareType",
        "size",
        "subnetId",
        "version",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getSmnMessageTemplatesTemplate:getSmnMessageTemplatesTemplate": {
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Indicates the create time.\n"
        },
        "id": {
          "type": "string",
          "description": "Indicates the message template ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the message template.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol of the message template.\n"
        },
        "tagNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the variable list. The variable name will be quoted in braces ({}) in the template.\nWhen you use a template to send messages, you can replace the variable with any content.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "Indicates the update time.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "id",
        "name",
        "protocol",
        "tagNames",
        "updatedAt"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getSmnTopicsTopic:getSmnTopicsTopic": {
      "properties": {
        "displayName": {
          "type": "string",
          "description": "Specifies the topic display name.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the topic.\n"
        },
        "id": {
          "type": "string",
          "description": "The topic ID. The value is the topic URN.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the topic.\n"
        },
        "pushPolicy": {
          "type": "number",
          "description": "Message pushing policy.\n+ **0**: indicates that the message sending fails and the message is cached in the queue.\n+ **1**: indicates that the failed message is discarded.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "topicUrn": {
          "type": "string",
          "description": "Specifies the topic URN.\n"
        }
      },
      "type": "object",
      "required": [
        "displayName",
        "enterpriseProjectId",
        "id",
        "name",
        "pushPolicy",
        "tags",
        "topicUrn"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getSmsSourceServersServer:getSmsSourceServersServer": {
      "properties": {
        "agentVersion": {
          "type": "string",
          "description": "The version of Agent installed on the source server.\n"
        },
        "connected": {
          "type": "boolean",
          "description": "Whether the source server is properly connected to SMS.\n"
        },
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetSmsSourceServersServerDisk:getSmsSourceServersServerDisk"
          },
          "description": "The disk information of the source server. The disks object structure is documented below.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies the ID of the source server.\n"
        },
        "ip": {
          "type": "string",
          "description": "Specifies the IP address of the source server.\n"
        },
        "memory": {
          "type": "number",
          "description": "The memory size in MB.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the source server.\n"
        },
        "osType": {
          "type": "string",
          "description": "The OS type of the source server. The value can be **WINDOWS** and **LINUX**.\n"
        },
        "osVersion": {
          "type": "string",
          "description": "The OS version of the source server, for example, UBUNTU_20_4_64BIT.\n"
        },
        "registeredTime": {
          "type": "string",
          "description": "The UTC time when the source server is registered.\n"
        },
        "state": {
          "type": "string",
          "description": "Specifies the status of the source server.\n"
        },
        "vcpus": {
          "type": "number",
          "description": "The vcpus count of the source server.\n"
        }
      },
      "type": "object",
      "required": [
        "agentVersion",
        "connected",
        "disks",
        "id",
        "ip",
        "memory",
        "name",
        "osType",
        "osVersion",
        "registeredTime",
        "state",
        "vcpus"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getSmsSourceServersServerDisk:getSmsSourceServersServerDisk": {
      "properties": {
        "deviceType": {
          "type": "string",
          "description": "The disk type. The value can be **BOOT**, **OS** and **NORMAL**.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the source server.\n"
        },
        "size": {
          "type": "number",
          "description": "The disk size in MB.\n"
        }
      },
      "type": "object",
      "required": [
        "deviceType",
        "name",
        "size"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getVpcRouteTableRoute:getVpcRouteTableRoute": {
      "properties": {
        "description": {
          "type": "string",
          "description": "(String) - The description about the route.\n"
        },
        "destination": {
          "type": "string",
          "description": "(String) - The destination address in the CIDR notation format\n"
        },
        "nexthop": {
          "type": "string",
          "description": "(String) - The next hop.\n"
        },
        "type": {
          "type": "string",
          "description": "(String) - The route type.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "destination",
        "nexthop",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getVpcSubnetsSubnet:getVpcSubnetsSubnet": {
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the availability zone (AZ) to which the desired subnet belongs to.\n"
        },
        "cidr": {
          "type": "string",
          "description": "Specifies the network segment of desired subnet. The value must be in CIDR format.\n"
        },
        "description": {
          "type": "string"
        },
        "dhcpEnable": {
          "type": "boolean"
        },
        "dnsLists": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "gatewayIp": {
          "type": "string",
          "description": "Specifies the subnet gateway address of desired subnet.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies the id of the desired subnet.\n"
        },
        "ipv4SubnetId": {
          "type": "string"
        },
        "ipv6Cidr": {
          "type": "string"
        },
        "ipv6Enable": {
          "type": "boolean"
        },
        "ipv6Gateway": {
          "type": "string"
        },
        "ipv6SubnetId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the desired subnet.\n"
        },
        "primaryDns": {
          "type": "string",
          "description": "Specifies the IP address of DNS server 1 on the desired subnet.\n"
        },
        "secondaryDns": {
          "type": "string",
          "description": "Specifies the IP address of DNS server 2 on the desired subnet.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the current status of the desired subnet.\nthe value can be ACTIVE, DOWN, UNKNOWN, or ERROR.\n"
        },
        "subnetId": {
          "type": "string"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the included key/value pairs which associated with the desired subnet.\n\n> A maximum of 10 tag keys are allowed for each query operation. Each tag key can have up to 10 tag values.\nThe tag key cannot be left blank or set to an empty string. Each tag key must be unique, and each tag value in a\ntag must be unique, use commas(,) to separate the multiple values. An empty for values indicates any value.\nThe values are in the OR relationship.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the id of the VPC that the desired subnet belongs to.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "cidr",
        "description",
        "dhcpEnable",
        "dnsLists",
        "gatewayIp",
        "id",
        "ipv4SubnetId",
        "ipv6Cidr",
        "ipv6Enable",
        "ipv6Gateway",
        "ipv6SubnetId",
        "name",
        "primaryDns",
        "secondaryDns",
        "status",
        "subnetId",
        "tags",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getVpcV1Route:getVpcV1Route": {
      "properties": {
        "destination": {
          "type": "string",
          "description": "The destination network segment of a route.\n"
        },
        "nexthop": {
          "type": "string",
          "description": "The next hop of a route.\n"
        }
      },
      "type": "object",
      "required": [
        "destination",
        "nexthop"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getVpcepEndpointsEndpoint:getVpcepEndpointsEndpoint": {
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Creation date of the VPC endpoint.\n"
        },
        "enableDns": {
          "type": "boolean",
          "description": "Flag indicating dns has been enabled for the VPC endpoint.\n"
        },
        "enableWhitelist": {
          "type": "boolean",
          "description": "Flag indicating access control have been enabled on this VPC endpoint.\n"
        },
        "id": {
          "type": "string",
          "description": "The unique ID of the public VPC endpoint service.\n"
        },
        "ipAddress": {
          "type": "string",
          "description": "The IP of the VPC endpoint.\n"
        },
        "networkId": {
          "type": "string",
          "description": "The ID of the subnet holding the VPC endpoint.\n"
        },
        "packetId": {
          "type": "number",
          "description": "The marker id of the VPC endpoint.\n"
        },
        "privateDomainName": {
          "type": "string",
          "description": "DNS name pointing to the VPC endpoint ip.\n"
        },
        "projectId": {
          "type": "string",
          "description": "The ID of the project holding the VPC endpoint.\n"
        },
        "serviceId": {
          "type": "string",
          "description": "The ID of the VPC endpoint service.\n"
        },
        "serviceName": {
          "type": "string",
          "description": "Specifies the name of the VPC endpoint service.\nThe value is not case-sensitive and supports fuzzy match.\n"
        },
        "serviceType": {
          "type": "string",
          "description": "The type of the VPC endpoint.\n"
        },
        "status": {
          "type": "string",
          "description": "The connection status of the VPC endpoint.\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FgetVpcepEndpointsEndpointTag:getVpcepEndpointsEndpointTag"
          },
          "description": "The key/value pairs to associate with the VPC endpoint.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "Last update date of the VPC endpoint.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the unique ID of the vpc holding the VPC endpoint service.\n"
        },
        "whitelists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of IP or CIDR block which can access the VPC endpoint.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "enableDns",
        "enableWhitelist",
        "id",
        "ipAddress",
        "networkId",
        "packetId",
        "privateDomainName",
        "projectId",
        "serviceId",
        "serviceName",
        "serviceType",
        "status",
        "tags",
        "updatedAt",
        "vpcId",
        "whitelists"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getVpcepEndpointsEndpointTag:getVpcepEndpointsEndpointTag": {
      "properties": {
        "key": {
          "type": "string",
          "description": "The tag key. Each tag key contains a maximum of 127 unicode characters but cannot be left blank.\n"
        },
        "value": {
          "type": "string",
          "description": "The tag value list. Each value contains a maximum of 255 Unicode characters.\nBefore using values, delete SBC spaces before and after the value.\n"
        }
      },
      "type": "object",
      "required": [
        "key",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getVpcepPublicServicesService:getVpcepPublicServicesService": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique ID of the public VPC endpoint service.\n"
        },
        "isCharge": {
          "type": "boolean",
          "description": "Indicates whether the associated VPC endpoint carries a charge.\n"
        },
        "owner": {
          "type": "string",
          "description": "The owner of the VPC endpoint service.\n"
        },
        "serviceName": {
          "type": "string",
          "description": "Specifies the name of the public VPC endpoint service.\nThe value is not case-sensitive and supports fuzzy match.\n"
        },
        "serviceType": {
          "type": "string",
          "description": "The type of the VPC endpoint service.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "isCharge",
        "owner",
        "serviceName",
        "serviceType"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getVpcsVpc:getVpcsVpc": {
      "properties": {
        "cidr": {
          "type": "string",
          "description": "Specifies the cidr block of the desired VPC.\n"
        },
        "description": {
          "type": "string",
          "description": "Indicates the description of the VPC.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project ID which the desired VPC belongs to.\n"
        },
        "id": {
          "type": "string",
          "description": "Specifies the id of the desired VPC.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the desired VPC. The value is a string of no more than 64 characters\nand can contain digits, letters, underscores (_) and hyphens (-).\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the current status of the desired VPC. The value can be CREATING, OK or ERROR.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the included key/value pairs which associated with the desired VPC.\n\n> A maximum of 10 tag keys are allowed for each query operation. Each tag key can have up to 10 tag values.\nThe tag key cannot be left blank or set to an empty string. Each tag key must be unique, and each tag value in a\ntag must be unique, use commas(,) to separate the multiple values. An empty for values indicates any value.\nThe values are in the OR relationship.\n"
        }
      },
      "type": "object",
      "required": [
        "cidr",
        "description",
        "enterpriseProjectId",
        "id",
        "name",
        "status",
        "tags"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "flexibleengine:index/getWafDedicatedInstancesInstance:getWafDedicatedInstancesInstance": {
      "properties": {
        "accessStatus": {
          "type": "number",
          "description": "The access status of the instance. `0`: inaccessible, `1`: accessible.\n"
        },
        "availableZone": {
          "type": "string",
          "description": "The available zone names for the WAF dedicated instances.\n"
        },
        "cpuArchitecture": {
          "type": "string",
          "description": "The ECS cpu architecture of WAF dedicated instance.\n"
        },
        "ecsFlavor": {
          "type": "string",
          "description": "The flavor of the ECS used by the WAF instance.\n"
        },
        "groupId": {
          "type": "string",
          "description": "The instance group ID used by the WAF dedicated instance in ELB mode.\n"
        },
        "id": {
          "type": "string",
          "description": "The id of WAF dedicated instance.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of WAF dedicated instance.\n"
        },
        "runStatus": {
          "type": "number",
          "description": "The running status of the instance. Values are:\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The security group of the instance. This is an array of security group ids.\n"
        },
        "serverId": {
          "type": "string",
          "description": "The service of the instance.\n"
        },
        "serviceIp": {
          "type": "string",
          "description": "The service ip of the instance.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the VPC Subnet of WAF dedicated instance VPC.\n"
        },
        "upgradable": {
          "type": "number",
          "description": "The instance is to support upgrades. `0`: Cannot be upgraded, `1`: Can be upgraded.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "The VPC id of WAF dedicated instance.\n"
        }
      },
      "type": "object",
      "required": [
        "accessStatus",
        "availableZone",
        "cpuArchitecture",
        "ecsFlavor",
        "groupId",
        "id",
        "name",
        "runStatus",
        "securityGroups",
        "serverId",
        "serviceIp",
        "subnetId",
        "upgradable",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    }
  },
  "provider": {
    "description": "The provider type for the flexibleengine 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": {
      "accessKey": {
        "type": "string",
        "description": "The access key of the FlexibleEngine cloud to use.\n"
      },
      "authUrl": {
        "type": "string",
        "description": "The Identity authentication URL.\n"
      },
      "cacertFile": {
        "type": "string",
        "description": "A Custom CA certificate.\n"
      },
      "cert": {
        "type": "string",
        "description": "A client certificate to authenticate with.\n"
      },
      "cloud": {
        "type": "string",
        "description": "The endpoint of cloud provider, defaults to prod-cloud-ocb.orange-business.com\n"
      },
      "domainId": {
        "type": "string",
        "description": "The ID of the Domain to scope to (Identity v3).\n"
      },
      "domainName": {
        "type": "string",
        "description": "The name of the Domain to scope to (Identity v3).\n"
      },
      "key": {
        "type": "string",
        "description": "A client private key to authenticate with.\n"
      },
      "password": {
        "type": "string",
        "description": "Password to login with.\n",
        "secret": true
      },
      "region": {
        "type": "string",
        "description": "The FlexibleEngine region to connect to.\n"
      },
      "secretKey": {
        "type": "string",
        "description": "The secret key of the FlexibleEngine cloud to use.\n"
      },
      "securityToken": {
        "type": "string",
        "description": "The security token to authenticate with a temporary security credential.\n"
      },
      "tenantId": {
        "type": "string",
        "description": "The ID of the Tenant (Identity v2) or Project (Identity v3) to login with.\n"
      },
      "tenantName": {
        "type": "string",
        "description": "The name of the Tenant (Identity v2) or Project (Identity v3) to login with.\n"
      },
      "token": {
        "type": "string",
        "description": "Authentication token to use as an alternative to username/password.\n"
      },
      "userId": {
        "type": "string",
        "description": "User ID to login with.\n"
      },
      "userName": {
        "type": "string",
        "description": "Username to login with.\n"
      }
    },
    "type": "object",
    "required": [
      "region"
    ],
    "inputProperties": {
      "accessKey": {
        "type": "string",
        "description": "The access key of the FlexibleEngine cloud to use.\n"
      },
      "authUrl": {
        "type": "string",
        "description": "The Identity authentication URL.\n"
      },
      "cacertFile": {
        "type": "string",
        "description": "A Custom CA certificate.\n"
      },
      "cert": {
        "type": "string",
        "description": "A client certificate to authenticate with.\n"
      },
      "cloud": {
        "type": "string",
        "description": "The endpoint of cloud provider, defaults to prod-cloud-ocb.orange-business.com\n"
      },
      "domainId": {
        "type": "string",
        "description": "The ID of the Domain to scope to (Identity v3).\n"
      },
      "domainName": {
        "type": "string",
        "description": "The name of the Domain to scope to (Identity v3).\n"
      },
      "endpoints": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        },
        "description": "Experimental Feature: the custom endpoints used to override the default endpoint URL\n"
      },
      "insecure": {
        "type": "boolean",
        "description": "Trust self-signed certificates.\n"
      },
      "key": {
        "type": "string",
        "description": "A client private key to authenticate with.\n"
      },
      "maxRetries": {
        "type": "number",
        "description": "How many times HTTP connection should be retried until giving up.\n"
      },
      "password": {
        "type": "string",
        "description": "Password to login with.\n",
        "secret": true
      },
      "region": {
        "type": "string",
        "description": "The FlexibleEngine region to connect to.\n"
      },
      "secretKey": {
        "type": "string",
        "description": "The secret key of the FlexibleEngine cloud to use.\n"
      },
      "securityToken": {
        "type": "string",
        "description": "The security token to authenticate with a temporary security credential.\n"
      },
      "tenantId": {
        "type": "string",
        "description": "The ID of the Tenant (Identity v2) or Project (Identity v3) to login with.\n"
      },
      "tenantName": {
        "type": "string",
        "description": "The name of the Tenant (Identity v2) or Project (Identity v3) to login with.\n"
      },
      "token": {
        "type": "string",
        "description": "Authentication token to use as an alternative to username/password.\n"
      },
      "userId": {
        "type": "string",
        "description": "User ID to login with.\n"
      },
      "userName": {
        "type": "string",
        "description": "Username to login with.\n"
      }
    },
    "requiredInputs": [
      "region"
    ]
  },
  "resources": {
    "flexibleengine:index/antiddosV1:AntiddosV1": {
      "description": "Anti-DDoS monitors the service traffic from the Internet to ECSs, ELB instances, and BMSs to detect attack traffic\nin real time. It then cleans attack traffic according to user-configured defense policies so that services run as normal.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst eipId = config.requireObject(\"eipId\");\nconst myantiddos = new flexibleengine.AntiddosV1(\"myantiddos\", {\n    floatingIpId: eipId,\n    enableL7: true,\n    trafficPosId: 1,\n    httpRequestPosId: 3,\n    cleaningAccessPosId: 2,\n    appTypeId: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\neip_id = config.require_object(\"eipId\")\nmyantiddos = flexibleengine.AntiddosV1(\"myantiddos\",\n    floating_ip_id=eip_id,\n    enable_l7=True,\n    traffic_pos_id=1,\n    http_request_pos_id=3,\n    cleaning_access_pos_id=2,\n    app_type_id=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var eipId = config.RequireObject<dynamic>(\"eipId\");\n    var myantiddos = new Flexibleengine.AntiddosV1(\"myantiddos\", new()\n    {\n        FloatingIpId = eipId,\n        EnableL7 = true,\n        TrafficPosId = 1,\n        HttpRequestPosId = 3,\n        CleaningAccessPosId = 2,\n        AppTypeId = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\teipId := cfg.RequireObject(\"eipId\")\n\t\t_, err := flexibleengine.NewAntiddosV1(ctx, \"myantiddos\", &flexibleengine.AntiddosV1Args{\n\t\t\tFloatingIpId:        pulumi.Any(eipId),\n\t\t\tEnableL7:            pulumi.Bool(true),\n\t\t\tTrafficPosId:        pulumi.Float64(1),\n\t\t\tHttpRequestPosId:    pulumi.Float64(3),\n\t\t\tCleaningAccessPosId: pulumi.Float64(2),\n\t\t\tAppTypeId:           pulumi.Float64(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.AntiddosV1;\nimport com.pulumi.flexibleengine.AntiddosV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var eipId = config.get(\"eipId\");\n        var myantiddos = new AntiddosV1(\"myantiddos\", AntiddosV1Args.builder()\n            .floatingIpId(eipId)\n            .enableL7(true)\n            .trafficPosId(1)\n            .httpRequestPosId(3)\n            .cleaningAccessPosId(2)\n            .appTypeId(0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  eipId:\n    type: dynamic\nresources:\n  myantiddos:\n    type: flexibleengine:AntiddosV1\n    properties:\n      floatingIpId: ${eipId}\n      enableL7: true\n      trafficPosId: 1\n      httpRequestPosId: 3\n      cleaningAccessPosId: 2\n      appTypeId: 0\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAntiddos can be imported using the `floating_ip_id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/antiddosV1:AntiddosV1 myantiddos c1881895-cdcb-4d23-96cb-032e6a3ee667\n```\n\n",
      "properties": {
        "antiddosV1Id": {
          "type": "string"
        },
        "appTypeId": {
          "type": "number",
          "description": "The application type ID.\n"
        },
        "cleaningAccessPosId": {
          "type": "number",
          "description": "The position ID of access limit during cleaning. The value ranges from 1 to 8.\n"
        },
        "enableL7": {
          "type": "boolean",
          "description": "Specifies whether to enable L7 defense.\n"
        },
        "floatingIpId": {
          "type": "string",
          "description": "The ID corresponding to the Elastic IP Address (EIP).\n"
        },
        "httpRequestPosId": {
          "type": "number",
          "description": "The position ID of number of HTTP requests. The value ranges from 1 to 15.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to manage the Cloud Native Anti-DDos Basic resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FAntiddosV1Timeouts:AntiddosV1Timeouts"
        },
        "trafficPosId": {
          "type": "number",
          "description": "The position ID of traffic. The value ranges from 1 to 9.\n"
        }
      },
      "type": "object",
      "required": [
        "antiddosV1Id",
        "appTypeId",
        "cleaningAccessPosId",
        "enableL7",
        "floatingIpId",
        "httpRequestPosId",
        "region",
        "trafficPosId"
      ],
      "inputProperties": {
        "antiddosV1Id": {
          "type": "string"
        },
        "appTypeId": {
          "type": "number",
          "description": "The application type ID.\n"
        },
        "cleaningAccessPosId": {
          "type": "number",
          "description": "The position ID of access limit during cleaning. The value ranges from 1 to 8.\n"
        },
        "enableL7": {
          "type": "boolean",
          "description": "Specifies whether to enable L7 defense.\n"
        },
        "floatingIpId": {
          "type": "string",
          "description": "The ID corresponding to the Elastic IP Address (EIP).\n"
        },
        "httpRequestPosId": {
          "type": "number",
          "description": "The position ID of number of HTTP requests. The value ranges from 1 to 15.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to manage the Cloud Native Anti-DDos Basic resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FAntiddosV1Timeouts:AntiddosV1Timeouts"
        },
        "trafficPosId": {
          "type": "number",
          "description": "The position ID of traffic. The value ranges from 1 to 9.\n"
        }
      },
      "requiredInputs": [
        "appTypeId",
        "cleaningAccessPosId",
        "enableL7",
        "floatingIpId",
        "httpRequestPosId",
        "trafficPosId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AntiddosV1 resources.\n",
        "properties": {
          "antiddosV1Id": {
            "type": "string"
          },
          "appTypeId": {
            "type": "number",
            "description": "The application type ID.\n"
          },
          "cleaningAccessPosId": {
            "type": "number",
            "description": "The position ID of access limit during cleaning. The value ranges from 1 to 8.\n"
          },
          "enableL7": {
            "type": "boolean",
            "description": "Specifies whether to enable L7 defense.\n"
          },
          "floatingIpId": {
            "type": "string",
            "description": "The ID corresponding to the Elastic IP Address (EIP).\n"
          },
          "httpRequestPosId": {
            "type": "number",
            "description": "The position ID of number of HTTP requests. The value ranges from 1 to 15.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to manage the Cloud Native Anti-DDos Basic resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FAntiddosV1Timeouts:AntiddosV1Timeouts"
          },
          "trafficPosId": {
            "type": "number",
            "description": "The position ID of traffic. The value ranges from 1 to 9.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/aomServiceDiscoveryRule:AomServiceDiscoveryRule": {
      "description": "Manages an AOM service discovery rule resource within FlexibleEngine.\n\n## Example Usage\n\n### Basic example\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst discoveryRule = new flexibleengine.AomServiceDiscoveryRule(\"discoveryRule\", {\n    detectLogEnabled: true,\n    discoveryRuleEnabled: true,\n    discoveryRules: [{\n        checkContents: [\"java\"],\n        checkMode: \"contain\",\n        checkType: \"cmdLine\",\n    }],\n    isDefaultRule: false,\n    logFileSuffixes: [\"log\"],\n    logPathRules: [{\n        args: [\"java\"],\n        nameType: \"cmdLineHash\",\n        values: [\"/tmp/log\"],\n    }],\n    nameRules: {\n        applicationNameRules: [{\n            args: [\"java\"],\n            nameType: \"str\",\n        }],\n        serviceNameRules: [{\n            args: [\"java\"],\n            nameType: \"str\",\n        }],\n    },\n    priority: 9999,\n    serviceType: \"Java\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ndiscovery_rule = flexibleengine.AomServiceDiscoveryRule(\"discoveryRule\",\n    detect_log_enabled=True,\n    discovery_rule_enabled=True,\n    discovery_rules=[{\n        \"check_contents\": [\"java\"],\n        \"check_mode\": \"contain\",\n        \"check_type\": \"cmdLine\",\n    }],\n    is_default_rule=False,\n    log_file_suffixes=[\"log\"],\n    log_path_rules=[{\n        \"args\": [\"java\"],\n        \"name_type\": \"cmdLineHash\",\n        \"values\": [\"/tmp/log\"],\n    }],\n    name_rules={\n        \"application_name_rules\": [{\n            \"args\": [\"java\"],\n            \"name_type\": \"str\",\n        }],\n        \"service_name_rules\": [{\n            \"args\": [\"java\"],\n            \"name_type\": \"str\",\n        }],\n    },\n    priority=9999,\n    service_type=\"Java\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var discoveryRule = new Flexibleengine.AomServiceDiscoveryRule(\"discoveryRule\", new()\n    {\n        DetectLogEnabled = true,\n        DiscoveryRuleEnabled = true,\n        DiscoveryRules = new[]\n        {\n            new Flexibleengine.Inputs.AomServiceDiscoveryRuleDiscoveryRuleArgs\n            {\n                CheckContents = new[]\n                {\n                    \"java\",\n                },\n                CheckMode = \"contain\",\n                CheckType = \"cmdLine\",\n            },\n        },\n        IsDefaultRule = false,\n        LogFileSuffixes = new[]\n        {\n            \"log\",\n        },\n        LogPathRules = new[]\n        {\n            new Flexibleengine.Inputs.AomServiceDiscoveryRuleLogPathRuleArgs\n            {\n                Args = new[]\n                {\n                    \"java\",\n                },\n                NameType = \"cmdLineHash\",\n                Values = new[]\n                {\n                    \"/tmp/log\",\n                },\n            },\n        },\n        NameRules = new Flexibleengine.Inputs.AomServiceDiscoveryRuleNameRulesArgs\n        {\n            ApplicationNameRules = new[]\n            {\n                new Flexibleengine.Inputs.AomServiceDiscoveryRuleNameRulesApplicationNameRuleArgs\n                {\n                    Args = new[]\n                    {\n                        \"java\",\n                    },\n                    NameType = \"str\",\n                },\n            },\n            ServiceNameRules = new[]\n            {\n                new Flexibleengine.Inputs.AomServiceDiscoveryRuleNameRulesServiceNameRuleArgs\n                {\n                    Args = new[]\n                    {\n                        \"java\",\n                    },\n                    NameType = \"str\",\n                },\n            },\n        },\n        Priority = 9999,\n        ServiceType = \"Java\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewAomServiceDiscoveryRule(ctx, \"discoveryRule\", &flexibleengine.AomServiceDiscoveryRuleArgs{\n\t\t\tDetectLogEnabled:     pulumi.Bool(true),\n\t\t\tDiscoveryRuleEnabled: pulumi.Bool(true),\n\t\t\tDiscoveryRules: flexibleengine.AomServiceDiscoveryRuleDiscoveryRuleArray{\n\t\t\t\t&flexibleengine.AomServiceDiscoveryRuleDiscoveryRuleArgs{\n\t\t\t\t\tCheckContents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"java\"),\n\t\t\t\t\t},\n\t\t\t\t\tCheckMode: pulumi.String(\"contain\"),\n\t\t\t\t\tCheckType: pulumi.String(\"cmdLine\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIsDefaultRule: pulumi.Bool(false),\n\t\t\tLogFileSuffixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"log\"),\n\t\t\t},\n\t\t\tLogPathRules: flexibleengine.AomServiceDiscoveryRuleLogPathRuleArray{\n\t\t\t\t&flexibleengine.AomServiceDiscoveryRuleLogPathRuleArgs{\n\t\t\t\t\tArgs: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"java\"),\n\t\t\t\t\t},\n\t\t\t\t\tNameType: pulumi.String(\"cmdLineHash\"),\n\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/tmp/log\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tNameRules: &flexibleengine.AomServiceDiscoveryRuleNameRulesArgs{\n\t\t\t\tApplicationNameRules: flexibleengine.AomServiceDiscoveryRuleNameRulesApplicationNameRuleArray{\n\t\t\t\t\t&flexibleengine.AomServiceDiscoveryRuleNameRulesApplicationNameRuleArgs{\n\t\t\t\t\t\tArgs: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"java\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tNameType: pulumi.String(\"str\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tServiceNameRules: flexibleengine.AomServiceDiscoveryRuleNameRulesServiceNameRuleArray{\n\t\t\t\t\t&flexibleengine.AomServiceDiscoveryRuleNameRulesServiceNameRuleArgs{\n\t\t\t\t\t\tArgs: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"java\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tNameType: pulumi.String(\"str\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPriority:    pulumi.Float64(9999),\n\t\t\tServiceType: pulumi.String(\"Java\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.AomServiceDiscoveryRule;\nimport com.pulumi.flexibleengine.AomServiceDiscoveryRuleArgs;\nimport com.pulumi.flexibleengine.inputs.AomServiceDiscoveryRuleDiscoveryRuleArgs;\nimport com.pulumi.flexibleengine.inputs.AomServiceDiscoveryRuleLogPathRuleArgs;\nimport com.pulumi.flexibleengine.inputs.AomServiceDiscoveryRuleNameRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var discoveryRule = new AomServiceDiscoveryRule(\"discoveryRule\", AomServiceDiscoveryRuleArgs.builder()\n            .detectLogEnabled(\"true\")\n            .discoveryRuleEnabled(\"true\")\n            .discoveryRules(AomServiceDiscoveryRuleDiscoveryRuleArgs.builder()\n                .checkContents(\"java\")\n                .checkMode(\"contain\")\n                .checkType(\"cmdLine\")\n                .build())\n            .isDefaultRule(\"false\")\n            .logFileSuffixes(\"log\")\n            .logPathRules(AomServiceDiscoveryRuleLogPathRuleArgs.builder()\n                .args(\"java\")\n                .nameType(\"cmdLineHash\")\n                .values(\"/tmp/log\")\n                .build())\n            .nameRules(AomServiceDiscoveryRuleNameRulesArgs.builder()\n                .applicationNameRules(AomServiceDiscoveryRuleNameRulesApplicationNameRuleArgs.builder()\n                    .args(\"java\")\n                    .nameType(\"str\")\n                    .build())\n                .serviceNameRules(AomServiceDiscoveryRuleNameRulesServiceNameRuleArgs.builder()\n                    .args(\"java\")\n                    .nameType(\"str\")\n                    .build())\n                .build())\n            .priority(9999)\n            .serviceType(\"Java\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  discoveryRule:\n    type: flexibleengine:AomServiceDiscoveryRule\n    properties:\n      detectLogEnabled: 'true'\n      discoveryRuleEnabled: 'true'\n      discoveryRules:\n        - checkContents:\n            - java\n          checkMode: contain\n          checkType: cmdLine\n      isDefaultRule: 'false'\n      logFileSuffixes:\n        - log\n      logPathRules:\n        - args:\n            - java\n          nameType: cmdLineHash\n          values:\n            - /tmp/log\n      nameRules:\n        applicationNameRules:\n          - args:\n              - java\n            nameType: str\n        serviceNameRules:\n          - args:\n              - java\n            nameType: str\n      priority: 9999\n      serviceType: Java\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAOM service discovery rules can be imported using the `name`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/aomServiceDiscoveryRule:AomServiceDiscoveryRule alarm_rule rule_name\n```\n\n",
      "properties": {
        "aomServiceDiscoveryRuleId": {
          "type": "string",
          "description": "Indicates the resource ID of the service discovery rule. The value is the rule name.\n"
        },
        "detectLogEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable log collection. The default value is true.\n"
        },
        "discoveryRuleEnabled": {
          "type": "boolean",
          "description": "Specifies whether the rule is enabled. The default value is true.\n"
        },
        "discoveryRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleDiscoveryRule:AomServiceDiscoveryRuleDiscoveryRule"
          },
          "description": "Specifies the discovery rule. If the array contains multiple conditions, only the\nprocesses that meet all the conditions will be matched. If the value of `check_type` is **cmdLine**, set the value of\n`check_mode` to **contain**. `check_content` is in the format of [\"xxx\"], indicating that the process must contain\nthe xxx parameter. If the value of `check_type` is **env**, set the value of `check_mode` to **contain**.\n`check_content` is in the format of [\"k1\",\"v1\"], indicating that the process must contain the environment variable\nwhose name is k1 and value is v1. If the value of `check_type` is **scope**, set the value of `check_mode`\nto **equals**. `check_content` is in the format of [\"hostId1\",\"hostId2\"], indicating that the rule takes effect only\non specified nodes. If no nodes are specified, the rule applies to all nodes of the project.\n"
        },
        "isDefaultRule": {
          "type": "boolean",
          "description": "Specifies whether the rule is the default one. The default value is false.\n"
        },
        "logFileSuffixes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the log file suffix. This is a list of strings.\nThe values can be: **log**, **trace**, and **out**.\n"
        },
        "logPathRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleLogPathRule:AomServiceDiscoveryRuleLogPathRule"
          },
          "description": "Specifies the log path configuration rule. If cmdLineHash is a fixed string,\nlogs in the specified log path or log file are collected. Otherwise, only the files whose names end with\n.log or .trace are collected. If the value of `name_type` is **cmdLineHash**, args is in the format of [\"00001\"] and\nvalue is in the format of [\"/xxx/xx.log\"], indicating that the log path is /xxx/xx.log when the startup command is 00001.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the rule name, which contains 4 to 63 characters. It must start\nwith a lowercase letter but cannot end with a hyphen (-). Only digits, lowercase letters, and hyphens are allowed.\n"
        },
        "nameRules": {
          "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleNameRules:AomServiceDiscoveryRuleNameRules",
          "description": "Specifies the naming rules for discovered services and applications.\nThe object structure is documented below.\n"
        },
        "priority": {
          "type": "number",
          "description": "Specifies the rule priority. Value range: 1 to 9999. The default value is 9999.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the service discovery rule resource. If omitted,\nthe provider-level region will be used. Changing this creates a new resource.\n"
        },
        "ruleId": {
          "type": "string",
          "description": "The rule ID in uuid format.\n"
        },
        "serviceType": {
          "type": "string",
          "description": "Specifies the service type, which is used only for rule classification and UI display.\nYou can enter any field. For example, enter Java or Python by technology stack, or enter collector or database by function.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleTimeouts:AomServiceDiscoveryRuleTimeouts"
        }
      },
      "type": "object",
      "required": [
        "aomServiceDiscoveryRuleId",
        "discoveryRules",
        "logFileSuffixes",
        "name",
        "nameRules",
        "region",
        "ruleId",
        "serviceType"
      ],
      "inputProperties": {
        "aomServiceDiscoveryRuleId": {
          "type": "string",
          "description": "Indicates the resource ID of the service discovery rule. The value is the rule name.\n"
        },
        "detectLogEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable log collection. The default value is true.\n"
        },
        "discoveryRuleEnabled": {
          "type": "boolean",
          "description": "Specifies whether the rule is enabled. The default value is true.\n"
        },
        "discoveryRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleDiscoveryRule:AomServiceDiscoveryRuleDiscoveryRule"
          },
          "description": "Specifies the discovery rule. If the array contains multiple conditions, only the\nprocesses that meet all the conditions will be matched. If the value of `check_type` is **cmdLine**, set the value of\n`check_mode` to **contain**. `check_content` is in the format of [\"xxx\"], indicating that the process must contain\nthe xxx parameter. If the value of `check_type` is **env**, set the value of `check_mode` to **contain**.\n`check_content` is in the format of [\"k1\",\"v1\"], indicating that the process must contain the environment variable\nwhose name is k1 and value is v1. If the value of `check_type` is **scope**, set the value of `check_mode`\nto **equals**. `check_content` is in the format of [\"hostId1\",\"hostId2\"], indicating that the rule takes effect only\non specified nodes. If no nodes are specified, the rule applies to all nodes of the project.\n"
        },
        "isDefaultRule": {
          "type": "boolean",
          "description": "Specifies whether the rule is the default one. The default value is false.\n"
        },
        "logFileSuffixes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the log file suffix. This is a list of strings.\nThe values can be: **log**, **trace**, and **out**.\n"
        },
        "logPathRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleLogPathRule:AomServiceDiscoveryRuleLogPathRule"
          },
          "description": "Specifies the log path configuration rule. If cmdLineHash is a fixed string,\nlogs in the specified log path or log file are collected. Otherwise, only the files whose names end with\n.log or .trace are collected. If the value of `name_type` is **cmdLineHash**, args is in the format of [\"00001\"] and\nvalue is in the format of [\"/xxx/xx.log\"], indicating that the log path is /xxx/xx.log when the startup command is 00001.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the rule name, which contains 4 to 63 characters. It must start\nwith a lowercase letter but cannot end with a hyphen (-). Only digits, lowercase letters, and hyphens are allowed.\n"
        },
        "nameRules": {
          "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleNameRules:AomServiceDiscoveryRuleNameRules",
          "description": "Specifies the naming rules for discovered services and applications.\nThe object structure is documented below.\n"
        },
        "priority": {
          "type": "number",
          "description": "Specifies the rule priority. Value range: 1 to 9999. The default value is 9999.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the service discovery rule resource. If omitted,\nthe provider-level region will be used. Changing this creates a new resource.\n"
        },
        "serviceType": {
          "type": "string",
          "description": "Specifies the service type, which is used only for rule classification and UI display.\nYou can enter any field. For example, enter Java or Python by technology stack, or enter collector or database by function.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleTimeouts:AomServiceDiscoveryRuleTimeouts"
        }
      },
      "requiredInputs": [
        "discoveryRules",
        "logFileSuffixes",
        "nameRules",
        "serviceType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AomServiceDiscoveryRule resources.\n",
        "properties": {
          "aomServiceDiscoveryRuleId": {
            "type": "string",
            "description": "Indicates the resource ID of the service discovery rule. The value is the rule name.\n"
          },
          "detectLogEnabled": {
            "type": "boolean",
            "description": "Specifies whether to enable log collection. The default value is true.\n"
          },
          "discoveryRuleEnabled": {
            "type": "boolean",
            "description": "Specifies whether the rule is enabled. The default value is true.\n"
          },
          "discoveryRules": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleDiscoveryRule:AomServiceDiscoveryRuleDiscoveryRule"
            },
            "description": "Specifies the discovery rule. If the array contains multiple conditions, only the\nprocesses that meet all the conditions will be matched. If the value of `check_type` is **cmdLine**, set the value of\n`check_mode` to **contain**. `check_content` is in the format of [\"xxx\"], indicating that the process must contain\nthe xxx parameter. If the value of `check_type` is **env**, set the value of `check_mode` to **contain**.\n`check_content` is in the format of [\"k1\",\"v1\"], indicating that the process must contain the environment variable\nwhose name is k1 and value is v1. If the value of `check_type` is **scope**, set the value of `check_mode`\nto **equals**. `check_content` is in the format of [\"hostId1\",\"hostId2\"], indicating that the rule takes effect only\non specified nodes. If no nodes are specified, the rule applies to all nodes of the project.\n"
          },
          "isDefaultRule": {
            "type": "boolean",
            "description": "Specifies whether the rule is the default one. The default value is false.\n"
          },
          "logFileSuffixes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the log file suffix. This is a list of strings.\nThe values can be: **log**, **trace**, and **out**.\n"
          },
          "logPathRules": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleLogPathRule:AomServiceDiscoveryRuleLogPathRule"
            },
            "description": "Specifies the log path configuration rule. If cmdLineHash is a fixed string,\nlogs in the specified log path or log file are collected. Otherwise, only the files whose names end with\n.log or .trace are collected. If the value of `name_type` is **cmdLineHash**, args is in the format of [\"00001\"] and\nvalue is in the format of [\"/xxx/xx.log\"], indicating that the log path is /xxx/xx.log when the startup command is 00001.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the rule name, which contains 4 to 63 characters. It must start\nwith a lowercase letter but cannot end with a hyphen (-). Only digits, lowercase letters, and hyphens are allowed.\n"
          },
          "nameRules": {
            "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleNameRules:AomServiceDiscoveryRuleNameRules",
            "description": "Specifies the naming rules for discovered services and applications.\nThe object structure is documented below.\n"
          },
          "priority": {
            "type": "number",
            "description": "Specifies the rule priority. Value range: 1 to 9999. The default value is 9999.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the service discovery rule resource. If omitted,\nthe provider-level region will be used. Changing this creates a new resource.\n"
          },
          "ruleId": {
            "type": "string",
            "description": "The rule ID in uuid format.\n"
          },
          "serviceType": {
            "type": "string",
            "description": "Specifies the service type, which is used only for rule classification and UI display.\nYou can enter any field. For example, enter Java or Python by technology stack, or enter collector or database by function.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FAomServiceDiscoveryRuleTimeouts:AomServiceDiscoveryRuleTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apiGatewayApi:ApiGatewayApi": {
      "description": "Provides an API gateway API resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst apigwGroup = new flexibleengine.ApiGatewayGroup(\"apigwGroup\", {description: \"your descpiption\"});\nconst apigwApi = new flexibleengine.ApiGatewayApi(\"apigwApi\", {\n    groupId: apigwGroup.apiGatewayGroupId,\n    description: \"your descpiption\",\n    tags: [\n        \"tag1\",\n        \"tag2\",\n    ],\n    visibility: 1,\n    authType: \"IAM\",\n    backendType: \"HTTP\",\n    requestProtocol: \"HTTPS\",\n    requestMethod: \"GET\",\n    requestUri: \"/test/path1\",\n    exampleSuccessResponse: \"example response\",\n    httpBackend: {\n        protocol: \"HTTPS\",\n        method: \"GET\",\n        uri: \"/web/openapi\",\n        urlDomain: \"backenddomain.com\",\n        timeout: 10000,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\napigw_group = flexibleengine.ApiGatewayGroup(\"apigwGroup\", description=\"your descpiption\")\napigw_api = flexibleengine.ApiGatewayApi(\"apigwApi\",\n    group_id=apigw_group.api_gateway_group_id,\n    description=\"your descpiption\",\n    tags=[\n        \"tag1\",\n        \"tag2\",\n    ],\n    visibility=1,\n    auth_type=\"IAM\",\n    backend_type=\"HTTP\",\n    request_protocol=\"HTTPS\",\n    request_method=\"GET\",\n    request_uri=\"/test/path1\",\n    example_success_response=\"example response\",\n    http_backend={\n        \"protocol\": \"HTTPS\",\n        \"method\": \"GET\",\n        \"uri\": \"/web/openapi\",\n        \"url_domain\": \"backenddomain.com\",\n        \"timeout\": 10000,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var apigwGroup = new Flexibleengine.ApiGatewayGroup(\"apigwGroup\", new()\n    {\n        Description = \"your descpiption\",\n    });\n\n    var apigwApi = new Flexibleengine.ApiGatewayApi(\"apigwApi\", new()\n    {\n        GroupId = apigwGroup.ApiGatewayGroupId,\n        Description = \"your descpiption\",\n        Tags = new[]\n        {\n            \"tag1\",\n            \"tag2\",\n        },\n        Visibility = 1,\n        AuthType = \"IAM\",\n        BackendType = \"HTTP\",\n        RequestProtocol = \"HTTPS\",\n        RequestMethod = \"GET\",\n        RequestUri = \"/test/path1\",\n        ExampleSuccessResponse = \"example response\",\n        HttpBackend = new Flexibleengine.Inputs.ApiGatewayApiHttpBackendArgs\n        {\n            Protocol = \"HTTPS\",\n            Method = \"GET\",\n            Uri = \"/web/openapi\",\n            UrlDomain = \"backenddomain.com\",\n            Timeout = 10000,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapigwGroup, err := flexibleengine.NewApiGatewayGroup(ctx, \"apigwGroup\", &flexibleengine.ApiGatewayGroupArgs{\n\t\t\tDescription: pulumi.String(\"your descpiption\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewApiGatewayApi(ctx, \"apigwApi\", &flexibleengine.ApiGatewayApiArgs{\n\t\t\tGroupId:     apigwGroup.ApiGatewayGroupId,\n\t\t\tDescription: pulumi.String(\"your descpiption\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tag1\"),\n\t\t\t\tpulumi.String(\"tag2\"),\n\t\t\t},\n\t\t\tVisibility:             pulumi.Float64(1),\n\t\t\tAuthType:               pulumi.String(\"IAM\"),\n\t\t\tBackendType:            pulumi.String(\"HTTP\"),\n\t\t\tRequestProtocol:        pulumi.String(\"HTTPS\"),\n\t\t\tRequestMethod:          pulumi.String(\"GET\"),\n\t\t\tRequestUri:             pulumi.String(\"/test/path1\"),\n\t\t\tExampleSuccessResponse: pulumi.String(\"example response\"),\n\t\t\tHttpBackend: &flexibleengine.ApiGatewayApiHttpBackendArgs{\n\t\t\t\tProtocol:  pulumi.String(\"HTTPS\"),\n\t\t\t\tMethod:    pulumi.String(\"GET\"),\n\t\t\t\tUri:       pulumi.String(\"/web/openapi\"),\n\t\t\t\tUrlDomain: pulumi.String(\"backenddomain.com\"),\n\t\t\t\tTimeout:   pulumi.Float64(10000),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApiGatewayGroup;\nimport com.pulumi.flexibleengine.ApiGatewayGroupArgs;\nimport com.pulumi.flexibleengine.ApiGatewayApi;\nimport com.pulumi.flexibleengine.ApiGatewayApiArgs;\nimport com.pulumi.flexibleengine.inputs.ApiGatewayApiHttpBackendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var apigwGroup = new ApiGatewayGroup(\"apigwGroup\", ApiGatewayGroupArgs.builder()\n            .description(\"your descpiption\")\n            .build());\n\n        var apigwApi = new ApiGatewayApi(\"apigwApi\", ApiGatewayApiArgs.builder()\n            .groupId(apigwGroup.apiGatewayGroupId())\n            .description(\"your descpiption\")\n            .tags(            \n                \"tag1\",\n                \"tag2\")\n            .visibility(1)\n            .authType(\"IAM\")\n            .backendType(\"HTTP\")\n            .requestProtocol(\"HTTPS\")\n            .requestMethod(\"GET\")\n            .requestUri(\"/test/path1\")\n            .exampleSuccessResponse(\"example response\")\n            .httpBackend(ApiGatewayApiHttpBackendArgs.builder()\n                .protocol(\"HTTPS\")\n                .method(\"GET\")\n                .uri(\"/web/openapi\")\n                .urlDomain(\"backenddomain.com\")\n                .timeout(10000)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  apigwGroup:\n    type: flexibleengine:ApiGatewayGroup\n    properties:\n      description: your descpiption\n  apigwApi:\n    type: flexibleengine:ApiGatewayApi\n    properties:\n      groupId: ${apigwGroup.apiGatewayGroupId}\n      description: your descpiption\n      tags:\n        - tag1\n        - tag2\n      visibility: 1\n      authType: IAM\n      backendType: HTTP\n      requestProtocol: HTTPS\n      requestMethod: GET\n      requestUri: /test/path1\n      exampleSuccessResponse: example response\n      httpBackend:\n        protocol: HTTPS\n        method: GET\n        uri: /web/openapi\n        urlDomain: backenddomain.com\n        timeout: 10000\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPI can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/apiGatewayApi:ApiGatewayApi api 774438a28a574ac8a496325d1bf51807\n```\n\n",
      "properties": {
        "apiGatewayApiId": {
          "type": "string",
          "description": "The ID of the API.\n"
        },
        "authType": {
          "type": "string",
          "description": "Specifies the security authentication mode. The value can be 'APP', 'IAM', and '\nNONE'.\n"
        },
        "backendParameters": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApiGatewayApiBackendParameter:ApiGatewayApiBackendParameter"
          },
          "description": "the backend parameter list (documented below).\n"
        },
        "backendType": {
          "type": "string",
          "description": "Specifies the service backend type. The value can be:\n+ 'HTTP': the web service backend\n+ 'FUNCTION': the FunctionGraph service backend\n+ 'MOCK': the Mock service backend\n"
        },
        "cors": {
          "type": "boolean",
          "description": "Specifies whether CORS is supported or not.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the API. The description cannot exceed 255 characters.\n"
        },
        "exampleFailureResponse": {
          "type": "string",
          "description": "Specifies the example response for a failed request The length cannot\nexceed 20,480 characters.\n"
        },
        "exampleSuccessResponse": {
          "type": "string",
          "description": "Specifies the example response for a successful request. The length\ncannot exceed 20,480 characters.\n"
        },
        "functionBackend": {
          "$ref": "#/types/flexibleengine:index%2FApiGatewayApiFunctionBackend:ApiGatewayApiFunctionBackend",
          "description": "Specifies the configuration when backend_type selected 'FUNCTION' (documented\nbelow).\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the ID of the API group. Changing this creates a new resource.\n"
        },
        "groupName": {
          "type": "string",
          "description": "The name of the API group to which the API belongs.\n"
        },
        "httpBackend": {
          "$ref": "#/types/flexibleengine:index%2FApiGatewayApiHttpBackend:ApiGatewayApiHttpBackend",
          "description": "Specifies the configuration when backend_type selected 'HTTP' (documented below).\n"
        },
        "mockBackend": {
          "$ref": "#/types/flexibleengine:index%2FApiGatewayApiMockBackend:ApiGatewayApiMockBackend",
          "description": "Specifies the configuration when backend_type selected 'MOCK' (documented below).\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API. An API name consists of 3–64 characters, starting with a\nletter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the API resource. If omitted, the provider-level\nregion will be used. Changing this creates a new API resource.\n"
        },
        "requestMethod": {
          "type": "string",
          "description": "Specifies the request method, including 'GET','POST','PUT' and etc..\n"
        },
        "requestParameters": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApiGatewayApiRequestParameter:ApiGatewayApiRequestParameter"
          },
          "description": "the request parameter list (documented below).\n"
        },
        "requestProtocol": {
          "type": "string",
          "description": "Specifies the request protocol. The value can be 'HTTP', 'HTTPS', and 'BOTH'\nwhich means the API can be accessed through both 'HTTP' and 'HTTPS'. Defaults to 'HTTPS'.\n"
        },
        "requestUri": {
          "type": "string",
          "description": "Specifies the request path of the API. The value must comply with URI\nspecifications.\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "the tags of API in format of string list.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FApiGatewayApiTimeouts:ApiGatewayApiTimeouts"
        },
        "version": {
          "type": "string",
          "description": "Specifies the version of the API. A maximum of 16 characters are allowed.\n"
        },
        "visibility": {
          "type": "number",
          "description": "Specifies whether the API is available to the public. The value can only be 1 (public).\n"
        }
      },
      "type": "object",
      "required": [
        "apiGatewayApiId",
        "authType",
        "backendType",
        "exampleSuccessResponse",
        "groupId",
        "groupName",
        "name",
        "region",
        "requestMethod",
        "requestUri",
        "version"
      ],
      "inputProperties": {
        "apiGatewayApiId": {
          "type": "string",
          "description": "The ID of the API.\n"
        },
        "authType": {
          "type": "string",
          "description": "Specifies the security authentication mode. The value can be 'APP', 'IAM', and '\nNONE'.\n"
        },
        "backendParameters": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApiGatewayApiBackendParameter:ApiGatewayApiBackendParameter"
          },
          "description": "the backend parameter list (documented below).\n"
        },
        "backendType": {
          "type": "string",
          "description": "Specifies the service backend type. The value can be:\n+ 'HTTP': the web service backend\n+ 'FUNCTION': the FunctionGraph service backend\n+ 'MOCK': the Mock service backend\n"
        },
        "cors": {
          "type": "boolean",
          "description": "Specifies whether CORS is supported or not.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the API. The description cannot exceed 255 characters.\n"
        },
        "exampleFailureResponse": {
          "type": "string",
          "description": "Specifies the example response for a failed request The length cannot\nexceed 20,480 characters.\n"
        },
        "exampleSuccessResponse": {
          "type": "string",
          "description": "Specifies the example response for a successful request. The length\ncannot exceed 20,480 characters.\n"
        },
        "functionBackend": {
          "$ref": "#/types/flexibleengine:index%2FApiGatewayApiFunctionBackend:ApiGatewayApiFunctionBackend",
          "description": "Specifies the configuration when backend_type selected 'FUNCTION' (documented\nbelow).\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the ID of the API group. Changing this creates a new resource.\n"
        },
        "httpBackend": {
          "$ref": "#/types/flexibleengine:index%2FApiGatewayApiHttpBackend:ApiGatewayApiHttpBackend",
          "description": "Specifies the configuration when backend_type selected 'HTTP' (documented below).\n"
        },
        "mockBackend": {
          "$ref": "#/types/flexibleengine:index%2FApiGatewayApiMockBackend:ApiGatewayApiMockBackend",
          "description": "Specifies the configuration when backend_type selected 'MOCK' (documented below).\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API. An API name consists of 3–64 characters, starting with a\nletter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the API resource. If omitted, the provider-level\nregion will be used. Changing this creates a new API resource.\n"
        },
        "requestMethod": {
          "type": "string",
          "description": "Specifies the request method, including 'GET','POST','PUT' and etc..\n"
        },
        "requestParameters": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApiGatewayApiRequestParameter:ApiGatewayApiRequestParameter"
          },
          "description": "the request parameter list (documented below).\n"
        },
        "requestProtocol": {
          "type": "string",
          "description": "Specifies the request protocol. The value can be 'HTTP', 'HTTPS', and 'BOTH'\nwhich means the API can be accessed through both 'HTTP' and 'HTTPS'. Defaults to 'HTTPS'.\n"
        },
        "requestUri": {
          "type": "string",
          "description": "Specifies the request path of the API. The value must comply with URI\nspecifications.\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "the tags of API in format of string list.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FApiGatewayApiTimeouts:ApiGatewayApiTimeouts"
        },
        "version": {
          "type": "string",
          "description": "Specifies the version of the API. A maximum of 16 characters are allowed.\n"
        },
        "visibility": {
          "type": "number",
          "description": "Specifies whether the API is available to the public. The value can only be 1 (public).\n"
        }
      },
      "requiredInputs": [
        "authType",
        "backendType",
        "exampleSuccessResponse",
        "groupId",
        "requestMethod",
        "requestUri"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiGatewayApi resources.\n",
        "properties": {
          "apiGatewayApiId": {
            "type": "string",
            "description": "The ID of the API.\n"
          },
          "authType": {
            "type": "string",
            "description": "Specifies the security authentication mode. The value can be 'APP', 'IAM', and '\nNONE'.\n"
          },
          "backendParameters": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApiGatewayApiBackendParameter:ApiGatewayApiBackendParameter"
            },
            "description": "the backend parameter list (documented below).\n"
          },
          "backendType": {
            "type": "string",
            "description": "Specifies the service backend type. The value can be:\n+ 'HTTP': the web service backend\n+ 'FUNCTION': the FunctionGraph service backend\n+ 'MOCK': the Mock service backend\n"
          },
          "cors": {
            "type": "boolean",
            "description": "Specifies whether CORS is supported or not.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the API. The description cannot exceed 255 characters.\n"
          },
          "exampleFailureResponse": {
            "type": "string",
            "description": "Specifies the example response for a failed request The length cannot\nexceed 20,480 characters.\n"
          },
          "exampleSuccessResponse": {
            "type": "string",
            "description": "Specifies the example response for a successful request. The length\ncannot exceed 20,480 characters.\n"
          },
          "functionBackend": {
            "$ref": "#/types/flexibleengine:index%2FApiGatewayApiFunctionBackend:ApiGatewayApiFunctionBackend",
            "description": "Specifies the configuration when backend_type selected 'FUNCTION' (documented\nbelow).\n"
          },
          "groupId": {
            "type": "string",
            "description": "Specifies the ID of the API group. Changing this creates a new resource.\n"
          },
          "groupName": {
            "type": "string",
            "description": "The name of the API group to which the API belongs.\n"
          },
          "httpBackend": {
            "$ref": "#/types/flexibleengine:index%2FApiGatewayApiHttpBackend:ApiGatewayApiHttpBackend",
            "description": "Specifies the configuration when backend_type selected 'HTTP' (documented below).\n"
          },
          "mockBackend": {
            "$ref": "#/types/flexibleengine:index%2FApiGatewayApiMockBackend:ApiGatewayApiMockBackend",
            "description": "Specifies the configuration when backend_type selected 'MOCK' (documented below).\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the API. An API name consists of 3–64 characters, starting with a\nletter. Only letters, digits, and underscores (_) are allowed.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the API resource. If omitted, the provider-level\nregion will be used. Changing this creates a new API resource.\n"
          },
          "requestMethod": {
            "type": "string",
            "description": "Specifies the request method, including 'GET','POST','PUT' and etc..\n"
          },
          "requestParameters": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApiGatewayApiRequestParameter:ApiGatewayApiRequestParameter"
            },
            "description": "the request parameter list (documented below).\n"
          },
          "requestProtocol": {
            "type": "string",
            "description": "Specifies the request protocol. The value can be 'HTTP', 'HTTPS', and 'BOTH'\nwhich means the API can be accessed through both 'HTTP' and 'HTTPS'. Defaults to 'HTTPS'.\n"
          },
          "requestUri": {
            "type": "string",
            "description": "Specifies the request path of the API. The value must comply with URI\nspecifications.\n"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "the tags of API in format of string list.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FApiGatewayApiTimeouts:ApiGatewayApiTimeouts"
          },
          "version": {
            "type": "string",
            "description": "Specifies the version of the API. A maximum of 16 characters are allowed.\n"
          },
          "visibility": {
            "type": "number",
            "description": "Specifies whether the API is available to the public. The value can only be 1 (public).\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apiGatewayEnvironment:ApiGatewayEnvironment": {
      "description": "Manages a shared APIG environment resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst testEnv = new flexibleengine.ApiGatewayEnvironment(\"testEnv\", {description: \"test env\"});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest_env = flexibleengine.ApiGatewayEnvironment(\"testEnv\", description=\"test env\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var testEnv = new Flexibleengine.ApiGatewayEnvironment(\"testEnv\", new()\n    {\n        Description = \"test env\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewApiGatewayEnvironment(ctx, \"testEnv\", &flexibleengine.ApiGatewayEnvironmentArgs{\n\t\t\tDescription: pulumi.String(\"test env\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApiGatewayEnvironment;\nimport com.pulumi.flexibleengine.ApiGatewayEnvironmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testEnv = new ApiGatewayEnvironment(\"testEnv\", ApiGatewayEnvironmentArgs.builder()\n            .description(\"test env\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testEnv:\n    type: flexibleengine:ApiGatewayEnvironment\n    properties:\n      description: test env\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPIG environments can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/apiGatewayEnvironment:ApiGatewayEnvironment test_env 774438a28a574ac8a496325d1bf51807\n```\n\n",
      "properties": {
        "apiGatewayEnvironmentId": {
          "type": "string",
          "description": "The environment ID.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The time when the shared APIG environment was created.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the environment description.\nThe value can contain a maximum of `255` characters.\nChinese characters must be in **UTF-8** or **Unicode** format.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the environment name.\nThe valid length is limited from `3` to `64`, only letters, digits and underscores (_) are allowed.\nThe name must start with a letter.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the shared APIG environment is located.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "apiGatewayEnvironmentId",
        "createdAt",
        "name",
        "region"
      ],
      "inputProperties": {
        "apiGatewayEnvironmentId": {
          "type": "string",
          "description": "The environment ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the environment description.\nThe value can contain a maximum of `255` characters.\nChinese characters must be in **UTF-8** or **Unicode** format.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the environment name.\nThe valid length is limited from `3` to `64`, only letters, digits and underscores (_) are allowed.\nThe name must start with a letter.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the shared APIG environment is located.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiGatewayEnvironment resources.\n",
        "properties": {
          "apiGatewayEnvironmentId": {
            "type": "string",
            "description": "The environment ID.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The time when the shared APIG environment was created.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the environment description.\nThe value can contain a maximum of `255` characters.\nChinese characters must be in **UTF-8** or **Unicode** format.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the environment name.\nThe valid length is limited from `3` to `64`, only letters, digits and underscores (_) are allowed.\nThe name must start with a letter.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the shared APIG environment is located.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apiGatewayGroup:ApiGatewayGroup": {
      "description": "Provides an API gateway group resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst apigwGroup = new flexibleengine.ApiGatewayGroup(\"apigwGroup\", {description: \"your descpiption\"});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\napigw_group = flexibleengine.ApiGatewayGroup(\"apigwGroup\", description=\"your descpiption\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var apigwGroup = new Flexibleengine.ApiGatewayGroup(\"apigwGroup\", new()\n    {\n        Description = \"your descpiption\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewApiGatewayGroup(ctx, \"apigwGroup\", &flexibleengine.ApiGatewayGroupArgs{\n\t\t\tDescription: pulumi.String(\"your descpiption\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApiGatewayGroup;\nimport com.pulumi.flexibleengine.ApiGatewayGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var apigwGroup = new ApiGatewayGroup(\"apigwGroup\", ApiGatewayGroupArgs.builder()\n            .description(\"your descpiption\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  apigwGroup:\n    type: flexibleengine:ApiGatewayGroup\n    properties:\n      description: your descpiption\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPI groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/apiGatewayGroup:ApiGatewayGroup apigw_group c8738f7c-a4b0-4c5f-a202-bda7dc4018a4\n```\n\n",
      "properties": {
        "apiGatewayGroupId": {
          "type": "string",
          "description": "ID of the API group.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the API group. The description cannot exceed 255\ncharacters.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API group. An API group name consists of 3–64 characters,\nstarting with a letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the API gateway group resource. If omitted, the\nprovider-level region will be used. Changing this creates a new gateway group resource.\n"
        },
        "status": {
          "type": "number",
          "description": "Status of the API group.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FApiGatewayGroupTimeouts:ApiGatewayGroupTimeouts"
        }
      },
      "type": "object",
      "required": [
        "apiGatewayGroupId",
        "name",
        "region",
        "status"
      ],
      "inputProperties": {
        "apiGatewayGroupId": {
          "type": "string",
          "description": "ID of the API group.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the API group. The description cannot exceed 255\ncharacters.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API group. An API group name consists of 3–64 characters,\nstarting with a letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the API gateway group resource. If omitted, the\nprovider-level region will be used. Changing this creates a new gateway group resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FApiGatewayGroupTimeouts:ApiGatewayGroupTimeouts"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiGatewayGroup resources.\n",
        "properties": {
          "apiGatewayGroupId": {
            "type": "string",
            "description": "ID of the API group.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the API group. The description cannot exceed 255\ncharacters.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the API group. An API group name consists of 3–64 characters,\nstarting with a letter. Only letters, digits, and underscores (_) are allowed.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the API gateway group resource. If omitted, the\nprovider-level region will be used. Changing this creates a new gateway group resource.\n"
          },
          "status": {
            "type": "number",
            "description": "Status of the API group.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FApiGatewayGroupTimeouts:ApiGatewayGroupTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigAclPolicy:ApigAclPolicy": {
      "description": "Manages an ACL policy resource within FlexibleEngine.\n\n## Example Usage\n\n## Import\n\nACL Policies can be imported using their `id` and related dedicated instance ID, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/apigAclPolicy:ApigAclPolicy test <instance_id>/<id>\n```\n\n",
      "properties": {
        "apigAclPolicyId": {
          "type": "string",
          "description": "The ID of the ACL policy.\n"
        },
        "entityType": {
          "type": "string",
          "description": "Specifies the entity type of the ACL policy.\nThe valid values are as follows:\n+ **IP**: This rule is specified to control access to the API for specific IPs.\n+ **DOMAIN**: This rule is specified to control access to the API for specific accounts (specified by domain name).\n\nChanging this will create a new resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the ACL\npolicy belongs.\nChanging this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the ACL policy.  \nThe valid length is limited from `3` to `64`, only English letters, Chinese characters, digits and underscores (_) are\nallowed. The name must start with an English letter or Chinese character.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the ACL policy is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the ACL policy.\nThe valid values are as follows:\n+ **PERMIT**: Allow specific IPs or accounts to access API.\n+ **DENY**: Forbid specific IPs or accounts to access API.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The latest update time of the ACL policy.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies one or more objects from which the access will be controlled.  \nSeparate multiple objects with commas (,).\n"
        }
      },
      "type": "object",
      "required": [
        "apigAclPolicyId",
        "entityType",
        "instanceId",
        "name",
        "region",
        "type",
        "updatedAt",
        "value"
      ],
      "inputProperties": {
        "apigAclPolicyId": {
          "type": "string",
          "description": "The ID of the ACL policy.\n"
        },
        "entityType": {
          "type": "string",
          "description": "Specifies the entity type of the ACL policy.\nThe valid values are as follows:\n+ **IP**: This rule is specified to control access to the API for specific IPs.\n+ **DOMAIN**: This rule is specified to control access to the API for specific accounts (specified by domain name).\n\nChanging this will create a new resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the ACL\npolicy belongs.\nChanging this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the ACL policy.  \nThe valid length is limited from `3` to `64`, only English letters, Chinese characters, digits and underscores (_) are\nallowed. The name must start with an English letter or Chinese character.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the ACL policy is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the ACL policy.\nThe valid values are as follows:\n+ **PERMIT**: Allow specific IPs or accounts to access API.\n+ **DENY**: Forbid specific IPs or accounts to access API.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies one or more objects from which the access will be controlled.  \nSeparate multiple objects with commas (,).\n"
        }
      },
      "requiredInputs": [
        "entityType",
        "instanceId",
        "type",
        "value"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigAclPolicy resources.\n",
        "properties": {
          "apigAclPolicyId": {
            "type": "string",
            "description": "The ID of the ACL policy.\n"
          },
          "entityType": {
            "type": "string",
            "description": "Specifies the entity type of the ACL policy.\nThe valid values are as follows:\n+ **IP**: This rule is specified to control access to the API for specific IPs.\n+ **DOMAIN**: This rule is specified to control access to the API for specific accounts (specified by domain name).\n\nChanging this will create a new resource.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the dedicated instance to which the ACL\npolicy belongs.\nChanging this will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the ACL policy.  \nThe valid length is limited from `3` to `64`, only English letters, Chinese characters, digits and underscores (_) are\nallowed. The name must start with an English letter or Chinese character.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the ACL policy is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the type of the ACL policy.\nThe valid values are as follows:\n+ **PERMIT**: Allow specific IPs or accounts to access API.\n+ **DENY**: Forbid specific IPs or accounts to access API.\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "The latest update time of the ACL policy.\n"
          },
          "value": {
            "type": "string",
            "description": "Specifies one or more objects from which the access will be controlled.  \nSeparate multiple objects with commas (,).\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigAclPolicyAssociate:ApigAclPolicyAssociate": {
      "description": "Use this resource to bind the APIs to the ACL policy within FlexibleEngine.\n\n> An ACL policy can only create one `flexibleengine.ApigAclPolicyAssociate` resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst policyId = config.requireObject(\"policyId\");\nconst apiPublishIds = config.requireObject<Array<string>>(\"apiPublishIds\");\nconst test = new flexibleengine.ApigAclPolicyAssociate(\"test\", {\n    instanceId: instanceId,\n    policyId: policyId,\n    publishIds: apiPublishIds,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\npolicy_id = config.require_object(\"policyId\")\napi_publish_ids = config.require_object(\"apiPublishIds\")\ntest = flexibleengine.ApigAclPolicyAssociate(\"test\",\n    instance_id=instance_id,\n    policy_id=policy_id,\n    publish_ids=api_publish_ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var policyId = config.RequireObject<dynamic>(\"policyId\");\n    var apiPublishIds = config.RequireObject<string[]>(\"apiPublishIds\");\n    var test = new Flexibleengine.ApigAclPolicyAssociate(\"test\", new()\n    {\n        InstanceId = instanceId,\n        PolicyId = policyId,\n        PublishIds = apiPublishIds,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tpolicyId := cfg.RequireObject(\"policyId\")\n\t\tapiPublishIds := cfg.Require(\"apiPublishIds\")\n\t\t_, err := flexibleengine.NewApigAclPolicyAssociate(ctx, \"test\", &flexibleengine.ApigAclPolicyAssociateArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tPolicyId:   pulumi.Any(policyId),\n\t\t\tPublishIds: apiPublishIds,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigAclPolicyAssociate;\nimport com.pulumi.flexibleengine.ApigAclPolicyAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var policyId = config.get(\"policyId\");\n        final var apiPublishIds = config.get(\"apiPublishIds\");\n        var test = new ApigAclPolicyAssociate(\"test\", ApigAclPolicyAssociateArgs.builder()\n            .instanceId(instanceId)\n            .policyId(policyId)\n            .publishIds(apiPublishIds)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  policyId:\n    type: dynamic\n  apiPublishIds:\n    type: list(string)\nresources:\n  test:\n    type: flexibleengine:ApigAclPolicyAssociate\n    properties:\n      instanceId: ${instanceId}\n      policyId: ${policyId}\n      publishIds: ${apiPublishIds}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAssociate resources can be imported using their `policy_id` and the APIG dedicated instance ID to which the policy\n\nbelongs, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/apigAclPolicyAssociate:ApigAclPolicyAssociate test <instance_id>/<policy_id>\n```\n\n",
      "properties": {
        "apigAclPolicyAssociateId": {
          "type": "string",
          "description": "Resource ID. The format is `<instance_id>/<policy_id>`.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the APIs and the\nACL policy belong.\nChanging this will create a new resource.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the ACL Policy ID for APIs binding.  \nChanging this will create a new resource.\n"
        },
        "publishIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the publish IDs corresponding to the APIs bound by the ACL policy.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the ACL policy and the APIs are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "apigAclPolicyAssociateId",
        "instanceId",
        "policyId",
        "publishIds",
        "region"
      ],
      "inputProperties": {
        "apigAclPolicyAssociateId": {
          "type": "string",
          "description": "Resource ID. The format is `<instance_id>/<policy_id>`.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the APIs and the\nACL policy belong.\nChanging this will create a new resource.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the ACL Policy ID for APIs binding.  \nChanging this will create a new resource.\n"
        },
        "publishIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the publish IDs corresponding to the APIs bound by the ACL policy.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the ACL policy and the APIs are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "instanceId",
        "policyId",
        "publishIds"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigAclPolicyAssociate resources.\n",
        "properties": {
          "apigAclPolicyAssociateId": {
            "type": "string",
            "description": "Resource ID. The format is `<instance_id>/<policy_id>`.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the dedicated instance to which the APIs and the\nACL policy belong.\nChanging this will create a new resource.\n"
          },
          "policyId": {
            "type": "string",
            "description": "Specifies the ACL Policy ID for APIs binding.  \nChanging this will create a new resource.\n"
          },
          "publishIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the publish IDs corresponding to the APIs bound by the ACL policy.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the ACL policy and the APIs are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigApi:ApigApi": {
      "description": "Manages an APIG API resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst groupId = config.requireObject(\"groupId\");\nconst apiName = config.requireObject(\"apiName\");\nconst customResponseId = config.requireObject(\"customResponseId\");\nconst customAuthId = config.requireObject(\"customAuthId\");\nconst vpcChannelId = config.requireObject(\"vpcChannelId\");\nconst test = new flexibleengine.ApigApi(\"test\", {\n    instanceId: instanceId,\n    groupId: groupId,\n    type: \"Public\",\n    requestProtocol: \"HTTP\",\n    requestMethod: \"POST\",\n    requestPath: \"/terraform/users\",\n    securityAuthentication: \"AUTHORIZER\",\n    matching: \"Exact\",\n    successResponse: \"Successful\",\n    responseId: customResponseId,\n    authorizerId: customAuthId,\n    backendParams: [{\n        type: \"SYSTEM\",\n        name: \"X-User-Auth\",\n        location: \"HEADER\",\n        value: \"user_name\",\n    }],\n    web: {\n        path: \"/backend/users\",\n        vpcChannelId: vpcChannelId,\n        requestMethod: \"POST\",\n        requestProtocol: \"HTTP\",\n        timeout: 5000,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ngroup_id = config.require_object(\"groupId\")\napi_name = config.require_object(\"apiName\")\ncustom_response_id = config.require_object(\"customResponseId\")\ncustom_auth_id = config.require_object(\"customAuthId\")\nvpc_channel_id = config.require_object(\"vpcChannelId\")\ntest = flexibleengine.ApigApi(\"test\",\n    instance_id=instance_id,\n    group_id=group_id,\n    type=\"Public\",\n    request_protocol=\"HTTP\",\n    request_method=\"POST\",\n    request_path=\"/terraform/users\",\n    security_authentication=\"AUTHORIZER\",\n    matching=\"Exact\",\n    success_response=\"Successful\",\n    response_id=custom_response_id,\n    authorizer_id=custom_auth_id,\n    backend_params=[{\n        \"type\": \"SYSTEM\",\n        \"name\": \"X-User-Auth\",\n        \"location\": \"HEADER\",\n        \"value\": \"user_name\",\n    }],\n    web={\n        \"path\": \"/backend/users\",\n        \"vpc_channel_id\": vpc_channel_id,\n        \"request_method\": \"POST\",\n        \"request_protocol\": \"HTTP\",\n        \"timeout\": 5000,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var groupId = config.RequireObject<dynamic>(\"groupId\");\n    var apiName = config.RequireObject<dynamic>(\"apiName\");\n    var customResponseId = config.RequireObject<dynamic>(\"customResponseId\");\n    var customAuthId = config.RequireObject<dynamic>(\"customAuthId\");\n    var vpcChannelId = config.RequireObject<dynamic>(\"vpcChannelId\");\n    var test = new Flexibleengine.ApigApi(\"test\", new()\n    {\n        InstanceId = instanceId,\n        GroupId = groupId,\n        Type = \"Public\",\n        RequestProtocol = \"HTTP\",\n        RequestMethod = \"POST\",\n        RequestPath = \"/terraform/users\",\n        SecurityAuthentication = \"AUTHORIZER\",\n        Matching = \"Exact\",\n        SuccessResponse = \"Successful\",\n        ResponseId = customResponseId,\n        AuthorizerId = customAuthId,\n        BackendParams = new[]\n        {\n            new Flexibleengine.Inputs.ApigApiBackendParamArgs\n            {\n                Type = \"SYSTEM\",\n                Name = \"X-User-Auth\",\n                Location = \"HEADER\",\n                Value = \"user_name\",\n            },\n        },\n        Web = new Flexibleengine.Inputs.ApigApiWebArgs\n        {\n            Path = \"/backend/users\",\n            VpcChannelId = vpcChannelId,\n            RequestMethod = \"POST\",\n            RequestProtocol = \"HTTP\",\n            Timeout = 5000,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tgroupId := cfg.RequireObject(\"groupId\")\n\t\tapiName := cfg.RequireObject(\"apiName\")\n\t\tcustomResponseId := cfg.RequireObject(\"customResponseId\")\n\t\tcustomAuthId := cfg.RequireObject(\"customAuthId\")\n\t\tvpcChannelId := cfg.RequireObject(\"vpcChannelId\")\n\t\t_, err := flexibleengine.NewApigApi(ctx, \"test\", &flexibleengine.ApigApiArgs{\n\t\t\tInstanceId:             pulumi.Any(instanceId),\n\t\t\tGroupId:                pulumi.Any(groupId),\n\t\t\tType:                   pulumi.String(\"Public\"),\n\t\t\tRequestProtocol:        pulumi.String(\"HTTP\"),\n\t\t\tRequestMethod:          pulumi.String(\"POST\"),\n\t\t\tRequestPath:            pulumi.String(\"/terraform/users\"),\n\t\t\tSecurityAuthentication: pulumi.String(\"AUTHORIZER\"),\n\t\t\tMatching:               pulumi.String(\"Exact\"),\n\t\t\tSuccessResponse:        pulumi.String(\"Successful\"),\n\t\t\tResponseId:             pulumi.Any(customResponseId),\n\t\t\tAuthorizerId:           pulumi.Any(customAuthId),\n\t\t\tBackendParams: flexibleengine.ApigApiBackendParamArray{\n\t\t\t\t&flexibleengine.ApigApiBackendParamArgs{\n\t\t\t\t\tType:     pulumi.String(\"SYSTEM\"),\n\t\t\t\t\tName:     pulumi.String(\"X-User-Auth\"),\n\t\t\t\t\tLocation: pulumi.String(\"HEADER\"),\n\t\t\t\t\tValue:    pulumi.String(\"user_name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tWeb: &flexibleengine.ApigApiWebArgs{\n\t\t\t\tPath:            pulumi.String(\"/backend/users\"),\n\t\t\t\tVpcChannelId:    pulumi.Any(vpcChannelId),\n\t\t\t\tRequestMethod:   pulumi.String(\"POST\"),\n\t\t\t\tRequestProtocol: pulumi.String(\"HTTP\"),\n\t\t\t\tTimeout:         pulumi.Float64(5000),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigApi;\nimport com.pulumi.flexibleengine.ApigApiArgs;\nimport com.pulumi.flexibleengine.inputs.ApigApiBackendParamArgs;\nimport com.pulumi.flexibleengine.inputs.ApigApiWebArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var groupId = config.get(\"groupId\");\n        final var apiName = config.get(\"apiName\");\n        final var customResponseId = config.get(\"customResponseId\");\n        final var customAuthId = config.get(\"customAuthId\");\n        final var vpcChannelId = config.get(\"vpcChannelId\");\n        var test = new ApigApi(\"test\", ApigApiArgs.builder()\n            .instanceId(instanceId)\n            .groupId(groupId)\n            .type(\"Public\")\n            .requestProtocol(\"HTTP\")\n            .requestMethod(\"POST\")\n            .requestPath(\"/terraform/users\")\n            .securityAuthentication(\"AUTHORIZER\")\n            .matching(\"Exact\")\n            .successResponse(\"Successful\")\n            .responseId(customResponseId)\n            .authorizerId(customAuthId)\n            .backendParams(ApigApiBackendParamArgs.builder()\n                .type(\"SYSTEM\")\n                .name(\"X-User-Auth\")\n                .location(\"HEADER\")\n                .value(\"user_name\")\n                .build())\n            .web(ApigApiWebArgs.builder()\n                .path(\"/backend/users\")\n                .vpcChannelId(vpcChannelId)\n                .requestMethod(\"POST\")\n                .requestProtocol(\"HTTP\")\n                .timeout(5000)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  groupId:\n    type: dynamic\n  apiName:\n    type: dynamic\n  customResponseId:\n    type: dynamic\n  customAuthId:\n    type: dynamic\n  vpcChannelId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigApi\n    properties:\n      instanceId: ${instanceId}\n      groupId: ${groupId}\n      type: Public\n      requestProtocol: HTTP\n      requestMethod: POST\n      requestPath: /terraform/users\n      securityAuthentication: AUTHORIZER\n      matching: Exact\n      successResponse: Successful\n      responseId: ${customResponseId}\n      authorizerId: ${customAuthId}\n      backendParams:\n        - type: SYSTEM\n          name: X-User-Auth\n          location: HEADER\n          value: user_name\n      web:\n        path: /backend/users\n        vpcChannelId: ${vpcChannelId}\n        requestMethod: POST\n        requestProtocol: HTTP\n        timeout: 5000\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPIs can be imported using the ID of the APIG dedicated instance to which the API belongs and API `name`, separated by a\n\nslash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/apigApi:ApigApi test <instance_id>/<name>\n```\n\n",
      "properties": {
        "apigApiId": {
          "type": "string",
          "description": "ID of the APIG API.\n"
        },
        "authorizerId": {
          "type": "string",
          "description": "Specifies the ID of the backend custom authorization.\n\n<a name=\"apig_api_conditions\"></a>\nThe `conditions` block supports:\n"
        },
        "backendParams": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiBackendParam:ApigApiBackendParam"
          },
          "description": "Specifies an array of one or more backend parameters. The maximum of request\nparameters is 50. The object structure is documented above.\n"
        },
        "bodyDescription": {
          "type": "string",
          "description": "Specifies the description of the API request body, which can be an example\nrequest body, media type or parameters. The request body does not exceed 20,480 characters. Chinese characters must be\nin UTF-8 or Unicode format.\n"
        },
        "cors": {
          "type": "boolean",
          "description": "Specifies whether CORS is supported, default to false.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the constant or system parameter, which contain a\nmaximum of 255 characters, and the angle brackets (< and >) are not allowed.\n"
        },
        "failureResponse": {
          "type": "string",
          "description": "Specifies the example response for a successful request. Ensure that the\nresponse does not exceed 20,480 characters. Chinese characters must be in UTF-8 or Unicode format.\n"
        },
        "funcGraph": {
          "$ref": "#/types/flexibleengine:index%2FApigApiFuncGraph:ApigApiFuncGraph",
          "description": "Specifies the function graph backend details. The object\nstructure is documented below. Changing this will create a new API resource.\n"
        },
        "funcGraphPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiFuncGraphPolicy:ApigApiFuncGraphPolicy"
          },
          "description": "Specifies the Mock policy backends. The maximum of the policy is 5.\nThe object structure is documented below.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies an ID of the APIG group to which the API belongs to.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the API belongs\nto. Changing this will create a new API resource.\n"
        },
        "matching": {
          "type": "string",
          "description": "Specifies the route matching mode. The valid value are **Exact** and **Prefix**,\ndefault to **Exact**.\n"
        },
        "mock": {
          "$ref": "#/types/flexibleengine:index%2FApigApiMock:ApigApiMock",
          "description": "Specifies the mock backend details. The object structure is documented\nbelow. Changing this will create a new API resource.\n"
        },
        "mockPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiMockPolicy:ApigApiMockPolicy"
          },
          "description": "Specifies the Mock policy backends. The maximum of the policy is 5.\nThe object structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the backend policy name, which can contains of 3 to 64 characters and start with\na letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the API resource. If omitted, the\nprovider-level region will be used. Changing this will create a new API resource.\n"
        },
        "registeredAt": {
          "type": "string",
          "description": "Time when the API is registered, in UTC format.\n"
        },
        "requestMethod": {
          "type": "string",
          "description": "Specifies the backend request method of the API. The valid types are **GET**,\n**POST**, **PUT**, **DELETE**, **HEAD**, **PATCH**, **OPTIONS** and **ANY**.\n"
        },
        "requestParams": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiRequestParam:ApigApiRequestParam"
          },
          "description": "Specifies an array of one or more request parameters of the front-end. The maximum\nof request parameters is 50. The object structure is documented below.\n"
        },
        "requestPath": {
          "type": "string",
          "description": "Specifies the request address, which can contain a maximum of 512 characters\nrequest parameters enclosed with brackets ({}).\n+ The address can contain special characters, such as asterisks (), percent signs (%), hyphens (-), and\nunderscores (_) and must comply with URI specifications.\n+ The address can contain environment variables, each starting with a letter and consisting of 3 to 32 characters.\nOnly letters, digits, hyphens (-), and underscores (_) are allowed in environment variables.\n"
        },
        "requestProtocol": {
          "type": "string",
          "description": "Specifies the backend request protocol. The valid values are **HTTP** and\n**HTTPS**, default to **HTTPS**.\n"
        },
        "responseId": {
          "type": "string",
          "description": "Specifies the APIG group response ID.\n"
        },
        "securityAuthentication": {
          "type": "string",
          "description": "Specifies the security authentication mode. The valid values are\n**NONE**, **APP** and **IAM**, default to **NONE**.\n"
        },
        "simpleAuthentication": {
          "type": "boolean",
          "description": "Specifies whether AppCode authentication is enabled. The applicaiton code\nmust located in the header when `simple_authentication` is true.\n"
        },
        "successResponse": {
          "type": "string",
          "description": "Specifies the example response for a successful request. Ensure that the\nresponse does not exceed 20,480 characters. Chinese characters must be in UTF-8 or Unicode format.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the condition type of the backend policy. The valid values are **Equal**,\n**Enumerated** and **Matching**, default to **Equal**.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "Time when the API was last modified, in UTC format.\n"
        },
        "web": {
          "$ref": "#/types/flexibleengine:index%2FApigApiWeb:ApigApiWeb",
          "description": "Specifies the web backend details. The object structure is documented\nbelow. Changing this will create a new API resource.\n"
        },
        "webPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiWebPolicy:ApigApiWebPolicy"
          },
          "description": "Specifies the example response for a failed request. The maximum of the policy is 5.\nThe object structure is documented below.\n\n<a name=\"apig_api_request_params\"></a>\nThe `request_params` block supports:\n"
        }
      },
      "type": "object",
      "required": [
        "apigApiId",
        "groupId",
        "instanceId",
        "name",
        "region",
        "registeredAt",
        "requestMethod",
        "requestPath",
        "requestProtocol",
        "simpleAuthentication",
        "type",
        "updatedAt"
      ],
      "inputProperties": {
        "apigApiId": {
          "type": "string",
          "description": "ID of the APIG API.\n"
        },
        "authorizerId": {
          "type": "string",
          "description": "Specifies the ID of the backend custom authorization.\n\n<a name=\"apig_api_conditions\"></a>\nThe `conditions` block supports:\n"
        },
        "backendParams": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiBackendParam:ApigApiBackendParam"
          },
          "description": "Specifies an array of one or more backend parameters. The maximum of request\nparameters is 50. The object structure is documented above.\n"
        },
        "bodyDescription": {
          "type": "string",
          "description": "Specifies the description of the API request body, which can be an example\nrequest body, media type or parameters. The request body does not exceed 20,480 characters. Chinese characters must be\nin UTF-8 or Unicode format.\n"
        },
        "cors": {
          "type": "boolean",
          "description": "Specifies whether CORS is supported, default to false.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the constant or system parameter, which contain a\nmaximum of 255 characters, and the angle brackets (< and >) are not allowed.\n"
        },
        "failureResponse": {
          "type": "string",
          "description": "Specifies the example response for a successful request. Ensure that the\nresponse does not exceed 20,480 characters. Chinese characters must be in UTF-8 or Unicode format.\n"
        },
        "funcGraph": {
          "$ref": "#/types/flexibleengine:index%2FApigApiFuncGraph:ApigApiFuncGraph",
          "description": "Specifies the function graph backend details. The object\nstructure is documented below. Changing this will create a new API resource.\n"
        },
        "funcGraphPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiFuncGraphPolicy:ApigApiFuncGraphPolicy"
          },
          "description": "Specifies the Mock policy backends. The maximum of the policy is 5.\nThe object structure is documented below.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies an ID of the APIG group to which the API belongs to.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the API belongs\nto. Changing this will create a new API resource.\n"
        },
        "matching": {
          "type": "string",
          "description": "Specifies the route matching mode. The valid value are **Exact** and **Prefix**,\ndefault to **Exact**.\n"
        },
        "mock": {
          "$ref": "#/types/flexibleengine:index%2FApigApiMock:ApigApiMock",
          "description": "Specifies the mock backend details. The object structure is documented\nbelow. Changing this will create a new API resource.\n"
        },
        "mockPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiMockPolicy:ApigApiMockPolicy"
          },
          "description": "Specifies the Mock policy backends. The maximum of the policy is 5.\nThe object structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the backend policy name, which can contains of 3 to 64 characters and start with\na letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the API resource. If omitted, the\nprovider-level region will be used. Changing this will create a new API resource.\n"
        },
        "requestMethod": {
          "type": "string",
          "description": "Specifies the backend request method of the API. The valid types are **GET**,\n**POST**, **PUT**, **DELETE**, **HEAD**, **PATCH**, **OPTIONS** and **ANY**.\n"
        },
        "requestParams": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiRequestParam:ApigApiRequestParam"
          },
          "description": "Specifies an array of one or more request parameters of the front-end. The maximum\nof request parameters is 50. The object structure is documented below.\n"
        },
        "requestPath": {
          "type": "string",
          "description": "Specifies the request address, which can contain a maximum of 512 characters\nrequest parameters enclosed with brackets ({}).\n+ The address can contain special characters, such as asterisks (), percent signs (%), hyphens (-), and\nunderscores (_) and must comply with URI specifications.\n+ The address can contain environment variables, each starting with a letter and consisting of 3 to 32 characters.\nOnly letters, digits, hyphens (-), and underscores (_) are allowed in environment variables.\n"
        },
        "requestProtocol": {
          "type": "string",
          "description": "Specifies the backend request protocol. The valid values are **HTTP** and\n**HTTPS**, default to **HTTPS**.\n"
        },
        "responseId": {
          "type": "string",
          "description": "Specifies the APIG group response ID.\n"
        },
        "securityAuthentication": {
          "type": "string",
          "description": "Specifies the security authentication mode. The valid values are\n**NONE**, **APP** and **IAM**, default to **NONE**.\n"
        },
        "simpleAuthentication": {
          "type": "boolean",
          "description": "Specifies whether AppCode authentication is enabled. The applicaiton code\nmust located in the header when `simple_authentication` is true.\n"
        },
        "successResponse": {
          "type": "string",
          "description": "Specifies the example response for a successful request. Ensure that the\nresponse does not exceed 20,480 characters. Chinese characters must be in UTF-8 or Unicode format.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the condition type of the backend policy. The valid values are **Equal**,\n**Enumerated** and **Matching**, default to **Equal**.\n"
        },
        "web": {
          "$ref": "#/types/flexibleengine:index%2FApigApiWeb:ApigApiWeb",
          "description": "Specifies the web backend details. The object structure is documented\nbelow. Changing this will create a new API resource.\n"
        },
        "webPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiWebPolicy:ApigApiWebPolicy"
          },
          "description": "Specifies the example response for a failed request. The maximum of the policy is 5.\nThe object structure is documented below.\n\n<a name=\"apig_api_request_params\"></a>\nThe `request_params` block supports:\n"
        }
      },
      "requiredInputs": [
        "groupId",
        "instanceId",
        "requestMethod",
        "requestPath",
        "requestProtocol",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigApi resources.\n",
        "properties": {
          "apigApiId": {
            "type": "string",
            "description": "ID of the APIG API.\n"
          },
          "authorizerId": {
            "type": "string",
            "description": "Specifies the ID of the backend custom authorization.\n\n<a name=\"apig_api_conditions\"></a>\nThe `conditions` block supports:\n"
          },
          "backendParams": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigApiBackendParam:ApigApiBackendParam"
            },
            "description": "Specifies an array of one or more backend parameters. The maximum of request\nparameters is 50. The object structure is documented above.\n"
          },
          "bodyDescription": {
            "type": "string",
            "description": "Specifies the description of the API request body, which can be an example\nrequest body, media type or parameters. The request body does not exceed 20,480 characters. Chinese characters must be\nin UTF-8 or Unicode format.\n"
          },
          "cors": {
            "type": "boolean",
            "description": "Specifies whether CORS is supported, default to false.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the constant or system parameter, which contain a\nmaximum of 255 characters, and the angle brackets (< and >) are not allowed.\n"
          },
          "failureResponse": {
            "type": "string",
            "description": "Specifies the example response for a successful request. Ensure that the\nresponse does not exceed 20,480 characters. Chinese characters must be in UTF-8 or Unicode format.\n"
          },
          "funcGraph": {
            "$ref": "#/types/flexibleengine:index%2FApigApiFuncGraph:ApigApiFuncGraph",
            "description": "Specifies the function graph backend details. The object\nstructure is documented below. Changing this will create a new API resource.\n"
          },
          "funcGraphPolicies": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigApiFuncGraphPolicy:ApigApiFuncGraphPolicy"
            },
            "description": "Specifies the Mock policy backends. The maximum of the policy is 5.\nThe object structure is documented below.\n"
          },
          "groupId": {
            "type": "string",
            "description": "Specifies an ID of the APIG group to which the API belongs to.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies an ID of the APIG dedicated instance to which the API belongs\nto. Changing this will create a new API resource.\n"
          },
          "matching": {
            "type": "string",
            "description": "Specifies the route matching mode. The valid value are **Exact** and **Prefix**,\ndefault to **Exact**.\n"
          },
          "mock": {
            "$ref": "#/types/flexibleengine:index%2FApigApiMock:ApigApiMock",
            "description": "Specifies the mock backend details. The object structure is documented\nbelow. Changing this will create a new API resource.\n"
          },
          "mockPolicies": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigApiMockPolicy:ApigApiMockPolicy"
            },
            "description": "Specifies the Mock policy backends. The maximum of the policy is 5.\nThe object structure is documented below.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the backend policy name, which can contains of 3 to 64 characters and start with\na letter. Only letters, digits, and underscores (_) are allowed.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the API resource. If omitted, the\nprovider-level region will be used. Changing this will create a new API resource.\n"
          },
          "registeredAt": {
            "type": "string",
            "description": "Time when the API is registered, in UTC format.\n"
          },
          "requestMethod": {
            "type": "string",
            "description": "Specifies the backend request method of the API. The valid types are **GET**,\n**POST**, **PUT**, **DELETE**, **HEAD**, **PATCH**, **OPTIONS** and **ANY**.\n"
          },
          "requestParams": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigApiRequestParam:ApigApiRequestParam"
            },
            "description": "Specifies an array of one or more request parameters of the front-end. The maximum\nof request parameters is 50. The object structure is documented below.\n"
          },
          "requestPath": {
            "type": "string",
            "description": "Specifies the request address, which can contain a maximum of 512 characters\nrequest parameters enclosed with brackets ({}).\n+ The address can contain special characters, such as asterisks (), percent signs (%), hyphens (-), and\nunderscores (_) and must comply with URI specifications.\n+ The address can contain environment variables, each starting with a letter and consisting of 3 to 32 characters.\nOnly letters, digits, hyphens (-), and underscores (_) are allowed in environment variables.\n"
          },
          "requestProtocol": {
            "type": "string",
            "description": "Specifies the backend request protocol. The valid values are **HTTP** and\n**HTTPS**, default to **HTTPS**.\n"
          },
          "responseId": {
            "type": "string",
            "description": "Specifies the APIG group response ID.\n"
          },
          "securityAuthentication": {
            "type": "string",
            "description": "Specifies the security authentication mode. The valid values are\n**NONE**, **APP** and **IAM**, default to **NONE**.\n"
          },
          "simpleAuthentication": {
            "type": "boolean",
            "description": "Specifies whether AppCode authentication is enabled. The applicaiton code\nmust located in the header when `simple_authentication` is true.\n"
          },
          "successResponse": {
            "type": "string",
            "description": "Specifies the example response for a successful request. Ensure that the\nresponse does not exceed 20,480 characters. Chinese characters must be in UTF-8 or Unicode format.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the condition type of the backend policy. The valid values are **Equal**,\n**Enumerated** and **Matching**, default to **Equal**.\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "Time when the API was last modified, in UTC format.\n"
          },
          "web": {
            "$ref": "#/types/flexibleengine:index%2FApigApiWeb:ApigApiWeb",
            "description": "Specifies the web backend details. The object structure is documented\nbelow. Changing this will create a new API resource.\n"
          },
          "webPolicies": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigApiWebPolicy:ApigApiWebPolicy"
            },
            "description": "Specifies the example response for a failed request. The maximum of the policy is 5.\nThe object structure is documented below.\n\n<a name=\"apig_api_request_params\"></a>\nThe `request_params` block supports:\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigApiPublishment:ApigApiPublishment": {
      "description": "## Example Usage\n\n### Publish a new version of the API\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst envId = config.requireObject(\"envId\");\nconst apiId = config.requireObject(\"apiId\");\nconst _default = new flexibleengine.ApigApiPublishment(\"default\", {\n    instanceId: instanceId,\n    envId: envId,\n    apiId: apiId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nenv_id = config.require_object(\"envId\")\napi_id = config.require_object(\"apiId\")\ndefault = flexibleengine.ApigApiPublishment(\"default\",\n    instance_id=instance_id,\n    env_id=env_id,\n    api_id=api_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var envId = config.RequireObject<dynamic>(\"envId\");\n    var apiId = config.RequireObject<dynamic>(\"apiId\");\n    var @default = new Flexibleengine.ApigApiPublishment(\"default\", new()\n    {\n        InstanceId = instanceId,\n        EnvId = envId,\n        ApiId = apiId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tenvId := cfg.RequireObject(\"envId\")\n\t\tapiId := cfg.RequireObject(\"apiId\")\n\t\t_, err := flexibleengine.NewApigApiPublishment(ctx, \"default\", &flexibleengine.ApigApiPublishmentArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tEnvId:      pulumi.Any(envId),\n\t\t\tApiId:      pulumi.Any(apiId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigApiPublishment;\nimport com.pulumi.flexibleengine.ApigApiPublishmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var envId = config.get(\"envId\");\n        final var apiId = config.get(\"apiId\");\n        var default_ = new ApigApiPublishment(\"default\", ApigApiPublishmentArgs.builder()\n            .instanceId(instanceId)\n            .envId(envId)\n            .apiId(apiId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  envId:\n    type: dynamic\n  apiId:\n    type: dynamic\nresources:\n  default:\n    type: flexibleengine:ApigApiPublishment\n    properties:\n      instanceId: ${instanceId}\n      envId: ${envId}\n      apiId: ${apiId}\n```\n<!--End PulumiCodeChooser -->\n\n### Switch to a specified version of the API which is published\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst envId = config.requireObject(\"envId\");\nconst apiId = config.requireObject(\"apiId\");\nconst versionId = config.requireObject(\"versionId\");\nconst _default = new flexibleengine.ApigApiPublishment(\"default\", {\n    instanceId: instanceId,\n    envId: envId,\n    apiId: apiId,\n    versionId: versionId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nenv_id = config.require_object(\"envId\")\napi_id = config.require_object(\"apiId\")\nversion_id = config.require_object(\"versionId\")\ndefault = flexibleengine.ApigApiPublishment(\"default\",\n    instance_id=instance_id,\n    env_id=env_id,\n    api_id=api_id,\n    version_id=version_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var envId = config.RequireObject<dynamic>(\"envId\");\n    var apiId = config.RequireObject<dynamic>(\"apiId\");\n    var versionId = config.RequireObject<dynamic>(\"versionId\");\n    var @default = new Flexibleengine.ApigApiPublishment(\"default\", new()\n    {\n        InstanceId = instanceId,\n        EnvId = envId,\n        ApiId = apiId,\n        VersionId = versionId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tenvId := cfg.RequireObject(\"envId\")\n\t\tapiId := cfg.RequireObject(\"apiId\")\n\t\tversionId := cfg.RequireObject(\"versionId\")\n\t\t_, err := flexibleengine.NewApigApiPublishment(ctx, \"default\", &flexibleengine.ApigApiPublishmentArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tEnvId:      pulumi.Any(envId),\n\t\t\tApiId:      pulumi.Any(apiId),\n\t\t\tVersionId:  pulumi.Any(versionId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigApiPublishment;\nimport com.pulumi.flexibleengine.ApigApiPublishmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var envId = config.get(\"envId\");\n        final var apiId = config.get(\"apiId\");\n        final var versionId = config.get(\"versionId\");\n        var default_ = new ApigApiPublishment(\"default\", ApigApiPublishmentArgs.builder()\n            .instanceId(instanceId)\n            .envId(envId)\n            .apiId(apiId)\n            .versionId(versionId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  envId:\n    type: dynamic\n  apiId:\n    type: dynamic\n  versionId:\n    type: dynamic\nresources:\n  default:\n    type: flexibleengine:ApigApiPublishment\n    properties:\n      instanceId: ${instanceId}\n      envId: ${envId}\n      apiId: ${apiId}\n      versionId: ${versionId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPIs can be imported using their `instance_id`, `env_id` and `api_id`, separated by slashes, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/apigApiPublishment:ApigApiPublishment test \n```\n\n9b0a0a2f97aa43afbf7d852e3ba6a6f9/c5b32727186c4fe6b60408a8a297be09/9a3b3484c08545f9b9b0dcb2de0f5b8a\n\n",
      "properties": {
        "apiId": {
          "type": "string",
          "description": "Specifies the API ID to be published or already published.\nChanging this will create a new publishment resource.\n"
        },
        "apigApiPublishmentId": {
          "type": "string",
          "description": "Resource ID, which is constructed from the instance ID, environment ID, and API ID, separated by slashes.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the current publishment.\n"
        },
        "envId": {
          "type": "string",
          "description": "Specifies the environment ID to which the current version of the API will be\npublished or has been published. Changing this will create a new publishment resource.\n"
        },
        "envName": {
          "type": "string",
          "description": "Environment name to which the current version of the API is published.\n"
        },
        "histories": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigApiPublishmentHistory:ApigApiPublishmentHistory"
          },
          "description": "All publish informations of the API. The structure is documented below.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the API belongs\nto. Changing this will create a new publishment resource.\n"
        },
        "publishId": {
          "type": "string",
          "description": "The publish ID of the API in current environment.\n"
        },
        "publishedAt": {
          "type": "string",
          "description": "Time when the current version was published.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to publish APIs.\nIf omitted, the provider-level region will be used. Changing this will create a new publishment resource.\n"
        },
        "versionId": {
          "type": "string",
          "description": "Specifies the version ID of the current publishment.\n"
        }
      },
      "type": "object",
      "required": [
        "apiId",
        "apigApiPublishmentId",
        "envId",
        "envName",
        "histories",
        "instanceId",
        "publishId",
        "publishedAt",
        "region"
      ],
      "inputProperties": {
        "apiId": {
          "type": "string",
          "description": "Specifies the API ID to be published or already published.\nChanging this will create a new publishment resource.\n"
        },
        "apigApiPublishmentId": {
          "type": "string",
          "description": "Resource ID, which is constructed from the instance ID, environment ID, and API ID, separated by slashes.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the current publishment.\n"
        },
        "envId": {
          "type": "string",
          "description": "Specifies the environment ID to which the current version of the API will be\npublished or has been published. Changing this will create a new publishment resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the API belongs\nto. Changing this will create a new publishment resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to publish APIs.\nIf omitted, the provider-level region will be used. Changing this will create a new publishment resource.\n"
        },
        "versionId": {
          "type": "string",
          "description": "Specifies the version ID of the current publishment.\n"
        }
      },
      "requiredInputs": [
        "apiId",
        "envId",
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigApiPublishment resources.\n",
        "properties": {
          "apiId": {
            "type": "string",
            "description": "Specifies the API ID to be published or already published.\nChanging this will create a new publishment resource.\n"
          },
          "apigApiPublishmentId": {
            "type": "string",
            "description": "Resource ID, which is constructed from the instance ID, environment ID, and API ID, separated by slashes.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the current publishment.\n"
          },
          "envId": {
            "type": "string",
            "description": "Specifies the environment ID to which the current version of the API will be\npublished or has been published. Changing this will create a new publishment resource.\n"
          },
          "envName": {
            "type": "string",
            "description": "Environment name to which the current version of the API is published.\n"
          },
          "histories": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigApiPublishmentHistory:ApigApiPublishmentHistory"
            },
            "description": "All publish informations of the API. The structure is documented below.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies an ID of the APIG dedicated instance to which the API belongs\nto. Changing this will create a new publishment resource.\n"
          },
          "publishId": {
            "type": "string",
            "description": "The publish ID of the API in current environment.\n"
          },
          "publishedAt": {
            "type": "string",
            "description": "Time when the current version was published.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to publish APIs.\nIf omitted, the provider-level region will be used. Changing this will create a new publishment resource.\n"
          },
          "versionId": {
            "type": "string",
            "description": "Specifies the version ID of the current publishment.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigAppcode:ApigAppcode": {
      "description": "Manages an APPCODE in application resource within FlexibleEngine.\n\n## Example Usage\n\n### Auto generate APPCODE\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst applicationId = config.requireObject(\"applicationId\");\nconst test = new flexibleengine.ApigAppcode(\"test\", {\n    instanceId: instanceId,\n    applicationId: applicationId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\napplication_id = config.require_object(\"applicationId\")\ntest = flexibleengine.ApigAppcode(\"test\",\n    instance_id=instance_id,\n    application_id=application_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var applicationId = config.RequireObject<dynamic>(\"applicationId\");\n    var test = new Flexibleengine.ApigAppcode(\"test\", new()\n    {\n        InstanceId = instanceId,\n        ApplicationId = applicationId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tapplicationId := cfg.RequireObject(\"applicationId\")\n\t\t_, err := flexibleengine.NewApigAppcode(ctx, \"test\", &flexibleengine.ApigAppcodeArgs{\n\t\t\tInstanceId:    pulumi.Any(instanceId),\n\t\t\tApplicationId: pulumi.Any(applicationId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigAppcode;\nimport com.pulumi.flexibleengine.ApigAppcodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var applicationId = config.get(\"applicationId\");\n        var test = new ApigAppcode(\"test\", ApigAppcodeArgs.builder()\n            .instanceId(instanceId)\n            .applicationId(applicationId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  applicationId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigAppcode\n    properties:\n      instanceId: ${instanceId}\n      applicationId: ${applicationId}\n```\n<!--End PulumiCodeChooser -->\n\n### Manually configure APPCODE\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst applicationId = config.requireObject(\"applicationId\");\nconst appCode = config.requireObject(\"appCode\");\nconst test = new flexibleengine.ApigAppcode(\"test\", {\n    instanceId: instanceId,\n    applicationId: applicationId,\n    value: appCode,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\napplication_id = config.require_object(\"applicationId\")\napp_code = config.require_object(\"appCode\")\ntest = flexibleengine.ApigAppcode(\"test\",\n    instance_id=instance_id,\n    application_id=application_id,\n    value=app_code)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var applicationId = config.RequireObject<dynamic>(\"applicationId\");\n    var appCode = config.RequireObject<dynamic>(\"appCode\");\n    var test = new Flexibleengine.ApigAppcode(\"test\", new()\n    {\n        InstanceId = instanceId,\n        ApplicationId = applicationId,\n        Value = appCode,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tapplicationId := cfg.RequireObject(\"applicationId\")\n\t\tappCode := cfg.RequireObject(\"appCode\")\n\t\t_, err := flexibleengine.NewApigAppcode(ctx, \"test\", &flexibleengine.ApigAppcodeArgs{\n\t\t\tInstanceId:    pulumi.Any(instanceId),\n\t\t\tApplicationId: pulumi.Any(applicationId),\n\t\t\tValue:         pulumi.Any(appCode),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigAppcode;\nimport com.pulumi.flexibleengine.ApigAppcodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var applicationId = config.get(\"applicationId\");\n        final var appCode = config.get(\"appCode\");\n        var test = new ApigAppcode(\"test\", ApigAppcodeArgs.builder()\n            .instanceId(instanceId)\n            .applicationId(applicationId)\n            .value(appCode)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  applicationId:\n    type: dynamic\n  appCode:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigAppcode\n    properties:\n      instanceId: ${instanceId}\n      applicationId: ${applicationId}\n      value: ${appCode}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPPCODEs can be imported using related `instance_id`, `application_id` and their `id`, separated by slashes, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/apigAppcode:ApigAppcode test <instance_id>/<application_id>/<id>\n```\n\n",
      "properties": {
        "apigAppcodeId": {
          "type": "string",
          "description": "The APPCODE ID.\n"
        },
        "applicationId": {
          "type": "string",
          "description": "Specifies the ID of application to which the APPCODE belongs.\nChanging this will create a new resource.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The creation time of the APPCODE.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the application\nand APPCODE belong.\nChanging this will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the application and APPCODE are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the APPCODE value (content).\nThe value can contain `64` to `180` characters, starting with a letter, plus sign (+), or slash (/). Only letters and\nthe following special characters are allowed: `+_!@#$%/=`.\nIf omitted, a random value will be generated.\nChanging this will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "apigAppcodeId",
        "applicationId",
        "createdAt",
        "instanceId",
        "region",
        "value"
      ],
      "inputProperties": {
        "apigAppcodeId": {
          "type": "string",
          "description": "The APPCODE ID.\n"
        },
        "applicationId": {
          "type": "string",
          "description": "Specifies the ID of application to which the APPCODE belongs.\nChanging this will create a new resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the application\nand APPCODE belong.\nChanging this will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the application and APPCODE are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "value": {
          "type": "string",
          "description": "Specifies the APPCODE value (content).\nThe value can contain `64` to `180` characters, starting with a letter, plus sign (+), or slash (/). Only letters and\nthe following special characters are allowed: `+_!@#$%/=`.\nIf omitted, a random value will be generated.\nChanging this will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "applicationId",
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigAppcode resources.\n",
        "properties": {
          "apigAppcodeId": {
            "type": "string",
            "description": "The APPCODE ID.\n"
          },
          "applicationId": {
            "type": "string",
            "description": "Specifies the ID of application to which the APPCODE belongs.\nChanging this will create a new resource.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The creation time of the APPCODE.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the dedicated instance to which the application\nand APPCODE belong.\nChanging this will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the application and APPCODE are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          },
          "value": {
            "type": "string",
            "description": "Specifies the APPCODE value (content).\nThe value can contain `64` to `180` characters, starting with a letter, plus sign (+), or slash (/). Only letters and\nthe following special characters are allowed: `+_!@#$%/=`.\nIf omitted, a random value will be generated.\nChanging this will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigApplication:ApigApplication": {
      "description": "Manages an APIG application resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst appName = config.requireObject(\"appName\");\nconst appCode = config.requireObject(\"appCode\");\nconst test = new flexibleengine.ApigApplication(\"test\", {\n    instanceId: instanceId,\n    description: \"Created by script\",\n    appCodes: [appCode],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\napp_name = config.require_object(\"appName\")\napp_code = config.require_object(\"appCode\")\ntest = flexibleengine.ApigApplication(\"test\",\n    instance_id=instance_id,\n    description=\"Created by script\",\n    app_codes=[app_code])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var appName = config.RequireObject<dynamic>(\"appName\");\n    var appCode = config.RequireObject<dynamic>(\"appCode\");\n    var test = new Flexibleengine.ApigApplication(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Description = \"Created by script\",\n        AppCodes = new[]\n        {\n            appCode,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tappName := cfg.RequireObject(\"appName\")\n\t\tappCode := cfg.RequireObject(\"appCode\")\n\t\t_, err := flexibleengine.NewApigApplication(ctx, \"test\", &flexibleengine.ApigApplicationArgs{\n\t\t\tInstanceId:  pulumi.Any(instanceId),\n\t\t\tDescription: pulumi.String(\"Created by script\"),\n\t\t\tAppCodes: pulumi.StringArray{\n\t\t\t\tappCode,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigApplication;\nimport com.pulumi.flexibleengine.ApigApplicationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var appName = config.get(\"appName\");\n        final var appCode = config.get(\"appCode\");\n        var test = new ApigApplication(\"test\", ApigApplicationArgs.builder()\n            .instanceId(instanceId)\n            .description(\"Created by script\")\n            .appCodes(appCode)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  appName:\n    type: dynamic\n  appCode:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigApplication\n    properties:\n      instanceId: ${instanceId}\n      description: Created by script\n      appCodes:\n        - ${appCode}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPIG Applications can be imported using the ID of the APIG dedicated instance to which the application\n\nbelongs and APIG Application ID, separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/apigApplication:ApigApplication test <instance_id>/<id>\n```\n\n",
      "properties": {
        "apigApplicationId": {
          "type": "string",
          "description": "ID of the APIG application.\n"
        },
        "appCodes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of one or more application codes which the APIG application belongs\nto. Up to five application codes can be created. The code consists of 64 to 180 characters, starting with a letter,\ndigit, plus sign (+) or slash (/). Only letters, digits and following special special characters are allowed: !@#$%+-_\n/=\n"
        },
        "appKey": {
          "type": "string",
          "description": "App key.\n"
        },
        "appSecret": {
          "type": "string",
          "description": "App secret.\n",
          "secret": true
        },
        "description": {
          "type": "string",
          "description": "Specifies the description about the APIG application. The description contain a\nmaximum of 255 characters and the angle brackets (< and >) are not allowed. Chinese characters must be in UTF-8 or\nUnicode format.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the APIG\napplication belongs to. Changing this will create a new APIG application resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API application. The API group name consists of 3 to 64\ncharacters, starting with a letter. Only letters, digits and underscores (_) are allowed. Chinese characters must be\nin UTF-8 or Unicode format.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the APIG application resource. If\nomitted, the provider-level region will be used. Changing this will create a new APIG application resource.\n"
        },
        "registrationTime": {
          "type": "string",
          "description": "Registration time, in RFC-3339 format.\n"
        },
        "secretAction": {
          "type": "string",
          "description": "Specifies the secret action to be done for the APIG application. The valid action\nis *RESET*.\n\n> **NOTE:** The `secret_action` is a one-time action.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The latest update time of the application.\n"
        }
      },
      "type": "object",
      "required": [
        "apigApplicationId",
        "appCodes",
        "appKey",
        "appSecret",
        "description",
        "instanceId",
        "name",
        "region",
        "registrationTime",
        "updatedAt"
      ],
      "inputProperties": {
        "apigApplicationId": {
          "type": "string",
          "description": "ID of the APIG application.\n"
        },
        "appCodes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of one or more application codes which the APIG application belongs\nto. Up to five application codes can be created. The code consists of 64 to 180 characters, starting with a letter,\ndigit, plus sign (+) or slash (/). Only letters, digits and following special special characters are allowed: !@#$%+-_\n/=\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description about the APIG application. The description contain a\nmaximum of 255 characters and the angle brackets (< and >) are not allowed. Chinese characters must be in UTF-8 or\nUnicode format.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the APIG\napplication belongs to. Changing this will create a new APIG application resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API application. The API group name consists of 3 to 64\ncharacters, starting with a letter. Only letters, digits and underscores (_) are allowed. Chinese characters must be\nin UTF-8 or Unicode format.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the APIG application resource. If\nomitted, the provider-level region will be used. Changing this will create a new APIG application resource.\n"
        },
        "secretAction": {
          "type": "string",
          "description": "Specifies the secret action to be done for the APIG application. The valid action\nis *RESET*.\n\n> **NOTE:** The `secret_action` is a one-time action.\n"
        }
      },
      "requiredInputs": [
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigApplication resources.\n",
        "properties": {
          "apigApplicationId": {
            "type": "string",
            "description": "ID of the APIG application.\n"
          },
          "appCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies an array of one or more application codes which the APIG application belongs\nto. Up to five application codes can be created. The code consists of 64 to 180 characters, starting with a letter,\ndigit, plus sign (+) or slash (/). Only letters, digits and following special special characters are allowed: !@#$%+-_\n/=\n"
          },
          "appKey": {
            "type": "string",
            "description": "App key.\n"
          },
          "appSecret": {
            "type": "string",
            "description": "App secret.\n",
            "secret": true
          },
          "description": {
            "type": "string",
            "description": "Specifies the description about the APIG application. The description contain a\nmaximum of 255 characters and the angle brackets (< and >) are not allowed. Chinese characters must be in UTF-8 or\nUnicode format.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies an ID of the APIG dedicated instance to which the APIG\napplication belongs to. Changing this will create a new APIG application resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the API application. The API group name consists of 3 to 64\ncharacters, starting with a letter. Only letters, digits and underscores (_) are allowed. Chinese characters must be\nin UTF-8 or Unicode format.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the APIG application resource. If\nomitted, the provider-level region will be used. Changing this will create a new APIG application resource.\n"
          },
          "registrationTime": {
            "type": "string",
            "description": "Registration time, in RFC-3339 format.\n"
          },
          "secretAction": {
            "type": "string",
            "description": "Specifies the secret action to be done for the APIG application. The valid action\nis *RESET*.\n\n> **NOTE:** The `secret_action` is a one-time action.\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "The latest update time of the application.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigApplicationAuthorization:ApigApplicationAuthorization": {
      "description": "Using this resource to authorize APIs for application, allowing it to access the published APIs within FlexibleEngine.\n\n> For an application, an environment can only create one `flexibleengine.ApigApplicationAuthorization` resource (all\n   published APIs must belong to an environment).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst applicationId = config.requireObject(\"applicationId\");\nconst publishedEnvId = config.requireObject(\"publishedEnvId\");\nconst publishedApiIds = config.requireObject<Array<string>>(\"publishedApiIds\");\nconst test = new flexibleengine.ApigApplicationAuthorization(\"test\", {\n    instanceId: instanceId,\n    applicationId: applicationId,\n    envId: publishedEnvId,\n    apiIds: publishedApiIds,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\napplication_id = config.require_object(\"applicationId\")\npublished_env_id = config.require_object(\"publishedEnvId\")\npublished_api_ids = config.require_object(\"publishedApiIds\")\ntest = flexibleengine.ApigApplicationAuthorization(\"test\",\n    instance_id=instance_id,\n    application_id=application_id,\n    env_id=published_env_id,\n    api_ids=published_api_ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var applicationId = config.RequireObject<dynamic>(\"applicationId\");\n    var publishedEnvId = config.RequireObject<dynamic>(\"publishedEnvId\");\n    var publishedApiIds = config.RequireObject<string[]>(\"publishedApiIds\");\n    var test = new Flexibleengine.ApigApplicationAuthorization(\"test\", new()\n    {\n        InstanceId = instanceId,\n        ApplicationId = applicationId,\n        EnvId = publishedEnvId,\n        ApiIds = publishedApiIds,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tapplicationId := cfg.RequireObject(\"applicationId\")\n\t\tpublishedEnvId := cfg.RequireObject(\"publishedEnvId\")\n\t\tpublishedApiIds := cfg.Require(\"publishedApiIds\")\n\t\t_, err := flexibleengine.NewApigApplicationAuthorization(ctx, \"test\", &flexibleengine.ApigApplicationAuthorizationArgs{\n\t\t\tInstanceId:    pulumi.Any(instanceId),\n\t\t\tApplicationId: pulumi.Any(applicationId),\n\t\t\tEnvId:         pulumi.Any(publishedEnvId),\n\t\t\tApiIds:        publishedApiIds,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigApplicationAuthorization;\nimport com.pulumi.flexibleengine.ApigApplicationAuthorizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var applicationId = config.get(\"applicationId\");\n        final var publishedEnvId = config.get(\"publishedEnvId\");\n        final var publishedApiIds = config.get(\"publishedApiIds\");\n        var test = new ApigApplicationAuthorization(\"test\", ApigApplicationAuthorizationArgs.builder()\n            .instanceId(instanceId)\n            .applicationId(applicationId)\n            .envId(publishedEnvId)\n            .apiIds(publishedApiIds)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  applicationId:\n    type: dynamic\n  publishedEnvId:\n    type: dynamic\n  publishedApiIds:\n    type: list(string)\nresources:\n  test:\n    type: flexibleengine:ApigApplicationAuthorization\n    properties:\n      instanceId: ${instanceId}\n      applicationId: ${applicationId}\n      envId: ${publishedEnvId}\n      apiIds: ${publishedApiIds}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAuthorize relationships of application can be imported using related `instance_id` and their `id` (also consists of\n\n`env_id` and `application_id`), separated by the slashes, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/apigApplicationAuthorization:ApigApplicationAuthorization test <instance_id>/<env_id>/<application_id>\n```\n\n",
      "properties": {
        "apiIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the authorized API IDs.\n"
        },
        "apigApplicationAuthorizationId": {
          "type": "string",
          "description": "The resource ID, also `<env_id>/<application_id>`.\n"
        },
        "applicationId": {
          "type": "string",
          "description": "Specifies the ID of the application authorized to access the APIs.\nChanging this will create a new resource.\n"
        },
        "envId": {
          "type": "string",
          "description": "Specifies the environment ID where the APIs were published.\nChanging this will create a new resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the application\nand APIs belong.\nChanging this will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the application and APIs are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FApigApplicationAuthorizationTimeouts:ApigApplicationAuthorizationTimeouts"
        }
      },
      "type": "object",
      "required": [
        "apiIds",
        "apigApplicationAuthorizationId",
        "applicationId",
        "envId",
        "instanceId",
        "region"
      ],
      "inputProperties": {
        "apiIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the authorized API IDs.\n"
        },
        "apigApplicationAuthorizationId": {
          "type": "string",
          "description": "The resource ID, also `<env_id>/<application_id>`.\n"
        },
        "applicationId": {
          "type": "string",
          "description": "Specifies the ID of the application authorized to access the APIs.\nChanging this will create a new resource.\n"
        },
        "envId": {
          "type": "string",
          "description": "Specifies the environment ID where the APIs were published.\nChanging this will create a new resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the application\nand APIs belong.\nChanging this will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the application and APIs are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FApigApplicationAuthorizationTimeouts:ApigApplicationAuthorizationTimeouts"
        }
      },
      "requiredInputs": [
        "apiIds",
        "applicationId",
        "envId",
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigApplicationAuthorization resources.\n",
        "properties": {
          "apiIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the authorized API IDs.\n"
          },
          "apigApplicationAuthorizationId": {
            "type": "string",
            "description": "The resource ID, also `<env_id>/<application_id>`.\n"
          },
          "applicationId": {
            "type": "string",
            "description": "Specifies the ID of the application authorized to access the APIs.\nChanging this will create a new resource.\n"
          },
          "envId": {
            "type": "string",
            "description": "Specifies the environment ID where the APIs were published.\nChanging this will create a new resource.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the dedicated instance to which the application\nand APIs belong.\nChanging this will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the application and APIs are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FApigApplicationAuthorizationTimeouts:ApigApplicationAuthorizationTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigChannel:ApigChannel": {
      "description": "Manages a channel resource within FlexibleEngine.\n\n> After creating a channel of type server, you can configure it for an API of an HTTP/HTTPS backend service.\n\n## Example Usage\n\n### Create a channel of type server and use the default group to manage servers\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  channelName:\n    type: dynamic\n  backendServers:\n    type: list(object({group_name = union(none, string), id = union(none, string), weight = union(none, number)}))\nresources:\n  test:\n    type: flexibleengine:ApigChannel\n    properties:\n      instanceId: ${instanceId}\n      port: 8080\n      dynamic:\n        - forEach: ${backendServers}\n          content:\n            - id: ${member.value.id}\n              weight: ${member.value.weight}\n```\n<!--End PulumiCodeChooser -->\n\n### Create a channel of type server and use the custom group to manage servers\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  channelName:\n    type: dynamic\n  backendServerGroups:\n    type: list(object({description = union(none, string), name = union(none, string), weight = union(none, number)}))\n  backendServers:\n    type: list(object({group_name = union(none, string), id = union(none, string), weight = union(none, number)}))\nresources:\n  test:\n    type: flexibleengine:ApigChannel\n    properties:\n      instanceId: ${instanceId}\n      port: 8080\n      # The length of group list cannot be 0 if you want to use dynamic syntax\n      dynamic:\n        - forEach: ${backendServerGroups}\n          content:\n            - name: ${member.value.name}\n              description: ${member.value.description}\n              weight: ${member.value.weight}\n        - forEach: ${backendServers}\n          content:\n            - groupName: ${member.value.group_name}\n              id: ${member.value.id}\n              weight: ${member.value.weight}\n```\n<!--End PulumiCodeChooser -->\n\n### Create a channel of type microservice\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  channelName:\n    type: dynamic\n  clusterId:\n    type: dynamic\n  workloadName:\n    type: dynamic\n  memberGroupsConfig:\n    type: list(object({microservice_labels = union(map(string), none), microservice_port = union(none, number), name = union(none, string), weight = union(none, number)}))\nresources:\n  test:\n    type: flexibleengine:ApigChannel\n    properties:\n      instanceId: ${instanceId}\n      port: 80\n      balanceStrategy: 1\n      memberType: ip\n      type: 3\n      dynamic:\n        - forEach: ${memberGroupsConfig}\n          content:\n            - name: ${member_group.value.name}\n              weight: ${member_group.value.weight}\n              microservicePort: ${member_group.value.microservice_port}\n              microserviceLabels: ${member_group.value.microservice_labels}\n      healthCheck:\n        protocol: TCP\n        thresholdNormal: 2\n        thresholdAbnormal: 2\n        interval: 5\n        timeout: 2\n        port: 65530\n        path: /\n        method: GET\n        httpCodes: 200,201,208-209\n        enableClientSsl: false\n        status: 1\n      microservice:\n        cceConfig:\n          clusterId: ${clusterId}\n          namespace: default\n          workloadType: deployment\n          workloadName: ${workloadName}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nChannels can be imported using their `id` and the ID of the related dedicated instance, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/apigChannel:ApigChannel test <instance_id>/<id>\n```\n\n",
      "properties": {
        "apigChannelId": {
          "type": "string",
          "description": "Specifies the ECS ID for each backend servers.  \nRequired if the `member_type` is **ecs**.\nThis parameter and `member.host` are alternative.\n"
        },
        "balanceStrategy": {
          "type": "number",
          "description": "Specifies the distribution algorithm.  \nThe valid values are as follows:\n+ **1**: Weighted round robin (WRR).\n+ **2**: Weighted least connections (WLC).\n+ **3**: Source hashing.\n+ **4**: URI hashing.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The time when the channel was created.\n"
        },
        "healthCheck": {
          "$ref": "#/types/flexibleengine:index%2FApigChannelHealthCheck:ApigChannelHealthCheck",
          "description": "Specifies the health configuration of cloud servers associated with the load balance\nchannel for APIG regularly check.\nThe health_check structure is documented below.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the channel\nbelongs.\nChanging this will create a new resource.\n"
        },
        "memberGroups": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigChannelMemberGroup:ApigChannelMemberGroup"
          },
          "description": "Specifies the backend (server) groups of the channel.  \nThe member_group structure is documented below.\n"
        },
        "memberType": {
          "type": "string",
          "description": "Specifies the member type of the channel.  \nThe valid values are as follows:\n+ **ip**.\n+ **ecs**.\n"
        },
        "members": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigChannelMember:ApigChannelMember"
          },
          "description": "Specifies the backend servers of the channel.  \nThis parameter is required and only available if the `type` is **2**.\nThe member structure is documented below.\n"
        },
        "microservice": {
          "$ref": "#/types/flexibleengine:index%2FApigChannelMicroservice:ApigChannelMicroservice",
          "description": "Specifies the configuration of the microservice.  \nThe microservice structure is documented below.\n\n<a name=\"channel_member_group\"></a>\nThe `member_group` block supports:\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the backend server.  \nRequired if the `member.id` is set.\nThis parameter and `member.host` are alternative.\n"
        },
        "port": {
          "type": "number",
          "description": "Specifies the destination host port for health check.  \nThe valid value ranges from `0` to `65535`.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the channel is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "status": {
          "type": "number",
          "description": "Specifies the status of health check.  \nThe valid values are as follows:\n+ **1**: Normal.\n+ **2**: Abnormal.\n\nDefaults to **1** (normal).\n\n<a name=\"channel_microservice\"></a>\nThe `microservice` block supports:\n"
        },
        "type": {
          "type": "number",
          "description": "Specifies the type of the channel.  \nThe valid values are as follows:\n+ **2**: Server type.\n+ **3**: Microservice type.\n\nDefaults to **2** (server type).\n"
        }
      },
      "type": "object",
      "required": [
        "apigChannelId",
        "balanceStrategy",
        "createdAt",
        "instanceId",
        "memberType",
        "name",
        "port",
        "region",
        "status",
        "type"
      ],
      "inputProperties": {
        "apigChannelId": {
          "type": "string",
          "description": "Specifies the ECS ID for each backend servers.  \nRequired if the `member_type` is **ecs**.\nThis parameter and `member.host` are alternative.\n"
        },
        "balanceStrategy": {
          "type": "number",
          "description": "Specifies the distribution algorithm.  \nThe valid values are as follows:\n+ **1**: Weighted round robin (WRR).\n+ **2**: Weighted least connections (WLC).\n+ **3**: Source hashing.\n+ **4**: URI hashing.\n"
        },
        "healthCheck": {
          "$ref": "#/types/flexibleengine:index%2FApigChannelHealthCheck:ApigChannelHealthCheck",
          "description": "Specifies the health configuration of cloud servers associated with the load balance\nchannel for APIG regularly check.\nThe health_check structure is documented below.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the channel\nbelongs.\nChanging this will create a new resource.\n"
        },
        "memberGroups": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigChannelMemberGroup:ApigChannelMemberGroup"
          },
          "description": "Specifies the backend (server) groups of the channel.  \nThe member_group structure is documented below.\n"
        },
        "memberType": {
          "type": "string",
          "description": "Specifies the member type of the channel.  \nThe valid values are as follows:\n+ **ip**.\n+ **ecs**.\n"
        },
        "members": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigChannelMember:ApigChannelMember"
          },
          "description": "Specifies the backend servers of the channel.  \nThis parameter is required and only available if the `type` is **2**.\nThe member structure is documented below.\n"
        },
        "microservice": {
          "$ref": "#/types/flexibleengine:index%2FApigChannelMicroservice:ApigChannelMicroservice",
          "description": "Specifies the configuration of the microservice.  \nThe microservice structure is documented below.\n\n<a name=\"channel_member_group\"></a>\nThe `member_group` block supports:\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the backend server.  \nRequired if the `member.id` is set.\nThis parameter and `member.host` are alternative.\n"
        },
        "port": {
          "type": "number",
          "description": "Specifies the destination host port for health check.  \nThe valid value ranges from `0` to `65535`.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the channel is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "type": {
          "type": "number",
          "description": "Specifies the type of the channel.  \nThe valid values are as follows:\n+ **2**: Server type.\n+ **3**: Microservice type.\n\nDefaults to **2** (server type).\n"
        }
      },
      "requiredInputs": [
        "balanceStrategy",
        "instanceId",
        "port"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigChannel resources.\n",
        "properties": {
          "apigChannelId": {
            "type": "string",
            "description": "Specifies the ECS ID for each backend servers.  \nRequired if the `member_type` is **ecs**.\nThis parameter and `member.host` are alternative.\n"
          },
          "balanceStrategy": {
            "type": "number",
            "description": "Specifies the distribution algorithm.  \nThe valid values are as follows:\n+ **1**: Weighted round robin (WRR).\n+ **2**: Weighted least connections (WLC).\n+ **3**: Source hashing.\n+ **4**: URI hashing.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The time when the channel was created.\n"
          },
          "healthCheck": {
            "$ref": "#/types/flexibleengine:index%2FApigChannelHealthCheck:ApigChannelHealthCheck",
            "description": "Specifies the health configuration of cloud servers associated with the load balance\nchannel for APIG regularly check.\nThe health_check structure is documented below.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the dedicated instance to which the channel\nbelongs.\nChanging this will create a new resource.\n"
          },
          "memberGroups": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigChannelMemberGroup:ApigChannelMemberGroup"
            },
            "description": "Specifies the backend (server) groups of the channel.  \nThe member_group structure is documented below.\n"
          },
          "memberType": {
            "type": "string",
            "description": "Specifies the member type of the channel.  \nThe valid values are as follows:\n+ **ip**.\n+ **ecs**.\n"
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigChannelMember:ApigChannelMember"
            },
            "description": "Specifies the backend servers of the channel.  \nThis parameter is required and only available if the `type` is **2**.\nThe member structure is documented below.\n"
          },
          "microservice": {
            "$ref": "#/types/flexibleengine:index%2FApigChannelMicroservice:ApigChannelMicroservice",
            "description": "Specifies the configuration of the microservice.  \nThe microservice structure is documented below.\n\n<a name=\"channel_member_group\"></a>\nThe `member_group` block supports:\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the backend server.  \nRequired if the `member.id` is set.\nThis parameter and `member.host` are alternative.\n"
          },
          "port": {
            "type": "number",
            "description": "Specifies the destination host port for health check.  \nThe valid value ranges from `0` to `65535`.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the channel is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          },
          "status": {
            "type": "number",
            "description": "Specifies the status of health check.  \nThe valid values are as follows:\n+ **1**: Normal.\n+ **2**: Abnormal.\n\nDefaults to **1** (normal).\n\n<a name=\"channel_microservice\"></a>\nThe `microservice` block supports:\n"
          },
          "type": {
            "type": "number",
            "description": "Specifies the type of the channel.  \nThe valid values are as follows:\n+ **2**: Server type.\n+ **3**: Microservice type.\n\nDefaults to **2** (server type).\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigCustomAuthorizer:ApigCustomAuthorizer": {
      "description": "Manages an APIG custom authorizer resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst authorizerName = config.requireObject(\"authorizerName\");\nconst functionUrn = config.requireObject(\"functionUrn\");\nconst test = new flexibleengine.ApigCustomAuthorizer(\"test\", {\n    instanceId: instanceId,\n    functionUrn: functionUrn,\n    type: \"FRONTEND\",\n    cacheAge: 60,\n    identities: [{\n        name: \"user_name\",\n        location: \"QUERY\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nauthorizer_name = config.require_object(\"authorizerName\")\nfunction_urn = config.require_object(\"functionUrn\")\ntest = flexibleengine.ApigCustomAuthorizer(\"test\",\n    instance_id=instance_id,\n    function_urn=function_urn,\n    type=\"FRONTEND\",\n    cache_age=60,\n    identities=[{\n        \"name\": \"user_name\",\n        \"location\": \"QUERY\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var authorizerName = config.RequireObject<dynamic>(\"authorizerName\");\n    var functionUrn = config.RequireObject<dynamic>(\"functionUrn\");\n    var test = new Flexibleengine.ApigCustomAuthorizer(\"test\", new()\n    {\n        InstanceId = instanceId,\n        FunctionUrn = functionUrn,\n        Type = \"FRONTEND\",\n        CacheAge = 60,\n        Identities = new[]\n        {\n            new Flexibleengine.Inputs.ApigCustomAuthorizerIdentityArgs\n            {\n                Name = \"user_name\",\n                Location = \"QUERY\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tauthorizerName := cfg.RequireObject(\"authorizerName\")\n\t\tfunctionUrn := cfg.RequireObject(\"functionUrn\")\n\t\t_, err := flexibleengine.NewApigCustomAuthorizer(ctx, \"test\", &flexibleengine.ApigCustomAuthorizerArgs{\n\t\t\tInstanceId:  pulumi.Any(instanceId),\n\t\t\tFunctionUrn: pulumi.Any(functionUrn),\n\t\t\tType:        pulumi.String(\"FRONTEND\"),\n\t\t\tCacheAge:    pulumi.Float64(60),\n\t\t\tIdentities: flexibleengine.ApigCustomAuthorizerIdentityArray{\n\t\t\t\t&flexibleengine.ApigCustomAuthorizerIdentityArgs{\n\t\t\t\t\tName:     pulumi.String(\"user_name\"),\n\t\t\t\t\tLocation: pulumi.String(\"QUERY\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigCustomAuthorizer;\nimport com.pulumi.flexibleengine.ApigCustomAuthorizerArgs;\nimport com.pulumi.flexibleengine.inputs.ApigCustomAuthorizerIdentityArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var authorizerName = config.get(\"authorizerName\");\n        final var functionUrn = config.get(\"functionUrn\");\n        var test = new ApigCustomAuthorizer(\"test\", ApigCustomAuthorizerArgs.builder()\n            .instanceId(instanceId)\n            .functionUrn(functionUrn)\n            .type(\"FRONTEND\")\n            .cacheAge(60)\n            .identities(ApigCustomAuthorizerIdentityArgs.builder()\n                .name(\"user_name\")\n                .location(\"QUERY\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  authorizerName:\n    type: dynamic\n  functionUrn:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigCustomAuthorizer\n    properties:\n      instanceId: ${instanceId}\n      functionUrn: ${functionUrn}\n      type: FRONTEND\n      cacheAge: 60\n      identities:\n        - name: user_name\n          location: QUERY\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCustom Authorizers of the APIG can be imported using the ID of the APIG instance to which the group belongs and\n\nCustom Authorizer `name`, separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/apigCustomAuthorizer:ApigCustomAuthorizer test <instance_id>/<name>\n```\n\n",
      "properties": {
        "apigCustomAuthorizerId": {
          "type": "string",
          "description": "ID of the custom authorizer.\n"
        },
        "cacheAge": {
          "type": "number",
          "description": "Specifies the maximum cache age.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The creation time of the custom authorizer.\n"
        },
        "functionUrn": {
          "type": "string",
          "description": "Specifies the uniform function URN of the function graph resource.\n"
        },
        "identities": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigCustomAuthorizerIdentity:ApigCustomAuthorizerIdentity"
          },
          "description": "Specifies an array of one or more parameter identities of the custom authorizer.\nThe object structure is documented below.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the\ncustom authorizer belongs to.\nChanging this will create a new custom authorizer resource.\n"
        },
        "isBodySend": {
          "type": "boolean",
          "description": "Specifies whether to send the body.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the custom authorizer.\nThe custom authorizer name consists of 3 to 64 characters, starting with a letter.\nOnly letters, digits and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the custom authorizer resource.\nIf omitted, the provider-level region will be used.\nChanging this will create a new custom authorizer resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the custom authoriz type.\nThe valid values are *FRONTEND* and *BACKEND*. Changing this will create a new custom authorizer resource.\n"
        },
        "userData": {
          "type": "string",
          "description": "Specifies the user data, which can contain a maximum of 2,048 characters.\nThe user data is used by APIG to invoke the specified authentication function when accessing the backend service.\n\n> **NOTE:** The user data will be displayed in plain text on the console.\n"
        }
      },
      "type": "object",
      "required": [
        "apigCustomAuthorizerId",
        "createdAt",
        "functionUrn",
        "instanceId",
        "name",
        "region"
      ],
      "inputProperties": {
        "apigCustomAuthorizerId": {
          "type": "string",
          "description": "ID of the custom authorizer.\n"
        },
        "cacheAge": {
          "type": "number",
          "description": "Specifies the maximum cache age.\n"
        },
        "functionUrn": {
          "type": "string",
          "description": "Specifies the uniform function URN of the function graph resource.\n"
        },
        "identities": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigCustomAuthorizerIdentity:ApigCustomAuthorizerIdentity"
          },
          "description": "Specifies an array of one or more parameter identities of the custom authorizer.\nThe object structure is documented below.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the\ncustom authorizer belongs to.\nChanging this will create a new custom authorizer resource.\n"
        },
        "isBodySend": {
          "type": "boolean",
          "description": "Specifies whether to send the body.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the custom authorizer.\nThe custom authorizer name consists of 3 to 64 characters, starting with a letter.\nOnly letters, digits and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the custom authorizer resource.\nIf omitted, the provider-level region will be used.\nChanging this will create a new custom authorizer resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the custom authoriz type.\nThe valid values are *FRONTEND* and *BACKEND*. Changing this will create a new custom authorizer resource.\n"
        },
        "userData": {
          "type": "string",
          "description": "Specifies the user data, which can contain a maximum of 2,048 characters.\nThe user data is used by APIG to invoke the specified authentication function when accessing the backend service.\n\n> **NOTE:** The user data will be displayed in plain text on the console.\n"
        }
      },
      "requiredInputs": [
        "functionUrn",
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigCustomAuthorizer resources.\n",
        "properties": {
          "apigCustomAuthorizerId": {
            "type": "string",
            "description": "ID of the custom authorizer.\n"
          },
          "cacheAge": {
            "type": "number",
            "description": "Specifies the maximum cache age.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The creation time of the custom authorizer.\n"
          },
          "functionUrn": {
            "type": "string",
            "description": "Specifies the uniform function URN of the function graph resource.\n"
          },
          "identities": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigCustomAuthorizerIdentity:ApigCustomAuthorizerIdentity"
            },
            "description": "Specifies an array of one or more parameter identities of the custom authorizer.\nThe object structure is documented below.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies an ID of the APIG dedicated instance to which the\ncustom authorizer belongs to.\nChanging this will create a new custom authorizer resource.\n"
          },
          "isBodySend": {
            "type": "boolean",
            "description": "Specifies whether to send the body.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the custom authorizer.\nThe custom authorizer name consists of 3 to 64 characters, starting with a letter.\nOnly letters, digits and underscores (_) are allowed.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the custom authorizer resource.\nIf omitted, the provider-level region will be used.\nChanging this will create a new custom authorizer resource.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the custom authoriz type.\nThe valid values are *FRONTEND* and *BACKEND*. Changing this will create a new custom authorizer resource.\n"
          },
          "userData": {
            "type": "string",
            "description": "Specifies the user data, which can contain a maximum of 2,048 characters.\nThe user data is used by APIG to invoke the specified authentication function when accessing the backend service.\n\n> **NOTE:** The user data will be displayed in plain text on the console.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigEnvironment:ApigEnvironment": {
      "description": "Manages an APIG environment resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst environmentName = config.requireObject(\"environmentName\");\nconst description = config.requireObject(\"description\");\nconst test = new flexibleengine.ApigEnvironment(\"test\", {\n    instanceId: instanceId,\n    description: description,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nenvironment_name = config.require_object(\"environmentName\")\ndescription = config.require_object(\"description\")\ntest = flexibleengine.ApigEnvironment(\"test\",\n    instance_id=instance_id,\n    description=description)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var environmentName = config.RequireObject<dynamic>(\"environmentName\");\n    var description = config.RequireObject<dynamic>(\"description\");\n    var test = new Flexibleengine.ApigEnvironment(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Description = description,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tenvironmentName := cfg.RequireObject(\"environmentName\")\n\t\tdescription := cfg.RequireObject(\"description\")\n\t\t_, err := flexibleengine.NewApigEnvironment(ctx, \"test\", &flexibleengine.ApigEnvironmentArgs{\n\t\t\tInstanceId:  pulumi.Any(instanceId),\n\t\t\tDescription: pulumi.Any(description),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigEnvironment;\nimport com.pulumi.flexibleengine.ApigEnvironmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var environmentName = config.get(\"environmentName\");\n        final var description = config.get(\"description\");\n        var test = new ApigEnvironment(\"test\", ApigEnvironmentArgs.builder()\n            .instanceId(instanceId)\n            .description(description)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  environmentName:\n    type: dynamic\n  description:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigEnvironment\n    properties:\n      instanceId: ${instanceId}\n      description: ${description}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nEnvironments can be imported using the ID of the APIG instance to which the environment belongs and environment ID,\n\nseparated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/apigEnvironment:ApigEnvironment test <instance_id>/<id>\n```\n\n",
      "properties": {
        "apigEnvironmentId": {
          "type": "string",
          "description": "ID of the APIG environment.\n"
        },
        "createTime": {
          "type": "string",
          "description": "schema: Deprecated; The time when the environment was created.\n",
          "deprecationMessage": "Deprecated"
        },
        "createdAt": {
          "type": "string",
          "description": "The time when the environment was created.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description about the API environment. The description contain a\nmaximum of 255 characters and the angle brackets (< and >) are not allowed. Chinese characters must be in UTF-8 or\nUnicode format.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the API\nenvironment belongs to. Changing this will create a new APIG environment resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API environment. The API environment name consists of 3 to 64\ncharacters, starting with a letter. Only letters, digits and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the APIG environment resource. If\nomitted, the provider-level region will be used. Changing this will create a new APIG environment resource.\n"
        }
      },
      "type": "object",
      "required": [
        "apigEnvironmentId",
        "createTime",
        "createdAt",
        "instanceId",
        "name",
        "region"
      ],
      "inputProperties": {
        "apigEnvironmentId": {
          "type": "string",
          "description": "ID of the APIG environment.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description about the API environment. The description contain a\nmaximum of 255 characters and the angle brackets (< and >) are not allowed. Chinese characters must be in UTF-8 or\nUnicode format.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the API\nenvironment belongs to. Changing this will create a new APIG environment resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API environment. The API environment name consists of 3 to 64\ncharacters, starting with a letter. Only letters, digits and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the APIG environment resource. If\nomitted, the provider-level region will be used. Changing this will create a new APIG environment resource.\n"
        }
      },
      "requiredInputs": [
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigEnvironment resources.\n",
        "properties": {
          "apigEnvironmentId": {
            "type": "string",
            "description": "ID of the APIG environment.\n"
          },
          "createTime": {
            "type": "string",
            "description": "schema: Deprecated; The time when the environment was created.\n",
            "deprecationMessage": "Deprecated"
          },
          "createdAt": {
            "type": "string",
            "description": "The time when the environment was created.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description about the API environment. The description contain a\nmaximum of 255 characters and the angle brackets (< and >) are not allowed. Chinese characters must be in UTF-8 or\nUnicode format.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies an ID of the APIG dedicated instance to which the API\nenvironment belongs to. Changing this will create a new APIG environment resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the API environment. The API environment name consists of 3 to 64\ncharacters, starting with a letter. Only letters, digits and underscores (_) are allowed.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the APIG environment resource. If\nomitted, the provider-level region will be used. Changing this will create a new APIG environment resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigGroup:ApigGroup": {
      "description": "Manages an APIG (API) group resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst groupName = config.requireObject(\"groupName\");\nconst description = config.requireObject(\"description\");\nconst environmentId = config.requireObject(\"environmentId\");\nconst test = new flexibleengine.ApigGroup(\"test\", {\n    instanceId: instanceId,\n    description: description,\n    environments: [{\n        variables: [{\n            name: \"TERRAFORM\",\n            value: \"/stage/terraform\",\n        }],\n        environmentId: environmentId,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ngroup_name = config.require_object(\"groupName\")\ndescription = config.require_object(\"description\")\nenvironment_id = config.require_object(\"environmentId\")\ntest = flexibleengine.ApigGroup(\"test\",\n    instance_id=instance_id,\n    description=description,\n    environments=[{\n        \"variables\": [{\n            \"name\": \"TERRAFORM\",\n            \"value\": \"/stage/terraform\",\n        }],\n        \"environment_id\": environment_id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var groupName = config.RequireObject<dynamic>(\"groupName\");\n    var description = config.RequireObject<dynamic>(\"description\");\n    var environmentId = config.RequireObject<dynamic>(\"environmentId\");\n    var test = new Flexibleengine.ApigGroup(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Description = description,\n        Environments = new[]\n        {\n            new Flexibleengine.Inputs.ApigGroupEnvironmentArgs\n            {\n                Variables = new[]\n                {\n                    new Flexibleengine.Inputs.ApigGroupEnvironmentVariableArgs\n                    {\n                        Name = \"TERRAFORM\",\n                        Value = \"/stage/terraform\",\n                    },\n                },\n                EnvironmentId = environmentId,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tgroupName := cfg.RequireObject(\"groupName\")\n\t\tdescription := cfg.RequireObject(\"description\")\n\t\tenvironmentId := cfg.RequireObject(\"environmentId\")\n\t\t_, err := flexibleengine.NewApigGroup(ctx, \"test\", &flexibleengine.ApigGroupArgs{\n\t\t\tInstanceId:  pulumi.Any(instanceId),\n\t\t\tDescription: pulumi.Any(description),\n\t\t\tEnvironments: flexibleengine.ApigGroupEnvironmentArray{\n\t\t\t\t&flexibleengine.ApigGroupEnvironmentArgs{\n\t\t\t\t\tVariables: flexibleengine.ApigGroupEnvironmentVariableArray{\n\t\t\t\t\t\t&flexibleengine.ApigGroupEnvironmentVariableArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"TERRAFORM\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"/stage/terraform\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tEnvironmentId: pulumi.Any(environmentId),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigGroup;\nimport com.pulumi.flexibleengine.ApigGroupArgs;\nimport com.pulumi.flexibleengine.inputs.ApigGroupEnvironmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var groupName = config.get(\"groupName\");\n        final var description = config.get(\"description\");\n        final var environmentId = config.get(\"environmentId\");\n        var test = new ApigGroup(\"test\", ApigGroupArgs.builder()\n            .instanceId(instanceId)\n            .description(description)\n            .environments(ApigGroupEnvironmentArgs.builder()\n                .variables(ApigGroupEnvironmentVariableArgs.builder()\n                    .name(\"TERRAFORM\")\n                    .value(\"/stage/terraform\")\n                    .build())\n                .environmentId(environmentId)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  groupName:\n    type: dynamic\n  description:\n    type: dynamic\n  environmentId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigGroup\n    properties:\n      instanceId: ${instanceId}\n      description: ${description}\n      environments:\n        - variables:\n            - name: TERRAFORM\n              value: /stage/terraform\n          environmentId: ${environmentId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPI groups of the APIG can be imported using the ID of the APIG instance to which the group belongs and API group ID,\n\nseparated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/apigGroup:ApigGroup test <instance_id>/<id>\n```\n\n",
      "properties": {
        "apigGroupId": {
          "type": "string",
          "description": "The variable ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description about the API group. The description contain a maximum of\n255 characters and the angle brackets (< and >) are not allowed. Chinese characters must be in UTF-8 or Unicode\nformat.\n"
        },
        "environments": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigGroupEnvironment:ApigGroupEnvironment"
          },
          "description": "Specifies an array of one or more APIG environments of the associated APIG group. The\nobject structure is documented below.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the API group\nbelongs to. Changing this will create a new API group resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API group. The API group name consists of 3 to 64 characters,\nstarting with a letter. Only letters, digits and underscores (_) are allowed. Chinese characters must be in UTF-8 or\nUnicode format.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the API group resource. If omitted,\nthe provider-level region will be used. Changing this will create a new API group resource.\n"
        },
        "registrationTime": {
          "type": "string",
          "description": "The registration time.\n"
        },
        "updateTime": {
          "type": "string",
          "description": "schema: Deprecated; The latest update time of the group.\n",
          "deprecationMessage": "Deprecated"
        },
        "updatedAt": {
          "type": "string",
          "description": "The latest update time of the group.\n"
        }
      },
      "type": "object",
      "required": [
        "apigGroupId",
        "instanceId",
        "name",
        "region",
        "registrationTime",
        "updateTime",
        "updatedAt"
      ],
      "inputProperties": {
        "apigGroupId": {
          "type": "string",
          "description": "The variable ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description about the API group. The description contain a maximum of\n255 characters and the angle brackets (< and >) are not allowed. Chinese characters must be in UTF-8 or Unicode\nformat.\n"
        },
        "environments": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigGroupEnvironment:ApigGroupEnvironment"
          },
          "description": "Specifies an array of one or more APIG environments of the associated APIG group. The\nobject structure is documented below.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the API group\nbelongs to. Changing this will create a new API group resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API group. The API group name consists of 3 to 64 characters,\nstarting with a letter. Only letters, digits and underscores (_) are allowed. Chinese characters must be in UTF-8 or\nUnicode format.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the API group resource. If omitted,\nthe provider-level region will be used. Changing this will create a new API group resource.\n"
        }
      },
      "requiredInputs": [
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigGroup resources.\n",
        "properties": {
          "apigGroupId": {
            "type": "string",
            "description": "The variable ID.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description about the API group. The description contain a maximum of\n255 characters and the angle brackets (< and >) are not allowed. Chinese characters must be in UTF-8 or Unicode\nformat.\n"
          },
          "environments": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigGroupEnvironment:ApigGroupEnvironment"
            },
            "description": "Specifies an array of one or more APIG environments of the associated APIG group. The\nobject structure is documented below.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies an ID of the APIG dedicated instance to which the API group\nbelongs to. Changing this will create a new API group resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the API group. The API group name consists of 3 to 64 characters,\nstarting with a letter. Only letters, digits and underscores (_) are allowed. Chinese characters must be in UTF-8 or\nUnicode format.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the API group resource. If omitted,\nthe provider-level region will be used. Changing this will create a new API group resource.\n"
          },
          "registrationTime": {
            "type": "string",
            "description": "The registration time.\n"
          },
          "updateTime": {
            "type": "string",
            "description": "schema: Deprecated; The latest update time of the group.\n",
            "deprecationMessage": "Deprecated"
          },
          "updatedAt": {
            "type": "string",
            "description": "The latest update time of the group.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigInstance:ApigInstance": {
      "description": "Manages an APIG dedicated instance resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceName = config.requireObject(\"instanceName\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst exampleSecgroup = new flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", {description: \"My neutron security group\"});\nconst exampleEip = new flexibleengine.VpcEip(\"exampleEip\", {\n    publicip: {\n        type: \"5_bgp\",\n    },\n    bandwidth: {\n        name: \"test\",\n        size: 10,\n        shareType: \"PER\",\n    },\n});\nconst az = flexibleengine.getAvailabilityZones({});\nconst exampleApigInstance = new flexibleengine.ApigInstance(\"exampleApigInstance\", {\n    edition: \"BASIC\",\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    securityGroupId: exampleSecgroup.networkingSecgroupV2Id,\n    maintainBegin: \"06:00:00\",\n    description: \"Created by script\",\n    bandwidthSize: 3,\n    eipId: exampleEip.vpcEipId,\n    availableZones: [\n        az.then(az => az.names?.[0]),\n        az.then(az => az.names?.[1]),\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_name = config.require_object(\"instanceName\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nexample_secgroup = flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", description=\"My neutron security group\")\nexample_eip = flexibleengine.VpcEip(\"exampleEip\",\n    publicip={\n        \"type\": \"5_bgp\",\n    },\n    bandwidth={\n        \"name\": \"test\",\n        \"size\": 10,\n        \"share_type\": \"PER\",\n    })\naz = flexibleengine.get_availability_zones()\nexample_apig_instance = flexibleengine.ApigInstance(\"exampleApigInstance\",\n    edition=\"BASIC\",\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    security_group_id=example_secgroup.networking_secgroup_v2_id,\n    maintain_begin=\"06:00:00\",\n    description=\"Created by script\",\n    bandwidth_size=3,\n    eip_id=example_eip.vpc_eip_id,\n    available_zones=[\n        az.names[0],\n        az.names[1],\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceName = config.RequireObject<dynamic>(\"instanceName\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var exampleSecgroup = new Flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", new()\n    {\n        Description = \"My neutron security group\",\n    });\n\n    var exampleEip = new Flexibleengine.VpcEip(\"exampleEip\", new()\n    {\n        Publicip = new Flexibleengine.Inputs.VpcEipPublicipArgs\n        {\n            Type = \"5_bgp\",\n        },\n        Bandwidth = new Flexibleengine.Inputs.VpcEipBandwidthArgs\n        {\n            Name = \"test\",\n            Size = 10,\n            ShareType = \"PER\",\n        },\n    });\n\n    var az = Flexibleengine.GetAvailabilityZones.Invoke();\n\n    var exampleApigInstance = new Flexibleengine.ApigInstance(\"exampleApigInstance\", new()\n    {\n        Edition = \"BASIC\",\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        SecurityGroupId = exampleSecgroup.NetworkingSecgroupV2Id,\n        MaintainBegin = \"06:00:00\",\n        Description = \"Created by script\",\n        BandwidthSize = 3,\n        EipId = exampleEip.VpcEipId,\n        AvailableZones = new[]\n        {\n            az.Apply(getAvailabilityZonesResult => getAvailabilityZonesResult.Names[0]),\n            az.Apply(getAvailabilityZonesResult => getAvailabilityZonesResult.Names[1]),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceName := cfg.RequireObject(\"instanceName\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecgroup, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"exampleSecgroup\", &flexibleengine.NetworkingSecgroupV2Args{\n\t\t\tDescription: pulumi.String(\"My neutron security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEip, err := flexibleengine.NewVpcEip(ctx, \"exampleEip\", &flexibleengine.VpcEipArgs{\n\t\t\tPublicip: &flexibleengine.VpcEipPublicipArgs{\n\t\t\t\tType: pulumi.String(\"5_bgp\"),\n\t\t\t},\n\t\t\tBandwidth: &flexibleengine.VpcEipBandwidthArgs{\n\t\t\t\tName:      pulumi.String(\"test\"),\n\t\t\t\tSize:      pulumi.Float64(10),\n\t\t\t\tShareType: pulumi.String(\"PER\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taz, err := flexibleengine.GetAvailabilityZones(ctx, &flexibleengine.GetAvailabilityZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewApigInstance(ctx, \"exampleApigInstance\", &flexibleengine.ApigInstanceArgs{\n\t\t\tEdition:         pulumi.String(\"BASIC\"),\n\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\tSubnetId:        exampleSubnet.VpcSubnetV1Id,\n\t\t\tSecurityGroupId: exampleSecgroup.NetworkingSecgroupV2Id,\n\t\t\tMaintainBegin:   pulumi.String(\"06:00:00\"),\n\t\t\tDescription:     pulumi.String(\"Created by script\"),\n\t\t\tBandwidthSize:   pulumi.Float64(3),\n\t\t\tEipId:           exampleEip.VpcEipId,\n\t\t\tAvailableZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(az.Names[0]),\n\t\t\t\tpulumi.String(az.Names[1]),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2Args;\nimport com.pulumi.flexibleengine.VpcEip;\nimport com.pulumi.flexibleengine.VpcEipArgs;\nimport com.pulumi.flexibleengine.inputs.VpcEipPublicipArgs;\nimport com.pulumi.flexibleengine.inputs.VpcEipBandwidthArgs;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetAvailabilityZonesArgs;\nimport com.pulumi.flexibleengine.ApigInstance;\nimport com.pulumi.flexibleengine.ApigInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceName = config.get(\"instanceName\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var exampleSecgroup = new NetworkingSecgroupV2(\"exampleSecgroup\", NetworkingSecgroupV2Args.builder()\n            .description(\"My neutron security group\")\n            .build());\n\n        var exampleEip = new VpcEip(\"exampleEip\", VpcEipArgs.builder()\n            .publicip(VpcEipPublicipArgs.builder()\n                .type(\"5_bgp\")\n                .build())\n            .bandwidth(VpcEipBandwidthArgs.builder()\n                .name(\"test\")\n                .size(10)\n                .shareType(\"PER\")\n                .build())\n            .build());\n\n        final var az = FlexibleengineFunctions.getAvailabilityZones();\n\n        var exampleApigInstance = new ApigInstance(\"exampleApigInstance\", ApigInstanceArgs.builder()\n            .edition(\"BASIC\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .securityGroupId(exampleSecgroup.networkingSecgroupV2Id())\n            .maintainBegin(\"06:00:00\")\n            .description(\"Created by script\")\n            .bandwidthSize(3)\n            .eipId(exampleEip.vpcEipId())\n            .availableZones(            \n                az.applyValue(getAvailabilityZonesResult -> getAvailabilityZonesResult.names()[0]),\n                az.applyValue(getAvailabilityZonesResult -> getAvailabilityZonesResult.names()[1]))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceName:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  exampleSecgroup:\n    type: flexibleengine:NetworkingSecgroupV2\n    properties:\n      description: My neutron security group\n  exampleEip:\n    type: flexibleengine:VpcEip\n    properties:\n      publicip:\n        type: 5_bgp\n      bandwidth:\n        name: test\n        size: 10\n        shareType: PER\n  exampleApigInstance:\n    type: flexibleengine:ApigInstance\n    properties:\n      edition: BASIC\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      securityGroupId: ${exampleSecgroup.networkingSecgroupV2Id}\n      maintainBegin: 06:00:00\n      description: Created by script\n      bandwidthSize: 3\n      eipId: ${exampleEip.vpcEipId}\n      availableZones:\n        - ${az.names[0]}\n        - ${az.names[1]}\nvariables:\n  az:\n    fn::invoke:\n      function: flexibleengine:getAvailabilityZones\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPIG Dedicated Instances can be imported by their `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/apigInstance:ApigInstance test de379eed30aa4d31a84f426ea3c7ef4e\n```\n\n",
      "properties": {
        "apigInstanceId": {
          "type": "string",
          "description": "ID of the APIG dedicated instance.\n"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of available zone names for the APIG dedicated\ninstance. Changing this will create a new APIG dedicated instance resource.\n"
        },
        "availableZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "schema: Deprecated; The name list of availability zones for the dedicated instance.\n"
        },
        "bandwidthSize": {
          "type": "number",
          "description": "Specifies the egress bandwidth size of the APIG dedicated instance. The range of\nvalid value is from 1 to 2000.\n"
        },
        "createTime": {
          "type": "string",
          "description": "schema: Deprecated; Time when the dedicated instance is created.\n",
          "deprecationMessage": "Deprecated"
        },
        "createdAt": {
          "type": "string",
          "description": "Time when the dedicated instance is created, in RFC-3339 format.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description about the APIG dedicated instance. The description\ncontain a maximum of 255 characters and the angle brackets (< and >) are not allowed.\n"
        },
        "edition": {
          "type": "string",
          "description": "Specifies the edition of the APIG dedicated instance. The supported editions\nare as follows: BASIC, PROFESSIONAL, ENTERPRISE, PLATINUM. Changing this will create a new APIG dedicated instance\nresource.\n"
        },
        "egressAddress": {
          "type": "string",
          "description": "The egress (nat) public ip address.\n"
        },
        "eipId": {
          "type": "string",
          "description": "Specifies the eip ID associated with the APIG dedicated instance.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project ID to which the dedicated\ninstance belongs.\nThis parameter is required for enterprise users. Changing this will create a new resource.\n"
        },
        "ingressAddress": {
          "type": "string",
          "description": "The ingress eip address.\n"
        },
        "ipv6Enable": {
          "type": "boolean",
          "description": "Specifies whether public access with an IPv6 address is supported.  \nChanging this will create a new resource.\n"
        },
        "loadbalancerProvider": {
          "type": "string",
          "description": "Specifies the provider type of load balancer used by the\ndedicated instance.\nThe valid values are as follows:\n+ **lvs**: Linux virtual server.\n+ **elb**: Elastic load balance.\n\nChanging this will create a new resource.\n"
        },
        "maintainBegin": {
          "type": "string",
          "description": "Specifies a start time of the maintenance time window in the format 'xx:00:00'.\nThe value of xx can be 02, 06, 10, 14, 18 or 22.\n"
        },
        "maintainEnd": {
          "type": "string",
          "description": "End time of the maintenance time window, 4-hour difference between the start time and end time.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API dedicated instance. The API group name consists of 3 to 64\ncharacters, starting with a letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the APIG dedicated instance resource.\nIf omitted, the provider-level region will be used. Changing this will create a new APIG dedicated instance resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the ID of the security group to which the APIG dedicated instance\nbelongs to.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the APIG dedicated instance.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet used to create the APIG dedicated\ninstance. Changing this will create a new APIG dedicated instance resource.\n"
        },
        "supportedFeatures": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The supported features of the APIG dedicated instance.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FApigInstanceTimeouts:ApigInstanceTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC used to create the APIG dedicated instance.\nChanging this will create a new APIG dedicated instance resource.\n"
        },
        "vpcIngressAddress": {
          "type": "string",
          "description": "The ingress private ip address of vpc.\n"
        },
        "vpcepServiceAddress": {
          "type": "string",
          "description": "The address (full name) of the VPC endpoint service.\n"
        },
        "vpcepServiceName": {
          "type": "string",
          "description": "Name of the VPC endpoint service.\n"
        }
      },
      "type": "object",
      "required": [
        "apigInstanceId",
        "availabilityZones",
        "createTime",
        "createdAt",
        "edition",
        "egressAddress",
        "eipId",
        "enterpriseProjectId",
        "ingressAddress",
        "ipv6Enable",
        "loadbalancerProvider",
        "maintainBegin",
        "maintainEnd",
        "name",
        "region",
        "securityGroupId",
        "status",
        "subnetId",
        "supportedFeatures",
        "vpcId",
        "vpcIngressAddress",
        "vpcepServiceAddress",
        "vpcepServiceName"
      ],
      "inputProperties": {
        "apigInstanceId": {
          "type": "string",
          "description": "ID of the APIG dedicated instance.\n"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of available zone names for the APIG dedicated\ninstance. Changing this will create a new APIG dedicated instance resource.\n"
        },
        "availableZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "schema: Deprecated; The name list of availability zones for the dedicated instance.\n"
        },
        "bandwidthSize": {
          "type": "number",
          "description": "Specifies the egress bandwidth size of the APIG dedicated instance. The range of\nvalid value is from 1 to 2000.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description about the APIG dedicated instance. The description\ncontain a maximum of 255 characters and the angle brackets (< and >) are not allowed.\n"
        },
        "edition": {
          "type": "string",
          "description": "Specifies the edition of the APIG dedicated instance. The supported editions\nare as follows: BASIC, PROFESSIONAL, ENTERPRISE, PLATINUM. Changing this will create a new APIG dedicated instance\nresource.\n"
        },
        "eipId": {
          "type": "string",
          "description": "Specifies the eip ID associated with the APIG dedicated instance.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project ID to which the dedicated\ninstance belongs.\nThis parameter is required for enterprise users. Changing this will create a new resource.\n"
        },
        "ipv6Enable": {
          "type": "boolean",
          "description": "Specifies whether public access with an IPv6 address is supported.  \nChanging this will create a new resource.\n"
        },
        "loadbalancerProvider": {
          "type": "string",
          "description": "Specifies the provider type of load balancer used by the\ndedicated instance.\nThe valid values are as follows:\n+ **lvs**: Linux virtual server.\n+ **elb**: Elastic load balance.\n\nChanging this will create a new resource.\n"
        },
        "maintainBegin": {
          "type": "string",
          "description": "Specifies a start time of the maintenance time window in the format 'xx:00:00'.\nThe value of xx can be 02, 06, 10, 14, 18 or 22.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API dedicated instance. The API group name consists of 3 to 64\ncharacters, starting with a letter. Only letters, digits, and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the APIG dedicated instance resource.\nIf omitted, the provider-level region will be used. Changing this will create a new APIG dedicated instance resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the ID of the security group to which the APIG dedicated instance\nbelongs to.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet used to create the APIG dedicated\ninstance. Changing this will create a new APIG dedicated instance resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FApigInstanceTimeouts:ApigInstanceTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC used to create the APIG dedicated instance.\nChanging this will create a new APIG dedicated instance resource.\n"
        },
        "vpcepServiceName": {
          "type": "string",
          "description": "Name of the VPC endpoint service.\n"
        }
      },
      "requiredInputs": [
        "edition",
        "securityGroupId",
        "subnetId",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigInstance resources.\n",
        "properties": {
          "apigInstanceId": {
            "type": "string",
            "description": "ID of the APIG dedicated instance.\n"
          },
          "availabilityZones": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies an array of available zone names for the APIG dedicated\ninstance. Changing this will create a new APIG dedicated instance resource.\n"
          },
          "availableZones": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "schema: Deprecated; The name list of availability zones for the dedicated instance.\n"
          },
          "bandwidthSize": {
            "type": "number",
            "description": "Specifies the egress bandwidth size of the APIG dedicated instance. The range of\nvalid value is from 1 to 2000.\n"
          },
          "createTime": {
            "type": "string",
            "description": "schema: Deprecated; Time when the dedicated instance is created.\n",
            "deprecationMessage": "Deprecated"
          },
          "createdAt": {
            "type": "string",
            "description": "Time when the dedicated instance is created, in RFC-3339 format.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description about the APIG dedicated instance. The description\ncontain a maximum of 255 characters and the angle brackets (< and >) are not allowed.\n"
          },
          "edition": {
            "type": "string",
            "description": "Specifies the edition of the APIG dedicated instance. The supported editions\nare as follows: BASIC, PROFESSIONAL, ENTERPRISE, PLATINUM. Changing this will create a new APIG dedicated instance\nresource.\n"
          },
          "egressAddress": {
            "type": "string",
            "description": "The egress (nat) public ip address.\n"
          },
          "eipId": {
            "type": "string",
            "description": "Specifies the eip ID associated with the APIG dedicated instance.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project ID to which the dedicated\ninstance belongs.\nThis parameter is required for enterprise users. Changing this will create a new resource.\n"
          },
          "ingressAddress": {
            "type": "string",
            "description": "The ingress eip address.\n"
          },
          "ipv6Enable": {
            "type": "boolean",
            "description": "Specifies whether public access with an IPv6 address is supported.  \nChanging this will create a new resource.\n"
          },
          "loadbalancerProvider": {
            "type": "string",
            "description": "Specifies the provider type of load balancer used by the\ndedicated instance.\nThe valid values are as follows:\n+ **lvs**: Linux virtual server.\n+ **elb**: Elastic load balance.\n\nChanging this will create a new resource.\n"
          },
          "maintainBegin": {
            "type": "string",
            "description": "Specifies a start time of the maintenance time window in the format 'xx:00:00'.\nThe value of xx can be 02, 06, 10, 14, 18 or 22.\n"
          },
          "maintainEnd": {
            "type": "string",
            "description": "End time of the maintenance time window, 4-hour difference between the start time and end time.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the API dedicated instance. The API group name consists of 3 to 64\ncharacters, starting with a letter. Only letters, digits, and underscores (_) are allowed.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the APIG dedicated instance resource.\nIf omitted, the provider-level region will be used. Changing this will create a new APIG dedicated instance resource.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Specifies the ID of the security group to which the APIG dedicated instance\nbelongs to.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the APIG dedicated instance.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the ID of the VPC Subnet used to create the APIG dedicated\ninstance. Changing this will create a new APIG dedicated instance resource.\n"
          },
          "supportedFeatures": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The supported features of the APIG dedicated instance.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FApigInstanceTimeouts:ApigInstanceTimeouts"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of the VPC used to create the APIG dedicated instance.\nChanging this will create a new APIG dedicated instance resource.\n"
          },
          "vpcIngressAddress": {
            "type": "string",
            "description": "The ingress private ip address of vpc.\n"
          },
          "vpcepServiceAddress": {
            "type": "string",
            "description": "The address (full name) of the VPC endpoint service.\n"
          },
          "vpcepServiceName": {
            "type": "string",
            "description": "Name of the VPC endpoint service.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigInstanceRoutes:ApigInstanceRoutes": {
      "description": "Using this resource to manage the instance routes within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst test = new flexibleengine.ApigInstanceRoutes(\"test\", {\n    instanceId: instanceId,\n    nexthops: [\n        \"172.16.3.0/24\",\n        \"172.16.7.0/24\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = flexibleengine.ApigInstanceRoutes(\"test\",\n    instance_id=instance_id,\n    nexthops=[\n        \"172.16.3.0/24\",\n        \"172.16.7.0/24\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = new Flexibleengine.ApigInstanceRoutes(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Nexthops = new[]\n        {\n            \"172.16.3.0/24\",\n            \"172.16.7.0/24\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := flexibleengine.NewApigInstanceRoutes(ctx, \"test\", &flexibleengine.ApigInstanceRoutesArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tNexthops: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"172.16.3.0/24\"),\n\t\t\t\tpulumi.String(\"172.16.7.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigInstanceRoutes;\nimport com.pulumi.flexibleengine.ApigInstanceRoutesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var test = new ApigInstanceRoutes(\"test\", ApigInstanceRoutesArgs.builder()\n            .instanceId(instanceId)\n            .nexthops(            \n                \"172.16.3.0/24\",\n                \"172.16.7.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigInstanceRoutes\n    properties:\n      instanceId: ${instanceId}\n      nexthops:\n        - 172.16.3.0/24\n        - 172.16.7.0/24\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRoutes can be imported using their related dedicated instance ID (`instance_id`), e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/apigInstanceRoutes:ApigInstanceRoutes test 128001b3c5eb4d3e91a8da9c0f46420f\n```\n\n",
      "properties": {
        "apigInstanceRoutesId": {
          "type": "string",
          "description": "The resource ID (instance ID).\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the routes belong.\nChanging this will create a new resource.\n"
        },
        "nexthops": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the configuration of the next-hop routes.\n\n> The network segment of the next hop cannot overlap with the network segment of the APIG instance.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the dedicated instance and routes are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "apigInstanceRoutesId",
        "instanceId",
        "nexthops",
        "region"
      ],
      "inputProperties": {
        "apigInstanceRoutesId": {
          "type": "string",
          "description": "The resource ID (instance ID).\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the routes belong.\nChanging this will create a new resource.\n"
        },
        "nexthops": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the configuration of the next-hop routes.\n\n> The network segment of the next hop cannot overlap with the network segment of the APIG instance.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the dedicated instance and routes are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "instanceId",
        "nexthops"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigInstanceRoutes resources.\n",
        "properties": {
          "apigInstanceRoutesId": {
            "type": "string",
            "description": "The resource ID (instance ID).\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the dedicated instance to which the routes belong.\nChanging this will create a new resource.\n"
          },
          "nexthops": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the configuration of the next-hop routes.\n\n> The network segment of the next hop cannot overlap with the network segment of the APIG instance.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the dedicated instance and routes are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigResponse:ApigResponse": {
      "description": "Manages an APIG (API) custom response resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst groupId = config.requireObject(\"groupId\");\nconst responseName = config.requireObject(\"responseName\");\nconst test = new flexibleengine.ApigResponse(\"test\", {\n    instanceId: instanceId,\n    groupId: groupId,\n    rules: [{\n        errorType: \"AUTHORIZER_FAILURE\",\n        body: \"{\\\"code\\\":\\\"$context.authorizer.frontend.code\\\",\\\"message\\\":\\\"$context.authorizer.frontend.message\\\"}\",\n        statusCode: 401,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ngroup_id = config.require_object(\"groupId\")\nresponse_name = config.require_object(\"responseName\")\ntest = flexibleengine.ApigResponse(\"test\",\n    instance_id=instance_id,\n    group_id=group_id,\n    rules=[{\n        \"error_type\": \"AUTHORIZER_FAILURE\",\n        \"body\": \"{\\\"code\\\":\\\"$context.authorizer.frontend.code\\\",\\\"message\\\":\\\"$context.authorizer.frontend.message\\\"}\",\n        \"status_code\": 401,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var groupId = config.RequireObject<dynamic>(\"groupId\");\n    var responseName = config.RequireObject<dynamic>(\"responseName\");\n    var test = new Flexibleengine.ApigResponse(\"test\", new()\n    {\n        InstanceId = instanceId,\n        GroupId = groupId,\n        Rules = new[]\n        {\n            new Flexibleengine.Inputs.ApigResponseRuleArgs\n            {\n                ErrorType = \"AUTHORIZER_FAILURE\",\n                Body = \"{\\\"code\\\":\\\"$context.authorizer.frontend.code\\\",\\\"message\\\":\\\"$context.authorizer.frontend.message\\\"}\",\n                StatusCode = 401,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tgroupId := cfg.RequireObject(\"groupId\")\n\t\tresponseName := cfg.RequireObject(\"responseName\")\n\t\t_, err := flexibleengine.NewApigResponse(ctx, \"test\", &flexibleengine.ApigResponseArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tGroupId:    pulumi.Any(groupId),\n\t\t\tRules: flexibleengine.ApigResponseRuleArray{\n\t\t\t\t&flexibleengine.ApigResponseRuleArgs{\n\t\t\t\t\tErrorType:  pulumi.String(\"AUTHORIZER_FAILURE\"),\n\t\t\t\t\tBody:       pulumi.String(\"{\\\"code\\\":\\\"$context.authorizer.frontend.code\\\",\\\"message\\\":\\\"$context.authorizer.frontend.message\\\"}\"),\n\t\t\t\t\tStatusCode: pulumi.Float64(401),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigResponse;\nimport com.pulumi.flexibleengine.ApigResponseArgs;\nimport com.pulumi.flexibleengine.inputs.ApigResponseRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var groupId = config.get(\"groupId\");\n        final var responseName = config.get(\"responseName\");\n        var test = new ApigResponse(\"test\", ApigResponseArgs.builder()\n            .instanceId(instanceId)\n            .groupId(groupId)\n            .rules(ApigResponseRuleArgs.builder()\n                .errorType(\"AUTHORIZER_FAILURE\")\n                .body(\"{\\\"code\\\":\\\"$context.authorizer.frontend.code\\\",\\\"message\\\":\\\"$context.authorizer.frontend.message\\\"}\")\n                .statusCode(401)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  groupId:\n    type: dynamic\n  responseName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigResponse\n    properties:\n      instanceId: ${instanceId}\n      groupId: ${groupId}\n      rules:\n        - errorType: AUTHORIZER_FAILURE\n          body: '{\"code\":\"$context.authorizer.frontend.code\",\"message\":\"$context.authorizer.frontend.message\"}'\n          statusCode: 401\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPI Responses can be imported using the ID of the APIG dedicated instances and API groups to which the API\n\nresponse belongs and API Response `name`, separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/apigResponse:ApigResponse test <instance_id>/<group_id>/<name>\n```\n\n",
      "properties": {
        "apigResponseId": {
          "type": "string",
          "description": "ID of the API custom response.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The creation time of the API custom response.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the ID of the API group to which the API response belongs to.\nChanging this will create a new API custom response resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the APIG dedicated instance to which the API group\nwhere the API custom response belongs. Changing this will create a new API custom response resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API custom response. The name consists of 1 to 64 characters,\nand only letters, digits, hyphens(-), and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the API custom response resource. If\nomitted, the provider-level region will be used. Changing this will create a new API custom response resource.\n"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigResponseRule:ApigResponseRule"
          },
          "description": "Specifies the API custom response rules definition. The object structure is documented\nbelow.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The latest update time of the API custom response.\n"
        }
      },
      "type": "object",
      "required": [
        "apigResponseId",
        "createdAt",
        "groupId",
        "instanceId",
        "name",
        "region",
        "updatedAt"
      ],
      "inputProperties": {
        "apigResponseId": {
          "type": "string",
          "description": "ID of the API custom response.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the ID of the API group to which the API response belongs to.\nChanging this will create a new API custom response resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the APIG dedicated instance to which the API group\nwhere the API custom response belongs. Changing this will create a new API custom response resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API custom response. The name consists of 1 to 64 characters,\nand only letters, digits, hyphens(-), and underscores (_) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the API custom response resource. If\nomitted, the provider-level region will be used. Changing this will create a new API custom response resource.\n"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigResponseRule:ApigResponseRule"
          },
          "description": "Specifies the API custom response rules definition. The object structure is documented\nbelow.\n"
        }
      },
      "requiredInputs": [
        "groupId",
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigResponse resources.\n",
        "properties": {
          "apigResponseId": {
            "type": "string",
            "description": "ID of the API custom response.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The creation time of the API custom response.\n"
          },
          "groupId": {
            "type": "string",
            "description": "Specifies the ID of the API group to which the API response belongs to.\nChanging this will create a new API custom response resource.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the APIG dedicated instance to which the API group\nwhere the API custom response belongs. Changing this will create a new API custom response resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the API custom response. The name consists of 1 to 64 characters,\nand only letters, digits, hyphens(-), and underscores (_) are allowed.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the API custom response resource. If\nomitted, the provider-level region will be used. Changing this will create a new API custom response resource.\n"
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigResponseRule:ApigResponseRule"
            },
            "description": "Specifies the API custom response rules definition. The object structure is documented\nbelow.\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "The latest update time of the API custom response.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigSignature:ApigSignature": {
      "description": "Manages a signature resource within FlexibleEngine.\n\n## Example Usage\n\n### Create a signature of the HMAC type\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst signatureName = config.requireObject(\"signatureName\");\nconst signatureKey = config.requireObject(\"signatureKey\");\nconst signatureSecret = config.requireObject(\"signatureSecret\");\nconst test = new flexibleengine.ApigSignature(\"test\", {\n    instanceId: instanceId,\n    type: \"hmac\",\n    key: signatureKey,\n    secret: signatureSecret,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nsignature_name = config.require_object(\"signatureName\")\nsignature_key = config.require_object(\"signatureKey\")\nsignature_secret = config.require_object(\"signatureSecret\")\ntest = flexibleengine.ApigSignature(\"test\",\n    instance_id=instance_id,\n    type=\"hmac\",\n    key=signature_key,\n    secret=signature_secret)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var signatureName = config.RequireObject<dynamic>(\"signatureName\");\n    var signatureKey = config.RequireObject<dynamic>(\"signatureKey\");\n    var signatureSecret = config.RequireObject<dynamic>(\"signatureSecret\");\n    var test = new Flexibleengine.ApigSignature(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Type = \"hmac\",\n        Key = signatureKey,\n        Secret = signatureSecret,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tsignatureName := cfg.RequireObject(\"signatureName\")\n\t\tsignatureKey := cfg.RequireObject(\"signatureKey\")\n\t\tsignatureSecret := cfg.RequireObject(\"signatureSecret\")\n\t\t_, err := flexibleengine.NewApigSignature(ctx, \"test\", &flexibleengine.ApigSignatureArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tType:       pulumi.String(\"hmac\"),\n\t\t\tKey:        pulumi.Any(signatureKey),\n\t\t\tSecret:     pulumi.Any(signatureSecret),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigSignature;\nimport com.pulumi.flexibleengine.ApigSignatureArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var signatureName = config.get(\"signatureName\");\n        final var signatureKey = config.get(\"signatureKey\");\n        final var signatureSecret = config.get(\"signatureSecret\");\n        var test = new ApigSignature(\"test\", ApigSignatureArgs.builder()\n            .instanceId(instanceId)\n            .type(\"hmac\")\n            .key(signatureKey)\n            .secret(signatureSecret)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  signatureName:\n    type: dynamic\n  signatureKey:\n    type: dynamic\n  signatureSecret:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigSignature\n    properties:\n      instanceId: ${instanceId}\n      type: hmac\n      key: ${signatureKey}\n      secret: ${signatureSecret}\n```\n<!--End PulumiCodeChooser -->\n\n### Create a signature and automatically generate key and secret\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst signatureName = config.requireObject(\"signatureName\");\nconst test = new flexibleengine.ApigSignature(\"test\", {\n    instanceId: instanceId,\n    type: \"hmac\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nsignature_name = config.require_object(\"signatureName\")\ntest = flexibleengine.ApigSignature(\"test\",\n    instance_id=instance_id,\n    type=\"hmac\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var signatureName = config.RequireObject<dynamic>(\"signatureName\");\n    var test = new Flexibleengine.ApigSignature(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Type = \"hmac\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tsignatureName := cfg.RequireObject(\"signatureName\")\n\t\t_, err := flexibleengine.NewApigSignature(ctx, \"test\", &flexibleengine.ApigSignatureArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tType:       pulumi.String(\"hmac\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigSignature;\nimport com.pulumi.flexibleengine.ApigSignatureArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var signatureName = config.get(\"signatureName\");\n        var test = new ApigSignature(\"test\", ApigSignatureArgs.builder()\n            .instanceId(instanceId)\n            .type(\"hmac\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  signatureName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigSignature\n    properties:\n      instanceId: ${instanceId}\n      type: hmac\n```\n<!--End PulumiCodeChooser -->\n\n### Create a signature of the AES type\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst signatureName = config.requireObject(\"signatureName\");\nconst signatureKey = config.requireObject(\"signatureKey\");\nconst signatureSecret = config.requireObject(\"signatureSecret\");\nconst test = new flexibleengine.ApigSignature(\"test\", {\n    instanceId: instanceId,\n    type: \"aes\",\n    algorithm: \"aes-128-cfb\",\n    key: signatureKey,\n    secret: signatureSecret,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nsignature_name = config.require_object(\"signatureName\")\nsignature_key = config.require_object(\"signatureKey\")\nsignature_secret = config.require_object(\"signatureSecret\")\ntest = flexibleengine.ApigSignature(\"test\",\n    instance_id=instance_id,\n    type=\"aes\",\n    algorithm=\"aes-128-cfb\",\n    key=signature_key,\n    secret=signature_secret)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var signatureName = config.RequireObject<dynamic>(\"signatureName\");\n    var signatureKey = config.RequireObject<dynamic>(\"signatureKey\");\n    var signatureSecret = config.RequireObject<dynamic>(\"signatureSecret\");\n    var test = new Flexibleengine.ApigSignature(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Type = \"aes\",\n        Algorithm = \"aes-128-cfb\",\n        Key = signatureKey,\n        Secret = signatureSecret,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tsignatureName := cfg.RequireObject(\"signatureName\")\n\t\tsignatureKey := cfg.RequireObject(\"signatureKey\")\n\t\tsignatureSecret := cfg.RequireObject(\"signatureSecret\")\n\t\t_, err := flexibleengine.NewApigSignature(ctx, \"test\", &flexibleengine.ApigSignatureArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tType:       pulumi.String(\"aes\"),\n\t\t\tAlgorithm:  pulumi.String(\"aes-128-cfb\"),\n\t\t\tKey:        pulumi.Any(signatureKey),\n\t\t\tSecret:     pulumi.Any(signatureSecret),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigSignature;\nimport com.pulumi.flexibleengine.ApigSignatureArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var signatureName = config.get(\"signatureName\");\n        final var signatureKey = config.get(\"signatureKey\");\n        final var signatureSecret = config.get(\"signatureSecret\");\n        var test = new ApigSignature(\"test\", ApigSignatureArgs.builder()\n            .instanceId(instanceId)\n            .type(\"aes\")\n            .algorithm(\"aes-128-cfb\")\n            .key(signatureKey)\n            .secret(signatureSecret)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  signatureName:\n    type: dynamic\n  signatureKey:\n    type: dynamic\n  signatureSecret:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigSignature\n    properties:\n      instanceId: ${instanceId}\n      type: aes\n      algorithm: aes-128-cfb\n      key: ${signatureKey}\n      secret: ${signatureSecret}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSignatures can be imported using their `id` and related dedicated instance ID, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/apigSignature:ApigSignature test <instance_id>/<id>\n```\n\n",
      "properties": {
        "algorithm": {
          "type": "string",
          "description": "Specifies the signature algorithm.  \nThis parameter is required and only available when signature `type` is `aes`.\nThe valid values are as follows:\n+ **aes-128-cfb**\n+ **aes-256-cfb**\n\nChanging this will create a new resource.\n"
        },
        "apigSignatureId": {
          "type": "string",
          "description": "The ID of the signature.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The creation time of the signature.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the signature\nbelongs.\nChanging this will create a new resource.\n"
        },
        "key": {
          "type": "string",
          "description": "Specifies the signature key.  \n+ For `basic` type: The value contains `4` to `32` characters, including letters, digits, underscores (_) and\nhyphens (-). It must start with a letter.\n+ For `hmac` type: The value contains `8` to `32` characters, including letters, digits, underscores (_) and\nhyphens (-). It must start with a letter or digit.\n+ For `aes` type: The value contains `16` characters if the `aes-128-cfb` algorithm is used, or `32` characters if the\n`aes-256-cfb` algorithm is used. Only letters, digits, and special characters (`_-!@#$%+/=`) are allowed.\nIt must start with a letter, digit, plus sign (+), or slash (/).\n\nIf not specified, the key will automatically generated. The auto-generation is only supported on first creation.\nChanging this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the signature name.  \nThe valid length is limited from `3` to `64`, only English letters, Chinese characters, digits and underscores (_) are\nallowed. The name must start with an English letter or Chinese character.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the signature is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "secret": {
          "type": "string",
          "description": "Specifies the signature secret.  \nIf not specified, the secret will automatically generated. The auto-generation is only supported on first creation.\nChanging this will create a new resource.\n",
          "secret": true
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of signature.  \nThe valid values are as follows:\n+ **basic**: Basic auth type.\n+ **hmac**: HMAC type.\n+ **aes**: AES type\n\nChanging this will create a new resource.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The latest update time of the signature.\n"
        }
      },
      "type": "object",
      "required": [
        "algorithm",
        "apigSignatureId",
        "createdAt",
        "instanceId",
        "key",
        "name",
        "region",
        "secret",
        "type",
        "updatedAt"
      ],
      "inputProperties": {
        "algorithm": {
          "type": "string",
          "description": "Specifies the signature algorithm.  \nThis parameter is required and only available when signature `type` is `aes`.\nThe valid values are as follows:\n+ **aes-128-cfb**\n+ **aes-256-cfb**\n\nChanging this will create a new resource.\n"
        },
        "apigSignatureId": {
          "type": "string",
          "description": "The ID of the signature.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the signature\nbelongs.\nChanging this will create a new resource.\n"
        },
        "key": {
          "type": "string",
          "description": "Specifies the signature key.  \n+ For `basic` type: The value contains `4` to `32` characters, including letters, digits, underscores (_) and\nhyphens (-). It must start with a letter.\n+ For `hmac` type: The value contains `8` to `32` characters, including letters, digits, underscores (_) and\nhyphens (-). It must start with a letter or digit.\n+ For `aes` type: The value contains `16` characters if the `aes-128-cfb` algorithm is used, or `32` characters if the\n`aes-256-cfb` algorithm is used. Only letters, digits, and special characters (`_-!@#$%+/=`) are allowed.\nIt must start with a letter, digit, plus sign (+), or slash (/).\n\nIf not specified, the key will automatically generated. The auto-generation is only supported on first creation.\nChanging this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the signature name.  \nThe valid length is limited from `3` to `64`, only English letters, Chinese characters, digits and underscores (_) are\nallowed. The name must start with an English letter or Chinese character.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the signature is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "secret": {
          "type": "string",
          "description": "Specifies the signature secret.  \nIf not specified, the secret will automatically generated. The auto-generation is only supported on first creation.\nChanging this will create a new resource.\n",
          "secret": true
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of signature.  \nThe valid values are as follows:\n+ **basic**: Basic auth type.\n+ **hmac**: HMAC type.\n+ **aes**: AES type\n\nChanging this will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "instanceId",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigSignature resources.\n",
        "properties": {
          "algorithm": {
            "type": "string",
            "description": "Specifies the signature algorithm.  \nThis parameter is required and only available when signature `type` is `aes`.\nThe valid values are as follows:\n+ **aes-128-cfb**\n+ **aes-256-cfb**\n\nChanging this will create a new resource.\n"
          },
          "apigSignatureId": {
            "type": "string",
            "description": "The ID of the signature.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The creation time of the signature.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the dedicated instance to which the signature\nbelongs.\nChanging this will create a new resource.\n"
          },
          "key": {
            "type": "string",
            "description": "Specifies the signature key.  \n+ For `basic` type: The value contains `4` to `32` characters, including letters, digits, underscores (_) and\nhyphens (-). It must start with a letter.\n+ For `hmac` type: The value contains `8` to `32` characters, including letters, digits, underscores (_) and\nhyphens (-). It must start with a letter or digit.\n+ For `aes` type: The value contains `16` characters if the `aes-128-cfb` algorithm is used, or `32` characters if the\n`aes-256-cfb` algorithm is used. Only letters, digits, and special characters (`_-!@#$%+/=`) are allowed.\nIt must start with a letter, digit, plus sign (+), or slash (/).\n\nIf not specified, the key will automatically generated. The auto-generation is only supported on first creation.\nChanging this will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the signature name.  \nThe valid length is limited from `3` to `64`, only English letters, Chinese characters, digits and underscores (_) are\nallowed. The name must start with an English letter or Chinese character.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the signature is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          },
          "secret": {
            "type": "string",
            "description": "Specifies the signature secret.  \nIf not specified, the secret will automatically generated. The auto-generation is only supported on first creation.\nChanging this will create a new resource.\n",
            "secret": true
          },
          "type": {
            "type": "string",
            "description": "Specifies the type of signature.  \nThe valid values are as follows:\n+ **basic**: Basic auth type.\n+ **hmac**: HMAC type.\n+ **aes**: AES type\n\nChanging this will create a new resource.\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "The latest update time of the signature.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigSignatureAssociate:ApigSignatureAssociate": {
      "description": "Use this resource to bind the APIs to the signature within FlexibleEngine.\n\n> A signature can only create one `flexibleengine.ApigSignatureAssociate` resource.\n   And a published ID for API can only bind a signature.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst signatureId = config.requireObject(\"signatureId\");\nconst apiPublishIds = config.requireObject<Array<string>>(\"apiPublishIds\");\nconst test = new flexibleengine.ApigSignatureAssociate(\"test\", {\n    instanceId: instanceId,\n    signatureId: signatureId,\n    publishIds: apiPublishIds,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nsignature_id = config.require_object(\"signatureId\")\napi_publish_ids = config.require_object(\"apiPublishIds\")\ntest = flexibleengine.ApigSignatureAssociate(\"test\",\n    instance_id=instance_id,\n    signature_id=signature_id,\n    publish_ids=api_publish_ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var signatureId = config.RequireObject<dynamic>(\"signatureId\");\n    var apiPublishIds = config.RequireObject<string[]>(\"apiPublishIds\");\n    var test = new Flexibleengine.ApigSignatureAssociate(\"test\", new()\n    {\n        InstanceId = instanceId,\n        SignatureId = signatureId,\n        PublishIds = apiPublishIds,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tsignatureId := cfg.RequireObject(\"signatureId\")\n\t\tapiPublishIds := cfg.Require(\"apiPublishIds\")\n\t\t_, err := flexibleengine.NewApigSignatureAssociate(ctx, \"test\", &flexibleengine.ApigSignatureAssociateArgs{\n\t\t\tInstanceId:  pulumi.Any(instanceId),\n\t\t\tSignatureId: pulumi.Any(signatureId),\n\t\t\tPublishIds:  apiPublishIds,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigSignatureAssociate;\nimport com.pulumi.flexibleengine.ApigSignatureAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var signatureId = config.get(\"signatureId\");\n        final var apiPublishIds = config.get(\"apiPublishIds\");\n        var test = new ApigSignatureAssociate(\"test\", ApigSignatureAssociateArgs.builder()\n            .instanceId(instanceId)\n            .signatureId(signatureId)\n            .publishIds(apiPublishIds)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  signatureId:\n    type: dynamic\n  apiPublishIds:\n    type: list(string)\nresources:\n  test:\n    type: flexibleengine:ApigSignatureAssociate\n    properties:\n      instanceId: ${instanceId}\n      signatureId: ${signatureId}\n      publishIds: ${apiPublishIds}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAssociate resources can be imported using their `signature_id` and the APIG dedicated instance ID to which the signature\n\nbelongs, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/apigSignatureAssociate:ApigSignatureAssociate test <instance_id>/<signature_id>\n```\n\n",
      "properties": {
        "apigSignatureAssociateId": {
          "type": "string",
          "description": "Resource ID. The format is `<instance_id>/<signature_id>`.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the APIs and the\nsignature belong.\nChanging this will create a new resource.\n"
        },
        "publishIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the publish IDs corresponding to the APIs bound by the signature.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the signature and the APIs are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "signatureId": {
          "type": "string",
          "description": "Specifies the signature ID for APIs binding.  \nChanging this will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FApigSignatureAssociateTimeouts:ApigSignatureAssociateTimeouts"
        }
      },
      "type": "object",
      "required": [
        "apigSignatureAssociateId",
        "instanceId",
        "publishIds",
        "region",
        "signatureId"
      ],
      "inputProperties": {
        "apigSignatureAssociateId": {
          "type": "string",
          "description": "Resource ID. The format is `<instance_id>/<signature_id>`.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated instance to which the APIs and the\nsignature belong.\nChanging this will create a new resource.\n"
        },
        "publishIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the publish IDs corresponding to the APIs bound by the signature.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the signature and the APIs are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "signatureId": {
          "type": "string",
          "description": "Specifies the signature ID for APIs binding.  \nChanging this will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FApigSignatureAssociateTimeouts:ApigSignatureAssociateTimeouts"
        }
      },
      "requiredInputs": [
        "instanceId",
        "publishIds",
        "signatureId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigSignatureAssociate resources.\n",
        "properties": {
          "apigSignatureAssociateId": {
            "type": "string",
            "description": "Resource ID. The format is `<instance_id>/<signature_id>`.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the dedicated instance to which the APIs and the\nsignature belong.\nChanging this will create a new resource.\n"
          },
          "publishIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the publish IDs corresponding to the APIs bound by the signature.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the signature and the APIs are located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          },
          "signatureId": {
            "type": "string",
            "description": "Specifies the signature ID for APIs binding.  \nChanging this will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FApigSignatureAssociateTimeouts:ApigSignatureAssociateTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigThrottlingPolicy:ApigThrottlingPolicy": {
      "description": "Manages an APIG (API) throttling policy resource within FlexibleEngine.\n\n## Example Usage\n\n### Create a basic throttling policy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst policyName = config.requireObject(\"policyName\");\nconst description = config.requireObject(\"description\");\nconst test = new flexibleengine.ApigThrottlingPolicy(\"test\", {\n    instanceId: instanceId,\n    description: description,\n    type: \"API-based\",\n    period: 10,\n    periodUnit: \"MINUTE\",\n    maxApiRequests: 70,\n    maxUserRequests: 45,\n    maxAppRequests: 45,\n    maxIpRequests: 45,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\npolicy_name = config.require_object(\"policyName\")\ndescription = config.require_object(\"description\")\ntest = flexibleengine.ApigThrottlingPolicy(\"test\",\n    instance_id=instance_id,\n    description=description,\n    type=\"API-based\",\n    period=10,\n    period_unit=\"MINUTE\",\n    max_api_requests=70,\n    max_user_requests=45,\n    max_app_requests=45,\n    max_ip_requests=45)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var policyName = config.RequireObject<dynamic>(\"policyName\");\n    var description = config.RequireObject<dynamic>(\"description\");\n    var test = new Flexibleengine.ApigThrottlingPolicy(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Description = description,\n        Type = \"API-based\",\n        Period = 10,\n        PeriodUnit = \"MINUTE\",\n        MaxApiRequests = 70,\n        MaxUserRequests = 45,\n        MaxAppRequests = 45,\n        MaxIpRequests = 45,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tpolicyName := cfg.RequireObject(\"policyName\")\n\t\tdescription := cfg.RequireObject(\"description\")\n\t\t_, err := flexibleengine.NewApigThrottlingPolicy(ctx, \"test\", &flexibleengine.ApigThrottlingPolicyArgs{\n\t\t\tInstanceId:      pulumi.Any(instanceId),\n\t\t\tDescription:     pulumi.Any(description),\n\t\t\tType:            pulumi.String(\"API-based\"),\n\t\t\tPeriod:          pulumi.Float64(10),\n\t\t\tPeriodUnit:      pulumi.String(\"MINUTE\"),\n\t\t\tMaxApiRequests:  pulumi.Float64(70),\n\t\t\tMaxUserRequests: pulumi.Float64(45),\n\t\t\tMaxAppRequests:  pulumi.Float64(45),\n\t\t\tMaxIpRequests:   pulumi.Float64(45),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigThrottlingPolicy;\nimport com.pulumi.flexibleengine.ApigThrottlingPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var policyName = config.get(\"policyName\");\n        final var description = config.get(\"description\");\n        var test = new ApigThrottlingPolicy(\"test\", ApigThrottlingPolicyArgs.builder()\n            .instanceId(instanceId)\n            .description(description)\n            .type(\"API-based\")\n            .period(10)\n            .periodUnit(\"MINUTE\")\n            .maxApiRequests(70)\n            .maxUserRequests(45)\n            .maxAppRequests(45)\n            .maxIpRequests(45)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  policyName:\n    type: dynamic\n  description:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigThrottlingPolicy\n    properties:\n      instanceId: ${instanceId}\n      description: ${description}\n      type: API-based\n      period: 10\n      periodUnit: MINUTE\n      maxApiRequests: 70\n      maxUserRequests: 45\n      maxAppRequests: 45\n      maxIpRequests: 45\n```\n<!--End PulumiCodeChooser -->\n\n### Create a throttling policy with a special throttle\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst policyName = config.requireObject(\"policyName\");\nconst description = config.requireObject(\"description\");\nconst applicationId = config.requireObject(\"applicationId\");\nconst test = new flexibleengine.ApigThrottlingPolicy(\"test\", {\n    instanceId: instanceId,\n    description: description,\n    type: \"API-based\",\n    period: 10,\n    periodUnit: \"MINUTE\",\n    maxApiRequests: 70,\n    maxUserRequests: 45,\n    maxAppRequests: 45,\n    maxIpRequests: 45,\n    appThrottles: [{\n        maxApiRequests: 40,\n        throttlingObjectId: applicationId,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\npolicy_name = config.require_object(\"policyName\")\ndescription = config.require_object(\"description\")\napplication_id = config.require_object(\"applicationId\")\ntest = flexibleengine.ApigThrottlingPolicy(\"test\",\n    instance_id=instance_id,\n    description=description,\n    type=\"API-based\",\n    period=10,\n    period_unit=\"MINUTE\",\n    max_api_requests=70,\n    max_user_requests=45,\n    max_app_requests=45,\n    max_ip_requests=45,\n    app_throttles=[{\n        \"max_api_requests\": 40,\n        \"throttling_object_id\": application_id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var policyName = config.RequireObject<dynamic>(\"policyName\");\n    var description = config.RequireObject<dynamic>(\"description\");\n    var applicationId = config.RequireObject<dynamic>(\"applicationId\");\n    var test = new Flexibleengine.ApigThrottlingPolicy(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Description = description,\n        Type = \"API-based\",\n        Period = 10,\n        PeriodUnit = \"MINUTE\",\n        MaxApiRequests = 70,\n        MaxUserRequests = 45,\n        MaxAppRequests = 45,\n        MaxIpRequests = 45,\n        AppThrottles = new[]\n        {\n            new Flexibleengine.Inputs.ApigThrottlingPolicyAppThrottleArgs\n            {\n                MaxApiRequests = 40,\n                ThrottlingObjectId = applicationId,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tpolicyName := cfg.RequireObject(\"policyName\")\n\t\tdescription := cfg.RequireObject(\"description\")\n\t\tapplicationId := cfg.RequireObject(\"applicationId\")\n\t\t_, err := flexibleengine.NewApigThrottlingPolicy(ctx, \"test\", &flexibleengine.ApigThrottlingPolicyArgs{\n\t\t\tInstanceId:      pulumi.Any(instanceId),\n\t\t\tDescription:     pulumi.Any(description),\n\t\t\tType:            pulumi.String(\"API-based\"),\n\t\t\tPeriod:          pulumi.Float64(10),\n\t\t\tPeriodUnit:      pulumi.String(\"MINUTE\"),\n\t\t\tMaxApiRequests:  pulumi.Float64(70),\n\t\t\tMaxUserRequests: pulumi.Float64(45),\n\t\t\tMaxAppRequests:  pulumi.Float64(45),\n\t\t\tMaxIpRequests:   pulumi.Float64(45),\n\t\t\tAppThrottles: flexibleengine.ApigThrottlingPolicyAppThrottleArray{\n\t\t\t\t&flexibleengine.ApigThrottlingPolicyAppThrottleArgs{\n\t\t\t\t\tMaxApiRequests:     pulumi.Float64(40),\n\t\t\t\t\tThrottlingObjectId: pulumi.Any(applicationId),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigThrottlingPolicy;\nimport com.pulumi.flexibleengine.ApigThrottlingPolicyArgs;\nimport com.pulumi.flexibleengine.inputs.ApigThrottlingPolicyAppThrottleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var policyName = config.get(\"policyName\");\n        final var description = config.get(\"description\");\n        final var applicationId = config.get(\"applicationId\");\n        var test = new ApigThrottlingPolicy(\"test\", ApigThrottlingPolicyArgs.builder()\n            .instanceId(instanceId)\n            .description(description)\n            .type(\"API-based\")\n            .period(10)\n            .periodUnit(\"MINUTE\")\n            .maxApiRequests(70)\n            .maxUserRequests(45)\n            .maxAppRequests(45)\n            .maxIpRequests(45)\n            .appThrottles(ApigThrottlingPolicyAppThrottleArgs.builder()\n                .maxApiRequests(40)\n                .throttlingObjectId(applicationId)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  policyName:\n    type: dynamic\n  description:\n    type: dynamic\n  applicationId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigThrottlingPolicy\n    properties:\n      instanceId: ${instanceId}\n      description: ${description}\n      type: API-based\n      period: 10\n      periodUnit: MINUTE\n      maxApiRequests: 70\n      maxUserRequests: 45\n      maxAppRequests: 45\n      maxIpRequests: 45\n      appThrottles:\n        - maxApiRequests: 40\n          throttlingObjectId: ${applicationId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPI Throttling Policies of APIG can be imported using the ID of the APIG instances to which the\n\nenvironment belongs and `name`, separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/apigThrottlingPolicy:ApigThrottlingPolicy test <instance_id>/<name>\n```\n\n",
      "properties": {
        "apigThrottlingPolicyId": {
          "type": "string",
          "description": "ID of the special application throttling policy.\n"
        },
        "appThrottles": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigThrottlingPolicyAppThrottle:ApigThrottlingPolicyAppThrottle"
          },
          "description": "Specifies an array of one or more special throttling policies for APP limit.\nThe `throttle` object of the `app_throttles` structure is documented below.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The creation time of the throttling policy.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description about the API throttling policy.\nThe description contain a maximum of 255 characters and the angle brackets (< and >) are not allowed.\nChinese characters must be in UTF-8 or Unicode format.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the API\nthrottling policy belongs to. Changing this will create a new API throttling policy resource.\n"
        },
        "maxApiRequests": {
          "type": "number",
          "description": "Specifies the maximum number of times an API can be accessed within a specified\nperiod. The value of this parameter cannot exceed the default limit 200 TPS.\n"
        },
        "maxAppRequests": {
          "type": "number",
          "description": "Specifies the maximum number of times the API can be accessed by an app within\nthe same period. The value of this parameter must be less than or equal to the value of `max_user_requests`.\n"
        },
        "maxIpRequests": {
          "type": "number",
          "description": "Specifies the maximum number of times the API can be accessed by an IP address\nwithin the same period. The value of this parameter must be less than or equal to the value of `max_api_requests`.\n"
        },
        "maxUserRequests": {
          "type": "number",
          "description": "Specifies the maximum number of times the API can be accessed by a user within\nthe same period. The value of this parameter must be less than or equal to the value of `max_api_requests`.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API throttling policy.\nThe policy name consists of 3 to 64 characters, starting with a letter.\nOnly letters, digits and underscores (_) are allowed.\n"
        },
        "period": {
          "type": "number",
          "description": "Specifies the period of time for limiting the number of API calls.\nThis parameter applies with each of the API call limits: `max_api_requests`, `max_app_requests`, `max_ip_requests`\nand `max_user_requests`.\n"
        },
        "periodUnit": {
          "type": "string",
          "description": "Specifies the time unit for limiting the number of API calls.\nThe valid values are *SECOND*, *MINUTE*, *HOUR* and *DAY*, default to *MINUTE*.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the API throttling policy resource.\nIf omitted, the provider-level region will be used. Changing this will create a new API throttling policy resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the request throttling policy.\nThe valid values are as follows:\n+ API-based: limiting the maximum number of times a single API bound to the policy can be called within the\nspecified period.\n+ API-shared: limiting the maximum number of times all APIs bound to the policy can be called within the specified\nperiod.\n"
        },
        "userThrottles": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigThrottlingPolicyUserThrottle:ApigThrottlingPolicyUserThrottle"
          },
          "description": "Specifies an array of one or more special throttling policies for IAM user limit.\nThe `throttle` object of the `user_throttles` structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "apigThrottlingPolicyId",
        "createdAt",
        "instanceId",
        "maxApiRequests",
        "name",
        "period",
        "region"
      ],
      "inputProperties": {
        "apigThrottlingPolicyId": {
          "type": "string",
          "description": "ID of the special application throttling policy.\n"
        },
        "appThrottles": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigThrottlingPolicyAppThrottle:ApigThrottlingPolicyAppThrottle"
          },
          "description": "Specifies an array of one or more special throttling policies for APP limit.\nThe `throttle` object of the `app_throttles` structure is documented below.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description about the API throttling policy.\nThe description contain a maximum of 255 characters and the angle brackets (< and >) are not allowed.\nChinese characters must be in UTF-8 or Unicode format.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the API\nthrottling policy belongs to. Changing this will create a new API throttling policy resource.\n"
        },
        "maxApiRequests": {
          "type": "number",
          "description": "Specifies the maximum number of times an API can be accessed within a specified\nperiod. The value of this parameter cannot exceed the default limit 200 TPS.\n"
        },
        "maxAppRequests": {
          "type": "number",
          "description": "Specifies the maximum number of times the API can be accessed by an app within\nthe same period. The value of this parameter must be less than or equal to the value of `max_user_requests`.\n"
        },
        "maxIpRequests": {
          "type": "number",
          "description": "Specifies the maximum number of times the API can be accessed by an IP address\nwithin the same period. The value of this parameter must be less than or equal to the value of `max_api_requests`.\n"
        },
        "maxUserRequests": {
          "type": "number",
          "description": "Specifies the maximum number of times the API can be accessed by a user within\nthe same period. The value of this parameter must be less than or equal to the value of `max_api_requests`.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the API throttling policy.\nThe policy name consists of 3 to 64 characters, starting with a letter.\nOnly letters, digits and underscores (_) are allowed.\n"
        },
        "period": {
          "type": "number",
          "description": "Specifies the period of time for limiting the number of API calls.\nThis parameter applies with each of the API call limits: `max_api_requests`, `max_app_requests`, `max_ip_requests`\nand `max_user_requests`.\n"
        },
        "periodUnit": {
          "type": "string",
          "description": "Specifies the time unit for limiting the number of API calls.\nThe valid values are *SECOND*, *MINUTE*, *HOUR* and *DAY*, default to *MINUTE*.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the API throttling policy resource.\nIf omitted, the provider-level region will be used. Changing this will create a new API throttling policy resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the request throttling policy.\nThe valid values are as follows:\n+ API-based: limiting the maximum number of times a single API bound to the policy can be called within the\nspecified period.\n+ API-shared: limiting the maximum number of times all APIs bound to the policy can be called within the specified\nperiod.\n"
        },
        "userThrottles": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigThrottlingPolicyUserThrottle:ApigThrottlingPolicyUserThrottle"
          },
          "description": "Specifies an array of one or more special throttling policies for IAM user limit.\nThe `throttle` object of the `user_throttles` structure is documented below.\n"
        }
      },
      "requiredInputs": [
        "instanceId",
        "maxApiRequests",
        "period"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigThrottlingPolicy resources.\n",
        "properties": {
          "apigThrottlingPolicyId": {
            "type": "string",
            "description": "ID of the special application throttling policy.\n"
          },
          "appThrottles": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigThrottlingPolicyAppThrottle:ApigThrottlingPolicyAppThrottle"
            },
            "description": "Specifies an array of one or more special throttling policies for APP limit.\nThe `throttle` object of the `app_throttles` structure is documented below.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The creation time of the throttling policy.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description about the API throttling policy.\nThe description contain a maximum of 255 characters and the angle brackets (< and >) are not allowed.\nChinese characters must be in UTF-8 or Unicode format.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies an ID of the APIG dedicated instance to which the API\nthrottling policy belongs to. Changing this will create a new API throttling policy resource.\n"
          },
          "maxApiRequests": {
            "type": "number",
            "description": "Specifies the maximum number of times an API can be accessed within a specified\nperiod. The value of this parameter cannot exceed the default limit 200 TPS.\n"
          },
          "maxAppRequests": {
            "type": "number",
            "description": "Specifies the maximum number of times the API can be accessed by an app within\nthe same period. The value of this parameter must be less than or equal to the value of `max_user_requests`.\n"
          },
          "maxIpRequests": {
            "type": "number",
            "description": "Specifies the maximum number of times the API can be accessed by an IP address\nwithin the same period. The value of this parameter must be less than or equal to the value of `max_api_requests`.\n"
          },
          "maxUserRequests": {
            "type": "number",
            "description": "Specifies the maximum number of times the API can be accessed by a user within\nthe same period. The value of this parameter must be less than or equal to the value of `max_api_requests`.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the API throttling policy.\nThe policy name consists of 3 to 64 characters, starting with a letter.\nOnly letters, digits and underscores (_) are allowed.\n"
          },
          "period": {
            "type": "number",
            "description": "Specifies the period of time for limiting the number of API calls.\nThis parameter applies with each of the API call limits: `max_api_requests`, `max_app_requests`, `max_ip_requests`\nand `max_user_requests`.\n"
          },
          "periodUnit": {
            "type": "string",
            "description": "Specifies the time unit for limiting the number of API calls.\nThe valid values are *SECOND*, *MINUTE*, *HOUR* and *DAY*, default to *MINUTE*.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the API throttling policy resource.\nIf omitted, the provider-level region will be used. Changing this will create a new API throttling policy resource.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the type of the request throttling policy.\nThe valid values are as follows:\n+ API-based: limiting the maximum number of times a single API bound to the policy can be called within the\nspecified period.\n+ API-shared: limiting the maximum number of times all APIs bound to the policy can be called within the specified\nperiod.\n"
          },
          "userThrottles": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigThrottlingPolicyUserThrottle:ApigThrottlingPolicyUserThrottle"
            },
            "description": "Specifies an array of one or more special throttling policies for IAM user limit.\nThe `throttle` object of the `user_throttles` structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigThrottlingPolicyAssociate:ApigThrottlingPolicyAssociate": {
      "description": "Use this resource to bind the APIs to the throttling policy within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst policyId = config.requireObject(\"policyId\");\nconst apiPublishId1 = config.requireObject(\"apiPublishId1\");\nconst apiPublishId2 = config.requireObject(\"apiPublishId2\");\nconst test = new flexibleengine.ApigThrottlingPolicyAssociate(\"test\", {\n    instanceId: instanceId,\n    policyId: policyId,\n    publishIds: [\n        apiPublishId1,\n        apiPublishId2,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\npolicy_id = config.require_object(\"policyId\")\napi_publish_id1 = config.require_object(\"apiPublishId1\")\napi_publish_id2 = config.require_object(\"apiPublishId2\")\ntest = flexibleengine.ApigThrottlingPolicyAssociate(\"test\",\n    instance_id=instance_id,\n    policy_id=policy_id,\n    publish_ids=[\n        api_publish_id1,\n        api_publish_id2,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var policyId = config.RequireObject<dynamic>(\"policyId\");\n    var apiPublishId1 = config.RequireObject<dynamic>(\"apiPublishId1\");\n    var apiPublishId2 = config.RequireObject<dynamic>(\"apiPublishId2\");\n    var test = new Flexibleengine.ApigThrottlingPolicyAssociate(\"test\", new()\n    {\n        InstanceId = instanceId,\n        PolicyId = policyId,\n        PublishIds = new[]\n        {\n            apiPublishId1,\n            apiPublishId2,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tpolicyId := cfg.RequireObject(\"policyId\")\n\t\tapiPublishId1 := cfg.RequireObject(\"apiPublishId1\")\n\t\tapiPublishId2 := cfg.RequireObject(\"apiPublishId2\")\n\t\t_, err := flexibleengine.NewApigThrottlingPolicyAssociate(ctx, \"test\", &flexibleengine.ApigThrottlingPolicyAssociateArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tPolicyId:   pulumi.Any(policyId),\n\t\t\tPublishIds: pulumi.StringArray{\n\t\t\t\tapiPublishId1,\n\t\t\t\tapiPublishId2,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigThrottlingPolicyAssociate;\nimport com.pulumi.flexibleengine.ApigThrottlingPolicyAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var policyId = config.get(\"policyId\");\n        final var apiPublishId1 = config.get(\"apiPublishId1\");\n        final var apiPublishId2 = config.get(\"apiPublishId2\");\n        var test = new ApigThrottlingPolicyAssociate(\"test\", ApigThrottlingPolicyAssociateArgs.builder()\n            .instanceId(instanceId)\n            .policyId(policyId)\n            .publishIds(            \n                apiPublishId1,\n                apiPublishId2)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  policyId:\n    type: dynamic\n  apiPublishId1:\n    type: dynamic\n  apiPublishId2:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigThrottlingPolicyAssociate\n    properties:\n      instanceId: ${instanceId}\n      policyId: ${policyId}\n      publishIds:\n        - ${apiPublishId1}\n        - ${apiPublishId2}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAssociate resources can be imported using the APIG dedicated instance ID to which the policy\n\nbelongs and `policy_id`, separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/apigThrottlingPolicyAssociate:ApigThrottlingPolicyAssociate test <instance_id>/<policy_id>\n```\n\n",
      "properties": {
        "apigThrottlingPolicyAssociateId": {
          "type": "string",
          "description": "Resource ID. The format is `<instance_id>/<policy_id>`.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the APIG dedicated instance to which the APIs and the\nthrottling policy belongs. Changing this will create a new resource.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the ID of the API group to which the API response belongs to.\nChanging this will create a new resource.\n"
        },
        "publishIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the publish ID corresponding to the API bound by the throttling policy.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the API instance and throttling policy are located.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "apigThrottlingPolicyAssociateId",
        "instanceId",
        "policyId",
        "publishIds",
        "region"
      ],
      "inputProperties": {
        "apigThrottlingPolicyAssociateId": {
          "type": "string",
          "description": "Resource ID. The format is `<instance_id>/<policy_id>`.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the APIG dedicated instance to which the APIs and the\nthrottling policy belongs. Changing this will create a new resource.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the ID of the API group to which the API response belongs to.\nChanging this will create a new resource.\n"
        },
        "publishIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the publish ID corresponding to the API bound by the throttling policy.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the API instance and throttling policy are located.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "instanceId",
        "policyId",
        "publishIds"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigThrottlingPolicyAssociate resources.\n",
        "properties": {
          "apigThrottlingPolicyAssociateId": {
            "type": "string",
            "description": "Resource ID. The format is `<instance_id>/<policy_id>`.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the APIG dedicated instance to which the APIs and the\nthrottling policy belongs. Changing this will create a new resource.\n"
          },
          "policyId": {
            "type": "string",
            "description": "Specifies the ID of the API group to which the API response belongs to.\nChanging this will create a new resource.\n"
          },
          "publishIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the publish ID corresponding to the API bound by the throttling policy.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the API instance and throttling policy are located.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/apigVpcChannel:ApigVpcChannel": {
      "description": "!> **WARNING:** It has been deprecated.\n\nManages a VPC channel resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst channelName = config.requireObject(\"channelName\");\nconst ecsId1 = config.requireObject(\"ecsId1\");\nconst ecsId2 = config.requireObject(\"ecsId2\");\nconst test = new flexibleengine.ApigVpcChannel(\"test\", {\n    instanceId: instanceId,\n    port: 8080,\n    protocol: \"HTTPS\",\n    path: \"/\",\n    httpCode: \"201,202,203\",\n    members: [\n        {\n            id: ecsId1,\n            weight: 30,\n        },\n        {\n            id: ecsId2,\n            weight: 70,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nchannel_name = config.require_object(\"channelName\")\necs_id1 = config.require_object(\"ecsId1\")\necs_id2 = config.require_object(\"ecsId2\")\ntest = flexibleengine.ApigVpcChannel(\"test\",\n    instance_id=instance_id,\n    port=8080,\n    protocol=\"HTTPS\",\n    path=\"/\",\n    http_code=\"201,202,203\",\n    members=[\n        {\n            \"id\": ecs_id1,\n            \"weight\": 30,\n        },\n        {\n            \"id\": ecs_id2,\n            \"weight\": 70,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var channelName = config.RequireObject<dynamic>(\"channelName\");\n    var ecsId1 = config.RequireObject<dynamic>(\"ecsId1\");\n    var ecsId2 = config.RequireObject<dynamic>(\"ecsId2\");\n    var test = new Flexibleengine.ApigVpcChannel(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Port = 8080,\n        Protocol = \"HTTPS\",\n        Path = \"/\",\n        HttpCode = \"201,202,203\",\n        Members = new[]\n        {\n            new Flexibleengine.Inputs.ApigVpcChannelMemberArgs\n            {\n                Id = ecsId1,\n                Weight = 30,\n            },\n            new Flexibleengine.Inputs.ApigVpcChannelMemberArgs\n            {\n                Id = ecsId2,\n                Weight = 70,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tchannelName := cfg.RequireObject(\"channelName\")\n\t\tecsId1 := cfg.RequireObject(\"ecsId1\")\n\t\tecsId2 := cfg.RequireObject(\"ecsId2\")\n\t\t_, err := flexibleengine.NewApigVpcChannel(ctx, \"test\", &flexibleengine.ApigVpcChannelArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tPort:       pulumi.Float64(8080),\n\t\t\tProtocol:   pulumi.String(\"HTTPS\"),\n\t\t\tPath:       pulumi.String(\"/\"),\n\t\t\tHttpCode:   pulumi.String(\"201,202,203\"),\n\t\t\tMembers: flexibleengine.ApigVpcChannelMemberArray{\n\t\t\t\t&flexibleengine.ApigVpcChannelMemberArgs{\n\t\t\t\t\tId:     pulumi.Any(ecsId1),\n\t\t\t\t\tWeight: pulumi.Float64(30),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.ApigVpcChannelMemberArgs{\n\t\t\t\t\tId:     pulumi.Any(ecsId2),\n\t\t\t\t\tWeight: pulumi.Float64(70),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ApigVpcChannel;\nimport com.pulumi.flexibleengine.ApigVpcChannelArgs;\nimport com.pulumi.flexibleengine.inputs.ApigVpcChannelMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var channelName = config.get(\"channelName\");\n        final var ecsId1 = config.get(\"ecsId1\");\n        final var ecsId2 = config.get(\"ecsId2\");\n        var test = new ApigVpcChannel(\"test\", ApigVpcChannelArgs.builder()\n            .instanceId(instanceId)\n            .port(8080)\n            .protocol(\"HTTPS\")\n            .path(\"/\")\n            .httpCode(\"201,202,203\")\n            .members(            \n                ApigVpcChannelMemberArgs.builder()\n                    .id(ecsId1)\n                    .weight(30)\n                    .build(),\n                ApigVpcChannelMemberArgs.builder()\n                    .id(ecsId2)\n                    .weight(70)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  channelName:\n    type: dynamic\n  ecsId1:\n    type: dynamic\n  ecsId2:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ApigVpcChannel\n    properties:\n      instanceId: ${instanceId}\n      port: 8080\n      protocol: HTTPS\n      path: /\n      httpCode: 201,202,203\n      members:\n        - id: ${ecsId1}\n          weight: 30\n        - id: ${ecsId2}\n          weight: 70\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVPC Channels can be imported using the ID of the APIG dedicated instance to which the channel\n\nbelongs and `name`, separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/apigVpcChannel:ApigVpcChannel test <instance_id>/<name>\n```\n\n",
      "properties": {
        "algorithm": {
          "type": "string",
          "description": "Specifies the type of the backend service.\nThe valid types are *WRR*, *WLC*, *SH* and *URI hashing*, default to *WRR*.\n"
        },
        "apigVpcChannelId": {
          "type": "string",
          "description": "ID of the VPC channel.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The time when the VPC channel was created.\n"
        },
        "healthyThreshold": {
          "type": "number",
          "description": "Specifies the healthy threshold, which refers to the number of consecutive\nsuccessful checks required for a backend server to be considered healthy.\nThe valid value is range from 2 to 10, default to 2.\n"
        },
        "httpCode": {
          "type": "string",
          "description": "Specifies the response codes for determining a successful HTTP response.  \nThe valid value ranges from `100` to `599` and the valid formats are as follows:\n+ The multiple values, for example, **200,201,202**.\n+ The range, for example, **200-299**.\n+ Both multiple values and ranges, for example, **201,202,210-299**.\n\nIt is Required if the `protocol` is **HTTP**.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the APIG\nvpc channel belongs to.\nChanging this will create a new VPC channel resource.\n"
        },
        "interval": {
          "type": "number",
          "description": "Specifies the interval between consecutive checks, in second.\nThe valid value is range from 5 to 300, default to 10.\n"
        },
        "memberType": {
          "type": "string",
          "description": "Specifies the type of the backend service.\nThe valid types are *ECS* and *EIP*, default to *ECS*.\n"
        },
        "members": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigVpcChannelMember:ApigVpcChannelMember"
          },
          "description": "Specifies an array of one or more backend server IDs or IP addresses that bind the VPC\nchannel. The object structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the VPC channel.\nThe channel name consists of 3 to 64 characters, starting with a letter.\nOnly letters, digits and underscores (_) are allowed.\nChinese characters must be in UTF-8 or Unicode format.\n"
        },
        "path": {
          "type": "string",
          "description": "Specifies the destination path for health checks.\nRequired if `protocol` is *HTTP* or *HTTPS*.\n"
        },
        "port": {
          "type": "number",
          "description": "Specifies the host port of the VPC channel.\nThe valid value is range from 1 to 65535.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol for performing health checks on backend servers in the VPC\nchannel.\nThe valid values are *TCP*, *HTTP* and *HTTPS*, default to *TCP*.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the VPC channel resource.\nIf omitted, the provider-level region will be used.\nChanging this will create a new VPC channel resource.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of VPC channel, supports *Normal* and *Abnormal*.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the timeout for determining whether a health check fails, in second.\nThe value must be less than the value of time_interval.\nThe valid value is range from 2 to 30, default to 5.\n"
        },
        "unhealthyThreshold": {
          "type": "number",
          "description": "Specifies the unhealthy threshold, which refers to the number of consecutive\nfailed checks required for a backend server to be considered unhealthy.\nThe valid value is range from 2 to 10, default to 5.\n"
        }
      },
      "type": "object",
      "required": [
        "apigVpcChannelId",
        "createdAt",
        "instanceId",
        "members",
        "name",
        "port",
        "region",
        "status"
      ],
      "inputProperties": {
        "algorithm": {
          "type": "string",
          "description": "Specifies the type of the backend service.\nThe valid types are *WRR*, *WLC*, *SH* and *URI hashing*, default to *WRR*.\n"
        },
        "apigVpcChannelId": {
          "type": "string",
          "description": "ID of the VPC channel.\n"
        },
        "healthyThreshold": {
          "type": "number",
          "description": "Specifies the healthy threshold, which refers to the number of consecutive\nsuccessful checks required for a backend server to be considered healthy.\nThe valid value is range from 2 to 10, default to 2.\n"
        },
        "httpCode": {
          "type": "string",
          "description": "Specifies the response codes for determining a successful HTTP response.  \nThe valid value ranges from `100` to `599` and the valid formats are as follows:\n+ The multiple values, for example, **200,201,202**.\n+ The range, for example, **200-299**.\n+ Both multiple values and ranges, for example, **201,202,210-299**.\n\nIt is Required if the `protocol` is **HTTP**.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies an ID of the APIG dedicated instance to which the APIG\nvpc channel belongs to.\nChanging this will create a new VPC channel resource.\n"
        },
        "interval": {
          "type": "number",
          "description": "Specifies the interval between consecutive checks, in second.\nThe valid value is range from 5 to 300, default to 10.\n"
        },
        "memberType": {
          "type": "string",
          "description": "Specifies the type of the backend service.\nThe valid types are *ECS* and *EIP*, default to *ECS*.\n"
        },
        "members": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FApigVpcChannelMember:ApigVpcChannelMember"
          },
          "description": "Specifies an array of one or more backend server IDs or IP addresses that bind the VPC\nchannel. The object structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the VPC channel.\nThe channel name consists of 3 to 64 characters, starting with a letter.\nOnly letters, digits and underscores (_) are allowed.\nChinese characters must be in UTF-8 or Unicode format.\n"
        },
        "path": {
          "type": "string",
          "description": "Specifies the destination path for health checks.\nRequired if `protocol` is *HTTP* or *HTTPS*.\n"
        },
        "port": {
          "type": "number",
          "description": "Specifies the host port of the VPC channel.\nThe valid value is range from 1 to 65535.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol for performing health checks on backend servers in the VPC\nchannel.\nThe valid values are *TCP*, *HTTP* and *HTTPS*, default to *TCP*.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the VPC channel resource.\nIf omitted, the provider-level region will be used.\nChanging this will create a new VPC channel resource.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the timeout for determining whether a health check fails, in second.\nThe value must be less than the value of time_interval.\nThe valid value is range from 2 to 30, default to 5.\n"
        },
        "unhealthyThreshold": {
          "type": "number",
          "description": "Specifies the unhealthy threshold, which refers to the number of consecutive\nfailed checks required for a backend server to be considered unhealthy.\nThe valid value is range from 2 to 10, default to 5.\n"
        }
      },
      "requiredInputs": [
        "instanceId",
        "members",
        "port"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApigVpcChannel resources.\n",
        "properties": {
          "algorithm": {
            "type": "string",
            "description": "Specifies the type of the backend service.\nThe valid types are *WRR*, *WLC*, *SH* and *URI hashing*, default to *WRR*.\n"
          },
          "apigVpcChannelId": {
            "type": "string",
            "description": "ID of the VPC channel.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The time when the VPC channel was created.\n"
          },
          "healthyThreshold": {
            "type": "number",
            "description": "Specifies the healthy threshold, which refers to the number of consecutive\nsuccessful checks required for a backend server to be considered healthy.\nThe valid value is range from 2 to 10, default to 2.\n"
          },
          "httpCode": {
            "type": "string",
            "description": "Specifies the response codes for determining a successful HTTP response.  \nThe valid value ranges from `100` to `599` and the valid formats are as follows:\n+ The multiple values, for example, **200,201,202**.\n+ The range, for example, **200-299**.\n+ Both multiple values and ranges, for example, **201,202,210-299**.\n\nIt is Required if the `protocol` is **HTTP**.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies an ID of the APIG dedicated instance to which the APIG\nvpc channel belongs to.\nChanging this will create a new VPC channel resource.\n"
          },
          "interval": {
            "type": "number",
            "description": "Specifies the interval between consecutive checks, in second.\nThe valid value is range from 5 to 300, default to 10.\n"
          },
          "memberType": {
            "type": "string",
            "description": "Specifies the type of the backend service.\nThe valid types are *ECS* and *EIP*, default to *ECS*.\n"
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FApigVpcChannelMember:ApigVpcChannelMember"
            },
            "description": "Specifies an array of one or more backend server IDs or IP addresses that bind the VPC\nchannel. The object structure is documented below.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the VPC channel.\nThe channel name consists of 3 to 64 characters, starting with a letter.\nOnly letters, digits and underscores (_) are allowed.\nChinese characters must be in UTF-8 or Unicode format.\n"
          },
          "path": {
            "type": "string",
            "description": "Specifies the destination path for health checks.\nRequired if `protocol` is *HTTP* or *HTTPS*.\n"
          },
          "port": {
            "type": "number",
            "description": "Specifies the host port of the VPC channel.\nThe valid value is range from 1 to 65535.\n"
          },
          "protocol": {
            "type": "string",
            "description": "Specifies the protocol for performing health checks on backend servers in the VPC\nchannel.\nThe valid values are *TCP*, *HTTP* and *HTTPS*, default to *TCP*.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the VPC channel resource.\nIf omitted, the provider-level region will be used.\nChanging this will create a new VPC channel resource.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of VPC channel, supports *Normal* and *Abnormal*.\n"
          },
          "timeout": {
            "type": "number",
            "description": "Specifies the timeout for determining whether a health check fails, in second.\nThe value must be less than the value of time_interval.\nThe valid value is range from 2 to 30, default to 5.\n"
          },
          "unhealthyThreshold": {
            "type": "number",
            "description": "Specifies the unhealthy threshold, which refers to the number of consecutive\nfailed checks required for a backend server to be considered unhealthy.\nThe valid value is range from 2 to 10, default to 5.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/asConfiguration:AsConfiguration": {
      "description": "Manages a V1 AS Configuration resource within flexibleengine.\n\n## Example Usage\n\n### Basic AS Configuration\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\nimport * as fs from \"fs\";\n\nconst myAsConfig = new flexibleengine.AsConfiguration(\"myAsConfig\", {\n    scalingConfigurationName: \"my_as_config\",\n    instanceConfig: {\n        flavor: _var.flavor,\n        image: _var.image_id,\n        disks: [{\n            size: 40,\n            volumeType: \"SATA\",\n            diskType: \"SYS\",\n        }],\n        keyName: _var.keyname,\n        userData: fs.readFileSync(\"userdata.txt\", \"utf8\"),\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nmy_as_config = flexibleengine.AsConfiguration(\"myAsConfig\",\n    scaling_configuration_name=\"my_as_config\",\n    instance_config={\n        \"flavor\": var[\"flavor\"],\n        \"image\": var[\"image_id\"],\n        \"disks\": [{\n            \"size\": 40,\n            \"volume_type\": \"SATA\",\n            \"disk_type\": \"SYS\",\n        }],\n        \"key_name\": var[\"keyname\"],\n        \"user_data\": (lambda path: open(path).read())(\"userdata.txt\"),\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myAsConfig = new Flexibleengine.AsConfiguration(\"myAsConfig\", new()\n    {\n        ScalingConfigurationName = \"my_as_config\",\n        InstanceConfig = new Flexibleengine.Inputs.AsConfigurationInstanceConfigArgs\n        {\n            Flavor = @var.Flavor,\n            Image = @var.Image_id,\n            Disks = new[]\n            {\n                new Flexibleengine.Inputs.AsConfigurationInstanceConfigDiskArgs\n                {\n                    Size = 40,\n                    VolumeType = \"SATA\",\n                    DiskType = \"SYS\",\n                },\n            },\n            KeyName = @var.Keyname,\n            UserData = File.ReadAllText(\"userdata.txt\"),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.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 := flexibleengine.NewAsConfiguration(ctx, \"myAsConfig\", &flexibleengine.AsConfigurationArgs{\n\t\t\tScalingConfigurationName: pulumi.String(\"my_as_config\"),\n\t\t\tInstanceConfig: &flexibleengine.AsConfigurationInstanceConfigArgs{\n\t\t\t\tFlavor: pulumi.Any(_var.Flavor),\n\t\t\t\tImage:  pulumi.Any(_var.Image_id),\n\t\t\t\tDisks: flexibleengine.AsConfigurationInstanceConfigDiskArray{\n\t\t\t\t\t&flexibleengine.AsConfigurationInstanceConfigDiskArgs{\n\t\t\t\t\t\tSize:       pulumi.Float64(40),\n\t\t\t\t\t\tVolumeType: pulumi.String(\"SATA\"),\n\t\t\t\t\t\tDiskType:   pulumi.String(\"SYS\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tKeyName:  pulumi.Any(_var.Keyname),\n\t\t\t\tUserData: pulumi.String(readFileOrPanic(\"userdata.txt\")),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.AsConfiguration;\nimport com.pulumi.flexibleengine.AsConfigurationArgs;\nimport com.pulumi.flexibleengine.inputs.AsConfigurationInstanceConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myAsConfig = new AsConfiguration(\"myAsConfig\", AsConfigurationArgs.builder()\n            .scalingConfigurationName(\"my_as_config\")\n            .instanceConfig(AsConfigurationInstanceConfigArgs.builder()\n                .flavor(var_.flavor())\n                .image(var_.image_id())\n                .disks(AsConfigurationInstanceConfigDiskArgs.builder()\n                    .size(40)\n                    .volumeType(\"SATA\")\n                    .diskType(\"SYS\")\n                    .build())\n                .keyName(var_.keyname())\n                .userData(Files.readString(Paths.get(\"userdata.txt\")))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myAsConfig:\n    type: flexibleengine:AsConfiguration\n    properties:\n      scalingConfigurationName: my_as_config\n      instanceConfig:\n        flavor: ${var.flavor}\n        image: ${var.image_id}\n        disks:\n          - size: 40\n            volumeType: SATA\n            diskType: SYS\n        keyName: ${var.keyname}\n        userData:\n          fn::readFile: userdata.txt\n```\n<!--End PulumiCodeChooser -->\n\n### AS Configuration With User Data and Metadata\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\nimport * as fs from \"fs\";\n\nconst myAsConfig = new flexibleengine.AsConfiguration(\"myAsConfig\", {\n    scalingConfigurationName: \"my_as_config\",\n    instanceConfig: {\n        flavor: _var.flavor,\n        image: _var.image_id,\n        disks: [{\n            size: 40,\n            volumeType: \"SATA\",\n            diskType: \"SYS\",\n        }],\n        keyName: _var.keyname,\n        userData: fs.readFileSync(\"userdata.txt\", \"utf8\"),\n        metadata: {\n            some_key: \"some_value\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nmy_as_config = flexibleengine.AsConfiguration(\"myAsConfig\",\n    scaling_configuration_name=\"my_as_config\",\n    instance_config={\n        \"flavor\": var[\"flavor\"],\n        \"image\": var[\"image_id\"],\n        \"disks\": [{\n            \"size\": 40,\n            \"volume_type\": \"SATA\",\n            \"disk_type\": \"SYS\",\n        }],\n        \"key_name\": var[\"keyname\"],\n        \"user_data\": (lambda path: open(path).read())(\"userdata.txt\"),\n        \"metadata\": {\n            \"some_key\": \"some_value\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myAsConfig = new Flexibleengine.AsConfiguration(\"myAsConfig\", new()\n    {\n        ScalingConfigurationName = \"my_as_config\",\n        InstanceConfig = new Flexibleengine.Inputs.AsConfigurationInstanceConfigArgs\n        {\n            Flavor = @var.Flavor,\n            Image = @var.Image_id,\n            Disks = new[]\n            {\n                new Flexibleengine.Inputs.AsConfigurationInstanceConfigDiskArgs\n                {\n                    Size = 40,\n                    VolumeType = \"SATA\",\n                    DiskType = \"SYS\",\n                },\n            },\n            KeyName = @var.Keyname,\n            UserData = File.ReadAllText(\"userdata.txt\"),\n            Metadata = \n            {\n                { \"some_key\", \"some_value\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.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 := flexibleengine.NewAsConfiguration(ctx, \"myAsConfig\", &flexibleengine.AsConfigurationArgs{\n\t\t\tScalingConfigurationName: pulumi.String(\"my_as_config\"),\n\t\t\tInstanceConfig: &flexibleengine.AsConfigurationInstanceConfigArgs{\n\t\t\t\tFlavor: pulumi.Any(_var.Flavor),\n\t\t\t\tImage:  pulumi.Any(_var.Image_id),\n\t\t\t\tDisks: flexibleengine.AsConfigurationInstanceConfigDiskArray{\n\t\t\t\t\t&flexibleengine.AsConfigurationInstanceConfigDiskArgs{\n\t\t\t\t\t\tSize:       pulumi.Float64(40),\n\t\t\t\t\t\tVolumeType: pulumi.String(\"SATA\"),\n\t\t\t\t\t\tDiskType:   pulumi.String(\"SYS\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tKeyName:  pulumi.Any(_var.Keyname),\n\t\t\t\tUserData: pulumi.String(readFileOrPanic(\"userdata.txt\")),\n\t\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\t\"some_key\": pulumi.String(\"some_value\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.AsConfiguration;\nimport com.pulumi.flexibleengine.AsConfigurationArgs;\nimport com.pulumi.flexibleengine.inputs.AsConfigurationInstanceConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myAsConfig = new AsConfiguration(\"myAsConfig\", AsConfigurationArgs.builder()\n            .scalingConfigurationName(\"my_as_config\")\n            .instanceConfig(AsConfigurationInstanceConfigArgs.builder()\n                .flavor(var_.flavor())\n                .image(var_.image_id())\n                .disks(AsConfigurationInstanceConfigDiskArgs.builder()\n                    .size(40)\n                    .volumeType(\"SATA\")\n                    .diskType(\"SYS\")\n                    .build())\n                .keyName(var_.keyname())\n                .userData(Files.readString(Paths.get(\"userdata.txt\")))\n                .metadata(Map.of(\"some_key\", \"some_value\"))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myAsConfig:\n    type: flexibleengine:AsConfiguration\n    properties:\n      scalingConfigurationName: my_as_config\n      instanceConfig:\n        flavor: ${var.flavor}\n        image: ${var.image_id}\n        disks:\n          - size: 40\n            volumeType: SATA\n            diskType: SYS\n        keyName: ${var.keyname}\n        userData:\n          fn::readFile: userdata.txt\n        metadata:\n          some_key: some_value\n```\n<!--End PulumiCodeChooser -->\n\n`user_data` can come from a variety of sources: inline, read in from the `file`\nfunction, or the `template_cloudinit_config` resource.\n\n### AS Configuration uses the existing instance specifications as the template\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst myAsConfig = new flexibleengine.AsConfiguration(\"myAsConfig\", {\n    scalingConfigurationName: \"my_as_config\",\n    instanceConfig: {\n        instanceId: \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n        keyName: _var.keyname,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nmy_as_config = flexibleengine.AsConfiguration(\"myAsConfig\",\n    scaling_configuration_name=\"my_as_config\",\n    instance_config={\n        \"instance_id\": \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n        \"key_name\": var[\"keyname\"],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myAsConfig = new Flexibleengine.AsConfiguration(\"myAsConfig\", new()\n    {\n        ScalingConfigurationName = \"my_as_config\",\n        InstanceConfig = new Flexibleengine.Inputs.AsConfigurationInstanceConfigArgs\n        {\n            InstanceId = \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n            KeyName = @var.Keyname,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewAsConfiguration(ctx, \"myAsConfig\", &flexibleengine.AsConfigurationArgs{\n\t\t\tScalingConfigurationName: pulumi.String(\"my_as_config\"),\n\t\t\tInstanceConfig: &flexibleengine.AsConfigurationInstanceConfigArgs{\n\t\t\t\tInstanceId: pulumi.String(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\"),\n\t\t\t\tKeyName:    pulumi.Any(_var.Keyname),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.AsConfiguration;\nimport com.pulumi.flexibleengine.AsConfigurationArgs;\nimport com.pulumi.flexibleengine.inputs.AsConfigurationInstanceConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myAsConfig = new AsConfiguration(\"myAsConfig\", AsConfigurationArgs.builder()\n            .scalingConfigurationName(\"my_as_config\")\n            .instanceConfig(AsConfigurationInstanceConfigArgs.builder()\n                .instanceId(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\")\n                .keyName(var_.keyname())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myAsConfig:\n    type: flexibleengine:AsConfiguration\n    properties:\n      scalingConfigurationName: my_as_config\n      instanceConfig:\n        instanceId: 4579f2f5-cbe8-425a-8f32-53dcb9d9053a\n        keyName: ${var.keyname}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "asConfigurationId": {
          "type": "string"
        },
        "instanceConfig": {
          "$ref": "#/types/flexibleengine:index%2FAsConfigurationInstanceConfig:AsConfigurationInstanceConfig",
          "description": "The information about instance configurations. The instance_config\ndictionary data structure is documented below. Changing this creates a new AS configuration.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the AS configuration. If\nomitted, the `region` argument of the provider is used. Changing this\ncreates a new AS configuration.\n"
        },
        "scalingConfigurationName": {
          "type": "string",
          "description": "The name of the AS configuration. The name can contain letters,\ndigits, underscores(_), and hyphens(-), and cannot exceed 64 characters. Changing this creates a new AS configuration.\n"
        }
      },
      "type": "object",
      "required": [
        "asConfigurationId",
        "instanceConfig",
        "region",
        "scalingConfigurationName"
      ],
      "inputProperties": {
        "asConfigurationId": {
          "type": "string"
        },
        "instanceConfig": {
          "$ref": "#/types/flexibleengine:index%2FAsConfigurationInstanceConfig:AsConfigurationInstanceConfig",
          "description": "The information about instance configurations. The instance_config\ndictionary data structure is documented below. Changing this creates a new AS configuration.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the AS configuration. If\nomitted, the `region` argument of the provider is used. Changing this\ncreates a new AS configuration.\n"
        },
        "scalingConfigurationName": {
          "type": "string",
          "description": "The name of the AS configuration. The name can contain letters,\ndigits, underscores(_), and hyphens(-), and cannot exceed 64 characters. Changing this creates a new AS configuration.\n"
        }
      },
      "requiredInputs": [
        "instanceConfig",
        "scalingConfigurationName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AsConfiguration resources.\n",
        "properties": {
          "asConfigurationId": {
            "type": "string"
          },
          "instanceConfig": {
            "$ref": "#/types/flexibleengine:index%2FAsConfigurationInstanceConfig:AsConfigurationInstanceConfig",
            "description": "The information about instance configurations. The instance_config\ndictionary data structure is documented below. Changing this creates a new AS configuration.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the AS configuration. If\nomitted, the `region` argument of the provider is used. Changing this\ncreates a new AS configuration.\n"
          },
          "scalingConfigurationName": {
            "type": "string",
            "description": "The name of the AS configuration. The name can contain letters,\ndigits, underscores(_), and hyphens(-), and cannot exceed 64 characters. Changing this creates a new AS configuration.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/asConfigurationV1:AsConfigurationV1": {
      "properties": {
        "asConfigurationV1Id": {
          "type": "string"
        },
        "instanceConfig": {
          "$ref": "#/types/flexibleengine:index%2FAsConfigurationV1InstanceConfig:AsConfigurationV1InstanceConfig"
        },
        "region": {
          "type": "string"
        },
        "scalingConfigurationName": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "asConfigurationV1Id",
        "instanceConfig",
        "region",
        "scalingConfigurationName"
      ],
      "inputProperties": {
        "asConfigurationV1Id": {
          "type": "string"
        },
        "instanceConfig": {
          "$ref": "#/types/flexibleengine:index%2FAsConfigurationV1InstanceConfig:AsConfigurationV1InstanceConfig"
        },
        "region": {
          "type": "string"
        },
        "scalingConfigurationName": {
          "type": "string"
        }
      },
      "requiredInputs": [
        "instanceConfig",
        "scalingConfigurationName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AsConfigurationV1 resources.\n",
        "properties": {
          "asConfigurationV1Id": {
            "type": "string"
          },
          "instanceConfig": {
            "$ref": "#/types/flexibleengine:index%2FAsConfigurationV1InstanceConfig:AsConfigurationV1InstanceConfig"
          },
          "region": {
            "type": "string"
          },
          "scalingConfigurationName": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/asGroup:AsGroup": {
      "description": "Manages a V1 Autoscaling Group resource within flexibleengine.\n\n## Example Usage\n\n### Basic Autoscaling Group\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst myAsGroup = new flexibleengine.AsGroup(\"myAsGroup\", {\n    scalingGroupName: \"my_as_group\",\n    desireInstanceNumber: 2,\n    minInstanceNumber: 0,\n    maxInstanceNumber: 10,\n    scalingConfigurationId: \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    vpcId: exampleVpc.vpcV1Id,\n    deletePublicip: true,\n    deleteInstances: \"yes\",\n    networks: [{\n        id: exampleSubnet.vpcSubnetV1Id,\n    }],\n    securityGroups: [{\n        id: \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nmy_as_group = flexibleengine.AsGroup(\"myAsGroup\",\n    scaling_group_name=\"my_as_group\",\n    desire_instance_number=2,\n    min_instance_number=0,\n    max_instance_number=10,\n    scaling_configuration_id=\"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    vpc_id=example_vpc.vpc_v1_id,\n    delete_publicip=True,\n    delete_instances=\"yes\",\n    networks=[{\n        \"id\": example_subnet.vpc_subnet_v1_id,\n    }],\n    security_groups=[{\n        \"id\": \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var myAsGroup = new Flexibleengine.AsGroup(\"myAsGroup\", new()\n    {\n        ScalingGroupName = \"my_as_group\",\n        DesireInstanceNumber = 2,\n        MinInstanceNumber = 0,\n        MaxInstanceNumber = 10,\n        ScalingConfigurationId = \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n        VpcId = exampleVpc.VpcV1Id,\n        DeletePublicip = true,\n        DeleteInstances = \"yes\",\n        Networks = new[]\n        {\n            new Flexibleengine.Inputs.AsGroupNetworkArgs\n            {\n                Id = exampleSubnet.VpcSubnetV1Id,\n            },\n        },\n        SecurityGroups = new[]\n        {\n            new Flexibleengine.Inputs.AsGroupSecurityGroupArgs\n            {\n                Id = \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewAsGroup(ctx, \"myAsGroup\", &flexibleengine.AsGroupArgs{\n\t\t\tScalingGroupName:       pulumi.String(\"my_as_group\"),\n\t\t\tDesireInstanceNumber:   pulumi.Float64(2),\n\t\t\tMinInstanceNumber:      pulumi.Float64(0),\n\t\t\tMaxInstanceNumber:      pulumi.Float64(10),\n\t\t\tScalingConfigurationId: pulumi.String(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\"),\n\t\t\tVpcId:                  exampleVpc.VpcV1Id,\n\t\t\tDeletePublicip:         pulumi.Bool(true),\n\t\t\tDeleteInstances:        pulumi.String(\"yes\"),\n\t\t\tNetworks: flexibleengine.AsGroupNetworkArray{\n\t\t\t\t&flexibleengine.AsGroupNetworkArgs{\n\t\t\t\t\tId: exampleSubnet.VpcSubnetV1Id,\n\t\t\t\t},\n\t\t\t},\n\t\t\tSecurityGroups: flexibleengine.AsGroupSecurityGroupArray{\n\t\t\t\t&flexibleengine.AsGroupSecurityGroupArgs{\n\t\t\t\t\tId: pulumi.String(\"45e4c6de-6bf0-4843-8953-2babde3d4810\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.AsGroup;\nimport com.pulumi.flexibleengine.AsGroupArgs;\nimport com.pulumi.flexibleengine.inputs.AsGroupNetworkArgs;\nimport com.pulumi.flexibleengine.inputs.AsGroupSecurityGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var myAsGroup = new AsGroup(\"myAsGroup\", AsGroupArgs.builder()\n            .scalingGroupName(\"my_as_group\")\n            .desireInstanceNumber(2)\n            .minInstanceNumber(0)\n            .maxInstanceNumber(10)\n            .scalingConfigurationId(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .deletePublicip(true)\n            .deleteInstances(\"yes\")\n            .networks(AsGroupNetworkArgs.builder()\n                .id(exampleSubnet.vpcSubnetV1Id())\n                .build())\n            .securityGroups(AsGroupSecurityGroupArgs.builder()\n                .id(\"45e4c6de-6bf0-4843-8953-2babde3d4810\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  myAsGroup:\n    type: flexibleengine:AsGroup\n    properties:\n      scalingGroupName: my_as_group\n      desireInstanceNumber: 2\n      minInstanceNumber: 0\n      maxInstanceNumber: 10\n      scalingConfigurationId: 37e310f5-db9d-446e-9135-c625f9c2bbfc\n      vpcId: ${exampleVpc.vpcV1Id}\n      deletePublicip: true\n      deleteInstances: yes\n      networks:\n        - id: ${exampleSubnet.vpcSubnetV1Id}\n      securityGroups:\n        - id: 45e4c6de-6bf0-4843-8953-2babde3d4810\n```\n<!--End PulumiCodeChooser -->\n\n### Autoscaling Group Only Remove Members When Scaling Down\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst myAsGroupOnlyRemoveMembers = new flexibleengine.AsGroup(\"myAsGroupOnlyRemoveMembers\", {\n    scalingGroupName: \"my_as_group_only_remove_members\",\n    desireInstanceNumber: 2,\n    minInstanceNumber: 0,\n    maxInstanceNumber: 10,\n    scalingConfigurationId: \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    vpcId: exampleVpc.vpcV1Id,\n    deletePublicip: true,\n    deleteInstances: \"no\",\n    networks: [{\n        id: exampleSubnet.vpcSubnetV1Id,\n    }],\n    securityGroups: [{\n        id: \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nmy_as_group_only_remove_members = flexibleengine.AsGroup(\"myAsGroupOnlyRemoveMembers\",\n    scaling_group_name=\"my_as_group_only_remove_members\",\n    desire_instance_number=2,\n    min_instance_number=0,\n    max_instance_number=10,\n    scaling_configuration_id=\"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    vpc_id=example_vpc.vpc_v1_id,\n    delete_publicip=True,\n    delete_instances=\"no\",\n    networks=[{\n        \"id\": example_subnet.vpc_subnet_v1_id,\n    }],\n    security_groups=[{\n        \"id\": \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var myAsGroupOnlyRemoveMembers = new Flexibleengine.AsGroup(\"myAsGroupOnlyRemoveMembers\", new()\n    {\n        ScalingGroupName = \"my_as_group_only_remove_members\",\n        DesireInstanceNumber = 2,\n        MinInstanceNumber = 0,\n        MaxInstanceNumber = 10,\n        ScalingConfigurationId = \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n        VpcId = exampleVpc.VpcV1Id,\n        DeletePublicip = true,\n        DeleteInstances = \"no\",\n        Networks = new[]\n        {\n            new Flexibleengine.Inputs.AsGroupNetworkArgs\n            {\n                Id = exampleSubnet.VpcSubnetV1Id,\n            },\n        },\n        SecurityGroups = new[]\n        {\n            new Flexibleengine.Inputs.AsGroupSecurityGroupArgs\n            {\n                Id = \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewAsGroup(ctx, \"myAsGroupOnlyRemoveMembers\", &flexibleengine.AsGroupArgs{\n\t\t\tScalingGroupName:       pulumi.String(\"my_as_group_only_remove_members\"),\n\t\t\tDesireInstanceNumber:   pulumi.Float64(2),\n\t\t\tMinInstanceNumber:      pulumi.Float64(0),\n\t\t\tMaxInstanceNumber:      pulumi.Float64(10),\n\t\t\tScalingConfigurationId: pulumi.String(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\"),\n\t\t\tVpcId:                  exampleVpc.VpcV1Id,\n\t\t\tDeletePublicip:         pulumi.Bool(true),\n\t\t\tDeleteInstances:        pulumi.String(\"no\"),\n\t\t\tNetworks: flexibleengine.AsGroupNetworkArray{\n\t\t\t\t&flexibleengine.AsGroupNetworkArgs{\n\t\t\t\t\tId: exampleSubnet.VpcSubnetV1Id,\n\t\t\t\t},\n\t\t\t},\n\t\t\tSecurityGroups: flexibleengine.AsGroupSecurityGroupArray{\n\t\t\t\t&flexibleengine.AsGroupSecurityGroupArgs{\n\t\t\t\t\tId: pulumi.String(\"45e4c6de-6bf0-4843-8953-2babde3d4810\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.AsGroup;\nimport com.pulumi.flexibleengine.AsGroupArgs;\nimport com.pulumi.flexibleengine.inputs.AsGroupNetworkArgs;\nimport com.pulumi.flexibleengine.inputs.AsGroupSecurityGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var myAsGroupOnlyRemoveMembers = new AsGroup(\"myAsGroupOnlyRemoveMembers\", AsGroupArgs.builder()\n            .scalingGroupName(\"my_as_group_only_remove_members\")\n            .desireInstanceNumber(2)\n            .minInstanceNumber(0)\n            .maxInstanceNumber(10)\n            .scalingConfigurationId(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .deletePublicip(true)\n            .deleteInstances(\"no\")\n            .networks(AsGroupNetworkArgs.builder()\n                .id(exampleSubnet.vpcSubnetV1Id())\n                .build())\n            .securityGroups(AsGroupSecurityGroupArgs.builder()\n                .id(\"45e4c6de-6bf0-4843-8953-2babde3d4810\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  myAsGroupOnlyRemoveMembers:\n    type: flexibleengine:AsGroup\n    properties:\n      scalingGroupName: my_as_group_only_remove_members\n      desireInstanceNumber: 2\n      minInstanceNumber: 0\n      maxInstanceNumber: 10\n      scalingConfigurationId: 37e310f5-db9d-446e-9135-c625f9c2bbfc\n      vpcId: ${exampleVpc.vpcV1Id}\n      deletePublicip: true\n      deleteInstances: no\n      networks:\n        - id: ${exampleSubnet.vpcSubnetV1Id}\n      securityGroups:\n        - id: 45e4c6de-6bf0-4843-8953-2babde3d4810\n```\n<!--End PulumiCodeChooser -->\n\n### Autoscaling Group With ELB Listener\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst lb1 = new flexibleengine.LbLoadbalancerV2(\"lb1\", {vipSubnetId: exampleSubnet.ipv4SubnetId});\nconst listener1 = new flexibleengine.LbListenerV2(\"listener1\", {\n    protocol: \"HTTP\",\n    protocolPort: 8080,\n    loadbalancerId: lb1.lbLoadbalancerV2Id,\n});\nconst myAsGroupWithElb = new flexibleengine.AsGroup(\"myAsGroupWithElb\", {\n    scalingGroupName: \"my_as_group_with_elb\",\n    desireInstanceNumber: 2,\n    minInstanceNumber: 0,\n    maxInstanceNumber: 10,\n    lbListenerId: listener1.lbListenerV2Id,\n    scalingConfigurationId: \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    vpcId: exampleVpc.vpcV1Id,\n    deletePublicip: true,\n    deleteInstances: \"yes\",\n    networks: [{\n        id: exampleSubnet.vpcSubnetV1Id,\n    }],\n    securityGroups: [{\n        id: \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nlb1 = flexibleengine.LbLoadbalancerV2(\"lb1\", vip_subnet_id=example_subnet.ipv4_subnet_id)\nlistener1 = flexibleengine.LbListenerV2(\"listener1\",\n    protocol=\"HTTP\",\n    protocol_port=8080,\n    loadbalancer_id=lb1.lb_loadbalancer_v2_id)\nmy_as_group_with_elb = flexibleengine.AsGroup(\"myAsGroupWithElb\",\n    scaling_group_name=\"my_as_group_with_elb\",\n    desire_instance_number=2,\n    min_instance_number=0,\n    max_instance_number=10,\n    lb_listener_id=listener1.lb_listener_v2_id,\n    scaling_configuration_id=\"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    vpc_id=example_vpc.vpc_v1_id,\n    delete_publicip=True,\n    delete_instances=\"yes\",\n    networks=[{\n        \"id\": example_subnet.vpc_subnet_v1_id,\n    }],\n    security_groups=[{\n        \"id\": \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var lb1 = new Flexibleengine.LbLoadbalancerV2(\"lb1\", new()\n    {\n        VipSubnetId = exampleSubnet.Ipv4SubnetId,\n    });\n\n    var listener1 = new Flexibleengine.LbListenerV2(\"listener1\", new()\n    {\n        Protocol = \"HTTP\",\n        ProtocolPort = 8080,\n        LoadbalancerId = lb1.LbLoadbalancerV2Id,\n    });\n\n    var myAsGroupWithElb = new Flexibleengine.AsGroup(\"myAsGroupWithElb\", new()\n    {\n        ScalingGroupName = \"my_as_group_with_elb\",\n        DesireInstanceNumber = 2,\n        MinInstanceNumber = 0,\n        MaxInstanceNumber = 10,\n        LbListenerId = listener1.LbListenerV2Id,\n        ScalingConfigurationId = \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n        VpcId = exampleVpc.VpcV1Id,\n        DeletePublicip = true,\n        DeleteInstances = \"yes\",\n        Networks = new[]\n        {\n            new Flexibleengine.Inputs.AsGroupNetworkArgs\n            {\n                Id = exampleSubnet.VpcSubnetV1Id,\n            },\n        },\n        SecurityGroups = new[]\n        {\n            new Flexibleengine.Inputs.AsGroupSecurityGroupArgs\n            {\n                Id = \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb1, err := flexibleengine.NewLbLoadbalancerV2(ctx, \"lb1\", &flexibleengine.LbLoadbalancerV2Args{\n\t\t\tVipSubnetId: exampleSubnet.Ipv4SubnetId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlistener1, err := flexibleengine.NewLbListenerV2(ctx, \"listener1\", &flexibleengine.LbListenerV2Args{\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort:   pulumi.Float64(8080),\n\t\t\tLoadbalancerId: lb1.LbLoadbalancerV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewAsGroup(ctx, \"myAsGroupWithElb\", &flexibleengine.AsGroupArgs{\n\t\t\tScalingGroupName:       pulumi.String(\"my_as_group_with_elb\"),\n\t\t\tDesireInstanceNumber:   pulumi.Float64(2),\n\t\t\tMinInstanceNumber:      pulumi.Float64(0),\n\t\t\tMaxInstanceNumber:      pulumi.Float64(10),\n\t\t\tLbListenerId:           listener1.LbListenerV2Id,\n\t\t\tScalingConfigurationId: pulumi.String(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\"),\n\t\t\tVpcId:                  exampleVpc.VpcV1Id,\n\t\t\tDeletePublicip:         pulumi.Bool(true),\n\t\t\tDeleteInstances:        pulumi.String(\"yes\"),\n\t\t\tNetworks: flexibleengine.AsGroupNetworkArray{\n\t\t\t\t&flexibleengine.AsGroupNetworkArgs{\n\t\t\t\t\tId: exampleSubnet.VpcSubnetV1Id,\n\t\t\t\t},\n\t\t\t},\n\t\t\tSecurityGroups: flexibleengine.AsGroupSecurityGroupArray{\n\t\t\t\t&flexibleengine.AsGroupSecurityGroupArgs{\n\t\t\t\t\tId: pulumi.String(\"45e4c6de-6bf0-4843-8953-2babde3d4810\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.LbLoadbalancerV2;\nimport com.pulumi.flexibleengine.LbLoadbalancerV2Args;\nimport com.pulumi.flexibleengine.LbListenerV2;\nimport com.pulumi.flexibleengine.LbListenerV2Args;\nimport com.pulumi.flexibleengine.AsGroup;\nimport com.pulumi.flexibleengine.AsGroupArgs;\nimport com.pulumi.flexibleengine.inputs.AsGroupNetworkArgs;\nimport com.pulumi.flexibleengine.inputs.AsGroupSecurityGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var lb1 = new LbLoadbalancerV2(\"lb1\", LbLoadbalancerV2Args.builder()\n            .vipSubnetId(exampleSubnet.ipv4SubnetId())\n            .build());\n\n        var listener1 = new LbListenerV2(\"listener1\", LbListenerV2Args.builder()\n            .protocol(\"HTTP\")\n            .protocolPort(8080)\n            .loadbalancerId(lb1.lbLoadbalancerV2Id())\n            .build());\n\n        var myAsGroupWithElb = new AsGroup(\"myAsGroupWithElb\", AsGroupArgs.builder()\n            .scalingGroupName(\"my_as_group_with_elb\")\n            .desireInstanceNumber(2)\n            .minInstanceNumber(0)\n            .maxInstanceNumber(10)\n            .lbListenerId(listener1.lbListenerV2Id())\n            .scalingConfigurationId(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .deletePublicip(true)\n            .deleteInstances(\"yes\")\n            .networks(AsGroupNetworkArgs.builder()\n                .id(exampleSubnet.vpcSubnetV1Id())\n                .build())\n            .securityGroups(AsGroupSecurityGroupArgs.builder()\n                .id(\"45e4c6de-6bf0-4843-8953-2babde3d4810\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  lb1:\n    type: flexibleengine:LbLoadbalancerV2\n    properties:\n      vipSubnetId: ${exampleSubnet.ipv4SubnetId}\n  listener1:\n    type: flexibleengine:LbListenerV2\n    properties:\n      protocol: HTTP\n      protocolPort: 8080\n      loadbalancerId: ${lb1.lbLoadbalancerV2Id}\n  myAsGroupWithElb:\n    type: flexibleengine:AsGroup\n    properties:\n      scalingGroupName: my_as_group_with_elb\n      desireInstanceNumber: 2\n      minInstanceNumber: 0\n      maxInstanceNumber: 10\n      lbListenerId: ${listener1.lbListenerV2Id}\n      scalingConfigurationId: 37e310f5-db9d-446e-9135-c625f9c2bbfc\n      vpcId: ${exampleVpc.vpcV1Id}\n      deletePublicip: true\n      deleteInstances: yes\n      networks:\n        - id: ${exampleSubnet.vpcSubnetV1Id}\n      securityGroups:\n        - id: 45e4c6de-6bf0-4843-8953-2babde3d4810\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "asGroupId": {
          "type": "string"
        },
        "availableZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The availability zones in which to create\nthe instances in the autoscaling group.\n"
        },
        "coolDownTime": {
          "type": "number",
          "description": "The cooling duration (in seconds). The value ranges\nfrom 0 to 86400, and is 900 by default.\n"
        },
        "currentInstanceNumber": {
          "type": "number",
          "description": "Indicates the number of current instances in the AS group.\n"
        },
        "deleteInstances": {
          "type": "string",
          "description": "Whether to delete the instances in the AS group\nwhen deleting the AS group. The options are `yes` and `no`.\n"
        },
        "deletePublicip": {
          "type": "boolean",
          "description": "Whether to delete the elastic IP address bound to the\ninstances of AS group when deleting the instances. The options are `true` and `false`.\n"
        },
        "desireInstanceNumber": {
          "type": "number",
          "description": "The expected number of instances. The default\nvalue is the minimum number of instances. The value ranges from the minimum number of\ninstances to the maximum number of instances.\n"
        },
        "forceDelete": {
          "type": "boolean",
          "description": "Whether to forcibly delete the AS group, remove the ECS instances and release them.\nThe default value is `false`.\n"
        },
        "healthPeriodicAuditMethod": {
          "type": "string",
          "description": "The health check method for instances\nin the AS group. The health check methods include `ELB_AUDIT` and `NOVA_AUDIT`.\nIf load balancing is configured, the default value of this parameter is `ELB_AUDIT`.\nOtherwise, the default value is `NOVA_AUDIT`.\n"
        },
        "healthPeriodicAuditTime": {
          "type": "number",
          "description": "The health check period for instances.\nThe period has four options: 5 minutes (default), 15 minutes, 60 minutes, and 180 minutes.\n"
        },
        "instanceTerminatePolicy": {
          "type": "string",
          "description": "The instance removal policy. The policy has\nfour options: `OLD_CONFIG_OLD_INSTANCE` (default), `OLD_CONFIG_NEW_INSTANCE`,\n`OLD_INSTANCE`, and `NEW_INSTANCE`.\n"
        },
        "instances": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The instances IDs of the AS group.\n"
        },
        "lbListenerId": {
          "type": "string",
          "description": "The ELB listener IDs. The system supports up to\nsix ELB listeners, the IDs of which are separated using a comma (,).\n"
        },
        "lbaasListeners": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupLbaasListener:AsGroupLbaasListener"
          },
          "description": "An array of one or more enhanced load balancer.\nThe system supports the binding of up to six load balancers. The field is\nalternative to `lb_listener_id`.  The object structure is documented below.\n"
        },
        "maxInstanceNumber": {
          "type": "number",
          "description": "The maximum number of instances.\nThe default value is 0.\n"
        },
        "minInstanceNumber": {
          "type": "number",
          "description": "The minimum number of instances.\nThe default value is 0.\n"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupNetwork:AsGroupNetwork"
          },
          "description": "An array of one or more network IDs.\nThe system supports up to five networks. The networks object structure\nis documented below.\n"
        },
        "notifications": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The notification mode. The system only supports `EMAIL`\nmode which refers to notification by email.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the AS group. If\nomitted, the `region` argument of the provider is used. Changing this\ncreates a new AS group.\n"
        },
        "scalingConfigurationId": {
          "type": "string",
          "description": "The configuration ID which defines\nconfigurations of instances in the AS group.\n"
        },
        "scalingGroupName": {
          "type": "string",
          "description": "The name of the scaling group. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupSecurityGroup:AsGroupSecurityGroup"
          },
          "description": "An array of `one` security group ID to\nassociate with the group. The security_groups object structure is\ndocumented below.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the status of the AS group.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the scaling group.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FAsGroupTimeouts:AsGroupTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "The VPC ID. Changing this creates a new group.\n"
        }
      },
      "type": "object",
      "required": [
        "asGroupId",
        "currentInstanceNumber",
        "desireInstanceNumber",
        "instances",
        "networks",
        "region",
        "scalingConfigurationId",
        "scalingGroupName",
        "securityGroups",
        "status",
        "vpcId"
      ],
      "inputProperties": {
        "asGroupId": {
          "type": "string"
        },
        "availableZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The availability zones in which to create\nthe instances in the autoscaling group.\n"
        },
        "coolDownTime": {
          "type": "number",
          "description": "The cooling duration (in seconds). The value ranges\nfrom 0 to 86400, and is 900 by default.\n"
        },
        "deleteInstances": {
          "type": "string",
          "description": "Whether to delete the instances in the AS group\nwhen deleting the AS group. The options are `yes` and `no`.\n"
        },
        "deletePublicip": {
          "type": "boolean",
          "description": "Whether to delete the elastic IP address bound to the\ninstances of AS group when deleting the instances. The options are `true` and `false`.\n"
        },
        "desireInstanceNumber": {
          "type": "number",
          "description": "The expected number of instances. The default\nvalue is the minimum number of instances. The value ranges from the minimum number of\ninstances to the maximum number of instances.\n"
        },
        "forceDelete": {
          "type": "boolean",
          "description": "Whether to forcibly delete the AS group, remove the ECS instances and release them.\nThe default value is `false`.\n"
        },
        "healthPeriodicAuditMethod": {
          "type": "string",
          "description": "The health check method for instances\nin the AS group. The health check methods include `ELB_AUDIT` and `NOVA_AUDIT`.\nIf load balancing is configured, the default value of this parameter is `ELB_AUDIT`.\nOtherwise, the default value is `NOVA_AUDIT`.\n"
        },
        "healthPeriodicAuditTime": {
          "type": "number",
          "description": "The health check period for instances.\nThe period has four options: 5 minutes (default), 15 minutes, 60 minutes, and 180 minutes.\n"
        },
        "instanceTerminatePolicy": {
          "type": "string",
          "description": "The instance removal policy. The policy has\nfour options: `OLD_CONFIG_OLD_INSTANCE` (default), `OLD_CONFIG_NEW_INSTANCE`,\n`OLD_INSTANCE`, and `NEW_INSTANCE`.\n"
        },
        "lbListenerId": {
          "type": "string",
          "description": "The ELB listener IDs. The system supports up to\nsix ELB listeners, the IDs of which are separated using a comma (,).\n"
        },
        "lbaasListeners": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupLbaasListener:AsGroupLbaasListener"
          },
          "description": "An array of one or more enhanced load balancer.\nThe system supports the binding of up to six load balancers. The field is\nalternative to `lb_listener_id`.  The object structure is documented below.\n"
        },
        "maxInstanceNumber": {
          "type": "number",
          "description": "The maximum number of instances.\nThe default value is 0.\n"
        },
        "minInstanceNumber": {
          "type": "number",
          "description": "The minimum number of instances.\nThe default value is 0.\n"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupNetwork:AsGroupNetwork"
          },
          "description": "An array of one or more network IDs.\nThe system supports up to five networks. The networks object structure\nis documented below.\n"
        },
        "notifications": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The notification mode. The system only supports `EMAIL`\nmode which refers to notification by email.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the AS group. If\nomitted, the `region` argument of the provider is used. Changing this\ncreates a new AS group.\n"
        },
        "scalingConfigurationId": {
          "type": "string",
          "description": "The configuration ID which defines\nconfigurations of instances in the AS group.\n"
        },
        "scalingGroupName": {
          "type": "string",
          "description": "The name of the scaling group. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupSecurityGroup:AsGroupSecurityGroup"
          },
          "description": "An array of `one` security group ID to\nassociate with the group. The security_groups object structure is\ndocumented below.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the scaling group.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FAsGroupTimeouts:AsGroupTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "The VPC ID. Changing this creates a new group.\n"
        }
      },
      "requiredInputs": [
        "networks",
        "scalingGroupName",
        "securityGroups",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AsGroup resources.\n",
        "properties": {
          "asGroupId": {
            "type": "string"
          },
          "availableZones": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The availability zones in which to create\nthe instances in the autoscaling group.\n"
          },
          "coolDownTime": {
            "type": "number",
            "description": "The cooling duration (in seconds). The value ranges\nfrom 0 to 86400, and is 900 by default.\n"
          },
          "currentInstanceNumber": {
            "type": "number",
            "description": "Indicates the number of current instances in the AS group.\n"
          },
          "deleteInstances": {
            "type": "string",
            "description": "Whether to delete the instances in the AS group\nwhen deleting the AS group. The options are `yes` and `no`.\n"
          },
          "deletePublicip": {
            "type": "boolean",
            "description": "Whether to delete the elastic IP address bound to the\ninstances of AS group when deleting the instances. The options are `true` and `false`.\n"
          },
          "desireInstanceNumber": {
            "type": "number",
            "description": "The expected number of instances. The default\nvalue is the minimum number of instances. The value ranges from the minimum number of\ninstances to the maximum number of instances.\n"
          },
          "forceDelete": {
            "type": "boolean",
            "description": "Whether to forcibly delete the AS group, remove the ECS instances and release them.\nThe default value is `false`.\n"
          },
          "healthPeriodicAuditMethod": {
            "type": "string",
            "description": "The health check method for instances\nin the AS group. The health check methods include `ELB_AUDIT` and `NOVA_AUDIT`.\nIf load balancing is configured, the default value of this parameter is `ELB_AUDIT`.\nOtherwise, the default value is `NOVA_AUDIT`.\n"
          },
          "healthPeriodicAuditTime": {
            "type": "number",
            "description": "The health check period for instances.\nThe period has four options: 5 minutes (default), 15 minutes, 60 minutes, and 180 minutes.\n"
          },
          "instanceTerminatePolicy": {
            "type": "string",
            "description": "The instance removal policy. The policy has\nfour options: `OLD_CONFIG_OLD_INSTANCE` (default), `OLD_CONFIG_NEW_INSTANCE`,\n`OLD_INSTANCE`, and `NEW_INSTANCE`.\n"
          },
          "instances": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The instances IDs of the AS group.\n"
          },
          "lbListenerId": {
            "type": "string",
            "description": "The ELB listener IDs. The system supports up to\nsix ELB listeners, the IDs of which are separated using a comma (,).\n"
          },
          "lbaasListeners": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FAsGroupLbaasListener:AsGroupLbaasListener"
            },
            "description": "An array of one or more enhanced load balancer.\nThe system supports the binding of up to six load balancers. The field is\nalternative to `lb_listener_id`.  The object structure is documented below.\n"
          },
          "maxInstanceNumber": {
            "type": "number",
            "description": "The maximum number of instances.\nThe default value is 0.\n"
          },
          "minInstanceNumber": {
            "type": "number",
            "description": "The minimum number of instances.\nThe default value is 0.\n"
          },
          "networks": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FAsGroupNetwork:AsGroupNetwork"
            },
            "description": "An array of one or more network IDs.\nThe system supports up to five networks. The networks object structure\nis documented below.\n"
          },
          "notifications": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The notification mode. The system only supports `EMAIL`\nmode which refers to notification by email.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the AS group. If\nomitted, the `region` argument of the provider is used. Changing this\ncreates a new AS group.\n"
          },
          "scalingConfigurationId": {
            "type": "string",
            "description": "The configuration ID which defines\nconfigurations of instances in the AS group.\n"
          },
          "scalingGroupName": {
            "type": "string",
            "description": "The name of the scaling group. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n"
          },
          "securityGroups": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FAsGroupSecurityGroup:AsGroupSecurityGroup"
            },
            "description": "An array of `one` security group ID to\nassociate with the group. The security_groups object structure is\ndocumented below.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the status of the AS group.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the scaling group.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupTimeouts:AsGroupTimeouts"
          },
          "vpcId": {
            "type": "string",
            "description": "The VPC ID. Changing this creates a new group.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/asGroupV1:AsGroupV1": {
      "properties": {
        "asGroupV1Id": {
          "type": "string"
        },
        "availableZones": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "coolDownTime": {
          "type": "number",
          "description": "The cooling duration, in seconds.\n"
        },
        "currentInstanceNumber": {
          "type": "number"
        },
        "deleteInstances": {
          "type": "string",
          "description": "Whether to delete instances when they are removed from the AS group.\n"
        },
        "deletePublicip": {
          "type": "boolean"
        },
        "desireInstanceNumber": {
          "type": "number"
        },
        "forceDelete": {
          "type": "boolean"
        },
        "healthPeriodicAuditMethod": {
          "type": "string"
        },
        "healthPeriodicAuditTime": {
          "type": "number",
          "description": "The health check period for instances, in minutes.\n"
        },
        "instanceTerminatePolicy": {
          "type": "string"
        },
        "instances": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The instances id list in the as group.\n"
        },
        "lbListenerId": {
          "type": "string",
          "description": "The system supports the binding of up to six ELB listeners, the IDs of which are separated using a comma.\n"
        },
        "lbaasListeners": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupV1LbaasListener:AsGroupV1LbaasListener"
          }
        },
        "maxInstanceNumber": {
          "type": "number"
        },
        "minInstanceNumber": {
          "type": "number"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupV1Network:AsGroupV1Network"
          }
        },
        "notifications": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "region": {
          "type": "string"
        },
        "scalingConfigurationId": {
          "type": "string"
        },
        "scalingGroupName": {
          "type": "string"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupV1SecurityGroup:AsGroupV1SecurityGroup"
          }
        },
        "status": {
          "type": "string"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FAsGroupV1Timeouts:AsGroupV1Timeouts"
        },
        "vpcId": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "asGroupV1Id",
        "currentInstanceNumber",
        "desireInstanceNumber",
        "instances",
        "networks",
        "region",
        "scalingConfigurationId",
        "scalingGroupName",
        "securityGroups",
        "status",
        "vpcId"
      ],
      "inputProperties": {
        "asGroupV1Id": {
          "type": "string"
        },
        "availableZones": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "coolDownTime": {
          "type": "number",
          "description": "The cooling duration, in seconds.\n"
        },
        "deleteInstances": {
          "type": "string",
          "description": "Whether to delete instances when they are removed from the AS group.\n"
        },
        "deletePublicip": {
          "type": "boolean"
        },
        "desireInstanceNumber": {
          "type": "number"
        },
        "forceDelete": {
          "type": "boolean"
        },
        "healthPeriodicAuditMethod": {
          "type": "string"
        },
        "healthPeriodicAuditTime": {
          "type": "number",
          "description": "The health check period for instances, in minutes.\n"
        },
        "instanceTerminatePolicy": {
          "type": "string"
        },
        "lbListenerId": {
          "type": "string",
          "description": "The system supports the binding of up to six ELB listeners, the IDs of which are separated using a comma.\n"
        },
        "lbaasListeners": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupV1LbaasListener:AsGroupV1LbaasListener"
          }
        },
        "maxInstanceNumber": {
          "type": "number"
        },
        "minInstanceNumber": {
          "type": "number"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupV1Network:AsGroupV1Network"
          }
        },
        "notifications": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "region": {
          "type": "string"
        },
        "scalingConfigurationId": {
          "type": "string"
        },
        "scalingGroupName": {
          "type": "string"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupV1SecurityGroup:AsGroupV1SecurityGroup"
          }
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FAsGroupV1Timeouts:AsGroupV1Timeouts"
        },
        "vpcId": {
          "type": "string"
        }
      },
      "requiredInputs": [
        "networks",
        "scalingGroupName",
        "securityGroups",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AsGroupV1 resources.\n",
        "properties": {
          "asGroupV1Id": {
            "type": "string"
          },
          "availableZones": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "coolDownTime": {
            "type": "number",
            "description": "The cooling duration, in seconds.\n"
          },
          "currentInstanceNumber": {
            "type": "number"
          },
          "deleteInstances": {
            "type": "string",
            "description": "Whether to delete instances when they are removed from the AS group.\n"
          },
          "deletePublicip": {
            "type": "boolean"
          },
          "desireInstanceNumber": {
            "type": "number"
          },
          "forceDelete": {
            "type": "boolean"
          },
          "healthPeriodicAuditMethod": {
            "type": "string"
          },
          "healthPeriodicAuditTime": {
            "type": "number",
            "description": "The health check period for instances, in minutes.\n"
          },
          "instanceTerminatePolicy": {
            "type": "string"
          },
          "instances": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The instances id list in the as group.\n"
          },
          "lbListenerId": {
            "type": "string",
            "description": "The system supports the binding of up to six ELB listeners, the IDs of which are separated using a comma.\n"
          },
          "lbaasListeners": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FAsGroupV1LbaasListener:AsGroupV1LbaasListener"
            }
          },
          "maxInstanceNumber": {
            "type": "number"
          },
          "minInstanceNumber": {
            "type": "number"
          },
          "networks": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FAsGroupV1Network:AsGroupV1Network"
            }
          },
          "notifications": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "region": {
            "type": "string"
          },
          "scalingConfigurationId": {
            "type": "string"
          },
          "scalingGroupName": {
            "type": "string"
          },
          "securityGroups": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FAsGroupV1SecurityGroup:AsGroupV1SecurityGroup"
            }
          },
          "status": {
            "type": "string"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FAsGroupV1Timeouts:AsGroupV1Timeouts"
          },
          "vpcId": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/asInstanceAttach:AsInstanceAttach": {
      "description": "Manages an AS instance attachment resource within FlexibleEngine.\n\n## Example Usage\n\n### Add an instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst scalingGroupId = config.requireObject(\"scalingGroupId\");\nconst ecsId = config.requireObject(\"ecsId\");\nconst test = new flexibleengine.AsInstanceAttach(\"test\", {\n    scalingGroupId: scalingGroupId,\n    instanceId: ecsId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nscaling_group_id = config.require_object(\"scalingGroupId\")\necs_id = config.require_object(\"ecsId\")\ntest = flexibleengine.AsInstanceAttach(\"test\",\n    scaling_group_id=scaling_group_id,\n    instance_id=ecs_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var scalingGroupId = config.RequireObject<dynamic>(\"scalingGroupId\");\n    var ecsId = config.RequireObject<dynamic>(\"ecsId\");\n    var test = new Flexibleengine.AsInstanceAttach(\"test\", new()\n    {\n        ScalingGroupId = scalingGroupId,\n        InstanceId = ecsId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tscalingGroupId := cfg.RequireObject(\"scalingGroupId\")\n\t\tecsId := cfg.RequireObject(\"ecsId\")\n\t\t_, err := flexibleengine.NewAsInstanceAttach(ctx, \"test\", &flexibleengine.AsInstanceAttachArgs{\n\t\t\tScalingGroupId: pulumi.Any(scalingGroupId),\n\t\t\tInstanceId:     pulumi.Any(ecsId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.AsInstanceAttach;\nimport com.pulumi.flexibleengine.AsInstanceAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var scalingGroupId = config.get(\"scalingGroupId\");\n        final var ecsId = config.get(\"ecsId\");\n        var test = new AsInstanceAttach(\"test\", AsInstanceAttachArgs.builder()\n            .scalingGroupId(scalingGroupId)\n            .instanceId(ecsId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  scalingGroupId:\n    type: dynamic\n  ecsId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:AsInstanceAttach\n    properties:\n      scalingGroupId: ${scalingGroupId}\n      instanceId: ${ecsId}\n```\n<!--End PulumiCodeChooser -->\n\n### Add an instance with protection\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst scalingGroupId = config.requireObject(\"scalingGroupId\");\nconst ecsId = config.requireObject(\"ecsId\");\nconst test = new flexibleengine.AsInstanceAttach(\"test\", {\n    scalingGroupId: scalingGroupId,\n    instanceId: ecsId,\n    \"protected\": true,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nscaling_group_id = config.require_object(\"scalingGroupId\")\necs_id = config.require_object(\"ecsId\")\ntest = flexibleengine.AsInstanceAttach(\"test\",\n    scaling_group_id=scaling_group_id,\n    instance_id=ecs_id,\n    protected=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var scalingGroupId = config.RequireObject<dynamic>(\"scalingGroupId\");\n    var ecsId = config.RequireObject<dynamic>(\"ecsId\");\n    var test = new Flexibleengine.AsInstanceAttach(\"test\", new()\n    {\n        ScalingGroupId = scalingGroupId,\n        InstanceId = ecsId,\n        Protected = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tscalingGroupId := cfg.RequireObject(\"scalingGroupId\")\n\t\tecsId := cfg.RequireObject(\"ecsId\")\n\t\t_, err := flexibleengine.NewAsInstanceAttach(ctx, \"test\", &flexibleengine.AsInstanceAttachArgs{\n\t\t\tScalingGroupId: pulumi.Any(scalingGroupId),\n\t\t\tInstanceId:     pulumi.Any(ecsId),\n\t\t\tProtected:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.AsInstanceAttach;\nimport com.pulumi.flexibleengine.AsInstanceAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var scalingGroupId = config.get(\"scalingGroupId\");\n        final var ecsId = config.get(\"ecsId\");\n        var test = new AsInstanceAttach(\"test\", AsInstanceAttachArgs.builder()\n            .scalingGroupId(scalingGroupId)\n            .instanceId(ecsId)\n            .protected_(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  scalingGroupId:\n    type: dynamic\n  ecsId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:AsInstanceAttach\n    properties:\n      scalingGroupId: ${scalingGroupId}\n      instanceId: ${ecsId}\n      protected: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe AS instances can be imported by the `scaling_group_id` and `instance_id`, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/asInstanceAttach:AsInstanceAttach test <scaling_group_id>/<instance_id>\n```\n\nNote that the imported state may not be identical to your resource definition, due to `append_instance` is missing from\n\nthe API response.\n\nIt is generally recommended running `pulumi preview` after importing the resource.\n\nYou can then decide if changes should be applied to the resource, or the resource definition should be updated to\n\nalign with the resource. Also you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_as_instance_attach\" \"test\" {\n\n  ...\n\n  lifecycle {\n\n    ignore_changes = [append_instance]\n\n  }\n\n}\n\n",
      "properties": {
        "appendInstance": {
          "type": "boolean",
          "description": "Specifies whether to add a new instance when the instance enter standby mode.\nThis parameter takes effect only when `standby` is set to true.\n"
        },
        "asInstanceAttachId": {
          "type": "string",
          "description": "The resource ID in format of `scaling_group_id`/`instance_id`.\n"
        },
        "healthStatus": {
          "type": "string",
          "description": "The instance health status. The value can be `INITIALIZING`, `NORMAL` or `ERROR`.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ECS instance ID.\nChanging this creates a new resource.\n\n<!--markdownlint-disable MD033-->\n> Before adding instances to an AS group, ensure that the following conditions are met:\n<br/>1. The instance is not in other AS groups.\n<br/>2. The instance is in the same VPC as the AS group.\n<br/>3. The instance is in the AZs used by the AS group.\n<br/>4. After the instance is added, the total number of instances is less than or equal to the maximum number of\ninstances allowed.\n"
        },
        "instanceName": {
          "type": "string",
          "description": "The ECS instance name.\n"
        },
        "protected": {
          "type": "boolean",
          "description": "Specifies whether the instance can be removed **automatically** from the AS group.\nOnce configured, when AS automatically scales in the AS group, the instance that is protected will not be removed.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "scalingGroupId": {
          "type": "string",
          "description": "Specifies the AS group ID.\nChanging this creates a new resource.\n"
        },
        "standby": {
          "type": "boolean",
          "description": "Specifies whether to stop distributing traffic to the instance but do not want to remove\nit from the AS group. You can stop or restart the instance without worrying about it will be removed from the AS group.\n"
        },
        "status": {
          "type": "string",
          "description": "The instance lifecycle status in the AS group. The value can be `INSERVICE`, `STANDBY`, `PENDING` or `REMOVING`.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FAsInstanceAttachTimeouts:AsInstanceAttachTimeouts"
        }
      },
      "type": "object",
      "required": [
        "asInstanceAttachId",
        "healthStatus",
        "instanceId",
        "instanceName",
        "protected",
        "region",
        "scalingGroupId",
        "standby",
        "status"
      ],
      "inputProperties": {
        "appendInstance": {
          "type": "boolean",
          "description": "Specifies whether to add a new instance when the instance enter standby mode.\nThis parameter takes effect only when `standby` is set to true.\n"
        },
        "asInstanceAttachId": {
          "type": "string",
          "description": "The resource ID in format of `scaling_group_id`/`instance_id`.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ECS instance ID.\nChanging this creates a new resource.\n\n<!--markdownlint-disable MD033-->\n> Before adding instances to an AS group, ensure that the following conditions are met:\n<br/>1. The instance is not in other AS groups.\n<br/>2. The instance is in the same VPC as the AS group.\n<br/>3. The instance is in the AZs used by the AS group.\n<br/>4. After the instance is added, the total number of instances is less than or equal to the maximum number of\ninstances allowed.\n"
        },
        "protected": {
          "type": "boolean",
          "description": "Specifies whether the instance can be removed **automatically** from the AS group.\nOnce configured, when AS automatically scales in the AS group, the instance that is protected will not be removed.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "scalingGroupId": {
          "type": "string",
          "description": "Specifies the AS group ID.\nChanging this creates a new resource.\n"
        },
        "standby": {
          "type": "boolean",
          "description": "Specifies whether to stop distributing traffic to the instance but do not want to remove\nit from the AS group. You can stop or restart the instance without worrying about it will be removed from the AS group.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FAsInstanceAttachTimeouts:AsInstanceAttachTimeouts"
        }
      },
      "requiredInputs": [
        "instanceId",
        "scalingGroupId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AsInstanceAttach resources.\n",
        "properties": {
          "appendInstance": {
            "type": "boolean",
            "description": "Specifies whether to add a new instance when the instance enter standby mode.\nThis parameter takes effect only when `standby` is set to true.\n"
          },
          "asInstanceAttachId": {
            "type": "string",
            "description": "The resource ID in format of `scaling_group_id`/`instance_id`.\n"
          },
          "healthStatus": {
            "type": "string",
            "description": "The instance health status. The value can be `INITIALIZING`, `NORMAL` or `ERROR`.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ECS instance ID.\nChanging this creates a new resource.\n\n<!--markdownlint-disable MD033-->\n> Before adding instances to an AS group, ensure that the following conditions are met:\n<br/>1. The instance is not in other AS groups.\n<br/>2. The instance is in the same VPC as the AS group.\n<br/>3. The instance is in the AZs used by the AS group.\n<br/>4. After the instance is added, the total number of instances is less than or equal to the maximum number of\ninstances allowed.\n"
          },
          "instanceName": {
            "type": "string",
            "description": "The ECS instance name.\n"
          },
          "protected": {
            "type": "boolean",
            "description": "Specifies whether the instance can be removed **automatically** from the AS group.\nOnce configured, when AS automatically scales in the AS group, the instance that is protected will not be removed.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
          },
          "scalingGroupId": {
            "type": "string",
            "description": "Specifies the AS group ID.\nChanging this creates a new resource.\n"
          },
          "standby": {
            "type": "boolean",
            "description": "Specifies whether to stop distributing traffic to the instance but do not want to remove\nit from the AS group. You can stop or restart the instance without worrying about it will be removed from the AS group.\n"
          },
          "status": {
            "type": "string",
            "description": "The instance lifecycle status in the AS group. The value can be `INSERVICE`, `STANDBY`, `PENDING` or `REMOVING`.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FAsInstanceAttachTimeouts:AsInstanceAttachTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/asLifecycleHookV1:AsLifecycleHookV1": {
      "description": "Manages an AS Lifecycle Hook resource within FlexibleEngine.\n\n## Example Usage\n\n### Basic Lifecycle Hook\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst hookName = config.requireObject(\"hookName\");\nconst asGroupId = config.requireObject(\"asGroupId\");\nconst smnTopicUrn = config.requireObject(\"smnTopicUrn\");\nconst test = new flexibleengine.AsLifecycleHookV1(\"test\", {\n    scalingGroupId: asGroupId,\n    type: \"ADD\",\n    defaultResult: \"ABANDON\",\n    notificationTopicUrn: smnTopicUrn,\n    notificationMessage: \"This is a test message\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nhook_name = config.require_object(\"hookName\")\nas_group_id = config.require_object(\"asGroupId\")\nsmn_topic_urn = config.require_object(\"smnTopicUrn\")\ntest = flexibleengine.AsLifecycleHookV1(\"test\",\n    scaling_group_id=as_group_id,\n    type=\"ADD\",\n    default_result=\"ABANDON\",\n    notification_topic_urn=smn_topic_urn,\n    notification_message=\"This is a test message\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var hookName = config.RequireObject<dynamic>(\"hookName\");\n    var asGroupId = config.RequireObject<dynamic>(\"asGroupId\");\n    var smnTopicUrn = config.RequireObject<dynamic>(\"smnTopicUrn\");\n    var test = new Flexibleengine.AsLifecycleHookV1(\"test\", new()\n    {\n        ScalingGroupId = asGroupId,\n        Type = \"ADD\",\n        DefaultResult = \"ABANDON\",\n        NotificationTopicUrn = smnTopicUrn,\n        NotificationMessage = \"This is a test message\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\thookName := cfg.RequireObject(\"hookName\")\n\t\tasGroupId := cfg.RequireObject(\"asGroupId\")\n\t\tsmnTopicUrn := cfg.RequireObject(\"smnTopicUrn\")\n\t\t_, err := flexibleengine.NewAsLifecycleHookV1(ctx, \"test\", &flexibleengine.AsLifecycleHookV1Args{\n\t\t\tScalingGroupId:       pulumi.Any(asGroupId),\n\t\t\tType:                 pulumi.String(\"ADD\"),\n\t\t\tDefaultResult:        pulumi.String(\"ABANDON\"),\n\t\t\tNotificationTopicUrn: pulumi.Any(smnTopicUrn),\n\t\t\tNotificationMessage:  pulumi.String(\"This is a test message\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.AsLifecycleHookV1;\nimport com.pulumi.flexibleengine.AsLifecycleHookV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var hookName = config.get(\"hookName\");\n        final var asGroupId = config.get(\"asGroupId\");\n        final var smnTopicUrn = config.get(\"smnTopicUrn\");\n        var test = new AsLifecycleHookV1(\"test\", AsLifecycleHookV1Args.builder()\n            .scalingGroupId(asGroupId)\n            .type(\"ADD\")\n            .defaultResult(\"ABANDON\")\n            .notificationTopicUrn(smnTopicUrn)\n            .notificationMessage(\"This is a test message\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  hookName:\n    type: dynamic\n  asGroupId:\n    type: dynamic\n  smnTopicUrn:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:AsLifecycleHookV1\n    properties:\n      scalingGroupId: ${asGroupId}\n      type: ADD\n      defaultResult: ABANDON\n      notificationTopicUrn: ${smnTopicUrn}\n      notificationMessage: This is a test message\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLifecycle hooks can be imported using the Auto Scalling group ID `scaling_group_id` and hook Name `name` separated by a\n\nslash `/`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/asLifecycleHookV1:AsLifecycleHookV1 test <scaling_group_id>/<name>\n```\n\n",
      "properties": {
        "asLifecycleHookV1Id": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "createTime": {
          "type": "string",
          "description": "The server time in UTC format when the lifecycle hook is created.\n"
        },
        "defaultResult": {
          "type": "string",
          "description": "Specifies the default lifecycle hook callback operation.\nThis operation is performed when the timeout duration expires.\nThe valid values are *ABANDON* and *CONTINUE*, default to *ABANDON*.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the lifecycle hook name.\nThis parameter can contain a maximum of 32 characters, which may consist of letters, digits,\nunderscores (_) and hyphens (-). Changing this creates a new AS configuration.\n"
        },
        "notificationMessage": {
          "type": "string",
          "description": "Specifies a customized notification.\nThis parameter can contains a maximum of 256 characters, which cannot contain the following characters: <>&'().\n"
        },
        "notificationTopicName": {
          "type": "string",
          "description": "The topic name in SMN.\n"
        },
        "notificationTopicUrn": {
          "type": "string",
          "description": "Specifies a unique topic in SMN.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the AS lifecycle hook.\nIf omitted, the provider-level region will be used. Changing this creates a new AS lifecycle hook.\n"
        },
        "scalingGroupId": {
          "type": "string",
          "description": "Specifies the ID of the AS group in UUID format.\nChanging this creates a new AS lifecycle hook.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the lifecycle hook timeout duration, which ranges from 300 to 86400 in the\nunit of second, default to 3600.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the lifecycle hook type.\nThe valid values are following strings:\n+ `ADD`: The hook suspends the instance when the instance is started.\n+ `REMOVE`: The hook suspends the instance when the instance is terminated.\n"
        }
      },
      "type": "object",
      "required": [
        "asLifecycleHookV1Id",
        "createTime",
        "name",
        "notificationTopicName",
        "notificationTopicUrn",
        "region",
        "scalingGroupId",
        "type"
      ],
      "inputProperties": {
        "asLifecycleHookV1Id": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "defaultResult": {
          "type": "string",
          "description": "Specifies the default lifecycle hook callback operation.\nThis operation is performed when the timeout duration expires.\nThe valid values are *ABANDON* and *CONTINUE*, default to *ABANDON*.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the lifecycle hook name.\nThis parameter can contain a maximum of 32 characters, which may consist of letters, digits,\nunderscores (_) and hyphens (-). Changing this creates a new AS configuration.\n"
        },
        "notificationMessage": {
          "type": "string",
          "description": "Specifies a customized notification.\nThis parameter can contains a maximum of 256 characters, which cannot contain the following characters: <>&'().\n"
        },
        "notificationTopicUrn": {
          "type": "string",
          "description": "Specifies a unique topic in SMN.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the AS lifecycle hook.\nIf omitted, the provider-level region will be used. Changing this creates a new AS lifecycle hook.\n"
        },
        "scalingGroupId": {
          "type": "string",
          "description": "Specifies the ID of the AS group in UUID format.\nChanging this creates a new AS lifecycle hook.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the lifecycle hook timeout duration, which ranges from 300 to 86400 in the\nunit of second, default to 3600.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the lifecycle hook type.\nThe valid values are following strings:\n+ `ADD`: The hook suspends the instance when the instance is started.\n+ `REMOVE`: The hook suspends the instance when the instance is terminated.\n"
        }
      },
      "requiredInputs": [
        "notificationTopicUrn",
        "scalingGroupId",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AsLifecycleHookV1 resources.\n",
        "properties": {
          "asLifecycleHookV1Id": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "createTime": {
            "type": "string",
            "description": "The server time in UTC format when the lifecycle hook is created.\n"
          },
          "defaultResult": {
            "type": "string",
            "description": "Specifies the default lifecycle hook callback operation.\nThis operation is performed when the timeout duration expires.\nThe valid values are *ABANDON* and *CONTINUE*, default to *ABANDON*.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the lifecycle hook name.\nThis parameter can contain a maximum of 32 characters, which may consist of letters, digits,\nunderscores (_) and hyphens (-). Changing this creates a new AS configuration.\n"
          },
          "notificationMessage": {
            "type": "string",
            "description": "Specifies a customized notification.\nThis parameter can contains a maximum of 256 characters, which cannot contain the following characters: <>&'().\n"
          },
          "notificationTopicName": {
            "type": "string",
            "description": "The topic name in SMN.\n"
          },
          "notificationTopicUrn": {
            "type": "string",
            "description": "Specifies a unique topic in SMN.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the AS lifecycle hook.\nIf omitted, the provider-level region will be used. Changing this creates a new AS lifecycle hook.\n"
          },
          "scalingGroupId": {
            "type": "string",
            "description": "Specifies the ID of the AS group in UUID format.\nChanging this creates a new AS lifecycle hook.\n"
          },
          "timeout": {
            "type": "number",
            "description": "Specifies the lifecycle hook timeout duration, which ranges from 300 to 86400 in the\nunit of second, default to 3600.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the lifecycle hook type.\nThe valid values are following strings:\n+ `ADD`: The hook suspends the instance when the instance is started.\n+ `REMOVE`: The hook suspends the instance when the instance is terminated.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/asNotification:AsNotification": {
      "description": "Manages an AS notification resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst scalingGroupId = config.requireObject(\"scalingGroupId\");\nconst topicUrn = config.requireObject(\"topicUrn\");\nconst events = config.requireObject<Array<string>>(\"events\");\nconst test = new flexibleengine.AsNotification(\"test\", {\n    scalingGroupId: scalingGroupId,\n    topicUrn: topicUrn,\n    events: events,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nscaling_group_id = config.require_object(\"scalingGroupId\")\ntopic_urn = config.require_object(\"topicUrn\")\nevents = config.require_object(\"events\")\ntest = flexibleengine.AsNotification(\"test\",\n    scaling_group_id=scaling_group_id,\n    topic_urn=topic_urn,\n    events=events)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var scalingGroupId = config.RequireObject<dynamic>(\"scalingGroupId\");\n    var topicUrn = config.RequireObject<dynamic>(\"topicUrn\");\n    var events = config.RequireObject<string[]>(\"events\");\n    var test = new Flexibleengine.AsNotification(\"test\", new()\n    {\n        ScalingGroupId = scalingGroupId,\n        TopicUrn = topicUrn,\n        Events = events,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tscalingGroupId := cfg.RequireObject(\"scalingGroupId\")\n\t\ttopicUrn := cfg.RequireObject(\"topicUrn\")\n\t\tevents := cfg.Require(\"events\")\n\t\t_, err := flexibleengine.NewAsNotification(ctx, \"test\", &flexibleengine.AsNotificationArgs{\n\t\t\tScalingGroupId: pulumi.Any(scalingGroupId),\n\t\t\tTopicUrn:       pulumi.Any(topicUrn),\n\t\t\tEvents:         events,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.AsNotification;\nimport com.pulumi.flexibleengine.AsNotificationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var scalingGroupId = config.get(\"scalingGroupId\");\n        final var topicUrn = config.get(\"topicUrn\");\n        final var events = config.get(\"events\");\n        var test = new AsNotification(\"test\", AsNotificationArgs.builder()\n            .scalingGroupId(scalingGroupId)\n            .topicUrn(topicUrn)\n            .events(events)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  scalingGroupId:\n    type: dynamic\n  topicUrn:\n    type: dynamic\n  events:\n    type: list(string)\nresources:\n  test:\n    type: flexibleengine:AsNotification\n    properties:\n      scalingGroupId: ${scalingGroupId}\n      topicUrn: ${topicUrn}\n      events: ${events}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe as notification can be imported using `scaling_group_id`, `topic_urn`, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/asNotification:AsNotification test <scaling_group_id>/<topic_urn>\n```\n\n",
      "properties": {
        "asNotificationId": {
          "type": "string",
          "description": "The unique topic URN in SMN.\n"
        },
        "events": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the topic scene of AS group. The events include `SCALING_UP`,\n`SCALING_UP_FAIL`, `SCALING_DOWN`, `SCALING_DOWN_FAIL`, `SCALING_GROUP_ABNORMAL`.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "scalingGroupId": {
          "type": "string",
          "description": "Specifies the AS group ID.\nChanging this creates a new AS notification.\n"
        },
        "topicName": {
          "type": "string",
          "description": "The topic name in SMN.\n"
        },
        "topicUrn": {
          "type": "string",
          "description": "Specifies the unique topic URN of the SMN.\nChanging this creates a new AS notification.\n"
        }
      },
      "type": "object",
      "required": [
        "asNotificationId",
        "events",
        "region",
        "scalingGroupId",
        "topicName",
        "topicUrn"
      ],
      "inputProperties": {
        "asNotificationId": {
          "type": "string",
          "description": "The unique topic URN in SMN.\n"
        },
        "events": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the topic scene of AS group. The events include `SCALING_UP`,\n`SCALING_UP_FAIL`, `SCALING_DOWN`, `SCALING_DOWN_FAIL`, `SCALING_GROUP_ABNORMAL`.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "scalingGroupId": {
          "type": "string",
          "description": "Specifies the AS group ID.\nChanging this creates a new AS notification.\n"
        },
        "topicUrn": {
          "type": "string",
          "description": "Specifies the unique topic URN of the SMN.\nChanging this creates a new AS notification.\n"
        }
      },
      "requiredInputs": [
        "events",
        "scalingGroupId",
        "topicUrn"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AsNotification resources.\n",
        "properties": {
          "asNotificationId": {
            "type": "string",
            "description": "The unique topic URN in SMN.\n"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the topic scene of AS group. The events include `SCALING_UP`,\n`SCALING_UP_FAIL`, `SCALING_DOWN`, `SCALING_DOWN_FAIL`, `SCALING_GROUP_ABNORMAL`.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
          },
          "scalingGroupId": {
            "type": "string",
            "description": "Specifies the AS group ID.\nChanging this creates a new AS notification.\n"
          },
          "topicName": {
            "type": "string",
            "description": "The topic name in SMN.\n"
          },
          "topicUrn": {
            "type": "string",
            "description": "Specifies the unique topic URN of the SMN.\nChanging this creates a new AS notification.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/asPolicyV1:AsPolicyV1": {
      "description": "Manages a V1 AS Policy resource within flexibleengine.\n\n## Example Usage\n\n### AS Recurrence Policy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst hthAspolicy = new flexibleengine.AsPolicyV1(\"hthAspolicy\", {\n    coolDownTime: 900,\n    scalingGroupId: \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    scalingPolicyAction: {\n        instanceNumber: 1,\n        operation: \"ADD\",\n    },\n    scalingPolicyName: \"hth_aspolicy\",\n    scalingPolicyType: \"RECURRENCE\",\n    scheduledPolicy: {\n        endTime: \"2017-12-30T12:00Z\",\n        launchTime: \"07:00\",\n        recurrenceType: \"Daily\",\n        startTime: \"2017-11-30T12:00Z\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nhth_aspolicy = flexibleengine.AsPolicyV1(\"hthAspolicy\",\n    cool_down_time=900,\n    scaling_group_id=\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    scaling_policy_action={\n        \"instance_number\": 1,\n        \"operation\": \"ADD\",\n    },\n    scaling_policy_name=\"hth_aspolicy\",\n    scaling_policy_type=\"RECURRENCE\",\n    scheduled_policy={\n        \"end_time\": \"2017-12-30T12:00Z\",\n        \"launch_time\": \"07:00\",\n        \"recurrence_type\": \"Daily\",\n        \"start_time\": \"2017-11-30T12:00Z\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var hthAspolicy = new Flexibleengine.AsPolicyV1(\"hthAspolicy\", new()\n    {\n        CoolDownTime = 900,\n        ScalingGroupId = \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n        ScalingPolicyAction = new Flexibleengine.Inputs.AsPolicyV1ScalingPolicyActionArgs\n        {\n            InstanceNumber = 1,\n            Operation = \"ADD\",\n        },\n        ScalingPolicyName = \"hth_aspolicy\",\n        ScalingPolicyType = \"RECURRENCE\",\n        ScheduledPolicy = new Flexibleengine.Inputs.AsPolicyV1ScheduledPolicyArgs\n        {\n            EndTime = \"2017-12-30T12:00Z\",\n            LaunchTime = \"07:00\",\n            RecurrenceType = \"Daily\",\n            StartTime = \"2017-11-30T12:00Z\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewAsPolicyV1(ctx, \"hthAspolicy\", &flexibleengine.AsPolicyV1Args{\n\t\t\tCoolDownTime:   pulumi.Float64(900),\n\t\t\tScalingGroupId: pulumi.String(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\"),\n\t\t\tScalingPolicyAction: &flexibleengine.AsPolicyV1ScalingPolicyActionArgs{\n\t\t\t\tInstanceNumber: pulumi.Float64(1),\n\t\t\t\tOperation:      pulumi.String(\"ADD\"),\n\t\t\t},\n\t\t\tScalingPolicyName: pulumi.String(\"hth_aspolicy\"),\n\t\t\tScalingPolicyType: pulumi.String(\"RECURRENCE\"),\n\t\t\tScheduledPolicy: &flexibleengine.AsPolicyV1ScheduledPolicyArgs{\n\t\t\t\tEndTime:        pulumi.String(\"2017-12-30T12:00Z\"),\n\t\t\t\tLaunchTime:     pulumi.String(\"07:00\"),\n\t\t\t\tRecurrenceType: pulumi.String(\"Daily\"),\n\t\t\t\tStartTime:      pulumi.String(\"2017-11-30T12:00Z\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.AsPolicyV1;\nimport com.pulumi.flexibleengine.AsPolicyV1Args;\nimport com.pulumi.flexibleengine.inputs.AsPolicyV1ScalingPolicyActionArgs;\nimport com.pulumi.flexibleengine.inputs.AsPolicyV1ScheduledPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var hthAspolicy = new AsPolicyV1(\"hthAspolicy\", AsPolicyV1Args.builder()\n            .coolDownTime(900)\n            .scalingGroupId(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\")\n            .scalingPolicyAction(AsPolicyV1ScalingPolicyActionArgs.builder()\n                .instanceNumber(1)\n                .operation(\"ADD\")\n                .build())\n            .scalingPolicyName(\"hth_aspolicy\")\n            .scalingPolicyType(\"RECURRENCE\")\n            .scheduledPolicy(AsPolicyV1ScheduledPolicyArgs.builder()\n                .endTime(\"2017-12-30T12:00Z\")\n                .launchTime(\"07:00\")\n                .recurrenceType(\"Daily\")\n                .startTime(\"2017-11-30T12:00Z\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  hthAspolicy:\n    type: flexibleengine:AsPolicyV1\n    properties:\n      coolDownTime: 900\n      scalingGroupId: 4579f2f5-cbe8-425a-8f32-53dcb9d9053a\n      scalingPolicyAction:\n        instanceNumber: 1\n        operation: ADD\n      scalingPolicyName: hth_aspolicy\n      scalingPolicyType: RECURRENCE\n      scheduledPolicy:\n        endTime: 2017-12-30T12:00Z\n        launchTime: 07:00\n        recurrenceType: Daily\n        startTime: 2017-11-30T12:00Z\n```\n<!--End PulumiCodeChooser -->\n\n### AS Scheduled Policy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst hthAspolicy1 = new flexibleengine.AsPolicyV1(\"hthAspolicy1\", {\n    coolDownTime: 900,\n    scalingGroupId: \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    scalingPolicyAction: {\n        instanceNumber: 1,\n        operation: \"REMOVE\",\n    },\n    scalingPolicyName: \"hth_aspolicy_1\",\n    scalingPolicyType: \"SCHEDULED\",\n    scheduledPolicy: {\n        launchTime: \"2017-12-22T12:00Z\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nhth_aspolicy1 = flexibleengine.AsPolicyV1(\"hthAspolicy1\",\n    cool_down_time=900,\n    scaling_group_id=\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    scaling_policy_action={\n        \"instance_number\": 1,\n        \"operation\": \"REMOVE\",\n    },\n    scaling_policy_name=\"hth_aspolicy_1\",\n    scaling_policy_type=\"SCHEDULED\",\n    scheduled_policy={\n        \"launch_time\": \"2017-12-22T12:00Z\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var hthAspolicy1 = new Flexibleengine.AsPolicyV1(\"hthAspolicy1\", new()\n    {\n        CoolDownTime = 900,\n        ScalingGroupId = \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n        ScalingPolicyAction = new Flexibleengine.Inputs.AsPolicyV1ScalingPolicyActionArgs\n        {\n            InstanceNumber = 1,\n            Operation = \"REMOVE\",\n        },\n        ScalingPolicyName = \"hth_aspolicy_1\",\n        ScalingPolicyType = \"SCHEDULED\",\n        ScheduledPolicy = new Flexibleengine.Inputs.AsPolicyV1ScheduledPolicyArgs\n        {\n            LaunchTime = \"2017-12-22T12:00Z\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewAsPolicyV1(ctx, \"hthAspolicy1\", &flexibleengine.AsPolicyV1Args{\n\t\t\tCoolDownTime:   pulumi.Float64(900),\n\t\t\tScalingGroupId: pulumi.String(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\"),\n\t\t\tScalingPolicyAction: &flexibleengine.AsPolicyV1ScalingPolicyActionArgs{\n\t\t\t\tInstanceNumber: pulumi.Float64(1),\n\t\t\t\tOperation:      pulumi.String(\"REMOVE\"),\n\t\t\t},\n\t\t\tScalingPolicyName: pulumi.String(\"hth_aspolicy_1\"),\n\t\t\tScalingPolicyType: pulumi.String(\"SCHEDULED\"),\n\t\t\tScheduledPolicy: &flexibleengine.AsPolicyV1ScheduledPolicyArgs{\n\t\t\t\tLaunchTime: pulumi.String(\"2017-12-22T12:00Z\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.AsPolicyV1;\nimport com.pulumi.flexibleengine.AsPolicyV1Args;\nimport com.pulumi.flexibleengine.inputs.AsPolicyV1ScalingPolicyActionArgs;\nimport com.pulumi.flexibleengine.inputs.AsPolicyV1ScheduledPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var hthAspolicy1 = new AsPolicyV1(\"hthAspolicy1\", AsPolicyV1Args.builder()\n            .coolDownTime(900)\n            .scalingGroupId(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\")\n            .scalingPolicyAction(AsPolicyV1ScalingPolicyActionArgs.builder()\n                .instanceNumber(1)\n                .operation(\"REMOVE\")\n                .build())\n            .scalingPolicyName(\"hth_aspolicy_1\")\n            .scalingPolicyType(\"SCHEDULED\")\n            .scheduledPolicy(AsPolicyV1ScheduledPolicyArgs.builder()\n                .launchTime(\"2017-12-22T12:00Z\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  hthAspolicy1:\n    type: flexibleengine:AsPolicyV1\n    properties:\n      coolDownTime: 900\n      scalingGroupId: 4579f2f5-cbe8-425a-8f32-53dcb9d9053a\n      scalingPolicyAction:\n        instanceNumber: 1\n        operation: REMOVE\n      scalingPolicyName: hth_aspolicy_1\n      scalingPolicyType: SCHEDULED\n      scheduledPolicy:\n        launchTime: 2017-12-22T12:00Z\n```\n<!--End PulumiCodeChooser -->\n\nPlease note that the `launch_time` of the `SCHEDULED` policy cannot be earlier than the current time.\n\n### AS Alarm Policy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst hthAspolicy2 = new flexibleengine.AsPolicyV1(\"hthAspolicy2\", {\n    alarmId: \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    coolDownTime: 900,\n    scalingGroupId: \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    scalingPolicyAction: {\n        instanceNumber: 1,\n        operation: \"ADD\",\n    },\n    scalingPolicyName: \"hth_aspolicy_2\",\n    scalingPolicyType: \"ALARM\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nhth_aspolicy2 = flexibleengine.AsPolicyV1(\"hthAspolicy2\",\n    alarm_id=\"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    cool_down_time=900,\n    scaling_group_id=\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    scaling_policy_action={\n        \"instance_number\": 1,\n        \"operation\": \"ADD\",\n    },\n    scaling_policy_name=\"hth_aspolicy_2\",\n    scaling_policy_type=\"ALARM\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var hthAspolicy2 = new Flexibleengine.AsPolicyV1(\"hthAspolicy2\", new()\n    {\n        AlarmId = \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n        CoolDownTime = 900,\n        ScalingGroupId = \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n        ScalingPolicyAction = new Flexibleengine.Inputs.AsPolicyV1ScalingPolicyActionArgs\n        {\n            InstanceNumber = 1,\n            Operation = \"ADD\",\n        },\n        ScalingPolicyName = \"hth_aspolicy_2\",\n        ScalingPolicyType = \"ALARM\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewAsPolicyV1(ctx, \"hthAspolicy2\", &flexibleengine.AsPolicyV1Args{\n\t\t\tAlarmId:        pulumi.String(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\"),\n\t\t\tCoolDownTime:   pulumi.Float64(900),\n\t\t\tScalingGroupId: pulumi.String(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\"),\n\t\t\tScalingPolicyAction: &flexibleengine.AsPolicyV1ScalingPolicyActionArgs{\n\t\t\t\tInstanceNumber: pulumi.Float64(1),\n\t\t\t\tOperation:      pulumi.String(\"ADD\"),\n\t\t\t},\n\t\t\tScalingPolicyName: pulumi.String(\"hth_aspolicy_2\"),\n\t\t\tScalingPolicyType: pulumi.String(\"ALARM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.AsPolicyV1;\nimport com.pulumi.flexibleengine.AsPolicyV1Args;\nimport com.pulumi.flexibleengine.inputs.AsPolicyV1ScalingPolicyActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var hthAspolicy2 = new AsPolicyV1(\"hthAspolicy2\", AsPolicyV1Args.builder()\n            .alarmId(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\")\n            .coolDownTime(900)\n            .scalingGroupId(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\")\n            .scalingPolicyAction(AsPolicyV1ScalingPolicyActionArgs.builder()\n                .instanceNumber(1)\n                .operation(\"ADD\")\n                .build())\n            .scalingPolicyName(\"hth_aspolicy_2\")\n            .scalingPolicyType(\"ALARM\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  hthAspolicy2:\n    type: flexibleengine:AsPolicyV1\n    properties:\n      alarmId: 37e310f5-db9d-446e-9135-c625f9c2bbfc\n      coolDownTime: 900\n      scalingGroupId: 4579f2f5-cbe8-425a-8f32-53dcb9d9053a\n      scalingPolicyAction:\n        instanceNumber: 1\n        operation: ADD\n      scalingPolicyName: hth_aspolicy_2\n      scalingPolicyType: ALARM\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAuto Scaling policy can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/asPolicyV1:AsPolicyV1 hth_aspolicy 5f3b5f5e-1b5f-4b5a-8f32-53dcb9d9053a\n```\n\n",
      "properties": {
        "alarmId": {
          "type": "string",
          "description": "The alarm rule ID. This argument is mandatory\nwhen `scaling_policy_type` is set to `ALARM`.\n"
        },
        "asPolicyV1Id": {
          "type": "string"
        },
        "coolDownTime": {
          "type": "number",
          "description": "The cooling duration (in seconds), and is 900 by default.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the AS policy. If\nomitted, the `region` argument of the provider is used. Changing this\ncreates a new AS policy.\n"
        },
        "scalingGroupId": {
          "type": "string",
          "description": "The AS group ID. Changing this creates a new AS policy.\n"
        },
        "scalingPolicyAction": {
          "$ref": "#/types/flexibleengine:index%2FAsPolicyV1ScalingPolicyAction:AsPolicyV1ScalingPolicyAction",
          "description": "The action of the AS policy. The scaling_policy_action\nstructure is documented below.\n"
        },
        "scalingPolicyName": {
          "type": "string",
          "description": "The name of the AS policy. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n"
        },
        "scalingPolicyType": {
          "type": "string",
          "description": "The AS policy type. The values can be `ALARM`, `SCHEDULED`,\nand `RECURRENCE`.\n"
        },
        "scheduledPolicy": {
          "$ref": "#/types/flexibleengine:index%2FAsPolicyV1ScheduledPolicy:AsPolicyV1ScheduledPolicy",
          "description": "The periodic or scheduled AS policy. This argument is mandatory\nwhen `scaling_policy_type` is set to `SCHEDULED` or `RECURRENCE`. The scheduled_policy structure\nis documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "asPolicyV1Id",
        "region",
        "scalingGroupId",
        "scalingPolicyName",
        "scalingPolicyType"
      ],
      "inputProperties": {
        "alarmId": {
          "type": "string",
          "description": "The alarm rule ID. This argument is mandatory\nwhen `scaling_policy_type` is set to `ALARM`.\n"
        },
        "asPolicyV1Id": {
          "type": "string"
        },
        "coolDownTime": {
          "type": "number",
          "description": "The cooling duration (in seconds), and is 900 by default.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the AS policy. If\nomitted, the `region` argument of the provider is used. Changing this\ncreates a new AS policy.\n"
        },
        "scalingGroupId": {
          "type": "string",
          "description": "The AS group ID. Changing this creates a new AS policy.\n"
        },
        "scalingPolicyAction": {
          "$ref": "#/types/flexibleengine:index%2FAsPolicyV1ScalingPolicyAction:AsPolicyV1ScalingPolicyAction",
          "description": "The action of the AS policy. The scaling_policy_action\nstructure is documented below.\n"
        },
        "scalingPolicyName": {
          "type": "string",
          "description": "The name of the AS policy. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n"
        },
        "scalingPolicyType": {
          "type": "string",
          "description": "The AS policy type. The values can be `ALARM`, `SCHEDULED`,\nand `RECURRENCE`.\n"
        },
        "scheduledPolicy": {
          "$ref": "#/types/flexibleengine:index%2FAsPolicyV1ScheduledPolicy:AsPolicyV1ScheduledPolicy",
          "description": "The periodic or scheduled AS policy. This argument is mandatory\nwhen `scaling_policy_type` is set to `SCHEDULED` or `RECURRENCE`. The scheduled_policy structure\nis documented below.\n"
        }
      },
      "requiredInputs": [
        "scalingGroupId",
        "scalingPolicyName",
        "scalingPolicyType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AsPolicyV1 resources.\n",
        "properties": {
          "alarmId": {
            "type": "string",
            "description": "The alarm rule ID. This argument is mandatory\nwhen `scaling_policy_type` is set to `ALARM`.\n"
          },
          "asPolicyV1Id": {
            "type": "string"
          },
          "coolDownTime": {
            "type": "number",
            "description": "The cooling duration (in seconds), and is 900 by default.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the AS policy. If\nomitted, the `region` argument of the provider is used. Changing this\ncreates a new AS policy.\n"
          },
          "scalingGroupId": {
            "type": "string",
            "description": "The AS group ID. Changing this creates a new AS policy.\n"
          },
          "scalingPolicyAction": {
            "$ref": "#/types/flexibleengine:index%2FAsPolicyV1ScalingPolicyAction:AsPolicyV1ScalingPolicyAction",
            "description": "The action of the AS policy. The scaling_policy_action\nstructure is documented below.\n"
          },
          "scalingPolicyName": {
            "type": "string",
            "description": "The name of the AS policy. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n"
          },
          "scalingPolicyType": {
            "type": "string",
            "description": "The AS policy type. The values can be `ALARM`, `SCHEDULED`,\nand `RECURRENCE`.\n"
          },
          "scheduledPolicy": {
            "$ref": "#/types/flexibleengine:index%2FAsPolicyV1ScheduledPolicy:AsPolicyV1ScheduledPolicy",
            "description": "The periodic or scheduled AS policy. This argument is mandatory\nwhen `scaling_policy_type` is set to `SCHEDULED` or `RECURRENCE`. The scheduled_policy structure\nis documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/blockstorageVolumeV2:BlockstorageVolumeV2": {
      "description": "Manages a V2 volume resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst volume1 = new flexibleengine.BlockstorageVolumeV2(\"volume1\", {\n    description: \"first test volume\",\n    metadata: {\n        __system__cmkid: \"kms_id\",\n        __system__encrypted: \"1\",\n    },\n    size: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nvolume1 = flexibleengine.BlockstorageVolumeV2(\"volume1\",\n    description=\"first test volume\",\n    metadata={\n        \"__system__cmkid\": \"kms_id\",\n        \"__system__encrypted\": \"1\",\n    },\n    size=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var volume1 = new Flexibleengine.BlockstorageVolumeV2(\"volume1\", new()\n    {\n        Description = \"first test volume\",\n        Metadata = \n        {\n            { \"__system__cmkid\", \"kms_id\" },\n            { \"__system__encrypted\", \"1\" },\n        },\n        Size = 3,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewBlockstorageVolumeV2(ctx, \"volume1\", &flexibleengine.BlockstorageVolumeV2Args{\n\t\t\tDescription: pulumi.String(\"first test volume\"),\n\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\"__system__cmkid\":     pulumi.String(\"kms_id\"),\n\t\t\t\t\"__system__encrypted\": pulumi.String(\"1\"),\n\t\t\t},\n\t\t\tSize: pulumi.Float64(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var volume1 = new BlockstorageVolumeV2(\"volume1\", BlockstorageVolumeV2Args.builder()\n            .description(\"first test volume\")\n            .metadata(Map.ofEntries(\n                Map.entry(\"__system__cmkid\", \"kms_id\"),\n                Map.entry(\"__system__encrypted\", \"1\")\n            ))\n            .size(3)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume1:\n    type: flexibleengine:BlockstorageVolumeV2\n    properties:\n      description: first test volume\n      metadata:\n        __system__cmkid: kms_id\n        __system__encrypted: '1'\n      size: 3\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVolumes can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/blockstorageVolumeV2:BlockstorageVolumeV2 volume_1 ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n\n",
      "properties": {
        "attachments": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FBlockstorageVolumeV2Attachment:BlockstorageVolumeV2Attachment"
          },
          "description": "If a volume is attached to an instance, this attribute will\ndisplay the Attachment ID, Instance ID, and the Device as the Instance sees it.\n"
        },
        "availabilityZone": {
          "type": "string",
          "description": "The availability zone for the volume.\nChanging this creates a new volume.\n"
        },
        "blockstorageVolumeV2Id": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "cascade": {
          "type": "boolean",
          "description": "Specifies to delete all snapshots associated with the EVS disk, Defaults to false.\n"
        },
        "consistencyGroupId": {
          "type": "string",
          "description": "The consistency group to place the volume in.\nChanging this creates a new volume.\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the volume.\nChanging this updates the volume's description.\n"
        },
        "imageId": {
          "type": "string",
          "description": "The image ID from which to create the volume.\nChanging this creates a new volume.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Metadata key/value pairs to associate with the volume.\nChanging this updates the existing volume metadata.\n\nThe EVS encryption capability with KMS key can be set with the following parameters:\n"
        },
        "multiattach": {
          "type": "boolean",
          "description": "Specifies whether the EVS disk is shareable.\n"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the volume. Changing this updates the volume's name.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the volume.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new volume.\n"
        },
        "size": {
          "type": "number",
          "description": "The size of the volume to create (in gigabytes).\n"
        },
        "snapshotId": {
          "type": "string",
          "description": "The snapshot ID from which to create the volume.\nChanging this creates a new volume.\n"
        },
        "sourceReplica": {
          "type": "string",
          "description": "The volume ID to replicate with.\nChanging this creates a new volume.\n"
        },
        "sourceVolId": {
          "type": "string",
          "description": "The volume ID from which to create the volume.\nChanging this creates a new volume.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the volume.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FBlockstorageVolumeV2Timeouts:BlockstorageVolumeV2Timeouts"
        },
        "volumeType": {
          "type": "string",
          "description": "The type of volume to create.\nChanging this creates a new volume.\n"
        }
      },
      "type": "object",
      "required": [
        "attachments",
        "availabilityZone",
        "blockstorageVolumeV2Id",
        "metadata",
        "name",
        "region",
        "size",
        "volumeType"
      ],
      "inputProperties": {
        "availabilityZone": {
          "type": "string",
          "description": "The availability zone for the volume.\nChanging this creates a new volume.\n"
        },
        "blockstorageVolumeV2Id": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "cascade": {
          "type": "boolean",
          "description": "Specifies to delete all snapshots associated with the EVS disk, Defaults to false.\n"
        },
        "consistencyGroupId": {
          "type": "string",
          "description": "The consistency group to place the volume in.\nChanging this creates a new volume.\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the volume.\nChanging this updates the volume's description.\n"
        },
        "imageId": {
          "type": "string",
          "description": "The image ID from which to create the volume.\nChanging this creates a new volume.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Metadata key/value pairs to associate with the volume.\nChanging this updates the existing volume metadata.\n\nThe EVS encryption capability with KMS key can be set with the following parameters:\n"
        },
        "multiattach": {
          "type": "boolean",
          "description": "Specifies whether the EVS disk is shareable.\n"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the volume. Changing this updates the volume's name.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the volume.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new volume.\n"
        },
        "size": {
          "type": "number",
          "description": "The size of the volume to create (in gigabytes).\n"
        },
        "snapshotId": {
          "type": "string",
          "description": "The snapshot ID from which to create the volume.\nChanging this creates a new volume.\n"
        },
        "sourceReplica": {
          "type": "string",
          "description": "The volume ID to replicate with.\nChanging this creates a new volume.\n"
        },
        "sourceVolId": {
          "type": "string",
          "description": "The volume ID from which to create the volume.\nChanging this creates a new volume.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the volume.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FBlockstorageVolumeV2Timeouts:BlockstorageVolumeV2Timeouts"
        },
        "volumeType": {
          "type": "string",
          "description": "The type of volume to create.\nChanging this creates a new volume.\n"
        }
      },
      "requiredInputs": [
        "size"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BlockstorageVolumeV2 resources.\n",
        "properties": {
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FBlockstorageVolumeV2Attachment:BlockstorageVolumeV2Attachment"
            },
            "description": "If a volume is attached to an instance, this attribute will\ndisplay the Attachment ID, Instance ID, and the Device as the Instance sees it.\n"
          },
          "availabilityZone": {
            "type": "string",
            "description": "The availability zone for the volume.\nChanging this creates a new volume.\n"
          },
          "blockstorageVolumeV2Id": {
            "type": "string",
            "description": "Specifies a resource ID in UUID format.\n"
          },
          "cascade": {
            "type": "boolean",
            "description": "Specifies to delete all snapshots associated with the EVS disk, Defaults to false.\n"
          },
          "consistencyGroupId": {
            "type": "string",
            "description": "The consistency group to place the volume in.\nChanging this creates a new volume.\n"
          },
          "description": {
            "type": "string",
            "description": "A description of the volume.\nChanging this updates the volume's description.\n"
          },
          "imageId": {
            "type": "string",
            "description": "The image ID from which to create the volume.\nChanging this creates a new volume.\n"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metadata key/value pairs to associate with the volume.\nChanging this updates the existing volume metadata.\n\nThe EVS encryption capability with KMS key can be set with the following parameters:\n"
          },
          "multiattach": {
            "type": "boolean",
            "description": "Specifies whether the EVS disk is shareable.\n"
          },
          "name": {
            "type": "string",
            "description": "A unique name for the volume. Changing this updates the volume's name.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the volume.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new volume.\n"
          },
          "size": {
            "type": "number",
            "description": "The size of the volume to create (in gigabytes).\n"
          },
          "snapshotId": {
            "type": "string",
            "description": "The snapshot ID from which to create the volume.\nChanging this creates a new volume.\n"
          },
          "sourceReplica": {
            "type": "string",
            "description": "The volume ID to replicate with.\nChanging this creates a new volume.\n"
          },
          "sourceVolId": {
            "type": "string",
            "description": "The volume ID from which to create the volume.\nChanging this creates a new volume.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the volume.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FBlockstorageVolumeV2Timeouts:BlockstorageVolumeV2Timeouts"
          },
          "volumeType": {
            "type": "string",
            "description": "The type of volume to create.\nChanging this creates a new volume.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/cbrPolicy:CbrPolicy": {
      "description": "Manages a CBR Policy resource within FlexibleEngine.\n\n## Example Usage\n\n### create a backup policy\n\n<!--Start PulumiCodeChooser -->\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CbrPolicy;\nimport com.pulumi.flexibleengine.CbrPolicyArgs;\nimport com.pulumi.flexibleengine.inputs.CbrPolicyBackupCycleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var policyName = config.get(\"policyName\");\n        var test = new CbrPolicy(\"test\", CbrPolicyArgs.builder()\n            .type(\"backup\")\n            .timePeriod(20)\n            .backupCycle(CbrPolicyBackupCycleArgs.builder()\n                .frequency(\"WEEKLY\")\n                .days(\"MO,TH\")\n                .executionTimes(\"06:00\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  policyName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:CbrPolicy\n    properties:\n      type: backup\n      timePeriod: 20\n      backupCycle:\n        frequency: WEEKLY\n        days: MO,TH\n        executionTimes:\n          - 06:00\n```\n<!--End PulumiCodeChooser -->\n\n### create a replication policy\n\n<!--Start PulumiCodeChooser -->\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CbrPolicy;\nimport com.pulumi.flexibleengine.CbrPolicyArgs;\nimport com.pulumi.flexibleengine.inputs.CbrPolicyBackupCycleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var policyName = config.get(\"policyName\");\n        final var destinationRegion = config.get(\"destinationRegion\");\n        final var destinationProjectId = config.get(\"destinationProjectId\");\n        var test = new CbrPolicy(\"test\", CbrPolicyArgs.builder()\n            .type(\"replication\")\n            .destinationRegion(destinationRegion)\n            .destinationProjectId(destinationProjectId)\n            .backupQuantity(20)\n            .backupCycle(CbrPolicyBackupCycleArgs.builder()\n                .frequency(\"DAILY\")\n                .interval(5)\n                .executionTimes(\"21:00\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  policyName:\n    type: dynamic\n  destinationRegion:\n    type: dynamic\n  destinationProjectId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:CbrPolicy\n    properties:\n      type: replication\n      destinationRegion: ${destinationRegion}\n      destinationProjectId: ${destinationProjectId}\n      backupQuantity: 20\n      backupCycle:\n        frequency: DAILY\n        interval: 5\n        executionTimes:\n          - 21:00\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPolicies can be imported by their `id`. For example,\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/cbrPolicy:CbrPolicy test 4d2c2939-774f-42ef-ab15-e5b126b11ace\n```\n\n",
      "properties": {
        "backupCycle": {
          "$ref": "#/types/flexibleengine:index%2FCbrPolicyBackupCycle:CbrPolicyBackupCycle",
          "description": "Specifies the scheduling rule for the policy backup execution.\nThe backup_cycle structure is documented below.\n"
        },
        "backupQuantity": {
          "type": "number",
          "description": "Specifies the maximum number of retained backups. The value ranges from `2` to\n`99,999`. This parameter and `time_period` are alternative.\n"
        },
        "cbrPolicyId": {
          "type": "string",
          "description": "A resource ID in UUID format.\n"
        },
        "destinationProjectId": {
          "type": "string",
          "description": "Specifies the ID of the replication destination project, which is\nmandatory for cross-region replication. Required if `protection_type` is **replication**.\n"
        },
        "destinationRegion": {
          "type": "string",
          "description": "Specifies the name of the replication destination region, which is mandatory\nfor cross-region replication. Required if `protection_type` is **replication**.\n"
        },
        "enableAcceleration": {
          "type": "boolean",
          "description": "Specifies whether to enable the acceleration function to shorten\nthe replication time for cross-region.\nChanging this will create a new policy.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies whether to enable the policy. Default to **true**.\n"
        },
        "longTermRetention": {
          "$ref": "#/types/flexibleengine:index%2FCbrPolicyLongTermRetention:CbrPolicyLongTermRetention",
          "description": "Specifies the long-term retention rules, which is an advanced options of\nthe `backup_quantity`. The object structure is documented below.\n\n> The configuration of `long_term_retention` and `backup_quantity` will take effect together.\nWhen the number of retained backups exceeds the preset value (number of `backup_quantity`), the system automatically\ndeletes the earliest backups. By default, the system automatically clears data every other day.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the policy name.  \nThis parameter can contain a maximum of 64\ncharacters, which may consist of chinese characters, letters, digits, underscores(_) and hyphens (-).\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the policy is located. If omitted, the\nprovider-level region will be used. Changing this will create a new policy.\n"
        },
        "timePeriod": {
          "type": "number",
          "description": "Specifies the duration (in days) for retained backups. The value ranges from `2` to\n`99,999`.\n\n> **NOTE:** If this `backup_quantity` and `time_period` are both left blank, the backups will be retained permanently.\n"
        },
        "timeZone": {
          "type": "string",
          "description": "Specifies the UTC time zone, e.g. `UTC+08:00`.\nOnly available if `long_term_retention` is set.\n\n<a name=\"cbr_policy_backup_cycle\"></a>\nThe `backup_cycle` block supports:\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the protection type of the policy.\nValid values are **backup** and **replication**.\nChanging this will create a new policy.\n"
        }
      },
      "type": "object",
      "required": [
        "backupCycle",
        "cbrPolicyId",
        "name",
        "region",
        "timeZone",
        "type"
      ],
      "inputProperties": {
        "backupCycle": {
          "$ref": "#/types/flexibleengine:index%2FCbrPolicyBackupCycle:CbrPolicyBackupCycle",
          "description": "Specifies the scheduling rule for the policy backup execution.\nThe backup_cycle structure is documented below.\n"
        },
        "backupQuantity": {
          "type": "number",
          "description": "Specifies the maximum number of retained backups. The value ranges from `2` to\n`99,999`. This parameter and `time_period` are alternative.\n"
        },
        "cbrPolicyId": {
          "type": "string",
          "description": "A resource ID in UUID format.\n"
        },
        "destinationProjectId": {
          "type": "string",
          "description": "Specifies the ID of the replication destination project, which is\nmandatory for cross-region replication. Required if `protection_type` is **replication**.\n"
        },
        "destinationRegion": {
          "type": "string",
          "description": "Specifies the name of the replication destination region, which is mandatory\nfor cross-region replication. Required if `protection_type` is **replication**.\n"
        },
        "enableAcceleration": {
          "type": "boolean",
          "description": "Specifies whether to enable the acceleration function to shorten\nthe replication time for cross-region.\nChanging this will create a new policy.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies whether to enable the policy. Default to **true**.\n"
        },
        "longTermRetention": {
          "$ref": "#/types/flexibleengine:index%2FCbrPolicyLongTermRetention:CbrPolicyLongTermRetention",
          "description": "Specifies the long-term retention rules, which is an advanced options of\nthe `backup_quantity`. The object structure is documented below.\n\n> The configuration of `long_term_retention` and `backup_quantity` will take effect together.\nWhen the number of retained backups exceeds the preset value (number of `backup_quantity`), the system automatically\ndeletes the earliest backups. By default, the system automatically clears data every other day.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the policy name.  \nThis parameter can contain a maximum of 64\ncharacters, which may consist of chinese characters, letters, digits, underscores(_) and hyphens (-).\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the policy is located. If omitted, the\nprovider-level region will be used. Changing this will create a new policy.\n"
        },
        "timePeriod": {
          "type": "number",
          "description": "Specifies the duration (in days) for retained backups. The value ranges from `2` to\n`99,999`.\n\n> **NOTE:** If this `backup_quantity` and `time_period` are both left blank, the backups will be retained permanently.\n"
        },
        "timeZone": {
          "type": "string",
          "description": "Specifies the UTC time zone, e.g. `UTC+08:00`.\nOnly available if `long_term_retention` is set.\n\n<a name=\"cbr_policy_backup_cycle\"></a>\nThe `backup_cycle` block supports:\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the protection type of the policy.\nValid values are **backup** and **replication**.\nChanging this will create a new policy.\n"
        }
      },
      "requiredInputs": [
        "backupCycle",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CbrPolicy resources.\n",
        "properties": {
          "backupCycle": {
            "$ref": "#/types/flexibleengine:index%2FCbrPolicyBackupCycle:CbrPolicyBackupCycle",
            "description": "Specifies the scheduling rule for the policy backup execution.\nThe backup_cycle structure is documented below.\n"
          },
          "backupQuantity": {
            "type": "number",
            "description": "Specifies the maximum number of retained backups. The value ranges from `2` to\n`99,999`. This parameter and `time_period` are alternative.\n"
          },
          "cbrPolicyId": {
            "type": "string",
            "description": "A resource ID in UUID format.\n"
          },
          "destinationProjectId": {
            "type": "string",
            "description": "Specifies the ID of the replication destination project, which is\nmandatory for cross-region replication. Required if `protection_type` is **replication**.\n"
          },
          "destinationRegion": {
            "type": "string",
            "description": "Specifies the name of the replication destination region, which is mandatory\nfor cross-region replication. Required if `protection_type` is **replication**.\n"
          },
          "enableAcceleration": {
            "type": "boolean",
            "description": "Specifies whether to enable the acceleration function to shorten\nthe replication time for cross-region.\nChanging this will create a new policy.\n"
          },
          "enabled": {
            "type": "boolean",
            "description": "Specifies whether to enable the policy. Default to **true**.\n"
          },
          "longTermRetention": {
            "$ref": "#/types/flexibleengine:index%2FCbrPolicyLongTermRetention:CbrPolicyLongTermRetention",
            "description": "Specifies the long-term retention rules, which is an advanced options of\nthe `backup_quantity`. The object structure is documented below.\n\n> The configuration of `long_term_retention` and `backup_quantity` will take effect together.\nWhen the number of retained backups exceeds the preset value (number of `backup_quantity`), the system automatically\ndeletes the earliest backups. By default, the system automatically clears data every other day.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the policy name.  \nThis parameter can contain a maximum of 64\ncharacters, which may consist of chinese characters, letters, digits, underscores(_) and hyphens (-).\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the policy is located. If omitted, the\nprovider-level region will be used. Changing this will create a new policy.\n"
          },
          "timePeriod": {
            "type": "number",
            "description": "Specifies the duration (in days) for retained backups. The value ranges from `2` to\n`99,999`.\n\n> **NOTE:** If this `backup_quantity` and `time_period` are both left blank, the backups will be retained permanently.\n"
          },
          "timeZone": {
            "type": "string",
            "description": "Specifies the UTC time zone, e.g. `UTC+08:00`.\nOnly available if `long_term_retention` is set.\n\n<a name=\"cbr_policy_backup_cycle\"></a>\nThe `backup_cycle` block supports:\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the protection type of the policy.\nValid values are **backup** and **replication**.\nChanging this will create a new policy.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/cbrVault:CbrVault": {
      "description": "Manages a CBR Vault resource within FlexibleEngine.\n\n## Example Usage\n\n### Create a server type vault\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vaultName = config.requireObject(\"vaultName\");\nconst ecsInstanceId = config.requireObject(\"ecsInstanceId\");\nconst attachedVolumeIds = config.requireObject<Array<string>>(\"attachedVolumeIds\");\nconst test = new flexibleengine.CbrVault(\"test\", {\n    type: \"server\",\n    protectionType: \"backup\",\n    consistentLevel: \"crash_consistent\",\n    size: 100,\n    resources: [{\n        serverId: ecsInstanceId,\n        excludes: attachedVolumeIds,\n    }],\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvault_name = config.require_object(\"vaultName\")\necs_instance_id = config.require_object(\"ecsInstanceId\")\nattached_volume_ids = config.require_object(\"attachedVolumeIds\")\ntest = flexibleengine.CbrVault(\"test\",\n    type=\"server\",\n    protection_type=\"backup\",\n    consistent_level=\"crash_consistent\",\n    size=100,\n    resources=[{\n        \"server_id\": ecs_instance_id,\n        \"excludes\": attached_volume_ids,\n    }],\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vaultName = config.RequireObject<dynamic>(\"vaultName\");\n    var ecsInstanceId = config.RequireObject<dynamic>(\"ecsInstanceId\");\n    var attachedVolumeIds = config.RequireObject<string[]>(\"attachedVolumeIds\");\n    var test = new Flexibleengine.CbrVault(\"test\", new()\n    {\n        Type = \"server\",\n        ProtectionType = \"backup\",\n        ConsistentLevel = \"crash_consistent\",\n        Size = 100,\n        Resources = new[]\n        {\n            new Flexibleengine.Inputs.CbrVaultResourceArgs\n            {\n                ServerId = ecsInstanceId,\n                Excludes = attachedVolumeIds,\n            },\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvaultName := cfg.RequireObject(\"vaultName\")\n\t\tecsInstanceId := cfg.RequireObject(\"ecsInstanceId\")\n\t\tattachedVolumeIds := cfg.Require(\"attachedVolumeIds\")\n\t\t_, err := flexibleengine.NewCbrVault(ctx, \"test\", &flexibleengine.CbrVaultArgs{\n\t\t\tType:            pulumi.String(\"server\"),\n\t\t\tProtectionType:  pulumi.String(\"backup\"),\n\t\t\tConsistentLevel: pulumi.String(\"crash_consistent\"),\n\t\t\tSize:            pulumi.Float64(100),\n\t\t\tResources: flexibleengine.CbrVaultResourceArray{\n\t\t\t\t&flexibleengine.CbrVaultResourceArgs{\n\t\t\t\t\tServerId: pulumi.Any(ecsInstanceId),\n\t\t\t\t\tExcludes: attachedVolumeIds,\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CbrVault;\nimport com.pulumi.flexibleengine.CbrVaultArgs;\nimport com.pulumi.flexibleengine.inputs.CbrVaultResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vaultName = config.get(\"vaultName\");\n        final var ecsInstanceId = config.get(\"ecsInstanceId\");\n        final var attachedVolumeIds = config.get(\"attachedVolumeIds\");\n        var test = new CbrVault(\"test\", CbrVaultArgs.builder()\n            .type(\"server\")\n            .protectionType(\"backup\")\n            .consistentLevel(\"crash_consistent\")\n            .size(100)\n            .resources(CbrVaultResourceArgs.builder()\n                .serverId(ecsInstanceId)\n                .excludes(attachedVolumeIds)\n                .build())\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vaultName:\n    type: dynamic\n  ecsInstanceId:\n    type: dynamic\n  attachedVolumeIds:\n    type: list(string)\nresources:\n  test:\n    type: flexibleengine:CbrVault\n    properties:\n      type: server\n      protectionType: backup\n      consistentLevel: crash_consistent\n      size: 100\n      resources:\n        - serverId: ${ecsInstanceId}\n          excludes: ${attachedVolumeIds}\n      tags:\n        foo: bar\n```\n<!--End PulumiCodeChooser -->\n\n### Create a disk type vault\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vaultName = config.requireObject(\"vaultName\");\nconst evsVolumeIds = config.requireObject<Array<string>>(\"evsVolumeIds\");\nconst test = new flexibleengine.CbrVault(\"test\", {\n    type: \"disk\",\n    protectionType: \"backup\",\n    size: 50,\n    autoExpand: true,\n    resources: [{\n        includes: evsVolumeIds,\n    }],\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvault_name = config.require_object(\"vaultName\")\nevs_volume_ids = config.require_object(\"evsVolumeIds\")\ntest = flexibleengine.CbrVault(\"test\",\n    type=\"disk\",\n    protection_type=\"backup\",\n    size=50,\n    auto_expand=True,\n    resources=[{\n        \"includes\": evs_volume_ids,\n    }],\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vaultName = config.RequireObject<dynamic>(\"vaultName\");\n    var evsVolumeIds = config.RequireObject<string[]>(\"evsVolumeIds\");\n    var test = new Flexibleengine.CbrVault(\"test\", new()\n    {\n        Type = \"disk\",\n        ProtectionType = \"backup\",\n        Size = 50,\n        AutoExpand = true,\n        Resources = new[]\n        {\n            new Flexibleengine.Inputs.CbrVaultResourceArgs\n            {\n                Includes = evsVolumeIds,\n            },\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvaultName := cfg.RequireObject(\"vaultName\")\n\t\tevsVolumeIds := cfg.Require(\"evsVolumeIds\")\n\t\t_, err := flexibleengine.NewCbrVault(ctx, \"test\", &flexibleengine.CbrVaultArgs{\n\t\t\tType:           pulumi.String(\"disk\"),\n\t\t\tProtectionType: pulumi.String(\"backup\"),\n\t\t\tSize:           pulumi.Float64(50),\n\t\t\tAutoExpand:     pulumi.Bool(true),\n\t\t\tResources: flexibleengine.CbrVaultResourceArray{\n\t\t\t\t&flexibleengine.CbrVaultResourceArgs{\n\t\t\t\t\tIncludes: evsVolumeIds,\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CbrVault;\nimport com.pulumi.flexibleengine.CbrVaultArgs;\nimport com.pulumi.flexibleengine.inputs.CbrVaultResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vaultName = config.get(\"vaultName\");\n        final var evsVolumeIds = config.get(\"evsVolumeIds\");\n        var test = new CbrVault(\"test\", CbrVaultArgs.builder()\n            .type(\"disk\")\n            .protectionType(\"backup\")\n            .size(50)\n            .autoExpand(true)\n            .resources(CbrVaultResourceArgs.builder()\n                .includes(evsVolumeIds)\n                .build())\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vaultName:\n    type: dynamic\n  evsVolumeIds:\n    type: list(string)\nresources:\n  test:\n    type: flexibleengine:CbrVault\n    properties:\n      type: disk\n      protectionType: backup\n      size: 50\n      autoExpand: true\n      resources:\n        - includes: ${evsVolumeIds}\n      tags:\n        foo: bar\n```\n<!--End PulumiCodeChooser -->\n\n### Create an SFS turbo type vault\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vaultName = config.requireObject(\"vaultName\");\nconst sfsTurboIds = config.requireObject<Array<string>>(\"sfsTurboIds\");\nconst test = new flexibleengine.CbrVault(\"test\", {\n    type: \"turbo\",\n    protectionType: \"backup\",\n    size: 1000,\n    resources: [{\n        includes: sfsTurboIds,\n    }],\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvault_name = config.require_object(\"vaultName\")\nsfs_turbo_ids = config.require_object(\"sfsTurboIds\")\ntest = flexibleengine.CbrVault(\"test\",\n    type=\"turbo\",\n    protection_type=\"backup\",\n    size=1000,\n    resources=[{\n        \"includes\": sfs_turbo_ids,\n    }],\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vaultName = config.RequireObject<dynamic>(\"vaultName\");\n    var sfsTurboIds = config.RequireObject<string[]>(\"sfsTurboIds\");\n    var test = new Flexibleengine.CbrVault(\"test\", new()\n    {\n        Type = \"turbo\",\n        ProtectionType = \"backup\",\n        Size = 1000,\n        Resources = new[]\n        {\n            new Flexibleengine.Inputs.CbrVaultResourceArgs\n            {\n                Includes = sfsTurboIds,\n            },\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvaultName := cfg.RequireObject(\"vaultName\")\n\t\tsfsTurboIds := cfg.Require(\"sfsTurboIds\")\n\t\t_, err := flexibleengine.NewCbrVault(ctx, \"test\", &flexibleengine.CbrVaultArgs{\n\t\t\tType:           pulumi.String(\"turbo\"),\n\t\t\tProtectionType: pulumi.String(\"backup\"),\n\t\t\tSize:           pulumi.Float64(1000),\n\t\t\tResources: flexibleengine.CbrVaultResourceArray{\n\t\t\t\t&flexibleengine.CbrVaultResourceArgs{\n\t\t\t\t\tIncludes: sfsTurboIds,\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CbrVault;\nimport com.pulumi.flexibleengine.CbrVaultArgs;\nimport com.pulumi.flexibleengine.inputs.CbrVaultResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vaultName = config.get(\"vaultName\");\n        final var sfsTurboIds = config.get(\"sfsTurboIds\");\n        var test = new CbrVault(\"test\", CbrVaultArgs.builder()\n            .type(\"turbo\")\n            .protectionType(\"backup\")\n            .size(1000)\n            .resources(CbrVaultResourceArgs.builder()\n                .includes(sfsTurboIds)\n                .build())\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vaultName:\n    type: dynamic\n  sfsTurboIds:\n    type: list(string)\nresources:\n  test:\n    type: flexibleengine:CbrVault\n    properties:\n      type: turbo\n      protectionType: backup\n      size: 1000\n      resources:\n        - includes: ${sfsTurboIds}\n      tags:\n        foo: bar\n```\n<!--End PulumiCodeChooser -->\n\n### Create an SFS turbo type vault with replicate protection type\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vaultName = config.requireObject(\"vaultName\");\nconst test = new flexibleengine.CbrVault(\"test\", {\n    type: \"turbo\",\n    protectionType: \"replication\",\n    size: 1000,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvault_name = config.require_object(\"vaultName\")\ntest = flexibleengine.CbrVault(\"test\",\n    type=\"turbo\",\n    protection_type=\"replication\",\n    size=1000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vaultName = config.RequireObject<dynamic>(\"vaultName\");\n    var test = new Flexibleengine.CbrVault(\"test\", new()\n    {\n        Type = \"turbo\",\n        ProtectionType = \"replication\",\n        Size = 1000,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvaultName := cfg.RequireObject(\"vaultName\")\n\t\t_, err := flexibleengine.NewCbrVault(ctx, \"test\", &flexibleengine.CbrVaultArgs{\n\t\t\tType:           pulumi.String(\"turbo\"),\n\t\t\tProtectionType: pulumi.String(\"replication\"),\n\t\t\tSize:           pulumi.Float64(1000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CbrVault;\nimport com.pulumi.flexibleengine.CbrVaultArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vaultName = config.get(\"vaultName\");\n        var test = new CbrVault(\"test\", CbrVaultArgs.builder()\n            .type(\"turbo\")\n            .protectionType(\"replication\")\n            .size(1000)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vaultName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:CbrVault\n    properties:\n      type: turbo\n      protectionType: replication\n      size: 1000\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVaults can be imported by their `id`. For example,\n\n```sh\n$ pulumi import flexibleengine:index/cbrVault:CbrVault test 01c33779-7c83-4182-8b6b-24a671fcedf8\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include: `period_unit`, `period`, `auto_renew`.\n\nIt is generally recommended running `pulumi preview` after importing a vault.\n\nYou can then decide if changes should be applied to the vault, or the resource definition should be updated to align\n\nwith the vault. Also you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_cbr_vault\" \"test\" {\n\n  ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      period_unit, period, auto_renew,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "allocated": {
          "type": "number",
          "description": "The allocated capacity of the vault, in GB.\n"
        },
        "autoBind": {
          "type": "boolean",
          "description": "Specifies whether automatic association is enabled. Defaults to **false**.\n"
        },
        "autoExpand": {
          "type": "boolean",
          "description": "Specifies to enable auto capacity expansion for the backup protection type vault.\nDefaults to **false**.\n"
        },
        "autoPay": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "autoRenew": {
          "type": "string"
        },
        "backupNamePrefix": {
          "type": "string",
          "description": "The backup name prefix.\n"
        },
        "bindRules": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the tags to filter resources for automatic association with **auto_bind**.\n"
        },
        "cbrVaultId": {
          "type": "string",
          "description": "Specifies the policy ID.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "consistentLevel": {
          "type": "string",
          "description": "Specifies the consistent level (specification) of the vault.\nThe valid values are as follows:\n+ **[crash_consistent](https://docs.prod-cloud-ocb.orange-business.com/usermanual/cbr/cbr_03_0109.html)**\n+ **[app_consistent](https://docs.prod-cloud-ocb.orange-business.com/usermanual/cbr/cbr_03_0109.html)**\n\nOnly **server** type vaults support application consistent and defaults to **crash_consistent**.\nChanging this will create a new vault.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the cbr vault resource.\nChanging this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies a unique name of the CBR vault. This parameter can contain a maximum of 64\ncharacters, which may consist of letters, digits, underscores(_) and hyphens (-).\n"
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCbrVaultPolicy:CbrVaultPolicy"
          },
          "description": "Specifies the policy details to associate with the CBR vault.\nThe object structure is documented below.\n"
        },
        "policyId": {
          "type": "string",
          "description": "schema:Deprecated; Using parameter 'policy' instead.\n"
        },
        "protectionType": {
          "type": "string",
          "description": "Specifies the protection type of the CBR vault.\nThe valid values are **backup** and **replication**. Vaults of type **disk** don't support **replication**.\nChanging this will create a new vault.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CBR vault. If omitted, the\nprovider-level region will be used. Changing this will create a new vault.\n"
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCbrVaultResource:CbrVaultResource"
          },
          "description": "Specifies an array of one or more resources to attach to the CBR vault.\nThe object structure is documented below.\n\n> If configured, the names of all automatic backups generated for the vault will use this prefix.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the vault capacity, in GB. The valid value range is `1` to `10,485,760`.\n"
        },
        "specCode": {
          "type": "string",
          "description": "The specification code.\n"
        },
        "status": {
          "type": "string",
          "description": "The vault status.\n"
        },
        "storage": {
          "type": "string",
          "description": "The name of the bucket for the vault.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associat\n\n<a name=\"cbr_vault_policies\"></a>\nThe `policy` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCbrVaultTimeouts:CbrVaultTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the object type of the CBR vault.\nChanging this will create a new vault. Vaild values are as follows:\n+ **server** (Cloud Servers)\n+ **disk** (EVS Disks)\n+ **turbo** (SFS Turbo file systems)\n"
        },
        "used": {
          "type": "number",
          "description": "The used capacity, in GB.\n"
        }
      },
      "type": "object",
      "required": [
        "allocated",
        "autoBind",
        "autoExpand",
        "backupNamePrefix",
        "cbrVaultId",
        "chargingMode",
        "enterpriseProjectId",
        "name",
        "protectionType",
        "region",
        "size",
        "specCode",
        "status",
        "storage",
        "type",
        "used"
      ],
      "inputProperties": {
        "autoBind": {
          "type": "boolean",
          "description": "Specifies whether automatic association is enabled. Defaults to **false**.\n"
        },
        "autoExpand": {
          "type": "boolean",
          "description": "Specifies to enable auto capacity expansion for the backup protection type vault.\nDefaults to **false**.\n"
        },
        "autoPay": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "autoRenew": {
          "type": "string"
        },
        "backupNamePrefix": {
          "type": "string",
          "description": "The backup name prefix.\n"
        },
        "bindRules": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the tags to filter resources for automatic association with **auto_bind**.\n"
        },
        "cbrVaultId": {
          "type": "string",
          "description": "Specifies the policy ID.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "consistentLevel": {
          "type": "string",
          "description": "Specifies the consistent level (specification) of the vault.\nThe valid values are as follows:\n+ **[crash_consistent](https://docs.prod-cloud-ocb.orange-business.com/usermanual/cbr/cbr_03_0109.html)**\n+ **[app_consistent](https://docs.prod-cloud-ocb.orange-business.com/usermanual/cbr/cbr_03_0109.html)**\n\nOnly **server** type vaults support application consistent and defaults to **crash_consistent**.\nChanging this will create a new vault.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the cbr vault resource.\nChanging this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies a unique name of the CBR vault. This parameter can contain a maximum of 64\ncharacters, which may consist of letters, digits, underscores(_) and hyphens (-).\n"
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCbrVaultPolicy:CbrVaultPolicy"
          },
          "description": "Specifies the policy details to associate with the CBR vault.\nThe object structure is documented below.\n"
        },
        "policyId": {
          "type": "string",
          "description": "schema:Deprecated; Using parameter 'policy' instead.\n"
        },
        "protectionType": {
          "type": "string",
          "description": "Specifies the protection type of the CBR vault.\nThe valid values are **backup** and **replication**. Vaults of type **disk** don't support **replication**.\nChanging this will create a new vault.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CBR vault. If omitted, the\nprovider-level region will be used. Changing this will create a new vault.\n"
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCbrVaultResource:CbrVaultResource"
          },
          "description": "Specifies an array of one or more resources to attach to the CBR vault.\nThe object structure is documented below.\n\n> If configured, the names of all automatic backups generated for the vault will use this prefix.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the vault capacity, in GB. The valid value range is `1` to `10,485,760`.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associat\n\n<a name=\"cbr_vault_policies\"></a>\nThe `policy` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCbrVaultTimeouts:CbrVaultTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the object type of the CBR vault.\nChanging this will create a new vault. Vaild values are as follows:\n+ **server** (Cloud Servers)\n+ **disk** (EVS Disks)\n+ **turbo** (SFS Turbo file systems)\n"
        }
      },
      "requiredInputs": [
        "protectionType",
        "size",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CbrVault resources.\n",
        "properties": {
          "allocated": {
            "type": "number",
            "description": "The allocated capacity of the vault, in GB.\n"
          },
          "autoBind": {
            "type": "boolean",
            "description": "Specifies whether automatic association is enabled. Defaults to **false**.\n"
          },
          "autoExpand": {
            "type": "boolean",
            "description": "Specifies to enable auto capacity expansion for the backup protection type vault.\nDefaults to **false**.\n"
          },
          "autoPay": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "autoRenew": {
            "type": "string"
          },
          "backupNamePrefix": {
            "type": "string",
            "description": "The backup name prefix.\n"
          },
          "bindRules": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the tags to filter resources for automatic association with **auto_bind**.\n"
          },
          "cbrVaultId": {
            "type": "string",
            "description": "Specifies the policy ID.\n"
          },
          "chargingMode": {
            "type": "string"
          },
          "consistentLevel": {
            "type": "string",
            "description": "Specifies the consistent level (specification) of the vault.\nThe valid values are as follows:\n+ **[crash_consistent](https://docs.prod-cloud-ocb.orange-business.com/usermanual/cbr/cbr_03_0109.html)**\n+ **[app_consistent](https://docs.prod-cloud-ocb.orange-business.com/usermanual/cbr/cbr_03_0109.html)**\n\nOnly **server** type vaults support application consistent and defaults to **crash_consistent**.\nChanging this will create a new vault.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id of the cbr vault resource.\nChanging this will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies a unique name of the CBR vault. This parameter can contain a maximum of 64\ncharacters, which may consist of letters, digits, underscores(_) and hyphens (-).\n"
          },
          "period": {
            "type": "number"
          },
          "periodUnit": {
            "type": "string"
          },
          "policies": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCbrVaultPolicy:CbrVaultPolicy"
            },
            "description": "Specifies the policy details to associate with the CBR vault.\nThe object structure is documented below.\n"
          },
          "policyId": {
            "type": "string",
            "description": "schema:Deprecated; Using parameter 'policy' instead.\n"
          },
          "protectionType": {
            "type": "string",
            "description": "Specifies the protection type of the CBR vault.\nThe valid values are **backup** and **replication**. Vaults of type **disk** don't support **replication**.\nChanging this will create a new vault.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the CBR vault. If omitted, the\nprovider-level region will be used. Changing this will create a new vault.\n"
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCbrVaultResource:CbrVaultResource"
            },
            "description": "Specifies an array of one or more resources to attach to the CBR vault.\nThe object structure is documented below.\n\n> If configured, the names of all automatic backups generated for the vault will use this prefix.\n"
          },
          "size": {
            "type": "number",
            "description": "Specifies the vault capacity, in GB. The valid value range is `1` to `10,485,760`.\n"
          },
          "specCode": {
            "type": "string",
            "description": "The specification code.\n"
          },
          "status": {
            "type": "string",
            "description": "The vault status.\n"
          },
          "storage": {
            "type": "string",
            "description": "The name of the bucket for the vault.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the key/value pairs to associat\n\n<a name=\"cbr_vault_policies\"></a>\nThe `policy` block supports:\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCbrVaultTimeouts:CbrVaultTimeouts"
          },
          "type": {
            "type": "string",
            "description": "Specifies the object type of the CBR vault.\nChanging this will create a new vault. Vaild values are as follows:\n+ **server** (Cloud Servers)\n+ **disk** (EVS Disks)\n+ **turbo** (SFS Turbo file systems)\n"
          },
          "used": {
            "type": "number",
            "description": "The used capacity, in GB.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/cceAddonV3:CceAddonV3": {
      "description": "Provides a CCE addon resource within FlexibleEngine.\n\n> **NOTE:** Currently, there is an ongoing certificate issue regarding the add-on management APIs.\n  Please set `insecure = true` in provider block to ignore SSL certificate verification.\n\n## Example Usage\n\n### Basic Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject(\"clusterId\");\nconst addonTest = new flexibleengine.CceAddonV3(\"addonTest\", {\n    clusterId: clusterId,\n    templateName: \"metrics-server\",\n    version: \"1.0.6\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\naddon_test = flexibleengine.CceAddonV3(\"addonTest\",\n    cluster_id=cluster_id,\n    template_name=\"metrics-server\",\n    version=\"1.0.6\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var addonTest = new Flexibleengine.CceAddonV3(\"addonTest\", new()\n    {\n        ClusterId = clusterId,\n        TemplateName = \"metrics-server\",\n        Version = \"1.0.6\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\t_, err := flexibleengine.NewCceAddonV3(ctx, \"addonTest\", &flexibleengine.CceAddonV3Args{\n\t\t\tClusterId:    pulumi.Any(clusterId),\n\t\t\tTemplateName: pulumi.String(\"metrics-server\"),\n\t\t\tVersion:      pulumi.String(\"1.0.6\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CceAddonV3;\nimport com.pulumi.flexibleengine.CceAddonV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        var addonTest = new CceAddonV3(\"addonTest\", CceAddonV3Args.builder()\n            .clusterId(clusterId)\n            .templateName(\"metrics-server\")\n            .version(\"1.0.6\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\nresources:\n  addonTest:\n    type: flexibleengine:CceAddonV3\n    properties:\n      clusterId: ${clusterId}\n      templateName: metrics-server\n      version: 1.0.6\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCCE addon can be imported using the cluster ID and addon ID separated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/cceAddonV3:CceAddonV3 my_addon <cluster_id>/<id>\n```\n\n```sh\n$ pulumi import flexibleengine:index/cceAddonV3:CceAddonV3 my_addon bb6923e4-b16e-11eb-b0cd-0255ac101da1/c7ecb230-b16f-11eb-b3b6-0255ac1015a3\n```\n\n",
      "properties": {
        "cceAddonV3Id": {
          "type": "string",
          "description": "ID of the addon instance.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "ID of the cluster. Changing this parameter will create a new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of addon instance.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CCE addon resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CCE addon resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Addon status information.\n"
        },
        "templateName": {
          "type": "string",
          "description": "Name of the addon template.\nChanging this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCceAddonV3Timeouts:CceAddonV3Timeouts"
        },
        "values": {
          "$ref": "#/types/flexibleengine:index%2FCceAddonV3Values:CceAddonV3Values",
          "description": "Add-on template installation parameters.\nThese parameters vary depending on the add-on. Changing this parameter will create a new resource.\nThe values object structure is documented below.\n\n<a name=\"cce_values\"></a>\nThe `values` block supports:\n"
        },
        "version": {
          "type": "string",
          "description": "Version of the addon. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "cceAddonV3Id",
        "clusterId",
        "description",
        "region",
        "status",
        "templateName",
        "version"
      ],
      "inputProperties": {
        "cceAddonV3Id": {
          "type": "string",
          "description": "ID of the addon instance.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "ID of the cluster. Changing this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CCE addon resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CCE addon resource.\n"
        },
        "templateName": {
          "type": "string",
          "description": "Name of the addon template.\nChanging this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCceAddonV3Timeouts:CceAddonV3Timeouts"
        },
        "values": {
          "$ref": "#/types/flexibleengine:index%2FCceAddonV3Values:CceAddonV3Values",
          "description": "Add-on template installation parameters.\nThese parameters vary depending on the add-on. Changing this parameter will create a new resource.\nThe values object structure is documented below.\n\n<a name=\"cce_values\"></a>\nThe `values` block supports:\n"
        },
        "version": {
          "type": "string",
          "description": "Version of the addon. Changing this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "clusterId",
        "templateName",
        "version"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CceAddonV3 resources.\n",
        "properties": {
          "cceAddonV3Id": {
            "type": "string",
            "description": "ID of the addon instance.\n"
          },
          "clusterId": {
            "type": "string",
            "description": "ID of the cluster. Changing this parameter will create a new resource.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of addon instance.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the CCE addon resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CCE addon resource.\n"
          },
          "status": {
            "type": "string",
            "description": "Addon status information.\n"
          },
          "templateName": {
            "type": "string",
            "description": "Name of the addon template.\nChanging this parameter will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCceAddonV3Timeouts:CceAddonV3Timeouts"
          },
          "values": {
            "$ref": "#/types/flexibleengine:index%2FCceAddonV3Values:CceAddonV3Values",
            "description": "Add-on template installation parameters.\nThese parameters vary depending on the add-on. Changing this parameter will create a new resource.\nThe values object structure is documented below.\n\n<a name=\"cce_values\"></a>\nThe `values` block supports:\n"
          },
          "version": {
            "type": "string",
            "description": "Version of the addon. Changing this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/cceClusterV3:CceClusterV3": {
      "description": "Provides a cluster resource (CCE).\n\n## Example Usage\n\n <!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst flavorId = config.requireObject(\"flavorId\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst cluster1 = new flexibleengine.CceClusterV3(\"cluster1\", {\n    clusterType: \"VirtualMachine\",\n    authenticationMode: \"rbac\",\n    description: \"new cluster\",\n    flavorId: flavorId,\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    containerNetworkType: \"overlay_l2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nflavor_id = config.require_object(\"flavorId\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\ncluster1 = flexibleengine.CceClusterV3(\"cluster1\",\n    cluster_type=\"VirtualMachine\",\n    authentication_mode=\"rbac\",\n    description=\"new cluster\",\n    flavor_id=flavor_id,\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    container_network_type=\"overlay_l2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var flavorId = config.RequireObject<dynamic>(\"flavorId\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var cluster1 = new Flexibleengine.CceClusterV3(\"cluster1\", new()\n    {\n        ClusterType = \"VirtualMachine\",\n        AuthenticationMode = \"rbac\",\n        Description = \"new cluster\",\n        FlavorId = flavorId,\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        ContainerNetworkType = \"overlay_l2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tflavorId := cfg.RequireObject(\"flavorId\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewCceClusterV3(ctx, \"cluster1\", &flexibleengine.CceClusterV3Args{\n\t\t\tClusterType:          pulumi.String(\"VirtualMachine\"),\n\t\t\tAuthenticationMode:   pulumi.String(\"rbac\"),\n\t\t\tDescription:          pulumi.String(\"new cluster\"),\n\t\t\tFlavorId:             pulumi.Any(flavorId),\n\t\t\tVpcId:                exampleVpc.VpcV1Id,\n\t\t\tSubnetId:             exampleSubnet.VpcSubnetV1Id,\n\t\t\tContainerNetworkType: pulumi.String(\"overlay_l2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.CceClusterV3;\nimport com.pulumi.flexibleengine.CceClusterV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var flavorId = config.get(\"flavorId\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var cluster1 = new CceClusterV3(\"cluster1\", CceClusterV3Args.builder()\n            .clusterType(\"VirtualMachine\")\n            .authenticationMode(\"rbac\")\n            .description(\"new cluster\")\n            .flavorId(flavorId)\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .containerNetworkType(\"overlay_l2\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  flavorId:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  cluster1:\n    type: flexibleengine:CceClusterV3\n    properties:\n      clusterType: VirtualMachine\n      authenticationMode: rbac\n      description: new cluster\n      flavorId: ${flavorId}\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      containerNetworkType: overlay_l2\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCluster can be imported using their `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/cceClusterV3:CceClusterV3 cluster_1 4779ab1c-7c1a-44b1-a02e-93dfc361b32d\n```\n\n",
      "properties": {
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Cluster annotation, key/value pair format.\nChanging this parameter will create a new cluster resource.\n"
        },
        "authenticatingProxyCa": {
          "type": "string",
          "description": "CA root certificate provided in the authenticating_proxy mode.\nThe CA root certificate is encoded to the Base64 format. Changing this parameter will create a new cluster resource.\n"
        },
        "authenticationMode": {
          "type": "string",
          "description": "Authentication mode of the cluster, possible values are x509\nand rbac. Defaults to *rbac*. Changing this parameter will create a new cluster resource.\n"
        },
        "billingMode": {
          "type": "number"
        },
        "cceClusterV3Id": {
          "type": "string",
          "description": "Id of the cluster resource.\n"
        },
        "certificateClusters": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCceClusterV3CertificateCluster:CceClusterV3CertificateCluster"
          },
          "description": "Security group ID of the cluster.\nThe certificate_clusters object structure is documented below.\n"
        },
        "certificateUsers": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCceClusterV3CertificateUser:CceClusterV3CertificateUser"
          },
          "description": "Security group ID of the cluster.\nThe certificate_users object structure is documented below.\n"
        },
        "clusterType": {
          "type": "string",
          "description": "Cluster Type, possible values are VirtualMachine and BareMetal.\nChanging this parameter will create a new cluster resource.\n"
        },
        "clusterVersion": {
          "type": "string",
          "description": "For the cluster version, possible values are listed on the\n[CCE Cluster Version Release Notes](https://docs.prod-cloud-ocb.orange-business.com/usermanual2/cce/cce_10_0405.html).\nIf this parameter is not set, the latest available version will be used.\n"
        },
        "containerNetworkCidr": {
          "type": "string",
          "description": "Container network segment.\nChanging this parameter will create a new cluster resource.\n"
        },
        "containerNetworkType": {
          "type": "string",
          "description": "Container network parameters. Possible values:\n"
        },
        "customSans": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Custom san to add to certificate. (array of string)\n"
        },
        "description": {
          "type": "string",
          "description": "Cluster description.\n"
        },
        "eip": {
          "type": "string",
          "description": "EIP address of the cluster.\n"
        },
        "extendParam": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Extended parameter. Changing this parameter will create a new cluster resource.\n"
        },
        "externalApigEndpoint": {
          "type": "string",
          "description": "The endpoint of the cluster to be accessed through API Gateway.\n"
        },
        "externalEndpoint": {
          "type": "string",
          "description": "The external network address.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "Cluster specifications. Changing this parameter will create a new cluster resource.\n\n+ `cce.s1.small` - small-scale single cluster (up to 50 nodes).\n+ `cce.s1.medium` - medium-scale single cluster (up to 200 nodes).\n+ `cce.s1.large` - large-scale single cluster (up to 1000 nodes).\n+ `cce.s2.small` - small-scale HA cluster (up to 50 nodes).\n+ `cce.s2.medium` - medium-scale HA cluster (up to 200 nodes).\n+ `cce.s2.large` - large-scale HA cluster (up to 1000 nodes).\n+ `cce.t1.small` - small-scale single physical machine cluster (up to 10 nodes).\n+ `cce.t1.medium` - medium-scale single physical machine cluster (up to 100 nodes).\n+ `cce.t1.large` - large-scale single physical machine cluster (up to 500 nodes).\n+ `cce.t2.small` - small-scale HA physical machine cluster (up to 10 nodes).\n+ `cce.t2.medium` - medium-scale HA physical machine cluster (up to 100 nodes).\n+ `cce.t2.large` - large-scale HA physical machine cluster (up to 500 nodes).\n"
        },
        "hibernate": {
          "type": "boolean",
          "description": "Specifies whether to hibernate the CCE cluster. Defaults to **false**. After a cluster is\nhibernated, resources such as workloads cannot be created or managed in the cluster, and the cluster cannot be\ndeleted.\n\n<a name=\"cce_masters\"></a>\nThe `masters` block supports:\n"
        },
        "highwaySubnetId": {
          "type": "string",
          "description": "The ID of the high speed network used to create bare metal nodes.\nChanging this parameter will create a new cluster resource.\n"
        },
        "internalEndpoint": {
          "type": "string",
          "description": "The internal network address.\n"
        },
        "kubeProxyMode": {
          "type": "string",
          "description": "Service forwarding mode. Two modes are available:\n\n+ iptables: Traditional kube-proxy uses iptables rules to implement service load balancing.\nIn this mode, too many iptables rules will be generated when many services are deployed. In addition,\nnon-incremental updates will cause a latency and even obvious performance issues in the case of heavy service traffic.\n+ ipvs: Optimized kube-proxy mode with higher throughput and faster speed. This mode supports incremental updates and\ncan keep connections uninterrupted during service updates. It is suitable for large-sized clusters.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Cluster tag, key/value pair format. Changing this parameter will create a new\ncluster resource.\n"
        },
        "masters": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCceClusterV3Master:CceClusterV3Master"
          },
          "description": "Advanced configuration of master nodes. Changing this creates a new cluster.\nThe masters object structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Cluster name. Changing this parameter will create a new cluster resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CCE cluster resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CCE cluster resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Security group ID of the cluster.\n"
        },
        "serviceNetworkCidr": {
          "type": "string",
          "description": "Service network segment. Changing this parameter will create\na new cluster resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Cluster status information.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the VPC Subnet used to create the node.\nChanging this parameter will create a new cluster resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCceClusterV3Timeouts:CceClusterV3Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "The ID of the VPC used to create the node.\nChanging this parameter will create a new cluster resource.\n"
        }
      },
      "type": "object",
      "required": [
        "billingMode",
        "cceClusterV3Id",
        "certificateClusters",
        "certificateUsers",
        "clusterType",
        "clusterVersion",
        "containerNetworkCidr",
        "containerNetworkType",
        "customSans",
        "description",
        "externalApigEndpoint",
        "externalEndpoint",
        "flavorId",
        "highwaySubnetId",
        "internalEndpoint",
        "name",
        "region",
        "securityGroupId",
        "serviceNetworkCidr",
        "status",
        "subnetId",
        "vpcId"
      ],
      "inputProperties": {
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Cluster annotation, key/value pair format.\nChanging this parameter will create a new cluster resource.\n"
        },
        "authenticatingProxyCa": {
          "type": "string",
          "description": "CA root certificate provided in the authenticating_proxy mode.\nThe CA root certificate is encoded to the Base64 format. Changing this parameter will create a new cluster resource.\n"
        },
        "authenticationMode": {
          "type": "string",
          "description": "Authentication mode of the cluster, possible values are x509\nand rbac. Defaults to *rbac*. Changing this parameter will create a new cluster resource.\n"
        },
        "billingMode": {
          "type": "number"
        },
        "cceClusterV3Id": {
          "type": "string",
          "description": "Id of the cluster resource.\n"
        },
        "clusterType": {
          "type": "string",
          "description": "Cluster Type, possible values are VirtualMachine and BareMetal.\nChanging this parameter will create a new cluster resource.\n"
        },
        "clusterVersion": {
          "type": "string",
          "description": "For the cluster version, possible values are listed on the\n[CCE Cluster Version Release Notes](https://docs.prod-cloud-ocb.orange-business.com/usermanual2/cce/cce_10_0405.html).\nIf this parameter is not set, the latest available version will be used.\n"
        },
        "containerNetworkCidr": {
          "type": "string",
          "description": "Container network segment.\nChanging this parameter will create a new cluster resource.\n"
        },
        "containerNetworkType": {
          "type": "string",
          "description": "Container network parameters. Possible values:\n"
        },
        "customSans": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Custom san to add to certificate. (array of string)\n"
        },
        "description": {
          "type": "string",
          "description": "Cluster description.\n"
        },
        "eip": {
          "type": "string",
          "description": "EIP address of the cluster.\n"
        },
        "extendParam": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Extended parameter. Changing this parameter will create a new cluster resource.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "Cluster specifications. Changing this parameter will create a new cluster resource.\n\n+ `cce.s1.small` - small-scale single cluster (up to 50 nodes).\n+ `cce.s1.medium` - medium-scale single cluster (up to 200 nodes).\n+ `cce.s1.large` - large-scale single cluster (up to 1000 nodes).\n+ `cce.s2.small` - small-scale HA cluster (up to 50 nodes).\n+ `cce.s2.medium` - medium-scale HA cluster (up to 200 nodes).\n+ `cce.s2.large` - large-scale HA cluster (up to 1000 nodes).\n+ `cce.t1.small` - small-scale single physical machine cluster (up to 10 nodes).\n+ `cce.t1.medium` - medium-scale single physical machine cluster (up to 100 nodes).\n+ `cce.t1.large` - large-scale single physical machine cluster (up to 500 nodes).\n+ `cce.t2.small` - small-scale HA physical machine cluster (up to 10 nodes).\n+ `cce.t2.medium` - medium-scale HA physical machine cluster (up to 100 nodes).\n+ `cce.t2.large` - large-scale HA physical machine cluster (up to 500 nodes).\n"
        },
        "hibernate": {
          "type": "boolean",
          "description": "Specifies whether to hibernate the CCE cluster. Defaults to **false**. After a cluster is\nhibernated, resources such as workloads cannot be created or managed in the cluster, and the cluster cannot be\ndeleted.\n\n<a name=\"cce_masters\"></a>\nThe `masters` block supports:\n"
        },
        "highwaySubnetId": {
          "type": "string",
          "description": "The ID of the high speed network used to create bare metal nodes.\nChanging this parameter will create a new cluster resource.\n"
        },
        "kubeProxyMode": {
          "type": "string",
          "description": "Service forwarding mode. Two modes are available:\n\n+ iptables: Traditional kube-proxy uses iptables rules to implement service load balancing.\nIn this mode, too many iptables rules will be generated when many services are deployed. In addition,\nnon-incremental updates will cause a latency and even obvious performance issues in the case of heavy service traffic.\n+ ipvs: Optimized kube-proxy mode with higher throughput and faster speed. This mode supports incremental updates and\ncan keep connections uninterrupted during service updates. It is suitable for large-sized clusters.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Cluster tag, key/value pair format. Changing this parameter will create a new\ncluster resource.\n"
        },
        "masters": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCceClusterV3Master:CceClusterV3Master"
          },
          "description": "Advanced configuration of master nodes. Changing this creates a new cluster.\nThe masters object structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Cluster name. Changing this parameter will create a new cluster resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CCE cluster resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CCE cluster resource.\n"
        },
        "serviceNetworkCidr": {
          "type": "string",
          "description": "Service network segment. Changing this parameter will create\na new cluster resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the VPC Subnet used to create the node.\nChanging this parameter will create a new cluster resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCceClusterV3Timeouts:CceClusterV3Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "The ID of the VPC used to create the node.\nChanging this parameter will create a new cluster resource.\n"
        }
      },
      "requiredInputs": [
        "clusterType",
        "containerNetworkType",
        "flavorId",
        "subnetId",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CceClusterV3 resources.\n",
        "properties": {
          "annotations": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Cluster annotation, key/value pair format.\nChanging this parameter will create a new cluster resource.\n"
          },
          "authenticatingProxyCa": {
            "type": "string",
            "description": "CA root certificate provided in the authenticating_proxy mode.\nThe CA root certificate is encoded to the Base64 format. Changing this parameter will create a new cluster resource.\n"
          },
          "authenticationMode": {
            "type": "string",
            "description": "Authentication mode of the cluster, possible values are x509\nand rbac. Defaults to *rbac*. Changing this parameter will create a new cluster resource.\n"
          },
          "billingMode": {
            "type": "number"
          },
          "cceClusterV3Id": {
            "type": "string",
            "description": "Id of the cluster resource.\n"
          },
          "certificateClusters": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCceClusterV3CertificateCluster:CceClusterV3CertificateCluster"
            },
            "description": "Security group ID of the cluster.\nThe certificate_clusters object structure is documented below.\n"
          },
          "certificateUsers": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCceClusterV3CertificateUser:CceClusterV3CertificateUser"
            },
            "description": "Security group ID of the cluster.\nThe certificate_users object structure is documented below.\n"
          },
          "clusterType": {
            "type": "string",
            "description": "Cluster Type, possible values are VirtualMachine and BareMetal.\nChanging this parameter will create a new cluster resource.\n"
          },
          "clusterVersion": {
            "type": "string",
            "description": "For the cluster version, possible values are listed on the\n[CCE Cluster Version Release Notes](https://docs.prod-cloud-ocb.orange-business.com/usermanual2/cce/cce_10_0405.html).\nIf this parameter is not set, the latest available version will be used.\n"
          },
          "containerNetworkCidr": {
            "type": "string",
            "description": "Container network segment.\nChanging this parameter will create a new cluster resource.\n"
          },
          "containerNetworkType": {
            "type": "string",
            "description": "Container network parameters. Possible values:\n"
          },
          "customSans": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Custom san to add to certificate. (array of string)\n"
          },
          "description": {
            "type": "string",
            "description": "Cluster description.\n"
          },
          "eip": {
            "type": "string",
            "description": "EIP address of the cluster.\n"
          },
          "extendParam": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Extended parameter. Changing this parameter will create a new cluster resource.\n"
          },
          "externalApigEndpoint": {
            "type": "string",
            "description": "The endpoint of the cluster to be accessed through API Gateway.\n"
          },
          "externalEndpoint": {
            "type": "string",
            "description": "The external network address.\n"
          },
          "flavorId": {
            "type": "string",
            "description": "Cluster specifications. Changing this parameter will create a new cluster resource.\n\n+ `cce.s1.small` - small-scale single cluster (up to 50 nodes).\n+ `cce.s1.medium` - medium-scale single cluster (up to 200 nodes).\n+ `cce.s1.large` - large-scale single cluster (up to 1000 nodes).\n+ `cce.s2.small` - small-scale HA cluster (up to 50 nodes).\n+ `cce.s2.medium` - medium-scale HA cluster (up to 200 nodes).\n+ `cce.s2.large` - large-scale HA cluster (up to 1000 nodes).\n+ `cce.t1.small` - small-scale single physical machine cluster (up to 10 nodes).\n+ `cce.t1.medium` - medium-scale single physical machine cluster (up to 100 nodes).\n+ `cce.t1.large` - large-scale single physical machine cluster (up to 500 nodes).\n+ `cce.t2.small` - small-scale HA physical machine cluster (up to 10 nodes).\n+ `cce.t2.medium` - medium-scale HA physical machine cluster (up to 100 nodes).\n+ `cce.t2.large` - large-scale HA physical machine cluster (up to 500 nodes).\n"
          },
          "hibernate": {
            "type": "boolean",
            "description": "Specifies whether to hibernate the CCE cluster. Defaults to **false**. After a cluster is\nhibernated, resources such as workloads cannot be created or managed in the cluster, and the cluster cannot be\ndeleted.\n\n<a name=\"cce_masters\"></a>\nThe `masters` block supports:\n"
          },
          "highwaySubnetId": {
            "type": "string",
            "description": "The ID of the high speed network used to create bare metal nodes.\nChanging this parameter will create a new cluster resource.\n"
          },
          "internalEndpoint": {
            "type": "string",
            "description": "The internal network address.\n"
          },
          "kubeProxyMode": {
            "type": "string",
            "description": "Service forwarding mode. Two modes are available:\n\n+ iptables: Traditional kube-proxy uses iptables rules to implement service load balancing.\nIn this mode, too many iptables rules will be generated when many services are deployed. In addition,\nnon-incremental updates will cause a latency and even obvious performance issues in the case of heavy service traffic.\n+ ipvs: Optimized kube-proxy mode with higher throughput and faster speed. This mode supports incremental updates and\ncan keep connections uninterrupted during service updates. It is suitable for large-sized clusters.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Cluster tag, key/value pair format. Changing this parameter will create a new\ncluster resource.\n"
          },
          "masters": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCceClusterV3Master:CceClusterV3Master"
            },
            "description": "Advanced configuration of master nodes. Changing this creates a new cluster.\nThe masters object structure is documented below.\n"
          },
          "name": {
            "type": "string",
            "description": "Cluster name. Changing this parameter will create a new cluster resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the CCE cluster resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CCE cluster resource.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Security group ID of the cluster.\n"
          },
          "serviceNetworkCidr": {
            "type": "string",
            "description": "Service network segment. Changing this parameter will create\na new cluster resource.\n"
          },
          "status": {
            "type": "string",
            "description": "Cluster status information.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "The ID of the VPC Subnet used to create the node.\nChanging this parameter will create a new cluster resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCceClusterV3Timeouts:CceClusterV3Timeouts"
          },
          "vpcId": {
            "type": "string",
            "description": "The ID of the VPC used to create the node.\nChanging this parameter will create a new cluster resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/cceNamespace:CceNamespace": {
      "description": "Manages a CCE namespace resource within FlexibleEngine.\n\n> **NOTE:** Currently, there is an ongoing certificate issue regarding the namespace management APIs.\n  Please set `insecure = true` in provider block to ignore SSL certificate verification.\n\n## Example Usage\n\n### Basic\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject(\"clusterId\");\nconst test = new flexibleengine.CceNamespace(\"test\", {clusterId: clusterId});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\ntest = flexibleengine.CceNamespace(\"test\", cluster_id=cluster_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var test = new Flexibleengine.CceNamespace(\"test\", new()\n    {\n        ClusterId = clusterId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\t_, err := flexibleengine.NewCceNamespace(ctx, \"test\", &flexibleengine.CceNamespaceArgs{\n\t\t\tClusterId: pulumi.Any(clusterId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CceNamespace;\nimport com.pulumi.flexibleengine.CceNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        var test = new CceNamespace(\"test\", CceNamespaceArgs.builder()\n            .clusterId(clusterId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:CceNamespace\n    properties:\n      clusterId: ${clusterId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCCE namespace can be imported using the cluster ID and namespace `name` separated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/cceNamespace:CceNamespace test <cluster_id>/<id>\n```\n\n```sh\n$ pulumi import flexibleengine:index/cceNamespace:CceNamespace test bb6923e4-b16e-11eb-b0cd-0255ac101da1/test-namespace\n```\n\n",
      "properties": {
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies an unstructured key value map for external parameters.\nChanging this will create a new namespace resource.\n"
        },
        "cceNamespaceId": {
          "type": "string",
          "description": "The namespace ID in UUID format.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "Specifies the cluster ID to which the CCE namespace belongs.\nChanging this will create a new namespace resource.\n"
        },
        "creationTimestamp": {
          "type": "string",
          "description": "The server time when namespace was created.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the map of string keys and values for labels.\nChanging this will create a new namespace resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the unique name of the namespace.\nThis parameter can contain a maximum of 63 characters, which may consist of lowercase letters, digits and hyphens (-),\nand must start and end with lowercase letters and digits. Changing this will create a new namespace resource.\nExactly one of `name` or `prefix` must be provided.\n"
        },
        "prefix": {
          "type": "string",
          "description": "Specifies a prefix used by the server to generate a unique name.\nThis parameter can contain a maximum of 63 characters, which may consist of lowercase letters, digits and\nhyphens (-), and must start and end with lowercase letters and digits.\nChanging this will create a new namespace resource. Exactly one of `name` or `prefix` must be provided.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the namespace resource.\nIf omitted, the provider-level region will be used. Changing this will create a new namespace resource.\n"
        },
        "status": {
          "type": "string",
          "description": "The current phase of the namespace.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCceNamespaceTimeouts:CceNamespaceTimeouts"
        }
      },
      "type": "object",
      "required": [
        "annotations",
        "cceNamespaceId",
        "clusterId",
        "creationTimestamp",
        "labels",
        "name",
        "region",
        "status"
      ],
      "inputProperties": {
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies an unstructured key value map for external parameters.\nChanging this will create a new namespace resource.\n"
        },
        "cceNamespaceId": {
          "type": "string",
          "description": "The namespace ID in UUID format.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "Specifies the cluster ID to which the CCE namespace belongs.\nChanging this will create a new namespace resource.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the map of string keys and values for labels.\nChanging this will create a new namespace resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the unique name of the namespace.\nThis parameter can contain a maximum of 63 characters, which may consist of lowercase letters, digits and hyphens (-),\nand must start and end with lowercase letters and digits. Changing this will create a new namespace resource.\nExactly one of `name` or `prefix` must be provided.\n"
        },
        "prefix": {
          "type": "string",
          "description": "Specifies a prefix used by the server to generate a unique name.\nThis parameter can contain a maximum of 63 characters, which may consist of lowercase letters, digits and\nhyphens (-), and must start and end with lowercase letters and digits.\nChanging this will create a new namespace resource. Exactly one of `name` or `prefix` must be provided.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the namespace resource.\nIf omitted, the provider-level region will be used. Changing this will create a new namespace resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCceNamespaceTimeouts:CceNamespaceTimeouts"
        }
      },
      "requiredInputs": [
        "clusterId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CceNamespace resources.\n",
        "properties": {
          "annotations": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies an unstructured key value map for external parameters.\nChanging this will create a new namespace resource.\n"
          },
          "cceNamespaceId": {
            "type": "string",
            "description": "The namespace ID in UUID format.\n"
          },
          "clusterId": {
            "type": "string",
            "description": "Specifies the cluster ID to which the CCE namespace belongs.\nChanging this will create a new namespace resource.\n"
          },
          "creationTimestamp": {
            "type": "string",
            "description": "The server time when namespace was created.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the map of string keys and values for labels.\nChanging this will create a new namespace resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the unique name of the namespace.\nThis parameter can contain a maximum of 63 characters, which may consist of lowercase letters, digits and hyphens (-),\nand must start and end with lowercase letters and digits. Changing this will create a new namespace resource.\nExactly one of `name` or `prefix` must be provided.\n"
          },
          "prefix": {
            "type": "string",
            "description": "Specifies a prefix used by the server to generate a unique name.\nThis parameter can contain a maximum of 63 characters, which may consist of lowercase letters, digits and\nhyphens (-), and must start and end with lowercase letters and digits.\nChanging this will create a new namespace resource. Exactly one of `name` or `prefix` must be provided.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the namespace resource.\nIf omitted, the provider-level region will be used. Changing this will create a new namespace resource.\n"
          },
          "status": {
            "type": "string",
            "description": "The current phase of the namespace.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCceNamespaceTimeouts:CceNamespaceTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/cceNodePoolV3:CceNodePoolV3": {
      "description": "Add a node pool to a container cluster.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject(\"clusterId\");\nconst keyPair = config.requireObject(\"keyPair\");\nconst availabilityZone = config.requireObject(\"availabilityZone\");\nconst nodePool = new flexibleengine.CceNodePoolV3(\"nodePool\", {\n    clusterId: clusterId,\n    os: \"EulerOS 2.5\",\n    initialNodeCount: 2,\n    flavorId: \"s3.large.4\",\n    availabilityZone: availabilityZone,\n    keyPair: _var.keypair,\n    scaleEnable: true,\n    minNodeCount: 1,\n    maxNodeCount: 10,\n    scaleDownCooldownTime: 100,\n    priority: 1,\n    type: \"vm\",\n    rootVolume: {\n        size: 40,\n        volumetype: \"SAS\",\n    },\n    dataVolumes: [{\n        size: 100,\n        volumetype: \"SAS\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nkey_pair = config.require_object(\"keyPair\")\navailability_zone = config.require_object(\"availabilityZone\")\nnode_pool = flexibleengine.CceNodePoolV3(\"nodePool\",\n    cluster_id=cluster_id,\n    os=\"EulerOS 2.5\",\n    initial_node_count=2,\n    flavor_id=\"s3.large.4\",\n    availability_zone=availability_zone,\n    key_pair=var[\"keypair\"],\n    scale_enable=True,\n    min_node_count=1,\n    max_node_count=10,\n    scale_down_cooldown_time=100,\n    priority=1,\n    type=\"vm\",\n    root_volume={\n        \"size\": 40,\n        \"volumetype\": \"SAS\",\n    },\n    data_volumes=[{\n        \"size\": 100,\n        \"volumetype\": \"SAS\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var keyPair = config.RequireObject<dynamic>(\"keyPair\");\n    var availabilityZone = config.RequireObject<dynamic>(\"availabilityZone\");\n    var nodePool = new Flexibleengine.CceNodePoolV3(\"nodePool\", new()\n    {\n        ClusterId = clusterId,\n        Os = \"EulerOS 2.5\",\n        InitialNodeCount = 2,\n        FlavorId = \"s3.large.4\",\n        AvailabilityZone = availabilityZone,\n        KeyPair = @var.Keypair,\n        ScaleEnable = true,\n        MinNodeCount = 1,\n        MaxNodeCount = 10,\n        ScaleDownCooldownTime = 100,\n        Priority = 1,\n        Type = \"vm\",\n        RootVolume = new Flexibleengine.Inputs.CceNodePoolV3RootVolumeArgs\n        {\n            Size = 40,\n            Volumetype = \"SAS\",\n        },\n        DataVolumes = new[]\n        {\n            new Flexibleengine.Inputs.CceNodePoolV3DataVolumeArgs\n            {\n                Size = 100,\n                Volumetype = \"SAS\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tkeyPair := cfg.RequireObject(\"keyPair\")\n\t\tavailabilityZone := cfg.RequireObject(\"availabilityZone\")\n\t\t_, err := flexibleengine.NewCceNodePoolV3(ctx, \"nodePool\", &flexibleengine.CceNodePoolV3Args{\n\t\t\tClusterId:             pulumi.Any(clusterId),\n\t\t\tOs:                    pulumi.String(\"EulerOS 2.5\"),\n\t\t\tInitialNodeCount:      pulumi.Float64(2),\n\t\t\tFlavorId:              pulumi.String(\"s3.large.4\"),\n\t\t\tAvailabilityZone:      pulumi.Any(availabilityZone),\n\t\t\tKeyPair:               pulumi.Any(_var.Keypair),\n\t\t\tScaleEnable:           pulumi.Bool(true),\n\t\t\tMinNodeCount:          pulumi.Float64(1),\n\t\t\tMaxNodeCount:          pulumi.Float64(10),\n\t\t\tScaleDownCooldownTime: pulumi.Float64(100),\n\t\t\tPriority:              pulumi.Float64(1),\n\t\t\tType:                  pulumi.String(\"vm\"),\n\t\t\tRootVolume: &flexibleengine.CceNodePoolV3RootVolumeArgs{\n\t\t\t\tSize:       pulumi.Float64(40),\n\t\t\t\tVolumetype: pulumi.String(\"SAS\"),\n\t\t\t},\n\t\t\tDataVolumes: flexibleengine.CceNodePoolV3DataVolumeArray{\n\t\t\t\t&flexibleengine.CceNodePoolV3DataVolumeArgs{\n\t\t\t\t\tSize:       pulumi.Float64(100),\n\t\t\t\t\tVolumetype: pulumi.String(\"SAS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CceNodePoolV3;\nimport com.pulumi.flexibleengine.CceNodePoolV3Args;\nimport com.pulumi.flexibleengine.inputs.CceNodePoolV3RootVolumeArgs;\nimport com.pulumi.flexibleengine.inputs.CceNodePoolV3DataVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var keyPair = config.get(\"keyPair\");\n        final var availabilityZone = config.get(\"availabilityZone\");\n        var nodePool = new CceNodePoolV3(\"nodePool\", CceNodePoolV3Args.builder()\n            .clusterId(clusterId)\n            .os(\"EulerOS 2.5\")\n            .initialNodeCount(2)\n            .flavorId(\"s3.large.4\")\n            .availabilityZone(availabilityZone)\n            .keyPair(var_.keypair())\n            .scaleEnable(true)\n            .minNodeCount(1)\n            .maxNodeCount(10)\n            .scaleDownCooldownTime(100)\n            .priority(1)\n            .type(\"vm\")\n            .rootVolume(CceNodePoolV3RootVolumeArgs.builder()\n                .size(40)\n                .volumetype(\"SAS\")\n                .build())\n            .dataVolumes(CceNodePoolV3DataVolumeArgs.builder()\n                .size(100)\n                .volumetype(\"SAS\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  keyPair:\n    type: dynamic\n  availabilityZone:\n    type: dynamic\nresources:\n  nodePool:\n    type: flexibleengine:CceNodePoolV3\n    properties:\n      clusterId: ${clusterId}\n      os: EulerOS 2.5\n      initialNodeCount: 2\n      flavorId: s3.large.4\n      availabilityZone: ${availabilityZone}\n      keyPair: ${var.keypair}\n      scaleEnable: true\n      minNodeCount: 1\n      maxNodeCount: 10\n      scaleDownCooldownTime: 100\n      priority: 1\n      type: vm\n      rootVolume:\n        size: 40\n        volumetype: SAS\n      dataVolumes:\n        - size: 100\n          volumetype: SAS\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nNode_pool can be imported using the cluster ID and node_pool ID, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/cceNodePoolV3:CceNodePoolV3 node_pool_1 <cluster_id>/<id>\n```\n\n",
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "specify the name of the available partition (AZ).\nDefault value is random to create nodes in a random AZ in the node pool.\nChanging this parameter will create a new resource.\n"
        },
        "billingMode": {
          "type": "number",
          "description": "Billing mode of a node.\n"
        },
        "cceNodePoolV3Id": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "ID of the cluster. Changing this parameter will create a new resource.\n"
        },
        "currentNodeCount": {
          "type": "number",
          "description": "The current number of the nodes.\n"
        },
        "dataVolumes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCceNodePoolV3DataVolume:CceNodePoolV3DataVolume"
          },
          "description": "Represents the data disk to be created.\nThe object structure is documented below. Changing this parameter will create a new resource.\n"
        },
        "ecsGroupId": {
          "type": "string",
          "description": "Specifies the ECS group ID. If specified, the node will be created under\nthe cloud server group. Changing this parameter will create a new resource.\n"
        },
        "extendParam": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "flavorId": {
          "type": "string",
          "description": "Specifies the flavor id. Changing this parameter will create a new resource.\n"
        },
        "initialNodeCount": {
          "type": "number",
          "description": "Specifies the initial number of expected nodes in the node pool.\nThis parameter can be also used to manually scale the node count afterwards.\n"
        },
        "keyPair": {
          "type": "string",
          "description": "Key pair name when logging in to select the key pair mode.\nThis parameter and `password` are alternative. Changing this parameter will create a new resource.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags of a Kubernetes node, key/value pair format.\n"
        },
        "maxNodeCount": {
          "type": "number",
          "description": "Maximum number of nodes allowed if auto scaling is enabled.\n"
        },
        "maxPods": {
          "type": "number",
          "description": "The maximum number of instances a node is allowed to create.\nChanging this parameter will create a new resource.\n"
        },
        "minNodeCount": {
          "type": "number",
          "description": "Minimum number of nodes allowed if auto scaling is enabled.\n"
        },
        "name": {
          "type": "string",
          "description": "Node Pool Name.\n"
        },
        "os": {
          "type": "string",
          "description": "Operating System of the node. The value can be EulerOS 2.5 and CentOS 7.6.\nChanging this parameter will create a new resource.\n"
        },
        "password": {
          "type": "string",
          "description": "root password when logging in to select the password mode.\nThis parameter must be **salted** and alternative to `key_pair`. Changing this parameter will create a new resource.\n",
          "secret": true
        },
        "postinstall": {
          "type": "string",
          "description": "Script required after the installation. The input value can be\na Base64 encoded string or not. Changing this parameter will create a new resource.\n"
        },
        "preinstall": {
          "type": "string",
          "description": "Script required before installation. The input value can be\na Base64 encoded string or not. Changing this parameter will create a new resource.\n"
        },
        "priority": {
          "type": "number",
          "description": "Weight of a node pool. A node pool with a higher weight has a higher priority during scaling.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CCE node pool resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CCE node pool resource.\n"
        },
        "rootVolume": {
          "$ref": "#/types/flexibleengine:index%2FCceNodePoolV3RootVolume:CceNodePoolV3RootVolume",
          "description": "It corresponds to the system disk related configuration.\nThe object structure is documented below. Changing this parameter will create a new resource.\n"
        },
        "runtime": {
          "type": "string",
          "description": "Specifies the runtime of the CCE node pool. Valid values are *docker* and\n*containerd*. Changing this creates a new resource.\n"
        },
        "scaleDownCooldownTime": {
          "type": "number",
          "description": "Interval between two scaling operations, in minutes.\n"
        },
        "scaleEnable": {
          "type": "boolean",
          "description": "Whether to enable auto scaling. If Autoscaler is enabled, install the autoscaler\nadd-on to use the auto scaling feature.\n"
        },
        "scallEnable": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of custom security group IDs for the node pool.\nIf specified, the nodes will be put in these security groups. When specifying a security group, do not modify\nthe rules of the port on which CCE running depends. Changing this parameter will create a new resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Node status information.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the VPC Subnet to which the NIC belongs.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags of a VM node, key/value pair format.\n"
        },
        "taints": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCceNodePoolV3Taint:CceNodePoolV3Taint"
          },
          "description": "You can add taints to created nodes to configure anti-affinity.\nThe object structure is documented below.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCceNodePoolV3Timeouts:CceNodePoolV3Timeouts"
        },
        "type": {
          "type": "string",
          "description": "Node Pool type. Possible values are: \"vm\" and \"ElasticBMS\".\n"
        }
      },
      "type": "object",
      "required": [
        "billingMode",
        "cceNodePoolV3Id",
        "clusterId",
        "currentNodeCount",
        "dataVolumes",
        "flavorId",
        "initialNodeCount",
        "name",
        "os",
        "region",
        "rootVolume",
        "runtime",
        "scaleEnable",
        "scallEnable",
        "securityGroups",
        "status"
      ],
      "inputProperties": {
        "availabilityZone": {
          "type": "string",
          "description": "specify the name of the available partition (AZ).\nDefault value is random to create nodes in a random AZ in the node pool.\nChanging this parameter will create a new resource.\n"
        },
        "cceNodePoolV3Id": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "ID of the cluster. Changing this parameter will create a new resource.\n"
        },
        "dataVolumes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCceNodePoolV3DataVolume:CceNodePoolV3DataVolume"
          },
          "description": "Represents the data disk to be created.\nThe object structure is documented below. Changing this parameter will create a new resource.\n"
        },
        "ecsGroupId": {
          "type": "string",
          "description": "Specifies the ECS group ID. If specified, the node will be created under\nthe cloud server group. Changing this parameter will create a new resource.\n"
        },
        "extendParam": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "flavorId": {
          "type": "string",
          "description": "Specifies the flavor id. Changing this parameter will create a new resource.\n"
        },
        "initialNodeCount": {
          "type": "number",
          "description": "Specifies the initial number of expected nodes in the node pool.\nThis parameter can be also used to manually scale the node count afterwards.\n"
        },
        "keyPair": {
          "type": "string",
          "description": "Key pair name when logging in to select the key pair mode.\nThis parameter and `password` are alternative. Changing this parameter will create a new resource.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags of a Kubernetes node, key/value pair format.\n"
        },
        "maxNodeCount": {
          "type": "number",
          "description": "Maximum number of nodes allowed if auto scaling is enabled.\n"
        },
        "maxPods": {
          "type": "number",
          "description": "The maximum number of instances a node is allowed to create.\nChanging this parameter will create a new resource.\n"
        },
        "minNodeCount": {
          "type": "number",
          "description": "Minimum number of nodes allowed if auto scaling is enabled.\n"
        },
        "name": {
          "type": "string",
          "description": "Node Pool Name.\n"
        },
        "os": {
          "type": "string",
          "description": "Operating System of the node. The value can be EulerOS 2.5 and CentOS 7.6.\nChanging this parameter will create a new resource.\n"
        },
        "password": {
          "type": "string",
          "description": "root password when logging in to select the password mode.\nThis parameter must be **salted** and alternative to `key_pair`. Changing this parameter will create a new resource.\n",
          "secret": true
        },
        "postinstall": {
          "type": "string",
          "description": "Script required after the installation. The input value can be\na Base64 encoded string or not. Changing this parameter will create a new resource.\n"
        },
        "preinstall": {
          "type": "string",
          "description": "Script required before installation. The input value can be\na Base64 encoded string or not. Changing this parameter will create a new resource.\n"
        },
        "priority": {
          "type": "number",
          "description": "Weight of a node pool. A node pool with a higher weight has a higher priority during scaling.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CCE node pool resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CCE node pool resource.\n"
        },
        "rootVolume": {
          "$ref": "#/types/flexibleengine:index%2FCceNodePoolV3RootVolume:CceNodePoolV3RootVolume",
          "description": "It corresponds to the system disk related configuration.\nThe object structure is documented below. Changing this parameter will create a new resource.\n"
        },
        "runtime": {
          "type": "string",
          "description": "Specifies the runtime of the CCE node pool. Valid values are *docker* and\n*containerd*. Changing this creates a new resource.\n"
        },
        "scaleDownCooldownTime": {
          "type": "number",
          "description": "Interval between two scaling operations, in minutes.\n"
        },
        "scaleEnable": {
          "type": "boolean",
          "description": "Whether to enable auto scaling. If Autoscaler is enabled, install the autoscaler\nadd-on to use the auto scaling feature.\n"
        },
        "scallEnable": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of custom security group IDs for the node pool.\nIf specified, the nodes will be put in these security groups. When specifying a security group, do not modify\nthe rules of the port on which CCE running depends. Changing this parameter will create a new resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the VPC Subnet to which the NIC belongs.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags of a VM node, key/value pair format.\n"
        },
        "taints": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCceNodePoolV3Taint:CceNodePoolV3Taint"
          },
          "description": "You can add taints to created nodes to configure anti-affinity.\nThe object structure is documented below.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCceNodePoolV3Timeouts:CceNodePoolV3Timeouts"
        },
        "type": {
          "type": "string",
          "description": "Node Pool type. Possible values are: \"vm\" and \"ElasticBMS\".\n"
        }
      },
      "requiredInputs": [
        "clusterId",
        "dataVolumes",
        "flavorId",
        "initialNodeCount",
        "rootVolume"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CceNodePoolV3 resources.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "specify the name of the available partition (AZ).\nDefault value is random to create nodes in a random AZ in the node pool.\nChanging this parameter will create a new resource.\n"
          },
          "billingMode": {
            "type": "number",
            "description": "Billing mode of a node.\n"
          },
          "cceNodePoolV3Id": {
            "type": "string",
            "description": "Specifies a resource ID in UUID format.\n"
          },
          "clusterId": {
            "type": "string",
            "description": "ID of the cluster. Changing this parameter will create a new resource.\n"
          },
          "currentNodeCount": {
            "type": "number",
            "description": "The current number of the nodes.\n"
          },
          "dataVolumes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCceNodePoolV3DataVolume:CceNodePoolV3DataVolume"
            },
            "description": "Represents the data disk to be created.\nThe object structure is documented below. Changing this parameter will create a new resource.\n"
          },
          "ecsGroupId": {
            "type": "string",
            "description": "Specifies the ECS group ID. If specified, the node will be created under\nthe cloud server group. Changing this parameter will create a new resource.\n"
          },
          "extendParam": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "flavorId": {
            "type": "string",
            "description": "Specifies the flavor id. Changing this parameter will create a new resource.\n"
          },
          "initialNodeCount": {
            "type": "number",
            "description": "Specifies the initial number of expected nodes in the node pool.\nThis parameter can be also used to manually scale the node count afterwards.\n"
          },
          "keyPair": {
            "type": "string",
            "description": "Key pair name when logging in to select the key pair mode.\nThis parameter and `password` are alternative. Changing this parameter will create a new resource.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of a Kubernetes node, key/value pair format.\n"
          },
          "maxNodeCount": {
            "type": "number",
            "description": "Maximum number of nodes allowed if auto scaling is enabled.\n"
          },
          "maxPods": {
            "type": "number",
            "description": "The maximum number of instances a node is allowed to create.\nChanging this parameter will create a new resource.\n"
          },
          "minNodeCount": {
            "type": "number",
            "description": "Minimum number of nodes allowed if auto scaling is enabled.\n"
          },
          "name": {
            "type": "string",
            "description": "Node Pool Name.\n"
          },
          "os": {
            "type": "string",
            "description": "Operating System of the node. The value can be EulerOS 2.5 and CentOS 7.6.\nChanging this parameter will create a new resource.\n"
          },
          "password": {
            "type": "string",
            "description": "root password when logging in to select the password mode.\nThis parameter must be **salted** and alternative to `key_pair`. Changing this parameter will create a new resource.\n",
            "secret": true
          },
          "postinstall": {
            "type": "string",
            "description": "Script required after the installation. The input value can be\na Base64 encoded string or not. Changing this parameter will create a new resource.\n"
          },
          "preinstall": {
            "type": "string",
            "description": "Script required before installation. The input value can be\na Base64 encoded string or not. Changing this parameter will create a new resource.\n"
          },
          "priority": {
            "type": "number",
            "description": "Weight of a node pool. A node pool with a higher weight has a higher priority during scaling.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the CCE node pool resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CCE node pool resource.\n"
          },
          "rootVolume": {
            "$ref": "#/types/flexibleengine:index%2FCceNodePoolV3RootVolume:CceNodePoolV3RootVolume",
            "description": "It corresponds to the system disk related configuration.\nThe object structure is documented below. Changing this parameter will create a new resource.\n"
          },
          "runtime": {
            "type": "string",
            "description": "Specifies the runtime of the CCE node pool. Valid values are *docker* and\n*containerd*. Changing this creates a new resource.\n"
          },
          "scaleDownCooldownTime": {
            "type": "number",
            "description": "Interval between two scaling operations, in minutes.\n"
          },
          "scaleEnable": {
            "type": "boolean",
            "description": "Whether to enable auto scaling. If Autoscaler is enabled, install the autoscaler\nadd-on to use the auto scaling feature.\n"
          },
          "scallEnable": {
            "type": "boolean",
            "deprecationMessage": "Deprecated"
          },
          "securityGroups": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the list of custom security group IDs for the node pool.\nIf specified, the nodes will be put in these security groups. When specifying a security group, do not modify\nthe rules of the port on which CCE running depends. Changing this parameter will create a new resource.\n"
          },
          "status": {
            "type": "string",
            "description": "Node status information.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "The ID of the VPC Subnet to which the NIC belongs.\nChanging this parameter will create a new resource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of a VM node, key/value pair format.\n"
          },
          "taints": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCceNodePoolV3Taint:CceNodePoolV3Taint"
            },
            "description": "You can add taints to created nodes to configure anti-affinity.\nThe object structure is documented below.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCceNodePoolV3Timeouts:CceNodePoolV3Timeouts"
          },
          "type": {
            "type": "string",
            "description": "Node Pool type. Possible values are: \"vm\" and \"ElasticBMS\".\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/cceNodeV3:CceNodeV3": {
      "description": "Add a node to a container cluster.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject(\"clusterId\");\nconst sshKey = config.requireObject(\"sshKey\");\nconst availabilityZone = config.requireObject(\"availabilityZone\");\nconst node1 = new flexibleengine.CceNodeV3(\"node1\", {\n    clusterId: clusterId,\n    flavorId: \"s1.medium\",\n    availabilityZone: availabilityZone,\n    keyPair: sshKey,\n    iptype: \"5_bgp\",\n    sharetype: \"PER\",\n    bandwidthSize: 100,\n    rootVolume: {\n        size: 40,\n        volumetype: \"SATA\",\n    },\n    dataVolumes: [{\n        size: 100,\n        volumetype: \"SATA\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nssh_key = config.require_object(\"sshKey\")\navailability_zone = config.require_object(\"availabilityZone\")\nnode1 = flexibleengine.CceNodeV3(\"node1\",\n    cluster_id=cluster_id,\n    flavor_id=\"s1.medium\",\n    availability_zone=availability_zone,\n    key_pair=ssh_key,\n    iptype=\"5_bgp\",\n    sharetype=\"PER\",\n    bandwidth_size=100,\n    root_volume={\n        \"size\": 40,\n        \"volumetype\": \"SATA\",\n    },\n    data_volumes=[{\n        \"size\": 100,\n        \"volumetype\": \"SATA\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var sshKey = config.RequireObject<dynamic>(\"sshKey\");\n    var availabilityZone = config.RequireObject<dynamic>(\"availabilityZone\");\n    var node1 = new Flexibleengine.CceNodeV3(\"node1\", new()\n    {\n        ClusterId = clusterId,\n        FlavorId = \"s1.medium\",\n        AvailabilityZone = availabilityZone,\n        KeyPair = sshKey,\n        Iptype = \"5_bgp\",\n        Sharetype = \"PER\",\n        BandwidthSize = 100,\n        RootVolume = new Flexibleengine.Inputs.CceNodeV3RootVolumeArgs\n        {\n            Size = 40,\n            Volumetype = \"SATA\",\n        },\n        DataVolumes = new[]\n        {\n            new Flexibleengine.Inputs.CceNodeV3DataVolumeArgs\n            {\n                Size = 100,\n                Volumetype = \"SATA\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tsshKey := cfg.RequireObject(\"sshKey\")\n\t\tavailabilityZone := cfg.RequireObject(\"availabilityZone\")\n\t\t_, err := flexibleengine.NewCceNodeV3(ctx, \"node1\", &flexibleengine.CceNodeV3Args{\n\t\t\tClusterId:        pulumi.Any(clusterId),\n\t\t\tFlavorId:         pulumi.String(\"s1.medium\"),\n\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\n\t\t\tKeyPair:          pulumi.Any(sshKey),\n\t\t\tIptype:           pulumi.String(\"5_bgp\"),\n\t\t\tSharetype:        pulumi.String(\"PER\"),\n\t\t\tBandwidthSize:    pulumi.Float64(100),\n\t\t\tRootVolume: &flexibleengine.CceNodeV3RootVolumeArgs{\n\t\t\t\tSize:       pulumi.Float64(40),\n\t\t\t\tVolumetype: pulumi.String(\"SATA\"),\n\t\t\t},\n\t\t\tDataVolumes: flexibleengine.CceNodeV3DataVolumeArray{\n\t\t\t\t&flexibleengine.CceNodeV3DataVolumeArgs{\n\t\t\t\t\tSize:       pulumi.Float64(100),\n\t\t\t\t\tVolumetype: pulumi.String(\"SATA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CceNodeV3;\nimport com.pulumi.flexibleengine.CceNodeV3Args;\nimport com.pulumi.flexibleengine.inputs.CceNodeV3RootVolumeArgs;\nimport com.pulumi.flexibleengine.inputs.CceNodeV3DataVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var sshKey = config.get(\"sshKey\");\n        final var availabilityZone = config.get(\"availabilityZone\");\n        var node1 = new CceNodeV3(\"node1\", CceNodeV3Args.builder()\n            .clusterId(clusterId)\n            .flavorId(\"s1.medium\")\n            .availabilityZone(availabilityZone)\n            .keyPair(sshKey)\n            .iptype(\"5_bgp\")\n            .sharetype(\"PER\")\n            .bandwidthSize(100)\n            .rootVolume(CceNodeV3RootVolumeArgs.builder()\n                .size(40)\n                .volumetype(\"SATA\")\n                .build())\n            .dataVolumes(CceNodeV3DataVolumeArgs.builder()\n                .size(100)\n                .volumetype(\"SATA\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  sshKey:\n    type: dynamic\n  availabilityZone:\n    type: dynamic\nresources:\n  node1:\n    type: flexibleengine:CceNodeV3\n    properties:\n      clusterId: ${clusterId}\n      flavorId: s1.medium\n      availabilityZone: ${availabilityZone}\n      keyPair: ${sshKey}\n      iptype: 5_bgp\n      sharetype: PER\n      bandwidthSize: 100\n      rootVolume:\n        size: 40\n        volumetype: SATA\n      dataVolumes:\n        - size: 100\n          volumetype: SATA\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCCE node can be imported using the `cluster_id` and the `id` of the node separated by `/`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/cceNodeV3:CceNodeV3 node_1 1c4a7f7c-5b8f-11e8-9c2d-525400bd8000/1c4a7f7c-5b8f-11e8-9c2d-525400bd8000\n```\n\n",
      "properties": {
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Node annotation, key/value pair format. Changing this parameter will\ncreate a new resource.\n"
        },
        "availabilityZone": {
          "type": "string",
          "description": "specify the name of the available partition (AZ).\nChanging this parameter will create a new resource.\n"
        },
        "bandwidthChargeMode": {
          "type": "string",
          "description": "Bandwidth billing type. Changing this parameter will create a\nnew resource.\n"
        },
        "bandwidthSize": {
          "type": "number",
          "description": "Bandwidth size. Changing this parameter will create a new resource.\n"
        },
        "billingMode": {
          "type": "number",
          "deprecationMessage": "Deprecated"
        },
        "cceNodeV3Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "ID of the cluster. Changing this parameter will create a new resource.\n"
        },
        "dataVolumes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCceNodeV3DataVolume:CceNodeV3DataVolume"
          },
          "description": "Represents the data disk to be created.\nChanging this parameter will create a new resource.\n"
        },
        "ecsGroupId": {
          "type": "string",
          "description": "Specifies the ECS group ID. If specified, the node will be created under\nthe cloud server group. Changing this parameter will create a new resource.\n"
        },
        "ecsPerformanceType": {
          "type": "string",
          "description": "Classification of cloud server specifications.\nChanging this parameter will create a new resource.\n"
        },
        "eipCount": {
          "type": "number",
          "description": "Number of elastic IPs to be dynamically created. Changing this parameter\nwill create a new resource.\n"
        },
        "eipIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of existing elastic IP IDs. Changing this parameter will create a new\nresource.\n\n> If the `eip_ids` parameter is configured, you do not need to configure the `eip_count` and bandwidth parameters:\n`iptype`, `bandwidth_charge_mode`, `bandwidth_size` and `share_type`.\n"
        },
        "extendParam": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Extended parameter. Changing this parameter will create a new resource.\nAvailiable keys:\n"
        },
        "extendParamChargingMode": {
          "type": "number",
          "deprecationMessage": "Deprecated"
        },
        "flavorId": {
          "type": "string",
          "description": "Specifies the flavor id.Changing this parameter will create a new resource.\n"
        },
        "iptype": {
          "type": "string",
          "description": "Elastic IP type. Changing this parameter will create a new resource.\n"
        },
        "keyPair": {
          "type": "string",
          "description": "Key pair name when logging in to select the key pair mode.\nChanging this parameter will create a new resource.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags of a Kubernetes node, key/value pair format. Changing this parameter will\ncreate a new resource.\n"
        },
        "maxPods": {
          "type": "number",
          "description": "The maximum number of instances a node is allowed to create.\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Node Name.\n"
        },
        "orderId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "os": {
          "type": "string",
          "description": "Operating System of the node, possible values are EulerOS 2.2 and CentOS 7.6.\nDefaults to EulerOS 2.2. Changing this parameter will create a new resource.\n"
        },
        "postinstall": {
          "type": "string",
          "description": "Script required after installation. The input value can be a Base64\nencoded string or not. Changing this parameter will create a new resource.\n"
        },
        "preinstall": {
          "type": "string",
          "description": "Script required before installation. The input value can be a Base64\nencoded string or not. Changing this parameter will create a new resource.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "Private IP of the CCE node.\n"
        },
        "productId": {
          "type": "string",
          "description": "The Product ID. Changing this parameter will create a new resource.\n"
        },
        "publicIp": {
          "type": "string",
          "description": "Public IP of the CCE node.\n"
        },
        "publicKey": {
          "type": "string",
          "description": "The Public key. Changing this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CCE node resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CCE node resource.\n"
        },
        "rootVolume": {
          "$ref": "#/types/flexibleengine:index%2FCceNodeV3RootVolume:CceNodeV3RootVolume",
          "description": "It corresponds to the system disk related configuration.\nChanging this parameter will create a new resource.\n"
        },
        "runtime": {
          "type": "string",
          "description": "Specifies the runtime of the CCE node. Valid values are *docker* and\n*containerd*. Changing this creates a new resource.\n"
        },
        "serverId": {
          "type": "string",
          "description": "ID of the ECS instance associated with the node.\n"
        },
        "sharetype": {
          "type": "string",
          "description": "Bandwidth sharing type. Changing this parameter will create a new resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Node status information.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet to which the NIC belongs.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "VM tag, key/value pair format.\n"
        },
        "taints": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCceNodeV3Taint:CceNodeV3Taint"
          },
          "description": "You can add taints to created nodes to configure anti-affinity.\nChanging this parameter will create a new resource.\nEach taint contains the following parameters:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCceNodeV3Timeouts:CceNodeV3Timeouts"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "bandwidthChargeMode",
        "bandwidthSize",
        "cceNodeV3Id",
        "clusterId",
        "dataVolumes",
        "ecsGroupId",
        "ecsPerformanceType",
        "eipCount",
        "eipIds",
        "flavorId",
        "iptype",
        "keyPair",
        "maxPods",
        "name",
        "os",
        "privateIp",
        "productId",
        "publicIp",
        "publicKey",
        "region",
        "rootVolume",
        "runtime",
        "serverId",
        "sharetype",
        "status",
        "subnetId"
      ],
      "inputProperties": {
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Node annotation, key/value pair format. Changing this parameter will\ncreate a new resource.\n"
        },
        "availabilityZone": {
          "type": "string",
          "description": "specify the name of the available partition (AZ).\nChanging this parameter will create a new resource.\n"
        },
        "bandwidthChargeMode": {
          "type": "string",
          "description": "Bandwidth billing type. Changing this parameter will create a\nnew resource.\n"
        },
        "bandwidthSize": {
          "type": "number",
          "description": "Bandwidth size. Changing this parameter will create a new resource.\n"
        },
        "billingMode": {
          "type": "number",
          "deprecationMessage": "Deprecated"
        },
        "cceNodeV3Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "ID of the cluster. Changing this parameter will create a new resource.\n"
        },
        "dataVolumes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCceNodeV3DataVolume:CceNodeV3DataVolume"
          },
          "description": "Represents the data disk to be created.\nChanging this parameter will create a new resource.\n"
        },
        "ecsGroupId": {
          "type": "string",
          "description": "Specifies the ECS group ID. If specified, the node will be created under\nthe cloud server group. Changing this parameter will create a new resource.\n"
        },
        "ecsPerformanceType": {
          "type": "string",
          "description": "Classification of cloud server specifications.\nChanging this parameter will create a new resource.\n"
        },
        "eipCount": {
          "type": "number",
          "description": "Number of elastic IPs to be dynamically created. Changing this parameter\nwill create a new resource.\n"
        },
        "eipIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of existing elastic IP IDs. Changing this parameter will create a new\nresource.\n\n> If the `eip_ids` parameter is configured, you do not need to configure the `eip_count` and bandwidth parameters:\n`iptype`, `bandwidth_charge_mode`, `bandwidth_size` and `share_type`.\n"
        },
        "extendParam": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Extended parameter. Changing this parameter will create a new resource.\nAvailiable keys:\n"
        },
        "extendParamChargingMode": {
          "type": "number",
          "deprecationMessage": "Deprecated"
        },
        "flavorId": {
          "type": "string",
          "description": "Specifies the flavor id.Changing this parameter will create a new resource.\n"
        },
        "iptype": {
          "type": "string",
          "description": "Elastic IP type. Changing this parameter will create a new resource.\n"
        },
        "keyPair": {
          "type": "string",
          "description": "Key pair name when logging in to select the key pair mode.\nChanging this parameter will create a new resource.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags of a Kubernetes node, key/value pair format. Changing this parameter will\ncreate a new resource.\n"
        },
        "maxPods": {
          "type": "number",
          "description": "The maximum number of instances a node is allowed to create.\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Node Name.\n"
        },
        "orderId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "os": {
          "type": "string",
          "description": "Operating System of the node, possible values are EulerOS 2.2 and CentOS 7.6.\nDefaults to EulerOS 2.2. Changing this parameter will create a new resource.\n"
        },
        "postinstall": {
          "type": "string",
          "description": "Script required after installation. The input value can be a Base64\nencoded string or not. Changing this parameter will create a new resource.\n"
        },
        "preinstall": {
          "type": "string",
          "description": "Script required before installation. The input value can be a Base64\nencoded string or not. Changing this parameter will create a new resource.\n"
        },
        "productId": {
          "type": "string",
          "description": "The Product ID. Changing this parameter will create a new resource.\n"
        },
        "publicKey": {
          "type": "string",
          "description": "The Public key. Changing this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CCE node resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CCE node resource.\n"
        },
        "rootVolume": {
          "$ref": "#/types/flexibleengine:index%2FCceNodeV3RootVolume:CceNodeV3RootVolume",
          "description": "It corresponds to the system disk related configuration.\nChanging this parameter will create a new resource.\n"
        },
        "runtime": {
          "type": "string",
          "description": "Specifies the runtime of the CCE node. Valid values are *docker* and\n*containerd*. Changing this creates a new resource.\n"
        },
        "sharetype": {
          "type": "string",
          "description": "Bandwidth sharing type. Changing this parameter will create a new resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet to which the NIC belongs.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "VM tag, key/value pair format.\n"
        },
        "taints": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCceNodeV3Taint:CceNodeV3Taint"
          },
          "description": "You can add taints to created nodes to configure anti-affinity.\nChanging this parameter will create a new resource.\nEach taint contains the following parameters:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCceNodeV3Timeouts:CceNodeV3Timeouts"
        }
      },
      "requiredInputs": [
        "availabilityZone",
        "clusterId",
        "dataVolumes",
        "flavorId",
        "keyPair",
        "rootVolume"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CceNodeV3 resources.\n",
        "properties": {
          "annotations": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Node annotation, key/value pair format. Changing this parameter will\ncreate a new resource.\n"
          },
          "availabilityZone": {
            "type": "string",
            "description": "specify the name of the available partition (AZ).\nChanging this parameter will create a new resource.\n"
          },
          "bandwidthChargeMode": {
            "type": "string",
            "description": "Bandwidth billing type. Changing this parameter will create a\nnew resource.\n"
          },
          "bandwidthSize": {
            "type": "number",
            "description": "Bandwidth size. Changing this parameter will create a new resource.\n"
          },
          "billingMode": {
            "type": "number",
            "deprecationMessage": "Deprecated"
          },
          "cceNodeV3Id": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "clusterId": {
            "type": "string",
            "description": "ID of the cluster. Changing this parameter will create a new resource.\n"
          },
          "dataVolumes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCceNodeV3DataVolume:CceNodeV3DataVolume"
            },
            "description": "Represents the data disk to be created.\nChanging this parameter will create a new resource.\n"
          },
          "ecsGroupId": {
            "type": "string",
            "description": "Specifies the ECS group ID. If specified, the node will be created under\nthe cloud server group. Changing this parameter will create a new resource.\n"
          },
          "ecsPerformanceType": {
            "type": "string",
            "description": "Classification of cloud server specifications.\nChanging this parameter will create a new resource.\n"
          },
          "eipCount": {
            "type": "number",
            "description": "Number of elastic IPs to be dynamically created. Changing this parameter\nwill create a new resource.\n"
          },
          "eipIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of existing elastic IP IDs. Changing this parameter will create a new\nresource.\n\n> If the `eip_ids` parameter is configured, you do not need to configure the `eip_count` and bandwidth parameters:\n`iptype`, `bandwidth_charge_mode`, `bandwidth_size` and `share_type`.\n"
          },
          "extendParam": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Extended parameter. Changing this parameter will create a new resource.\nAvailiable keys:\n"
          },
          "extendParamChargingMode": {
            "type": "number",
            "deprecationMessage": "Deprecated"
          },
          "flavorId": {
            "type": "string",
            "description": "Specifies the flavor id.Changing this parameter will create a new resource.\n"
          },
          "iptype": {
            "type": "string",
            "description": "Elastic IP type. Changing this parameter will create a new resource.\n"
          },
          "keyPair": {
            "type": "string",
            "description": "Key pair name when logging in to select the key pair mode.\nChanging this parameter will create a new resource.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of a Kubernetes node, key/value pair format. Changing this parameter will\ncreate a new resource.\n"
          },
          "maxPods": {
            "type": "number",
            "description": "The maximum number of instances a node is allowed to create.\nChanging this parameter will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Node Name.\n"
          },
          "orderId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "os": {
            "type": "string",
            "description": "Operating System of the node, possible values are EulerOS 2.2 and CentOS 7.6.\nDefaults to EulerOS 2.2. Changing this parameter will create a new resource.\n"
          },
          "postinstall": {
            "type": "string",
            "description": "Script required after installation. The input value can be a Base64\nencoded string or not. Changing this parameter will create a new resource.\n"
          },
          "preinstall": {
            "type": "string",
            "description": "Script required before installation. The input value can be a Base64\nencoded string or not. Changing this parameter will create a new resource.\n"
          },
          "privateIp": {
            "type": "string",
            "description": "Private IP of the CCE node.\n"
          },
          "productId": {
            "type": "string",
            "description": "The Product ID. Changing this parameter will create a new resource.\n"
          },
          "publicIp": {
            "type": "string",
            "description": "Public IP of the CCE node.\n"
          },
          "publicKey": {
            "type": "string",
            "description": "The Public key. Changing this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the CCE node resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CCE node resource.\n"
          },
          "rootVolume": {
            "$ref": "#/types/flexibleengine:index%2FCceNodeV3RootVolume:CceNodeV3RootVolume",
            "description": "It corresponds to the system disk related configuration.\nChanging this parameter will create a new resource.\n"
          },
          "runtime": {
            "type": "string",
            "description": "Specifies the runtime of the CCE node. Valid values are *docker* and\n*containerd*. Changing this creates a new resource.\n"
          },
          "serverId": {
            "type": "string",
            "description": "ID of the ECS instance associated with the node.\n"
          },
          "sharetype": {
            "type": "string",
            "description": "Bandwidth sharing type. Changing this parameter will create a new resource.\n"
          },
          "status": {
            "type": "string",
            "description": "Node status information.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the ID of the VPC Subnet to which the NIC belongs.\nChanging this parameter will create a new resource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "VM tag, key/value pair format.\n"
          },
          "taints": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCceNodeV3Taint:CceNodeV3Taint"
            },
            "description": "You can add taints to created nodes to configure anti-affinity.\nChanging this parameter will create a new resource.\nEach taint contains the following parameters:\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCceNodeV3Timeouts:CceNodeV3Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/ccePvc:CcePvc": {
      "description": "Manages a CCE Persistent Volume Claim resource within FlexibleEngine.\n\n> **NOTE:** Currently, there is an ongoing certificate issue regarding the PVC management APIs.\n  Please set `insecure = true` in provider block to ignore SSL certificate verification.\n\n## Example Usage\n\n### Create PVC with EVS\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject(\"clusterId\");\nconst namespace = config.requireObject(\"namespace\");\nconst pvcName = config.requireObject(\"pvcName\");\nconst test = new flexibleengine.CcePvc(\"test\", {\n    clusterId: clusterId,\n    namespace: namespace,\n    annotations: {\n        \"everest.io/disk-volume-type\": \"SSD\",\n    },\n    storageClassName: \"csi-disk\",\n    accessModes: [\"ReadWriteOnce\"],\n    storage: \"10Gi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nnamespace = config.require_object(\"namespace\")\npvc_name = config.require_object(\"pvcName\")\ntest = flexibleengine.CcePvc(\"test\",\n    cluster_id=cluster_id,\n    namespace=namespace,\n    annotations={\n        \"everest.io/disk-volume-type\": \"SSD\",\n    },\n    storage_class_name=\"csi-disk\",\n    access_modes=[\"ReadWriteOnce\"],\n    storage=\"10Gi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var @namespace = config.RequireObject<dynamic>(\"namespace\");\n    var pvcName = config.RequireObject<dynamic>(\"pvcName\");\n    var test = new Flexibleengine.CcePvc(\"test\", new()\n    {\n        ClusterId = clusterId,\n        Namespace = @namespace,\n        Annotations = \n        {\n            { \"everest.io/disk-volume-type\", \"SSD\" },\n        },\n        StorageClassName = \"csi-disk\",\n        AccessModes = new[]\n        {\n            \"ReadWriteOnce\",\n        },\n        Storage = \"10Gi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tnamespace := cfg.RequireObject(\"namespace\")\n\t\tpvcName := cfg.RequireObject(\"pvcName\")\n\t\t_, err := flexibleengine.NewCcePvc(ctx, \"test\", &flexibleengine.CcePvcArgs{\n\t\t\tClusterId: pulumi.Any(clusterId),\n\t\t\tNamespace: pulumi.Any(namespace),\n\t\t\tAnnotations: pulumi.StringMap{\n\t\t\t\t\"everest.io/disk-volume-type\": pulumi.String(\"SSD\"),\n\t\t\t},\n\t\t\tStorageClassName: pulumi.String(\"csi-disk\"),\n\t\t\tAccessModes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ReadWriteOnce\"),\n\t\t\t},\n\t\t\tStorage: pulumi.String(\"10Gi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CcePvc;\nimport com.pulumi.flexibleengine.CcePvcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var namespace = config.get(\"namespace\");\n        final var pvcName = config.get(\"pvcName\");\n        var test = new CcePvc(\"test\", CcePvcArgs.builder()\n            .clusterId(clusterId)\n            .namespace(namespace)\n            .annotations(Map.of(\"everest.io/disk-volume-type\", \"SSD\"))\n            .storageClassName(\"csi-disk\")\n            .accessModes(\"ReadWriteOnce\")\n            .storage(\"10Gi\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  namespace:\n    type: dynamic\n  pvcName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:CcePvc\n    properties:\n      clusterId: ${clusterId}\n      namespace: ${namespace}\n      annotations:\n        everest.io/disk-volume-type: SSD\n      storageClassName: csi-disk\n      accessModes:\n        - ReadWriteOnce\n      storage: 10Gi\n```\n<!--End PulumiCodeChooser -->\n\n### Create PVC with OBS\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject(\"clusterId\");\nconst namespace = config.requireObject(\"namespace\");\nconst pvcName = config.requireObject(\"pvcName\");\nconst test = new flexibleengine.CcePvc(\"test\", {\n    clusterId: clusterId,\n    namespace: namespace,\n    annotations: {\n        \"everest.io/obs-volume-type\": \"STANDARD\",\n        \"csi.storage.k8s.io/fstype\": \"obsfs\",\n    },\n    storageClassName: \"csi-obs\",\n    accessModes: [\"ReadWriteMany\"],\n    storage: \"1Gi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nnamespace = config.require_object(\"namespace\")\npvc_name = config.require_object(\"pvcName\")\ntest = flexibleengine.CcePvc(\"test\",\n    cluster_id=cluster_id,\n    namespace=namespace,\n    annotations={\n        \"everest.io/obs-volume-type\": \"STANDARD\",\n        \"csi.storage.k8s.io/fstype\": \"obsfs\",\n    },\n    storage_class_name=\"csi-obs\",\n    access_modes=[\"ReadWriteMany\"],\n    storage=\"1Gi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var @namespace = config.RequireObject<dynamic>(\"namespace\");\n    var pvcName = config.RequireObject<dynamic>(\"pvcName\");\n    var test = new Flexibleengine.CcePvc(\"test\", new()\n    {\n        ClusterId = clusterId,\n        Namespace = @namespace,\n        Annotations = \n        {\n            { \"everest.io/obs-volume-type\", \"STANDARD\" },\n            { \"csi.storage.k8s.io/fstype\", \"obsfs\" },\n        },\n        StorageClassName = \"csi-obs\",\n        AccessModes = new[]\n        {\n            \"ReadWriteMany\",\n        },\n        Storage = \"1Gi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tnamespace := cfg.RequireObject(\"namespace\")\n\t\tpvcName := cfg.RequireObject(\"pvcName\")\n\t\t_, err := flexibleengine.NewCcePvc(ctx, \"test\", &flexibleengine.CcePvcArgs{\n\t\t\tClusterId: pulumi.Any(clusterId),\n\t\t\tNamespace: pulumi.Any(namespace),\n\t\t\tAnnotations: pulumi.StringMap{\n\t\t\t\t\"everest.io/obs-volume-type\": pulumi.String(\"STANDARD\"),\n\t\t\t\t\"csi.storage.k8s.io/fstype\":  pulumi.String(\"obsfs\"),\n\t\t\t},\n\t\t\tStorageClassName: pulumi.String(\"csi-obs\"),\n\t\t\tAccessModes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ReadWriteMany\"),\n\t\t\t},\n\t\t\tStorage: pulumi.String(\"1Gi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CcePvc;\nimport com.pulumi.flexibleengine.CcePvcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var namespace = config.get(\"namespace\");\n        final var pvcName = config.get(\"pvcName\");\n        var test = new CcePvc(\"test\", CcePvcArgs.builder()\n            .clusterId(clusterId)\n            .namespace(namespace)\n            .annotations(Map.ofEntries(\n                Map.entry(\"everest.io/obs-volume-type\", \"STANDARD\"),\n                Map.entry(\"csi.storage.k8s.io/fstype\", \"obsfs\")\n            ))\n            .storageClassName(\"csi-obs\")\n            .accessModes(\"ReadWriteMany\")\n            .storage(\"1Gi\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  namespace:\n    type: dynamic\n  pvcName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:CcePvc\n    properties:\n      clusterId: ${clusterId}\n      namespace: ${namespace}\n      annotations:\n        everest.io/obs-volume-type: STANDARD\n        csi.storage.k8s.io/fstype: obsfs\n      storageClassName: csi-obs\n      accessModes:\n        - ReadWriteMany\n      storage: 1Gi\n```\n<!--End PulumiCodeChooser -->\n\n### Create PVC with SFS\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject(\"clusterId\");\nconst namespace = config.requireObject(\"namespace\");\nconst pvcName = config.requireObject(\"pvcName\");\nconst test = new flexibleengine.CcePvc(\"test\", {\n    clusterId: clusterId,\n    namespace: namespace,\n    storageClassName: \"csi-nas\",\n    accessModes: [\"ReadWriteMany\"],\n    storage: \"10Gi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nnamespace = config.require_object(\"namespace\")\npvc_name = config.require_object(\"pvcName\")\ntest = flexibleengine.CcePvc(\"test\",\n    cluster_id=cluster_id,\n    namespace=namespace,\n    storage_class_name=\"csi-nas\",\n    access_modes=[\"ReadWriteMany\"],\n    storage=\"10Gi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var @namespace = config.RequireObject<dynamic>(\"namespace\");\n    var pvcName = config.RequireObject<dynamic>(\"pvcName\");\n    var test = new Flexibleengine.CcePvc(\"test\", new()\n    {\n        ClusterId = clusterId,\n        Namespace = @namespace,\n        StorageClassName = \"csi-nas\",\n        AccessModes = new[]\n        {\n            \"ReadWriteMany\",\n        },\n        Storage = \"10Gi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tnamespace := cfg.RequireObject(\"namespace\")\n\t\tpvcName := cfg.RequireObject(\"pvcName\")\n\t\t_, err := flexibleengine.NewCcePvc(ctx, \"test\", &flexibleengine.CcePvcArgs{\n\t\t\tClusterId:        pulumi.Any(clusterId),\n\t\t\tNamespace:        pulumi.Any(namespace),\n\t\t\tStorageClassName: pulumi.String(\"csi-nas\"),\n\t\t\tAccessModes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ReadWriteMany\"),\n\t\t\t},\n\t\t\tStorage: pulumi.String(\"10Gi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CcePvc;\nimport com.pulumi.flexibleengine.CcePvcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var namespace = config.get(\"namespace\");\n        final var pvcName = config.get(\"pvcName\");\n        var test = new CcePvc(\"test\", CcePvcArgs.builder()\n            .clusterId(clusterId)\n            .namespace(namespace)\n            .storageClassName(\"csi-nas\")\n            .accessModes(\"ReadWriteMany\")\n            .storage(\"10Gi\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  namespace:\n    type: dynamic\n  pvcName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:CcePvc\n    properties:\n      clusterId: ${clusterId}\n      namespace: ${namespace}\n      storageClassName: csi-nas\n      accessModes:\n        - ReadWriteMany\n      storage: 10Gi\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCCE PVC can be imported using the cluster ID, namespace name and PVC ID separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/ccePvc:CcePvc test <cluster_id>/<namespace_name>/<id>\n```\n\n```sh\n$ pulumi import flexibleengine:index/ccePvc:CcePvc test 5c20fdad-7288-11eb-b817-0255ac10158b/default/fa540f3b-12d9-40e5-8268-04bcfed95a46\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include: `annotations`.\n\nIt is generally recommended running `pulumi preview` after importing a PVC.\n\nYou can then decide if changes should be applied to the PVC, or the resource\n\ndefinition should be updated to align with the PVC. Also you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_cce_pvc\" \"test\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      annotations,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "accessModes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the desired access modes the volume should have.\nThe valid values are as follows:\n+ **ReadWriteOnce**: The volume can be mounted as read-write by a single node.\n+ **ReadOnlyMany**: The volume can be mounted as read-only by many nodes.\n+ **ReadWriteMany**: The volume can be mounted as read-write by many nodes.\n"
        },
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the unstructured key value map for external parameters.\nChanging this will create a new PVC resource.\n"
        },
        "ccePvcId": {
          "type": "string",
          "description": "The PVC ID in UUID format.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "Specifies the cluster ID to which the CCE PVC belongs.\n"
        },
        "creationTimestamp": {
          "type": "string",
          "description": "The server time when PVC was created.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the map of string keys and values for labels.\nChanging this will create a new PVC resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the unique name of the PVC resource. This parameter can contain a\nmaximum of 63 characters, which may consist of lowercase letters, digits and hyphens (-), and must start and end with\nlowercase letters and digits. Changing this will create a new PVC resource.\n"
        },
        "namespace": {
          "type": "string",
          "description": "Specifies the namespace to logically divide your containers into different\ngroup. Changing this will create a new PVC resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the PVC resource.\nIf omitted, the provider-level region will be used. Changing this will create a new PVC resource.\n"
        },
        "status": {
          "type": "string",
          "description": "The current phase of the PVC.\n+ **Pending**: Not yet bound.\n+ **Bound**: Already bound.\n"
        },
        "storage": {
          "type": "string",
          "description": "Specifies the minimum amount of storage resources required.\nChanging this creates a new PVC resource.\n"
        },
        "storageClassName": {
          "type": "string",
          "description": "Specifies the type of the storage bound to the CCE PVC.\nThe valid values are as follows:\n+ **csi-disk**: EVS.\n+ **csi-obs**: OBS.\n+ **csi-nas**: SFS.\n+ **csi-sfsturbo**: SFS-Turbo.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCcePvcTimeouts:CcePvcTimeouts"
        }
      },
      "type": "object",
      "required": [
        "accessModes",
        "ccePvcId",
        "clusterId",
        "creationTimestamp",
        "name",
        "namespace",
        "region",
        "status",
        "storage",
        "storageClassName"
      ],
      "inputProperties": {
        "accessModes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the desired access modes the volume should have.\nThe valid values are as follows:\n+ **ReadWriteOnce**: The volume can be mounted as read-write by a single node.\n+ **ReadOnlyMany**: The volume can be mounted as read-only by many nodes.\n+ **ReadWriteMany**: The volume can be mounted as read-write by many nodes.\n"
        },
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the unstructured key value map for external parameters.\nChanging this will create a new PVC resource.\n"
        },
        "ccePvcId": {
          "type": "string",
          "description": "The PVC ID in UUID format.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "Specifies the cluster ID to which the CCE PVC belongs.\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the map of string keys and values for labels.\nChanging this will create a new PVC resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the unique name of the PVC resource. This parameter can contain a\nmaximum of 63 characters, which may consist of lowercase letters, digits and hyphens (-), and must start and end with\nlowercase letters and digits. Changing this will create a new PVC resource.\n"
        },
        "namespace": {
          "type": "string",
          "description": "Specifies the namespace to logically divide your containers into different\ngroup. Changing this will create a new PVC resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the PVC resource.\nIf omitted, the provider-level region will be used. Changing this will create a new PVC resource.\n"
        },
        "storage": {
          "type": "string",
          "description": "Specifies the minimum amount of storage resources required.\nChanging this creates a new PVC resource.\n"
        },
        "storageClassName": {
          "type": "string",
          "description": "Specifies the type of the storage bound to the CCE PVC.\nThe valid values are as follows:\n+ **csi-disk**: EVS.\n+ **csi-obs**: OBS.\n+ **csi-nas**: SFS.\n+ **csi-sfsturbo**: SFS-Turbo.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCcePvcTimeouts:CcePvcTimeouts"
        }
      },
      "requiredInputs": [
        "accessModes",
        "clusterId",
        "namespace",
        "storage",
        "storageClassName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CcePvc resources.\n",
        "properties": {
          "accessModes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the desired access modes the volume should have.\nThe valid values are as follows:\n+ **ReadWriteOnce**: The volume can be mounted as read-write by a single node.\n+ **ReadOnlyMany**: The volume can be mounted as read-only by many nodes.\n+ **ReadWriteMany**: The volume can be mounted as read-write by many nodes.\n"
          },
          "annotations": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the unstructured key value map for external parameters.\nChanging this will create a new PVC resource.\n"
          },
          "ccePvcId": {
            "type": "string",
            "description": "The PVC ID in UUID format.\n"
          },
          "clusterId": {
            "type": "string",
            "description": "Specifies the cluster ID to which the CCE PVC belongs.\n"
          },
          "creationTimestamp": {
            "type": "string",
            "description": "The server time when PVC was created.\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the map of string keys and values for labels.\nChanging this will create a new PVC resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the unique name of the PVC resource. This parameter can contain a\nmaximum of 63 characters, which may consist of lowercase letters, digits and hyphens (-), and must start and end with\nlowercase letters and digits. Changing this will create a new PVC resource.\n"
          },
          "namespace": {
            "type": "string",
            "description": "Specifies the namespace to logically divide your containers into different\ngroup. Changing this will create a new PVC resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the PVC resource.\nIf omitted, the provider-level region will be used. Changing this will create a new PVC resource.\n"
          },
          "status": {
            "type": "string",
            "description": "The current phase of the PVC.\n+ **Pending**: Not yet bound.\n+ **Bound**: Already bound.\n"
          },
          "storage": {
            "type": "string",
            "description": "Specifies the minimum amount of storage resources required.\nChanging this creates a new PVC resource.\n"
          },
          "storageClassName": {
            "type": "string",
            "description": "Specifies the type of the storage bound to the CCE PVC.\nThe valid values are as follows:\n+ **csi-disk**: EVS.\n+ **csi-obs**: OBS.\n+ **csi-nas**: SFS.\n+ **csi-sfsturbo**: SFS-Turbo.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCcePvcTimeouts:CcePvcTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/cesAlarmrule:CesAlarmrule": {
      "description": "Manages a Cloud Eye alarm rule resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst alarmRule = new flexibleengine.CesAlarmrule(\"alarmRule\", {\n    alarmName: \"alarm_rule\",\n    metric: {\n        namespace: \"SYS.ECS\",\n        metricName: \"network_outgoing_bytes_rate_inband\",\n        dimensions: [{\n            name: \"instance_id\",\n            value: _var.instance_id,\n        }],\n    },\n    condition: {\n        period: 300,\n        filter: \"average\",\n        comparisonOperator: \">\",\n        value: 6,\n        unit: \"B/s\",\n        count: 1,\n    },\n    alarmActions: [{\n        type: \"notification\",\n        notificationLists: [_var.topic_id],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nalarm_rule = flexibleengine.CesAlarmrule(\"alarmRule\",\n    alarm_name=\"alarm_rule\",\n    metric={\n        \"namespace\": \"SYS.ECS\",\n        \"metric_name\": \"network_outgoing_bytes_rate_inband\",\n        \"dimensions\": [{\n            \"name\": \"instance_id\",\n            \"value\": var[\"instance_id\"],\n        }],\n    },\n    condition={\n        \"period\": 300,\n        \"filter\": \"average\",\n        \"comparison_operator\": \">\",\n        \"value\": 6,\n        \"unit\": \"B/s\",\n        \"count\": 1,\n    },\n    alarm_actions=[{\n        \"type\": \"notification\",\n        \"notification_lists\": [var[\"topic_id\"]],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var alarmRule = new Flexibleengine.CesAlarmrule(\"alarmRule\", new()\n    {\n        AlarmName = \"alarm_rule\",\n        Metric = new Flexibleengine.Inputs.CesAlarmruleMetricArgs\n        {\n            Namespace = \"SYS.ECS\",\n            MetricName = \"network_outgoing_bytes_rate_inband\",\n            Dimensions = new[]\n            {\n                new Flexibleengine.Inputs.CesAlarmruleMetricDimensionArgs\n                {\n                    Name = \"instance_id\",\n                    Value = @var.Instance_id,\n                },\n            },\n        },\n        Condition = new Flexibleengine.Inputs.CesAlarmruleConditionArgs\n        {\n            Period = 300,\n            Filter = \"average\",\n            ComparisonOperator = \">\",\n            Value = 6,\n            Unit = \"B/s\",\n            Count = 1,\n        },\n        AlarmActions = new[]\n        {\n            new Flexibleengine.Inputs.CesAlarmruleAlarmActionArgs\n            {\n                Type = \"notification\",\n                NotificationLists = new[]\n                {\n                    @var.Topic_id,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewCesAlarmrule(ctx, \"alarmRule\", &flexibleengine.CesAlarmruleArgs{\n\t\t\tAlarmName: pulumi.String(\"alarm_rule\"),\n\t\t\tMetric: &flexibleengine.CesAlarmruleMetricArgs{\n\t\t\t\tNamespace:  pulumi.String(\"SYS.ECS\"),\n\t\t\t\tMetricName: pulumi.String(\"network_outgoing_bytes_rate_inband\"),\n\t\t\t\tDimensions: flexibleengine.CesAlarmruleMetricDimensionArray{\n\t\t\t\t\t&flexibleengine.CesAlarmruleMetricDimensionArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"instance_id\"),\n\t\t\t\t\t\tValue: pulumi.Any(_var.Instance_id),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCondition: &flexibleengine.CesAlarmruleConditionArgs{\n\t\t\t\tPeriod:             pulumi.Float64(300),\n\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\tComparisonOperator: pulumi.String(\">\"),\n\t\t\t\tValue:              pulumi.Float64(6),\n\t\t\t\tUnit:               pulumi.String(\"B/s\"),\n\t\t\t\tCount:              pulumi.Float64(1),\n\t\t\t},\n\t\t\tAlarmActions: flexibleengine.CesAlarmruleAlarmActionArray{\n\t\t\t\t&flexibleengine.CesAlarmruleAlarmActionArgs{\n\t\t\t\t\tType: pulumi.String(\"notification\"),\n\t\t\t\t\tNotificationLists: pulumi.StringArray{\n\t\t\t\t\t\t_var.Topic_id,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CesAlarmrule;\nimport com.pulumi.flexibleengine.CesAlarmruleArgs;\nimport com.pulumi.flexibleengine.inputs.CesAlarmruleMetricArgs;\nimport com.pulumi.flexibleengine.inputs.CesAlarmruleConditionArgs;\nimport com.pulumi.flexibleengine.inputs.CesAlarmruleAlarmActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var alarmRule = new CesAlarmrule(\"alarmRule\", CesAlarmruleArgs.builder()\n            .alarmName(\"alarm_rule\")\n            .metric(CesAlarmruleMetricArgs.builder()\n                .namespace(\"SYS.ECS\")\n                .metricName(\"network_outgoing_bytes_rate_inband\")\n                .dimensions(CesAlarmruleMetricDimensionArgs.builder()\n                    .name(\"instance_id\")\n                    .value(var_.instance_id())\n                    .build())\n                .build())\n            .condition(CesAlarmruleConditionArgs.builder()\n                .period(300)\n                .filter(\"average\")\n                .comparisonOperator(\">\")\n                .value(6)\n                .unit(\"B/s\")\n                .count(1)\n                .build())\n            .alarmActions(CesAlarmruleAlarmActionArgs.builder()\n                .type(\"notification\")\n                .notificationLists(var_.topic_id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  alarmRule:\n    type: flexibleengine:CesAlarmrule\n    properties:\n      alarmName: alarm_rule\n      metric:\n        namespace: SYS.ECS\n        metricName: network_outgoing_bytes_rate_inband\n        dimensions:\n          - name: instance_id\n            value: ${var.instance_id}\n      condition:\n        period: 300\n        filter: average\n        comparisonOperator: '>'\n        value: 6\n        unit: B/s\n        count: 1\n      alarmActions:\n        - type: notification\n          notificationLists:\n            - ${var.topic_id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCES alarm rules can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/cesAlarmrule:CesAlarmrule alarm_rule al1619678242900OxEaaODM2\n```\n\n",
      "properties": {
        "alarmActionEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable the action\nto be triggered by an alarm. The default value is true.\n\n> **Note** If alarm_action_enabled is set to true, either alarm_actions or\nok_actions cannot be empty. If alarm_actions and ok_actions coexist, their\ncorresponding notification_list must be of the same value.\n"
        },
        "alarmActions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCesAlarmruleAlarmAction:CesAlarmruleAlarmAction"
          },
          "description": "Specifies the action triggered by an alarm. The\nstructure is described below.\n"
        },
        "alarmDescription": {
          "type": "string",
          "description": "The value can be a string of 0 to 256 characters.\n"
        },
        "alarmEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable the alarm. The default\nvalue is true.\n"
        },
        "alarmLevel": {
          "type": "number",
          "description": "Specifies the alarm severity. The value can be\n1, 2, 3 or 4, which indicates *critical*, *major*, *minor*, and *informational*, respectively.\nThe default value is 2. Changing this creates a new resource.\n"
        },
        "alarmName": {
          "type": "string",
          "description": "Specifies the name of an alarm rule. The value can\nbe a string of 1 to 128 characters that can consist of numbers, lowercase letters,\nuppercase letters, underscores (_), or hyphens (-).\n"
        },
        "alarmState": {
          "type": "string",
          "description": "Indicates the alarm status. The value can be:\n- ok: The alarm status is normal;\n- alarm: An alarm is generated;\n- insufficient_data: The required data is insufficient.\n"
        },
        "cesAlarmruleId": {
          "type": "string",
          "description": "Indicates the alarm rule ID.\n"
        },
        "condition": {
          "$ref": "#/types/flexibleengine:index%2FCesAlarmruleCondition:CesAlarmruleCondition",
          "description": "Specifies the alarm triggering condition. The structure\nis described below.\n"
        },
        "insufficientdataActions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCesAlarmruleInsufficientdataAction:CesAlarmruleInsufficientdataAction"
          },
          "deprecationMessage": "Deprecated"
        },
        "metric": {
          "$ref": "#/types/flexibleengine:index%2FCesAlarmruleMetric:CesAlarmruleMetric",
          "description": "Specifies the alarm metrics. The structure is described\nbelow.\n"
        },
        "okActions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCesAlarmruleOkAction:CesAlarmruleOkAction"
          },
          "description": "Specifies the action triggered by the clearing of\nan alarm. The structure is described below.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the alarm rule resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCesAlarmruleTimeouts:CesAlarmruleTimeouts"
        },
        "updateTime": {
          "type": "number",
          "description": "Indicates the time when the alarm status changed.\nThe value is a UNIX timestamp and the unit is ms.\n"
        }
      },
      "type": "object",
      "required": [
        "alarmName",
        "alarmState",
        "cesAlarmruleId",
        "condition",
        "metric",
        "region",
        "updateTime"
      ],
      "inputProperties": {
        "alarmActionEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable the action\nto be triggered by an alarm. The default value is true.\n\n> **Note** If alarm_action_enabled is set to true, either alarm_actions or\nok_actions cannot be empty. If alarm_actions and ok_actions coexist, their\ncorresponding notification_list must be of the same value.\n"
        },
        "alarmActions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCesAlarmruleAlarmAction:CesAlarmruleAlarmAction"
          },
          "description": "Specifies the action triggered by an alarm. The\nstructure is described below.\n"
        },
        "alarmDescription": {
          "type": "string",
          "description": "The value can be a string of 0 to 256 characters.\n"
        },
        "alarmEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable the alarm. The default\nvalue is true.\n"
        },
        "alarmLevel": {
          "type": "number",
          "description": "Specifies the alarm severity. The value can be\n1, 2, 3 or 4, which indicates *critical*, *major*, *minor*, and *informational*, respectively.\nThe default value is 2. Changing this creates a new resource.\n"
        },
        "alarmName": {
          "type": "string",
          "description": "Specifies the name of an alarm rule. The value can\nbe a string of 1 to 128 characters that can consist of numbers, lowercase letters,\nuppercase letters, underscores (_), or hyphens (-).\n"
        },
        "cesAlarmruleId": {
          "type": "string",
          "description": "Indicates the alarm rule ID.\n"
        },
        "condition": {
          "$ref": "#/types/flexibleengine:index%2FCesAlarmruleCondition:CesAlarmruleCondition",
          "description": "Specifies the alarm triggering condition. The structure\nis described below.\n"
        },
        "insufficientdataActions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCesAlarmruleInsufficientdataAction:CesAlarmruleInsufficientdataAction"
          },
          "deprecationMessage": "Deprecated"
        },
        "metric": {
          "$ref": "#/types/flexibleengine:index%2FCesAlarmruleMetric:CesAlarmruleMetric",
          "description": "Specifies the alarm metrics. The structure is described\nbelow.\n"
        },
        "okActions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCesAlarmruleOkAction:CesAlarmruleOkAction"
          },
          "description": "Specifies the action triggered by the clearing of\nan alarm. The structure is described below.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the alarm rule resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCesAlarmruleTimeouts:CesAlarmruleTimeouts"
        }
      },
      "requiredInputs": [
        "alarmName",
        "condition",
        "metric"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CesAlarmrule resources.\n",
        "properties": {
          "alarmActionEnabled": {
            "type": "boolean",
            "description": "Specifies whether to enable the action\nto be triggered by an alarm. The default value is true.\n\n> **Note** If alarm_action_enabled is set to true, either alarm_actions or\nok_actions cannot be empty. If alarm_actions and ok_actions coexist, their\ncorresponding notification_list must be of the same value.\n"
          },
          "alarmActions": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCesAlarmruleAlarmAction:CesAlarmruleAlarmAction"
            },
            "description": "Specifies the action triggered by an alarm. The\nstructure is described below.\n"
          },
          "alarmDescription": {
            "type": "string",
            "description": "The value can be a string of 0 to 256 characters.\n"
          },
          "alarmEnabled": {
            "type": "boolean",
            "description": "Specifies whether to enable the alarm. The default\nvalue is true.\n"
          },
          "alarmLevel": {
            "type": "number",
            "description": "Specifies the alarm severity. The value can be\n1, 2, 3 or 4, which indicates *critical*, *major*, *minor*, and *informational*, respectively.\nThe default value is 2. Changing this creates a new resource.\n"
          },
          "alarmName": {
            "type": "string",
            "description": "Specifies the name of an alarm rule. The value can\nbe a string of 1 to 128 characters that can consist of numbers, lowercase letters,\nuppercase letters, underscores (_), or hyphens (-).\n"
          },
          "alarmState": {
            "type": "string",
            "description": "Indicates the alarm status. The value can be:\n- ok: The alarm status is normal;\n- alarm: An alarm is generated;\n- insufficient_data: The required data is insufficient.\n"
          },
          "cesAlarmruleId": {
            "type": "string",
            "description": "Indicates the alarm rule ID.\n"
          },
          "condition": {
            "$ref": "#/types/flexibleengine:index%2FCesAlarmruleCondition:CesAlarmruleCondition",
            "description": "Specifies the alarm triggering condition. The structure\nis described below.\n"
          },
          "insufficientdataActions": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCesAlarmruleInsufficientdataAction:CesAlarmruleInsufficientdataAction"
            },
            "deprecationMessage": "Deprecated"
          },
          "metric": {
            "$ref": "#/types/flexibleengine:index%2FCesAlarmruleMetric:CesAlarmruleMetric",
            "description": "Specifies the alarm metrics. The structure is described\nbelow.\n"
          },
          "okActions": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCesAlarmruleOkAction:CesAlarmruleOkAction"
            },
            "description": "Specifies the action triggered by the clearing of\nan alarm. The structure is described below.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the alarm rule resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCesAlarmruleTimeouts:CesAlarmruleTimeouts"
          },
          "updateTime": {
            "type": "number",
            "description": "Indicates the time when the alarm status changed.\nThe value is a UNIX timestamp and the unit is ms.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/computeBmsServerV2:ComputeBmsServerV2": {
      "description": "Manages a BMS Server resource within FlexibleEngine.\n\n## Example Usage\n\n### Basic Instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst imageId = config.requireObject(\"imageId\");\nconst flavorId = config.requireObject(\"flavorId\");\nconst keypairName = config.requireObject(\"keypairName\");\nconst availabilityZone = config.requireObject(\"availabilityZone\");\nconst basic = new flexibleengine.ComputeBmsServerV2(\"basic\", {\n    imageId: imageId,\n    flavorId: flavorId,\n    keyPair: keypairName,\n    securityGroups: [\"default\"],\n    availabilityZone: availabilityZone,\n    metadata: {\n        \"this\": \"that\",\n    },\n    networks: [{\n        uuid: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nimage_id = config.require_object(\"imageId\")\nflavor_id = config.require_object(\"flavorId\")\nkeypair_name = config.require_object(\"keypairName\")\navailability_zone = config.require_object(\"availabilityZone\")\nbasic = flexibleengine.ComputeBmsServerV2(\"basic\",\n    image_id=image_id,\n    flavor_id=flavor_id,\n    key_pair=keypair_name,\n    security_groups=[\"default\"],\n    availability_zone=availability_zone,\n    metadata={\n        \"this\": \"that\",\n    },\n    networks=[{\n        \"uuid\": flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var flavorId = config.RequireObject<dynamic>(\"flavorId\");\n    var keypairName = config.RequireObject<dynamic>(\"keypairName\");\n    var availabilityZone = config.RequireObject<dynamic>(\"availabilityZone\");\n    var basic = new Flexibleengine.ComputeBmsServerV2(\"basic\", new()\n    {\n        ImageId = imageId,\n        FlavorId = flavorId,\n        KeyPair = keypairName,\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        AvailabilityZone = availabilityZone,\n        Metadata = \n        {\n            { \"this\", \"that\" },\n        },\n        Networks = new[]\n        {\n            new Flexibleengine.Inputs.ComputeBmsServerV2NetworkArgs\n            {\n                Uuid = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\tflavorId := cfg.RequireObject(\"flavorId\")\n\t\tkeypairName := cfg.RequireObject(\"keypairName\")\n\t\tavailabilityZone := cfg.RequireObject(\"availabilityZone\")\n\t\t_, err := flexibleengine.NewComputeBmsServerV2(ctx, \"basic\", &flexibleengine.ComputeBmsServerV2Args{\n\t\t\tImageId:  pulumi.Any(imageId),\n\t\t\tFlavorId: pulumi.Any(flavorId),\n\t\t\tKeyPair:  pulumi.Any(keypairName),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\n\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\"this\": pulumi.String(\"that\"),\n\t\t\t},\n\t\t\tNetworks: flexibleengine.ComputeBmsServerV2NetworkArray{\n\t\t\t\t&flexibleengine.ComputeBmsServerV2NetworkArgs{\n\t\t\t\t\tUuid: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeBmsServerV2;\nimport com.pulumi.flexibleengine.ComputeBmsServerV2Args;\nimport com.pulumi.flexibleengine.inputs.ComputeBmsServerV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var imageId = config.get(\"imageId\");\n        final var flavorId = config.get(\"flavorId\");\n        final var keypairName = config.get(\"keypairName\");\n        final var availabilityZone = config.get(\"availabilityZone\");\n        var basic = new ComputeBmsServerV2(\"basic\", ComputeBmsServerV2Args.builder()\n            .imageId(imageId)\n            .flavorId(flavorId)\n            .keyPair(keypairName)\n            .securityGroups(\"default\")\n            .availabilityZone(availabilityZone)\n            .metadata(Map.of(\"this\", \"that\"))\n            .networks(ComputeBmsServerV2NetworkArgs.builder()\n                .uuid(flexibleengine_vpc_subnet_v1.example_subnet().id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  imageId:\n    type: dynamic\n  flavorId:\n    type: dynamic\n  keypairName:\n    type: dynamic\n  availabilityZone:\n    type: dynamic\nresources:\n  basic:\n    type: flexibleengine:ComputeBmsServerV2\n    properties:\n      imageId: ${imageId}\n      flavorId: ${flavorId}\n      keyPair: ${keypairName}\n      securityGroups:\n        - default\n      availabilityZone: ${availabilityZone}\n      metadata:\n        this: that\n      networks:\n        - uuid: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "accessIpV4": {
          "type": "string",
          "description": "This is a reserved attribute.\n"
        },
        "accessIpV6": {
          "type": "string",
          "description": "This is a reserved attribute.\n"
        },
        "adminPass": {
          "type": "string",
          "description": "The administrative password to assign to the bms server.\nChanging this changes the root password on the existing server.\n"
        },
        "availabilityZone": {
          "type": "string",
          "description": "The availability zone in which to create\nthe bms server. Changing this will create a new bms server resource.\n"
        },
        "blockDevices": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FComputeBmsServerV2BlockDevice:ComputeBmsServerV2BlockDevice"
          }
        },
        "computeBmsServerV2Id": {
          "type": "string",
          "description": "The id of the bms server.\n"
        },
        "configDrive": {
          "type": "boolean",
          "description": "Whether to use the config_drive feature to configure the instance.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "The flavor ID of\nthe desired flavor for the bms server. Changing this resizes the existing bms server.\nIt is Required if `flavor_name` is empty.\n"
        },
        "flavorName": {
          "type": "string",
          "description": "The name of the\ndesired flavor for the bms server. Changing this resizes the existing bms server.\nIt is Required if `flavor_id` is empty.\n"
        },
        "hostId": {
          "type": "string",
          "description": "Specifies the host ID of the BMS.\n"
        },
        "hostStatus": {
          "type": "string",
          "description": "The nova-compute status: **UP, UNKNOWN, DOWN, MAINTENANCE** and **Null**.\n"
        },
        "imageId": {
          "type": "string",
          "description": "Changing this creates a new bms server. It is Required if `image_name` is\nempty. Changing this creates a new bms server.\n"
        },
        "imageName": {
          "type": "string",
          "description": "The name of the desired image for the bms server.\nChanging this creates a new bms server. It is Required if `image_id` is empty.\n"
        },
        "kernelId": {
          "type": "string",
          "description": "The UUID of the kernel image when the AMI image is used.\n"
        },
        "keyPair": {
          "type": "string",
          "description": "The name of a key pair to put on the bms server. The key\npair must already be created and associated with the tenant's account.\nChanging this creates a new bms server.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Metadata key/value pairs to make available from\nwithin the instance. Changing this updates the existing bms server metadata.\n"
        },
        "name": {
          "type": "string",
          "description": "The human-readable name of the network. Changing this creates a new bms server.\nIt is Required unless `uuid` or `port` is provided.\n"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FComputeBmsServerV2Network:ComputeBmsServerV2Network"
          },
          "description": "An array of one or more networks to attach to the\nbms instance. Changing this creates a new bms server.\nThe network object structure is documented below.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the bms server instance. If\nomitted, the `region` argument of the provider is used. Changing this will create a new bms server.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more security group names\nto associate with the bms server. Changing this results in adding/removing\nsecurity groups from the existing bms server.\n"
        },
        "stopBeforeDestroy": {
          "type": "boolean",
          "description": "Whether to try stop instance gracefully\nbefore destroying it, thus giving chance for guest OS daemons to stop correctly.\nIf instance doesn't stop within timeout, it will be destroyed anyway.\n\n<a name=\"bms_network\"></a>\nThe `network` block supports:\n"
        },
        "tenantId": {
          "type": "string"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FComputeBmsServerV2Timeouts:ComputeBmsServerV2Timeouts"
        },
        "userData": {
          "type": "string",
          "description": "The user data to provide when launching the instance.\nChanging this creates a new bms server.\n"
        },
        "userId": {
          "type": "string",
          "description": "The ID of the user to which the BMS belongs.\n"
        }
      },
      "type": "object",
      "required": [
        "accessIpV4",
        "accessIpV6",
        "adminPass",
        "availabilityZone",
        "computeBmsServerV2Id",
        "configDrive",
        "flavorId",
        "flavorName",
        "hostId",
        "hostStatus",
        "imageId",
        "imageName",
        "kernelId",
        "keyPair",
        "name",
        "region",
        "securityGroups",
        "tenantId",
        "userId"
      ],
      "inputProperties": {
        "adminPass": {
          "type": "string",
          "description": "The administrative password to assign to the bms server.\nChanging this changes the root password on the existing server.\n"
        },
        "availabilityZone": {
          "type": "string",
          "description": "The availability zone in which to create\nthe bms server. Changing this will create a new bms server resource.\n"
        },
        "blockDevices": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FComputeBmsServerV2BlockDevice:ComputeBmsServerV2BlockDevice"
          }
        },
        "computeBmsServerV2Id": {
          "type": "string",
          "description": "The id of the bms server.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "The flavor ID of\nthe desired flavor for the bms server. Changing this resizes the existing bms server.\nIt is Required if `flavor_name` is empty.\n"
        },
        "flavorName": {
          "type": "string",
          "description": "The name of the\ndesired flavor for the bms server. Changing this resizes the existing bms server.\nIt is Required if `flavor_id` is empty.\n"
        },
        "imageId": {
          "type": "string",
          "description": "Changing this creates a new bms server. It is Required if `image_name` is\nempty. Changing this creates a new bms server.\n"
        },
        "imageName": {
          "type": "string",
          "description": "The name of the desired image for the bms server.\nChanging this creates a new bms server. It is Required if `image_id` is empty.\n"
        },
        "keyPair": {
          "type": "string",
          "description": "The name of a key pair to put on the bms server. The key\npair must already be created and associated with the tenant's account.\nChanging this creates a new bms server.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Metadata key/value pairs to make available from\nwithin the instance. Changing this updates the existing bms server metadata.\n"
        },
        "name": {
          "type": "string",
          "description": "The human-readable name of the network. Changing this creates a new bms server.\nIt is Required unless `uuid` or `port` is provided.\n"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FComputeBmsServerV2Network:ComputeBmsServerV2Network"
          },
          "description": "An array of one or more networks to attach to the\nbms instance. Changing this creates a new bms server.\nThe network object structure is documented below.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the bms server instance. If\nomitted, the `region` argument of the provider is used. Changing this will create a new bms server.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more security group names\nto associate with the bms server. Changing this results in adding/removing\nsecurity groups from the existing bms server.\n"
        },
        "stopBeforeDestroy": {
          "type": "boolean",
          "description": "Whether to try stop instance gracefully\nbefore destroying it, thus giving chance for guest OS daemons to stop correctly.\nIf instance doesn't stop within timeout, it will be destroyed anyway.\n\n<a name=\"bms_network\"></a>\nThe `network` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FComputeBmsServerV2Timeouts:ComputeBmsServerV2Timeouts"
        },
        "userData": {
          "type": "string",
          "description": "The user data to provide when launching the instance.\nChanging this creates a new bms server.\n"
        }
      },
      "requiredInputs": [
        "availabilityZone"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeBmsServerV2 resources.\n",
        "properties": {
          "accessIpV4": {
            "type": "string",
            "description": "This is a reserved attribute.\n"
          },
          "accessIpV6": {
            "type": "string",
            "description": "This is a reserved attribute.\n"
          },
          "adminPass": {
            "type": "string",
            "description": "The administrative password to assign to the bms server.\nChanging this changes the root password on the existing server.\n"
          },
          "availabilityZone": {
            "type": "string",
            "description": "The availability zone in which to create\nthe bms server. Changing this will create a new bms server resource.\n"
          },
          "blockDevices": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FComputeBmsServerV2BlockDevice:ComputeBmsServerV2BlockDevice"
            }
          },
          "computeBmsServerV2Id": {
            "type": "string",
            "description": "The id of the bms server.\n"
          },
          "configDrive": {
            "type": "boolean",
            "description": "Whether to use the config_drive feature to configure the instance.\n"
          },
          "flavorId": {
            "type": "string",
            "description": "The flavor ID of\nthe desired flavor for the bms server. Changing this resizes the existing bms server.\nIt is Required if `flavor_name` is empty.\n"
          },
          "flavorName": {
            "type": "string",
            "description": "The name of the\ndesired flavor for the bms server. Changing this resizes the existing bms server.\nIt is Required if `flavor_id` is empty.\n"
          },
          "hostId": {
            "type": "string",
            "description": "Specifies the host ID of the BMS.\n"
          },
          "hostStatus": {
            "type": "string",
            "description": "The nova-compute status: **UP, UNKNOWN, DOWN, MAINTENANCE** and **Null**.\n"
          },
          "imageId": {
            "type": "string",
            "description": "Changing this creates a new bms server. It is Required if `image_name` is\nempty. Changing this creates a new bms server.\n"
          },
          "imageName": {
            "type": "string",
            "description": "The name of the desired image for the bms server.\nChanging this creates a new bms server. It is Required if `image_id` is empty.\n"
          },
          "kernelId": {
            "type": "string",
            "description": "The UUID of the kernel image when the AMI image is used.\n"
          },
          "keyPair": {
            "type": "string",
            "description": "The name of a key pair to put on the bms server. The key\npair must already be created and associated with the tenant's account.\nChanging this creates a new bms server.\n"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metadata key/value pairs to make available from\nwithin the instance. Changing this updates the existing bms server metadata.\n"
          },
          "name": {
            "type": "string",
            "description": "The human-readable name of the network. Changing this creates a new bms server.\nIt is Required unless `uuid` or `port` is provided.\n"
          },
          "networks": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FComputeBmsServerV2Network:ComputeBmsServerV2Network"
            },
            "description": "An array of one or more networks to attach to the\nbms instance. Changing this creates a new bms server.\nThe network object structure is documented below.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the bms server instance. If\nomitted, the `region` argument of the provider is used. Changing this will create a new bms server.\n"
          },
          "securityGroups": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of one or more security group names\nto associate with the bms server. Changing this results in adding/removing\nsecurity groups from the existing bms server.\n"
          },
          "stopBeforeDestroy": {
            "type": "boolean",
            "description": "Whether to try stop instance gracefully\nbefore destroying it, thus giving chance for guest OS daemons to stop correctly.\nIf instance doesn't stop within timeout, it will be destroyed anyway.\n\n<a name=\"bms_network\"></a>\nThe `network` block supports:\n"
          },
          "tenantId": {
            "type": "string"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FComputeBmsServerV2Timeouts:ComputeBmsServerV2Timeouts"
          },
          "userData": {
            "type": "string",
            "description": "The user data to provide when launching the instance.\nChanging this creates a new bms server.\n"
          },
          "userId": {
            "type": "string",
            "description": "The ID of the user to which the BMS belongs.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/computeFloatingipAssociateV2:ComputeFloatingipAssociateV2": {
      "description": "Associate a floating IP to an instance. This can be used instead of the\n`floating_ip` options in `flexibleengine.ComputeInstanceV2`.\n\n## Example Usage\n\n### Associate with EIP\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst instance1 = new flexibleengine.ComputeInstanceV2(\"instance1\", {\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavorId: \"3\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n});\nconst eip1 = new flexibleengine.VpcEip(\"eip1\", {\n    publicip: {\n        type: \"5_bgp\",\n    },\n    bandwidth: {\n        name: \"test\",\n        size: 8,\n        shareType: \"PER\",\n        chargeMode: \"traffic\",\n    },\n});\nconst fip1 = new flexibleengine.ComputeFloatingipAssociateV2(\"fip1\", {\n    floatingIp: eip1.publicip.apply(publicip => publicip.ipAddress),\n    instanceId: instance1.computeInstanceV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ninstance1 = flexibleengine.ComputeInstanceV2(\"instance1\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor_id=\"3\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"])\neip1 = flexibleengine.VpcEip(\"eip1\",\n    publicip={\n        \"type\": \"5_bgp\",\n    },\n    bandwidth={\n        \"name\": \"test\",\n        \"size\": 8,\n        \"share_type\": \"PER\",\n        \"charge_mode\": \"traffic\",\n    })\nfip1 = flexibleengine.ComputeFloatingipAssociateV2(\"fip1\",\n    floating_ip=eip1.publicip.ip_address,\n    instance_id=instance1.compute_instance_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Flexibleengine.ComputeInstanceV2(\"instance1\", new()\n    {\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        FlavorId = \"3\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n    });\n\n    var eip1 = new Flexibleengine.VpcEip(\"eip1\", new()\n    {\n        Publicip = new Flexibleengine.Inputs.VpcEipPublicipArgs\n        {\n            Type = \"5_bgp\",\n        },\n        Bandwidth = new Flexibleengine.Inputs.VpcEipBandwidthArgs\n        {\n            Name = \"test\",\n            Size = 8,\n            ShareType = \"PER\",\n            ChargeMode = \"traffic\",\n        },\n    });\n\n    var fip1 = new Flexibleengine.ComputeFloatingipAssociateV2(\"fip1\", new()\n    {\n        FloatingIp = eip1.Publicip.Apply(publicip => publicip.IpAddress),\n        InstanceId = instance1.ComputeInstanceV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance1, err := flexibleengine.NewComputeInstanceV2(ctx, \"instance1\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tImageId:  pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"3\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teip1, err := flexibleengine.NewVpcEip(ctx, \"eip1\", &flexibleengine.VpcEipArgs{\n\t\t\tPublicip: &flexibleengine.VpcEipPublicipArgs{\n\t\t\t\tType: pulumi.String(\"5_bgp\"),\n\t\t\t},\n\t\t\tBandwidth: &flexibleengine.VpcEipBandwidthArgs{\n\t\t\t\tName:       pulumi.String(\"test\"),\n\t\t\t\tSize:       pulumi.Float64(8),\n\t\t\t\tShareType:  pulumi.String(\"PER\"),\n\t\t\t\tChargeMode: pulumi.String(\"traffic\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewComputeFloatingipAssociateV2(ctx, \"fip1\", &flexibleengine.ComputeFloatingipAssociateV2Args{\n\t\t\tFloatingIp: pulumi.String(eip1.Publicip.ApplyT(func(publicip flexibleengine.VpcEipPublicip) (*string, error) {\n\t\t\t\treturn &publicip.IpAddress, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tInstanceId: instance1.ComputeInstanceV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.VpcEip;\nimport com.pulumi.flexibleengine.VpcEipArgs;\nimport com.pulumi.flexibleengine.inputs.VpcEipPublicipArgs;\nimport com.pulumi.flexibleengine.inputs.VpcEipBandwidthArgs;\nimport com.pulumi.flexibleengine.ComputeFloatingipAssociateV2;\nimport com.pulumi.flexibleengine.ComputeFloatingipAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavorId(3)\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .build());\n\n        var eip1 = new VpcEip(\"eip1\", VpcEipArgs.builder()\n            .publicip(VpcEipPublicipArgs.builder()\n                .type(\"5_bgp\")\n                .build())\n            .bandwidth(VpcEipBandwidthArgs.builder()\n                .name(\"test\")\n                .size(8)\n                .shareType(\"PER\")\n                .chargeMode(\"traffic\")\n                .build())\n            .build());\n\n        var fip1 = new ComputeFloatingipAssociateV2(\"fip1\", ComputeFloatingipAssociateV2Args.builder()\n            .floatingIp(eip1.publicip().applyValue(publicip -> publicip.ipAddress()))\n            .instanceId(instance1.computeInstanceV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavorId: 3\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n  eip1:\n    type: flexibleengine:VpcEip\n    properties:\n      publicip:\n        type: 5_bgp\n      bandwidth:\n        name: test\n        size: 8\n        shareType: PER\n        chargeMode: traffic\n  fip1:\n    type: flexibleengine:ComputeFloatingipAssociateV2\n    properties:\n      floatingIp: ${eip1.publicip.ipAddress}\n      instanceId: ${instance1.computeInstanceV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n### Explicitly set the network to attach to\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst instance1 = new flexibleengine.ComputeInstanceV2(\"instance1\", {\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavorId: \"3\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    networks: [\n        {\n            name: \"my_network\",\n        },\n        {\n            name: \"default\",\n        },\n    ],\n});\nconst fip1 = new flexibleengine.ComputeFloatingipAssociateV2(\"fip1\", {\n    floatingIp: flexibleengine_vpc_eip.eip_1.publicip[0].ip_address,\n    instanceId: instance1.computeInstanceV2Id,\n    fixedIp: instance1.networks.apply(networks => networks?.[1]?.fixedIpV4),\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ninstance1 = flexibleengine.ComputeInstanceV2(\"instance1\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor_id=\"3\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    networks=[\n        {\n            \"name\": \"my_network\",\n        },\n        {\n            \"name\": \"default\",\n        },\n    ])\nfip1 = flexibleengine.ComputeFloatingipAssociateV2(\"fip1\",\n    floating_ip=flexibleengine_vpc_eip[\"eip_1\"][\"publicip\"][0][\"ip_address\"],\n    instance_id=instance1.compute_instance_v2_id,\n    fixed_ip=instance1.networks[1].fixed_ip_v4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Flexibleengine.ComputeInstanceV2(\"instance1\", new()\n    {\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        FlavorId = \"3\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        Networks = new[]\n        {\n            new Flexibleengine.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = \"my_network\",\n            },\n            new Flexibleengine.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = \"default\",\n            },\n        },\n    });\n\n    var fip1 = new Flexibleengine.ComputeFloatingipAssociateV2(\"fip1\", new()\n    {\n        FloatingIp = flexibleengine_vpc_eip.Eip_1.Publicip[0].Ip_address,\n        InstanceId = instance1.ComputeInstanceV2Id,\n        FixedIp = instance1.Networks.Apply(networks => networks[1]?.FixedIpV4),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance1, err := flexibleengine.NewComputeInstanceV2(ctx, \"instance1\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tImageId:  pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"3\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: flexibleengine.ComputeInstanceV2NetworkArray{\n\t\t\t\t&flexibleengine.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"my_network\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"default\"),\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 = flexibleengine.NewComputeFloatingipAssociateV2(ctx, \"fip1\", &flexibleengine.ComputeFloatingipAssociateV2Args{\n\t\t\tFloatingIp: pulumi.Any(flexibleengine_vpc_eip.Eip_1.Publicip[0].Ip_address),\n\t\t\tInstanceId: instance1.ComputeInstanceV2Id,\n\t\t\tFixedIp: pulumi.String(instance1.Networks.ApplyT(func(networks []flexibleengine.ComputeInstanceV2Network) (*string, error) {\n\t\t\t\treturn &networks[1].FixedIpV4, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.inputs.ComputeInstanceV2NetworkArgs;\nimport com.pulumi.flexibleengine.ComputeFloatingipAssociateV2;\nimport com.pulumi.flexibleengine.ComputeFloatingipAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavorId(3)\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .networks(            \n                ComputeInstanceV2NetworkArgs.builder()\n                    .name(\"my_network\")\n                    .build(),\n                ComputeInstanceV2NetworkArgs.builder()\n                    .name(\"default\")\n                    .build())\n            .build());\n\n        var fip1 = new ComputeFloatingipAssociateV2(\"fip1\", ComputeFloatingipAssociateV2Args.builder()\n            .floatingIp(flexibleengine_vpc_eip.eip_1().publicip()[0].ip_address())\n            .instanceId(instance1.computeInstanceV2Id())\n            .fixedIp(instance1.networks().applyValue(networks -> networks[1].fixedIpV4()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavorId: 3\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      networks:\n        - name: my_network\n        - name: default\n  fip1:\n    type: flexibleengine:ComputeFloatingipAssociateV2\n    properties:\n      floatingIp: ${flexibleengine_vpc_eip.eip_1.publicip[0].ip_address}\n      instanceId: ${instance1.computeInstanceV2Id}\n      fixedIp: ${instance1.networks[1].fixedIpV4}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThis resource can be imported by specifying `floating_ip`, `instance_id` and `fixed_ip`, separated\n\nby a forward slash:\n\n```sh\n$ pulumi import flexibleengine:index/computeFloatingipAssociateV2:ComputeFloatingipAssociateV2 fip_1 <floating_ip>/<instance_id>/<fixed_ip>\n```\n\n",
      "properties": {
        "computeFloatingipAssociateV2Id": {
          "type": "string"
        },
        "fixedIp": {
          "type": "string",
          "description": "The specific IP address to direct traffic to.\n"
        },
        "floatingIp": {
          "type": "string",
          "description": "The floating IP to associate.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "The instance to associte the floating IP with.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Compute client.\nKeypairs are associated with accounts, but a Compute client is needed to\ncreate one. If omitted, the `region` argument of the provider is used.\nChanging this creates a new floatingip_associate.\n"
        }
      },
      "type": "object",
      "required": [
        "computeFloatingipAssociateV2Id",
        "floatingIp",
        "instanceId",
        "region"
      ],
      "inputProperties": {
        "computeFloatingipAssociateV2Id": {
          "type": "string"
        },
        "fixedIp": {
          "type": "string",
          "description": "The specific IP address to direct traffic to.\n"
        },
        "floatingIp": {
          "type": "string",
          "description": "The floating IP to associate.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "The instance to associte the floating IP with.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Compute client.\nKeypairs are associated with accounts, but a Compute client is needed to\ncreate one. If omitted, the `region` argument of the provider is used.\nChanging this creates a new floatingip_associate.\n"
        }
      },
      "requiredInputs": [
        "floatingIp",
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeFloatingipAssociateV2 resources.\n",
        "properties": {
          "computeFloatingipAssociateV2Id": {
            "type": "string"
          },
          "fixedIp": {
            "type": "string",
            "description": "The specific IP address to direct traffic to.\n"
          },
          "floatingIp": {
            "type": "string",
            "description": "The floating IP to associate.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "The instance to associte the floating IP with.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Compute client.\nKeypairs are associated with accounts, but a Compute client is needed to\ncreate one. If omitted, the `region` argument of the provider is used.\nChanging this creates a new floatingip_associate.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/computeFloatingipV2:ComputeFloatingipV2": {
      "description": "Manages a V2 floating IP resource within FlexibleEngine Nova (compute)\nthat can be used for compute instances.\n\n!> **Warning:** It will be deprecated, using `flexibleengine.VpcEip` instead.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst floatip1 = new flexibleengine.ComputeFloatingipV2(\"floatip1\", {});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nfloatip1 = flexibleengine.ComputeFloatingipV2(\"floatip1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var floatip1 = new Flexibleengine.ComputeFloatingipV2(\"floatip1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewComputeFloatingipV2(ctx, \"floatip1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeFloatingipV2;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var floatip1 = new ComputeFloatingipV2(\"floatip1\");\n\n    }\n}\n```\n```yaml\nresources:\n  floatip1:\n    type: flexibleengine:ComputeFloatingipV2\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFloating IPs can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/computeFloatingipV2:ComputeFloatingipV2 floatip_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\n",
      "properties": {
        "address": {
          "type": "string",
          "description": "The actual floating IP address itself.\n"
        },
        "computeFloatingipV2Id": {
          "type": "string"
        },
        "fixedIp": {
          "type": "string",
          "description": "The fixed IP address corresponding to the floating IP.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "UUID of the compute instance associated with the floating IP.\n"
        },
        "pool": {
          "type": "string",
          "description": "The name of the pool from which to obtain the floating\nIP. Default value is admin_external_net. Changing this creates a new floating IP.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Compute client.\nA Compute client is needed to create a floating IP that can be used with\na compute instance. If omitted, the `region` argument of the provider\nis used. Changing this creates a new floating IP (which may or may not\nhave a different address).\n"
        }
      },
      "type": "object",
      "required": [
        "address",
        "computeFloatingipV2Id",
        "fixedIp",
        "instanceId",
        "region"
      ],
      "inputProperties": {
        "computeFloatingipV2Id": {
          "type": "string"
        },
        "pool": {
          "type": "string",
          "description": "The name of the pool from which to obtain the floating\nIP. Default value is admin_external_net. Changing this creates a new floating IP.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Compute client.\nA Compute client is needed to create a floating IP that can be used with\na compute instance. If omitted, the `region` argument of the provider\nis used. Changing this creates a new floating IP (which may or may not\nhave a different address).\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeFloatingipV2 resources.\n",
        "properties": {
          "address": {
            "type": "string",
            "description": "The actual floating IP address itself.\n"
          },
          "computeFloatingipV2Id": {
            "type": "string"
          },
          "fixedIp": {
            "type": "string",
            "description": "The fixed IP address corresponding to the floating IP.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "UUID of the compute instance associated with the floating IP.\n"
          },
          "pool": {
            "type": "string",
            "description": "The name of the pool from which to obtain the floating\nIP. Default value is admin_external_net. Changing this creates a new floating IP.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Compute client.\nA Compute client is needed to create a floating IP that can be used with\na compute instance. If omitted, the `region` argument of the provider\nis used. Changing this creates a new floating IP (which may or may not\nhave a different address).\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/computeInstanceV2:ComputeInstanceV2": {
      "description": "Manages a V2 VM instance resource within FlexibleEngine.\n\n## Example Usage\n\n### Basic Instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst basic = new flexibleengine.ComputeInstanceV2(\"basic\", {\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavorId: \"s3.large.2\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    networks: [{\n        uuid: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    }],\n    tags: {\n        foo: \"bar\",\n        \"this\": \"that\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nbasic = flexibleengine.ComputeInstanceV2(\"basic\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor_id=\"s3.large.2\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    networks=[{\n        \"uuid\": flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    }],\n    tags={\n        \"foo\": \"bar\",\n        \"this\": \"that\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var basic = new Flexibleengine.ComputeInstanceV2(\"basic\", new()\n    {\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        FlavorId = \"s3.large.2\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        Networks = new[]\n        {\n            new Flexibleengine.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Uuid = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n            },\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"this\", \"that\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewComputeInstanceV2(ctx, \"basic\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tImageId:  pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"s3.large.2\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: flexibleengine.ComputeInstanceV2NetworkArray{\n\t\t\t\t&flexibleengine.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tUuid: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\":  pulumi.String(\"bar\"),\n\t\t\t\t\"this\": pulumi.String(\"that\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.inputs.ComputeInstanceV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var basic = new ComputeInstanceV2(\"basic\", ComputeInstanceV2Args.builder()\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavorId(\"s3.large.2\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .uuid(flexibleengine_vpc_subnet_v1.example_subnet().id())\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"this\", \"that\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  basic:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavorId: s3.large.2\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      networks:\n        - uuid: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n      tags:\n        foo: bar\n        this: that\n```\n<!--End PulumiCodeChooser -->\n\n### Instance With Attached Volume\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst myvol = new flexibleengine.BlockstorageVolumeV2(\"myvol\", {size: 1});\nconst myinstance = new flexibleengine.ComputeInstanceV2(\"myinstance\", {\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavorId: \"s3.large.2\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    networks: [{\n        uuid: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    }],\n});\nconst attached = new flexibleengine.ComputeVolumeAttachV2(\"attached\", {\n    instanceId: myinstance.computeInstanceV2Id,\n    volumeId: myvol.blockstorageVolumeV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nmyvol = flexibleengine.BlockstorageVolumeV2(\"myvol\", size=1)\nmyinstance = flexibleengine.ComputeInstanceV2(\"myinstance\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor_id=\"s3.large.2\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    networks=[{\n        \"uuid\": flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    }])\nattached = flexibleengine.ComputeVolumeAttachV2(\"attached\",\n    instance_id=myinstance.compute_instance_v2_id,\n    volume_id=myvol.blockstorage_volume_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myvol = new Flexibleengine.BlockstorageVolumeV2(\"myvol\", new()\n    {\n        Size = 1,\n    });\n\n    var myinstance = new Flexibleengine.ComputeInstanceV2(\"myinstance\", new()\n    {\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        FlavorId = \"s3.large.2\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        Networks = new[]\n        {\n            new Flexibleengine.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Uuid = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n            },\n        },\n    });\n\n    var attached = new Flexibleengine.ComputeVolumeAttachV2(\"attached\", new()\n    {\n        InstanceId = myinstance.ComputeInstanceV2Id,\n        VolumeId = myvol.BlockstorageVolumeV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyvol, err := flexibleengine.NewBlockstorageVolumeV2(ctx, \"myvol\", &flexibleengine.BlockstorageVolumeV2Args{\n\t\t\tSize: pulumi.Float64(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyinstance, err := flexibleengine.NewComputeInstanceV2(ctx, \"myinstance\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tImageId:  pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"s3.large.2\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: flexibleengine.ComputeInstanceV2NetworkArray{\n\t\t\t\t&flexibleengine.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tUuid: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewComputeVolumeAttachV2(ctx, \"attached\", &flexibleengine.ComputeVolumeAttachV2Args{\n\t\t\tInstanceId: myinstance.ComputeInstanceV2Id,\n\t\t\tVolumeId:   myvol.BlockstorageVolumeV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2Args;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.inputs.ComputeInstanceV2NetworkArgs;\nimport com.pulumi.flexibleengine.ComputeVolumeAttachV2;\nimport com.pulumi.flexibleengine.ComputeVolumeAttachV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myvol = new BlockstorageVolumeV2(\"myvol\", BlockstorageVolumeV2Args.builder()\n            .size(1)\n            .build());\n\n        var myinstance = new ComputeInstanceV2(\"myinstance\", ComputeInstanceV2Args.builder()\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavorId(\"s3.large.2\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .uuid(flexibleengine_vpc_subnet_v1.example_subnet().id())\n                .build())\n            .build());\n\n        var attached = new ComputeVolumeAttachV2(\"attached\", ComputeVolumeAttachV2Args.builder()\n            .instanceId(myinstance.computeInstanceV2Id())\n            .volumeId(myvol.blockstorageVolumeV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myvol:\n    type: flexibleengine:BlockstorageVolumeV2\n    properties:\n      size: 1\n  myinstance:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavorId: s3.large.2\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      networks:\n        - uuid: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n  attached:\n    type: flexibleengine:ComputeVolumeAttachV2\n    properties:\n      instanceId: ${myinstance.computeInstanceV2Id}\n      volumeId: ${myvol.blockstorageVolumeV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n### Boot From Volume\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst boot_from_volume = new flexibleengine.ComputeInstanceV2(\"boot-from-volume\", {\n    flavorId: \"s3.large.2\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    blockDevices: [{\n        uuid: \"<image-id>\",\n        sourceType: \"image\",\n        volumeSize: 5,\n        bootIndex: 0,\n        destinationType: \"volume\",\n        deleteOnTermination: true,\n        volumeType: \"SSD\",\n    }],\n    networks: [{\n        uuid: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nboot_from_volume = flexibleengine.ComputeInstanceV2(\"boot-from-volume\",\n    flavor_id=\"s3.large.2\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    block_devices=[{\n        \"uuid\": \"<image-id>\",\n        \"source_type\": \"image\",\n        \"volume_size\": 5,\n        \"boot_index\": 0,\n        \"destination_type\": \"volume\",\n        \"delete_on_termination\": True,\n        \"volume_type\": \"SSD\",\n    }],\n    networks=[{\n        \"uuid\": flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var boot_from_volume = new Flexibleengine.ComputeInstanceV2(\"boot-from-volume\", new()\n    {\n        FlavorId = \"s3.large.2\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        BlockDevices = new[]\n        {\n            new Flexibleengine.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                Uuid = \"<image-id>\",\n                SourceType = \"image\",\n                VolumeSize = 5,\n                BootIndex = 0,\n                DestinationType = \"volume\",\n                DeleteOnTermination = true,\n                VolumeType = \"SSD\",\n            },\n        },\n        Networks = new[]\n        {\n            new Flexibleengine.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Uuid = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewComputeInstanceV2(ctx, \"boot-from-volume\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tFlavorId: pulumi.String(\"s3.large.2\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tBlockDevices: flexibleengine.ComputeInstanceV2BlockDeviceArray{\n\t\t\t\t&flexibleengine.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tUuid:                pulumi.String(\"<image-id>\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"image\"),\n\t\t\t\t\tVolumeSize:          pulumi.Float64(5),\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tVolumeType:          pulumi.String(\"SSD\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworks: flexibleengine.ComputeInstanceV2NetworkArray{\n\t\t\t\t&flexibleengine.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tUuid: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.inputs.ComputeInstanceV2BlockDeviceArgs;\nimport com.pulumi.flexibleengine.inputs.ComputeInstanceV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var boot_from_volume = new ComputeInstanceV2(\"boot-from-volume\", ComputeInstanceV2Args.builder()\n            .flavorId(\"s3.large.2\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .blockDevices(ComputeInstanceV2BlockDeviceArgs.builder()\n                .uuid(\"<image-id>\")\n                .sourceType(\"image\")\n                .volumeSize(5)\n                .bootIndex(0)\n                .destinationType(\"volume\")\n                .deleteOnTermination(true)\n                .volumeType(\"SSD\")\n                .build())\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .uuid(flexibleengine_vpc_subnet_v1.example_subnet().id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  boot-from-volume:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      flavorId: s3.large.2\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      blockDevices:\n        - uuid: <image-id>\n          sourceType: image\n          volumeSize: 5\n          bootIndex: 0\n          destinationType: volume\n          deleteOnTermination: true\n          volumeType: SSD\n      networks:\n        - uuid: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n```\n<!--End PulumiCodeChooser -->\n\n### Boot From an Existing Volume\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst myvol = new flexibleengine.BlockstorageVolumeV2(\"myvol\", {\n    size: 5,\n    imageId: \"<image-id>\",\n});\nconst boot_from_volume = new flexibleengine.ComputeInstanceV2(\"boot-from-volume\", {\n    flavorId: \"s3.large.2\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    blockDevices: [{\n        uuid: myvol.blockstorageVolumeV2Id,\n        sourceType: \"volume\",\n        bootIndex: 0,\n        destinationType: \"volume\",\n        deleteOnTermination: true,\n    }],\n    networks: [{\n        uuid: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nmyvol = flexibleengine.BlockstorageVolumeV2(\"myvol\",\n    size=5,\n    image_id=\"<image-id>\")\nboot_from_volume = flexibleengine.ComputeInstanceV2(\"boot-from-volume\",\n    flavor_id=\"s3.large.2\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    block_devices=[{\n        \"uuid\": myvol.blockstorage_volume_v2_id,\n        \"source_type\": \"volume\",\n        \"boot_index\": 0,\n        \"destination_type\": \"volume\",\n        \"delete_on_termination\": True,\n    }],\n    networks=[{\n        \"uuid\": flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myvol = new Flexibleengine.BlockstorageVolumeV2(\"myvol\", new()\n    {\n        Size = 5,\n        ImageId = \"<image-id>\",\n    });\n\n    var boot_from_volume = new Flexibleengine.ComputeInstanceV2(\"boot-from-volume\", new()\n    {\n        FlavorId = \"s3.large.2\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        BlockDevices = new[]\n        {\n            new Flexibleengine.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                Uuid = myvol.BlockstorageVolumeV2Id,\n                SourceType = \"volume\",\n                BootIndex = 0,\n                DestinationType = \"volume\",\n                DeleteOnTermination = true,\n            },\n        },\n        Networks = new[]\n        {\n            new Flexibleengine.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Uuid = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyvol, err := flexibleengine.NewBlockstorageVolumeV2(ctx, \"myvol\", &flexibleengine.BlockstorageVolumeV2Args{\n\t\t\tSize:    pulumi.Float64(5),\n\t\t\tImageId: pulumi.String(\"<image-id>\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewComputeInstanceV2(ctx, \"boot-from-volume\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tFlavorId: pulumi.String(\"s3.large.2\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tBlockDevices: flexibleengine.ComputeInstanceV2BlockDeviceArray{\n\t\t\t\t&flexibleengine.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tUuid:                myvol.BlockstorageVolumeV2Id,\n\t\t\t\t\tSourceType:          pulumi.String(\"volume\"),\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworks: flexibleengine.ComputeInstanceV2NetworkArray{\n\t\t\t\t&flexibleengine.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tUuid: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2Args;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.inputs.ComputeInstanceV2BlockDeviceArgs;\nimport com.pulumi.flexibleengine.inputs.ComputeInstanceV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myvol = new BlockstorageVolumeV2(\"myvol\", BlockstorageVolumeV2Args.builder()\n            .size(5)\n            .imageId(\"<image-id>\")\n            .build());\n\n        var boot_from_volume = new ComputeInstanceV2(\"boot-from-volume\", ComputeInstanceV2Args.builder()\n            .flavorId(\"s3.large.2\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .blockDevices(ComputeInstanceV2BlockDeviceArgs.builder()\n                .uuid(myvol.blockstorageVolumeV2Id())\n                .sourceType(\"volume\")\n                .bootIndex(0)\n                .destinationType(\"volume\")\n                .deleteOnTermination(true)\n                .build())\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .uuid(flexibleengine_vpc_subnet_v1.example_subnet().id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myvol:\n    type: flexibleengine:BlockstorageVolumeV2\n    properties:\n      size: 5\n      imageId: <image-id>\n  boot-from-volume:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      flavorId: s3.large.2\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      blockDevices:\n        - uuid: ${myvol.blockstorageVolumeV2Id}\n          sourceType: volume\n          bootIndex: 0\n          destinationType: volume\n          deleteOnTermination: true\n      networks:\n        - uuid: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n```\n<!--End PulumiCodeChooser -->\n\n### Boot Instance, Create Volume, and Attach Volume as a Block Device\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst instance1 = new flexibleengine.ComputeInstanceV2(\"instance1\", {\n    blockDevices: [\n        {\n            bootIndex: 0,\n            deleteOnTermination: true,\n            destinationType: \"local\",\n            sourceType: \"image\",\n            uuid: \"<image-id>\",\n        },\n        {\n            bootIndex: 1,\n            deleteOnTermination: true,\n            destinationType: \"volume\",\n            sourceType: \"blank\",\n            volumeSize: 1,\n        },\n    ],\n    flavorId: \"s3.large.2\",\n    imageId: \"<image-id>\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ninstance1 = flexibleengine.ComputeInstanceV2(\"instance1\",\n    block_devices=[\n        {\n            \"boot_index\": 0,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"local\",\n            \"source_type\": \"image\",\n            \"uuid\": \"<image-id>\",\n        },\n        {\n            \"boot_index\": 1,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"volume\",\n            \"source_type\": \"blank\",\n            \"volume_size\": 1,\n        },\n    ],\n    flavor_id=\"s3.large.2\",\n    image_id=\"<image-id>\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Flexibleengine.ComputeInstanceV2(\"instance1\", new()\n    {\n        BlockDevices = new[]\n        {\n            new Flexibleengine.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = 0,\n                DeleteOnTermination = true,\n                DestinationType = \"local\",\n                SourceType = \"image\",\n                Uuid = \"<image-id>\",\n            },\n            new Flexibleengine.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = 1,\n                DeleteOnTermination = true,\n                DestinationType = \"volume\",\n                SourceType = \"blank\",\n                VolumeSize = 1,\n            },\n        },\n        FlavorId = \"s3.large.2\",\n        ImageId = \"<image-id>\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewComputeInstanceV2(ctx, \"instance1\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tBlockDevices: flexibleengine.ComputeInstanceV2BlockDeviceArray{\n\t\t\t\t&flexibleengine.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"local\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"image\"),\n\t\t\t\t\tUuid:                pulumi.String(\"<image-id>\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(1),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"blank\"),\n\t\t\t\t\tVolumeSize:          pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavorId: pulumi.String(\"s3.large.2\"),\n\t\t\tImageId:  pulumi.String(\"<image-id>\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.inputs.ComputeInstanceV2BlockDeviceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .blockDevices(            \n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(0)\n                    .deleteOnTermination(true)\n                    .destinationType(\"local\")\n                    .sourceType(\"image\")\n                    .uuid(\"<image-id>\")\n                    .build(),\n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(1)\n                    .deleteOnTermination(true)\n                    .destinationType(\"volume\")\n                    .sourceType(\"blank\")\n                    .volumeSize(1)\n                    .build())\n            .flavorId(\"s3.large.2\")\n            .imageId(\"<image-id>\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      blockDevices:\n        - bootIndex: 0\n          deleteOnTermination: true\n          destinationType: local\n          sourceType: image\n          uuid: <image-id>\n        - bootIndex: 1\n          deleteOnTermination: true\n          destinationType: volume\n          sourceType: blank\n          volumeSize: 1\n      flavorId: s3.large.2\n      imageId: <image-id>\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n```\n<!--End PulumiCodeChooser -->\n\n### Boot Instance and Attach Existing Volume as a Block Device\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst volume1 = new flexibleengine.BlockstorageVolumeV2(\"volume1\", {size: 1});\nconst instance1 = new flexibleengine.ComputeInstanceV2(\"instance1\", {\n    imageId: \"<image-id>\",\n    flavorId: \"s3.large.2\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    blockDevices: [\n        {\n            uuid: \"<image-id>\",\n            sourceType: \"image\",\n            destinationType: \"local\",\n            bootIndex: 0,\n            deleteOnTermination: true,\n        },\n        {\n            uuid: volume1.blockstorageVolumeV2Id,\n            sourceType: \"volume\",\n            destinationType: \"volume\",\n            bootIndex: 1,\n            deleteOnTermination: true,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nvolume1 = flexibleengine.BlockstorageVolumeV2(\"volume1\", size=1)\ninstance1 = flexibleengine.ComputeInstanceV2(\"instance1\",\n    image_id=\"<image-id>\",\n    flavor_id=\"s3.large.2\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    block_devices=[\n        {\n            \"uuid\": \"<image-id>\",\n            \"source_type\": \"image\",\n            \"destination_type\": \"local\",\n            \"boot_index\": 0,\n            \"delete_on_termination\": True,\n        },\n        {\n            \"uuid\": volume1.blockstorage_volume_v2_id,\n            \"source_type\": \"volume\",\n            \"destination_type\": \"volume\",\n            \"boot_index\": 1,\n            \"delete_on_termination\": True,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var volume1 = new Flexibleengine.BlockstorageVolumeV2(\"volume1\", new()\n    {\n        Size = 1,\n    });\n\n    var instance1 = new Flexibleengine.ComputeInstanceV2(\"instance1\", new()\n    {\n        ImageId = \"<image-id>\",\n        FlavorId = \"s3.large.2\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        BlockDevices = new[]\n        {\n            new Flexibleengine.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                Uuid = \"<image-id>\",\n                SourceType = \"image\",\n                DestinationType = \"local\",\n                BootIndex = 0,\n                DeleteOnTermination = true,\n            },\n            new Flexibleengine.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                Uuid = volume1.BlockstorageVolumeV2Id,\n                SourceType = \"volume\",\n                DestinationType = \"volume\",\n                BootIndex = 1,\n                DeleteOnTermination = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume1, err := flexibleengine.NewBlockstorageVolumeV2(ctx, \"volume1\", &flexibleengine.BlockstorageVolumeV2Args{\n\t\t\tSize: pulumi.Float64(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewComputeInstanceV2(ctx, \"instance1\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tImageId:  pulumi.String(\"<image-id>\"),\n\t\t\tFlavorId: pulumi.String(\"s3.large.2\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tBlockDevices: flexibleengine.ComputeInstanceV2BlockDeviceArray{\n\t\t\t\t&flexibleengine.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tUuid:                pulumi.String(\"<image-id>\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"image\"),\n\t\t\t\t\tDestinationType:     pulumi.String(\"local\"),\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tUuid:                volume1.BlockstorageVolumeV2Id,\n\t\t\t\t\tSourceType:          pulumi.String(\"volume\"),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tBootIndex:           pulumi.Float64(1),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2Args;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.inputs.ComputeInstanceV2BlockDeviceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var volume1 = new BlockstorageVolumeV2(\"volume1\", BlockstorageVolumeV2Args.builder()\n            .size(1)\n            .build());\n\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .imageId(\"<image-id>\")\n            .flavorId(\"s3.large.2\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .blockDevices(            \n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .uuid(\"<image-id>\")\n                    .sourceType(\"image\")\n                    .destinationType(\"local\")\n                    .bootIndex(0)\n                    .deleteOnTermination(true)\n                    .build(),\n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .uuid(volume1.blockstorageVolumeV2Id())\n                    .sourceType(\"volume\")\n                    .destinationType(\"volume\")\n                    .bootIndex(1)\n                    .deleteOnTermination(true)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume1:\n    type: flexibleengine:BlockstorageVolumeV2\n    properties:\n      size: 1\n  instance1:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      imageId: <image-id>\n      flavorId: s3.large.2\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      blockDevices:\n        - uuid: <image-id>\n          sourceType: image\n          destinationType: local\n          bootIndex: 0\n          deleteOnTermination: true\n        - uuid: ${volume1.blockstorageVolumeV2Id}\n          sourceType: volume\n          destinationType: volume\n          bootIndex: 1\n          deleteOnTermination: true\n```\n<!--End PulumiCodeChooser -->\n\n### Instance With Multiple Networks\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst eip1 = new flexibleengine.VpcEip(\"eip1\", {\n    publicip: {\n        type: \"5_bgp\",\n    },\n    bandwidth: {\n        name: \"test\",\n        size: 10,\n        shareType: \"PER\",\n    },\n});\nconst multi_net = new flexibleengine.ComputeInstanceV2(\"multi-net\", {\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavorId: \"s3.large.2\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    networks: [\n        {\n            uuid: flexibleengine_vpc_subnet_v1.example_subnet.id,\n        },\n        {\n            uuid: flexibleengine_vpc_subnet_v1.example_subnet_2.id,\n        },\n    ],\n});\nconst myip = new flexibleengine.ComputeFloatingipAssociateV2(\"myip\", {\n    floatingIp: eip1.publicip.apply(publicip => publicip.ipAddress),\n    instanceId: multi_net.computeInstanceV2Id,\n    fixedIp: multi_net.networks.apply(networks => networks?.[1]?.fixedIpV4),\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\neip1 = flexibleengine.VpcEip(\"eip1\",\n    publicip={\n        \"type\": \"5_bgp\",\n    },\n    bandwidth={\n        \"name\": \"test\",\n        \"size\": 10,\n        \"share_type\": \"PER\",\n    })\nmulti_net = flexibleengine.ComputeInstanceV2(\"multi-net\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor_id=\"s3.large.2\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    networks=[\n        {\n            \"uuid\": flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n        },\n        {\n            \"uuid\": flexibleengine_vpc_subnet_v1[\"example_subnet_2\"][\"id\"],\n        },\n    ])\nmyip = flexibleengine.ComputeFloatingipAssociateV2(\"myip\",\n    floating_ip=eip1.publicip.ip_address,\n    instance_id=multi_net.compute_instance_v2_id,\n    fixed_ip=multi_net.networks[1].fixed_ip_v4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var eip1 = new Flexibleengine.VpcEip(\"eip1\", new()\n    {\n        Publicip = new Flexibleengine.Inputs.VpcEipPublicipArgs\n        {\n            Type = \"5_bgp\",\n        },\n        Bandwidth = new Flexibleengine.Inputs.VpcEipBandwidthArgs\n        {\n            Name = \"test\",\n            Size = 10,\n            ShareType = \"PER\",\n        },\n    });\n\n    var multi_net = new Flexibleengine.ComputeInstanceV2(\"multi-net\", new()\n    {\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        FlavorId = \"s3.large.2\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        Networks = new[]\n        {\n            new Flexibleengine.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Uuid = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n            },\n            new Flexibleengine.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Uuid = flexibleengine_vpc_subnet_v1.Example_subnet_2.Id,\n            },\n        },\n    });\n\n    var myip = new Flexibleengine.ComputeFloatingipAssociateV2(\"myip\", new()\n    {\n        FloatingIp = eip1.Publicip.Apply(publicip => publicip.IpAddress),\n        InstanceId = multi_net.ComputeInstanceV2Id,\n        FixedIp = multi_net.Networks.Apply(networks => networks[1]?.FixedIpV4),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\teip1, err := flexibleengine.NewVpcEip(ctx, \"eip1\", &flexibleengine.VpcEipArgs{\n\t\t\tPublicip: &flexibleengine.VpcEipPublicipArgs{\n\t\t\t\tType: pulumi.String(\"5_bgp\"),\n\t\t\t},\n\t\t\tBandwidth: &flexibleengine.VpcEipBandwidthArgs{\n\t\t\t\tName:      pulumi.String(\"test\"),\n\t\t\t\tSize:      pulumi.Float64(10),\n\t\t\t\tShareType: pulumi.String(\"PER\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmulti_net, err := flexibleengine.NewComputeInstanceV2(ctx, \"multi-net\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tImageId:  pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"s3.large.2\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: flexibleengine.ComputeInstanceV2NetworkArray{\n\t\t\t\t&flexibleengine.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tUuid: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tUuid: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet_2.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\t_, err = flexibleengine.NewComputeFloatingipAssociateV2(ctx, \"myip\", &flexibleengine.ComputeFloatingipAssociateV2Args{\n\t\t\tFloatingIp: pulumi.String(eip1.Publicip.ApplyT(func(publicip flexibleengine.VpcEipPublicip) (*string, error) {\n\t\t\t\treturn &publicip.IpAddress, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tInstanceId: multi_net.ComputeInstanceV2Id,\n\t\t\tFixedIp: pulumi.String(multi_net.Networks.ApplyT(func(networks []flexibleengine.ComputeInstanceV2Network) (*string, error) {\n\t\t\t\treturn &networks[1].FixedIpV4, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcEip;\nimport com.pulumi.flexibleengine.VpcEipArgs;\nimport com.pulumi.flexibleengine.inputs.VpcEipPublicipArgs;\nimport com.pulumi.flexibleengine.inputs.VpcEipBandwidthArgs;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.inputs.ComputeInstanceV2NetworkArgs;\nimport com.pulumi.flexibleengine.ComputeFloatingipAssociateV2;\nimport com.pulumi.flexibleengine.ComputeFloatingipAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var eip1 = new VpcEip(\"eip1\", VpcEipArgs.builder()\n            .publicip(VpcEipPublicipArgs.builder()\n                .type(\"5_bgp\")\n                .build())\n            .bandwidth(VpcEipBandwidthArgs.builder()\n                .name(\"test\")\n                .size(10)\n                .shareType(\"PER\")\n                .build())\n            .build());\n\n        var multi_net = new ComputeInstanceV2(\"multi-net\", ComputeInstanceV2Args.builder()\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavorId(\"s3.large.2\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .networks(            \n                ComputeInstanceV2NetworkArgs.builder()\n                    .uuid(flexibleengine_vpc_subnet_v1.example_subnet().id())\n                    .build(),\n                ComputeInstanceV2NetworkArgs.builder()\n                    .uuid(flexibleengine_vpc_subnet_v1.example_subnet_2().id())\n                    .build())\n            .build());\n\n        var myip = new ComputeFloatingipAssociateV2(\"myip\", ComputeFloatingipAssociateV2Args.builder()\n            .floatingIp(eip1.publicip().applyValue(publicip -> publicip.ipAddress()))\n            .instanceId(multi_net.computeInstanceV2Id())\n            .fixedIp(multi_net.networks().applyValue(networks -> networks[1].fixedIpV4()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  eip1:\n    type: flexibleengine:VpcEip\n    properties:\n      publicip:\n        type: 5_bgp\n      bandwidth:\n        name: test\n        size: 10\n        shareType: PER\n  multi-net:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavorId: s3.large.2\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      networks:\n        - uuid: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n        - uuid: ${flexibleengine_vpc_subnet_v1.example_subnet_2.id}\n  myip:\n    type: flexibleengine:ComputeFloatingipAssociateV2\n    properties:\n      floatingIp: ${eip1.publicip.ipAddress}\n      instanceId: ${[\"multi-net\"].computeInstanceV2Id}\n      fixedIp: ${[\"multi-net\"].networks[1].fixedIpV4}\n```\n<!--End PulumiCodeChooser -->\n\n### Instance with Multiple Ephemeral Disks\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst multi_eph = new flexibleengine.ComputeInstanceV2(\"multi-eph\", {\n    blockDevices: [\n        {\n            bootIndex: 0,\n            deleteOnTermination: true,\n            destinationType: \"local\",\n            sourceType: \"image\",\n            uuid: \"<image-id>\",\n        },\n        {\n            bootIndex: -1,\n            deleteOnTermination: true,\n            destinationType: \"local\",\n            sourceType: \"blank\",\n            volumeSize: 1,\n        },\n        {\n            bootIndex: -1,\n            deleteOnTermination: true,\n            destinationType: \"local\",\n            sourceType: \"blank\",\n            volumeSize: 1,\n        },\n    ],\n    flavorId: \"s3.large.2\",\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nmulti_eph = flexibleengine.ComputeInstanceV2(\"multi-eph\",\n    block_devices=[\n        {\n            \"boot_index\": 0,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"local\",\n            \"source_type\": \"image\",\n            \"uuid\": \"<image-id>\",\n        },\n        {\n            \"boot_index\": -1,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"local\",\n            \"source_type\": \"blank\",\n            \"volume_size\": 1,\n        },\n        {\n            \"boot_index\": -1,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"local\",\n            \"source_type\": \"blank\",\n            \"volume_size\": 1,\n        },\n    ],\n    flavor_id=\"s3.large.2\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var multi_eph = new Flexibleengine.ComputeInstanceV2(\"multi-eph\", new()\n    {\n        BlockDevices = new[]\n        {\n            new Flexibleengine.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = 0,\n                DeleteOnTermination = true,\n                DestinationType = \"local\",\n                SourceType = \"image\",\n                Uuid = \"<image-id>\",\n            },\n            new Flexibleengine.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = -1,\n                DeleteOnTermination = true,\n                DestinationType = \"local\",\n                SourceType = \"blank\",\n                VolumeSize = 1,\n            },\n            new Flexibleengine.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = -1,\n                DeleteOnTermination = true,\n                DestinationType = \"local\",\n                SourceType = \"blank\",\n                VolumeSize = 1,\n            },\n        },\n        FlavorId = \"s3.large.2\",\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewComputeInstanceV2(ctx, \"multi-eph\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tBlockDevices: flexibleengine.ComputeInstanceV2BlockDeviceArray{\n\t\t\t\t&flexibleengine.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"local\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"image\"),\n\t\t\t\t\tUuid:                pulumi.String(\"<image-id>\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(-1),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"local\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"blank\"),\n\t\t\t\t\tVolumeSize:          pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(-1),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"local\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"blank\"),\n\t\t\t\t\tVolumeSize:          pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavorId: pulumi.String(\"s3.large.2\"),\n\t\t\tImageId:  pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.inputs.ComputeInstanceV2BlockDeviceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var multi_eph = new ComputeInstanceV2(\"multi-eph\", ComputeInstanceV2Args.builder()\n            .blockDevices(            \n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(0)\n                    .deleteOnTermination(true)\n                    .destinationType(\"local\")\n                    .sourceType(\"image\")\n                    .uuid(\"<image-id>\")\n                    .build(),\n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(-1)\n                    .deleteOnTermination(true)\n                    .destinationType(\"local\")\n                    .sourceType(\"blank\")\n                    .volumeSize(1)\n                    .build(),\n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(-1)\n                    .deleteOnTermination(true)\n                    .destinationType(\"local\")\n                    .sourceType(\"blank\")\n                    .volumeSize(1)\n                    .build())\n            .flavorId(\"s3.large.2\")\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  multi-eph:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      blockDevices:\n        - bootIndex: 0\n          deleteOnTermination: true\n          destinationType: local\n          sourceType: image\n          uuid: <image-id>\n        - bootIndex: -1\n          deleteOnTermination: true\n          destinationType: local\n          sourceType: blank\n          volumeSize: 1\n        - bootIndex: -1\n          deleteOnTermination: true\n          destinationType: local\n          sourceType: blank\n          volumeSize: 1\n      flavorId: s3.large.2\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n```\n<!--End PulumiCodeChooser -->\n\n### Instance with User Data (cloud-init)\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst instance1 = new flexibleengine.ComputeInstanceV2(\"instance1\", {\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavorId: \"s3.large.2\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    userData: `#cloud-config\nhostname: instance_1.example.com\nfqdn: instance_1.example.com`,\n    networks: [{\n        uuid: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ninstance1 = flexibleengine.ComputeInstanceV2(\"instance1\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor_id=\"s3.large.2\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    user_data=\"\"\"#cloud-config\nhostname: instance_1.example.com\nfqdn: instance_1.example.com\"\"\",\n    networks=[{\n        \"uuid\": flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Flexibleengine.ComputeInstanceV2(\"instance1\", new()\n    {\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        FlavorId = \"s3.large.2\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        UserData = @\"#cloud-config\nhostname: instance_1.example.com\nfqdn: instance_1.example.com\",\n        Networks = new[]\n        {\n            new Flexibleengine.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Uuid = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewComputeInstanceV2(ctx, \"instance1\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tImageId:  pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"s3.large.2\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tUserData: pulumi.String(\"#cloud-config\\nhostname: instance_1.example.com\\nfqdn: instance_1.example.com\"),\n\t\t\tNetworks: flexibleengine.ComputeInstanceV2NetworkArray{\n\t\t\t\t&flexibleengine.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tUuid: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.inputs.ComputeInstanceV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavorId(\"s3.large.2\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .userData(\"\"\"\n#cloud-config\nhostname: instance_1.example.com\nfqdn: instance_1.example.com            \"\"\")\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .uuid(flexibleengine_vpc_subnet_v1.example_subnet().id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavorId: s3.large.2\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      userData: |-\n        #cloud-config\n        hostname: instance_1.example.com\n        fqdn: instance_1.example.com\n      networks:\n        - uuid: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n```\n<!--End PulumiCodeChooser -->\n\n`user_data` can come from a variety of sources: inline, read in from the `file`\nfunction, or the `template_cloudinit_config` resource.\n\n## Notes\n\n### Multiple Ephemeral Disks\n\nIt's possible to specify multiple `block_device` entries to create an instance\nwith multiple ephemeral (local) disks. In order to create multiple ephemeral\ndisks, the sum of the total amount of ephemeral space must be less than or\nequal to what the chosen flavor supports.\n\nThe following example shows how to create an instance with multiple ephemeral\ndisks:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst foo = new flexibleengine.ComputeInstanceV2(\"foo\", {\n    blockDevices: [\n        {\n            bootIndex: 0,\n            deleteOnTermination: true,\n            destinationType: \"local\",\n            sourceType: \"image\",\n            uuid: \"<image uuid>\",\n        },\n        {\n            bootIndex: -1,\n            deleteOnTermination: true,\n            destinationType: \"local\",\n            sourceType: \"blank\",\n            volumeSize: 1,\n        },\n        {\n            bootIndex: -1,\n            deleteOnTermination: true,\n            destinationType: \"local\",\n            sourceType: \"blank\",\n            volumeSize: 1,\n        },\n    ],\n    securityGroups: [\"default\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nfoo = flexibleengine.ComputeInstanceV2(\"foo\",\n    block_devices=[\n        {\n            \"boot_index\": 0,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"local\",\n            \"source_type\": \"image\",\n            \"uuid\": \"<image uuid>\",\n        },\n        {\n            \"boot_index\": -1,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"local\",\n            \"source_type\": \"blank\",\n            \"volume_size\": 1,\n        },\n        {\n            \"boot_index\": -1,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"local\",\n            \"source_type\": \"blank\",\n            \"volume_size\": 1,\n        },\n    ],\n    security_groups=[\"default\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var foo = new Flexibleengine.ComputeInstanceV2(\"foo\", new()\n    {\n        BlockDevices = new[]\n        {\n            new Flexibleengine.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = 0,\n                DeleteOnTermination = true,\n                DestinationType = \"local\",\n                SourceType = \"image\",\n                Uuid = \"<image uuid>\",\n            },\n            new Flexibleengine.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = -1,\n                DeleteOnTermination = true,\n                DestinationType = \"local\",\n                SourceType = \"blank\",\n                VolumeSize = 1,\n            },\n            new Flexibleengine.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = -1,\n                DeleteOnTermination = true,\n                DestinationType = \"local\",\n                SourceType = \"blank\",\n                VolumeSize = 1,\n            },\n        },\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewComputeInstanceV2(ctx, \"foo\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tBlockDevices: flexibleengine.ComputeInstanceV2BlockDeviceArray{\n\t\t\t\t&flexibleengine.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"local\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"image\"),\n\t\t\t\t\tUuid:                pulumi.String(\"<image uuid>\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(-1),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"local\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"blank\"),\n\t\t\t\t\tVolumeSize:          pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(-1),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"local\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"blank\"),\n\t\t\t\t\tVolumeSize:          pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.inputs.ComputeInstanceV2BlockDeviceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var foo = new ComputeInstanceV2(\"foo\", ComputeInstanceV2Args.builder()\n            .blockDevices(            \n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(0)\n                    .deleteOnTermination(true)\n                    .destinationType(\"local\")\n                    .sourceType(\"image\")\n                    .uuid(\"<image uuid>\")\n                    .build(),\n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(-1)\n                    .deleteOnTermination(true)\n                    .destinationType(\"local\")\n                    .sourceType(\"blank\")\n                    .volumeSize(1)\n                    .build(),\n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(-1)\n                    .deleteOnTermination(true)\n                    .destinationType(\"local\")\n                    .sourceType(\"blank\")\n                    .volumeSize(1)\n                    .build())\n            .securityGroups(\"default\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  foo:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      blockDevices:\n        - bootIndex: 0\n          deleteOnTermination: true\n          destinationType: local\n          sourceType: image\n          uuid: <image uuid>\n        - bootIndex: -1\n          deleteOnTermination: true\n          destinationType: local\n          sourceType: blank\n          volumeSize: 1\n        - bootIndex: -1\n          deleteOnTermination: true\n          destinationType: local\n          sourceType: blank\n          volumeSize: 1\n      securityGroups:\n        - default\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nInstances can be imported by their `id`. For example,\n\n```sh\n$ pulumi import flexibleengine:index/computeInstanceV2:ComputeInstanceV2 my_instance b11b407c-e604-4e8d-8bc4-92398320b847\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attrubutes\n\nmissing from the API response, security or some other reason. The missing attributes include:\n\n`admin_pass`, `config_drive`, `user_data`, `block_device`, `scheduler_hints`, `stop_before_destroy`,\n\n`network/access_network` and arguments for pre-paid. It is generally recommended running\n\n`pulumi preview` after importing an instance. You can then decide if changes should\n\nbe applied to the instance, or the resource definition should be updated to align\n\nwith the instance. Also you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_compute_instance_v2\" \"my_instance\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      user_data, block_device,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "accessIpV4": {
          "type": "string",
          "description": "The first detected Fixed IPv4 address *or* the Floating IP.\n"
        },
        "accessIpV6": {
          "type": "string",
          "description": "The first detected Fixed IPv6 address.\n"
        },
        "adminPass": {
          "type": "string",
          "description": "The administrative password to assign to the server.\n"
        },
        "allMetadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "autoRecovery": {
          "type": "boolean",
          "description": "Configures or deletes automatic recovery of an instance\n"
        },
        "availabilityZone": {
          "type": "string",
          "description": "The availability zone in which to create the server.\nChanging this creates a new server.\n"
        },
        "blockDevices": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2BlockDevice:ComputeInstanceV2BlockDevice"
          },
          "description": "Configuration of block devices. The block_device object\nstructure is documented below. You can specify multiple block devices which will create an instance with\nmultiple disks. This configuration is very flexible, so please see the\nfollowing [reference](http://docs.openstack.org/developer/nova/block_device_mapping.html) for more information.\n"
        },
        "computeInstanceV2Id": {
          "type": "string"
        },
        "configDrive": {
          "type": "boolean",
          "description": "Whether to use the config_drive feature to\nconfigure the instance. Changing this creates a new server.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "The flavor ID of the desired flavor for the server.\nIt is **Required** if `flavor_name` is empty. Changing this resizes the existing server.\n"
        },
        "flavorName": {
          "type": "string",
          "description": "The name of the desired flavor for the server.\nIt is **Required** if `flavor_id` is empty. Changing this resizes the existing server.\n"
        },
        "floatingIp": {
          "type": "string",
          "description": "The EIP address that is associate to the instance.\n"
        },
        "imageId": {
          "type": "string",
          "description": "The image ID of the desired image for the server.\nIt is **Required** if `image_name` is empty and not booting from a volume. Do not specify if booting from a volume.\nChanging this creates a new server.\n"
        },
        "imageName": {
          "type": "string",
          "description": "The name of the desired image for the server.\nIt is **Required** if `image_id` is empty and not booting from a volume. Do not specify if booting from a volume.\nChanging this creates a new server.\n"
        },
        "keyPair": {
          "type": "string",
          "description": "The name of a key pair to put on the server. The key\npair must already be created and associated with the tenant's account. Changing this creates a new server.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the instance.\n"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the resource.\n"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2Network:ComputeInstanceV2Network"
          },
          "description": "An array of one or more networks to attach to the\ninstance. The network object structure is documented below. Changing this\ncreates a new server.\n"
        },
        "personalities": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2Personality:ComputeInstanceV2Personality"
          }
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the server instance.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new server.\n"
        },
        "schedulerHints": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2SchedulerHint:ComputeInstanceV2SchedulerHint"
          },
          "description": "Provide the Nova scheduler with hints on how\nthe instance should be launched. The scheduler_hints object structure is documented below.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more security group names\nto associate with the server. Changing this results in adding/removing\nsecurity groups from the existing server. *Note*: When attaching the\ninstance to networks using Ports, place the security groups on the Port and not the instance.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the instance.\n"
        },
        "stopBeforeDestroy": {
          "type": "boolean",
          "description": "Whether to try stop instance gracefully\nbefore destroying it, thus giving chance for guest OS daemons to stop correctly.\nIf instance doesn't stop within timeout, it will be destroyed anyway.\n"
        },
        "systemDiskId": {
          "type": "string",
          "description": "The system disk volume ID.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the instance.\n\n<a name=\"ecs_arg_network\"></a>\nThe `network` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2Timeouts:ComputeInstanceV2Timeouts"
        },
        "userData": {
          "type": "string",
          "description": "The user data to provide when launching the instance.\nChanging this creates a new server.\n"
        },
        "volumeAttacheds": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2VolumeAttached:ComputeInstanceV2VolumeAttached"
          },
          "description": "An array of one or more disks to attach to the instance.\nThe volume_attached object structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "accessIpV4",
        "accessIpV6",
        "allMetadata",
        "autoRecovery",
        "availabilityZone",
        "computeInstanceV2Id",
        "flavorId",
        "flavorName",
        "floatingIp",
        "imageId",
        "imageName",
        "name",
        "region",
        "securityGroups",
        "status",
        "systemDiskId",
        "volumeAttacheds"
      ],
      "inputProperties": {
        "adminPass": {
          "type": "string",
          "description": "The administrative password to assign to the server.\n"
        },
        "autoRecovery": {
          "type": "boolean",
          "description": "Configures or deletes automatic recovery of an instance\n"
        },
        "availabilityZone": {
          "type": "string",
          "description": "The availability zone in which to create the server.\nChanging this creates a new server.\n"
        },
        "blockDevices": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2BlockDevice:ComputeInstanceV2BlockDevice"
          },
          "description": "Configuration of block devices. The block_device object\nstructure is documented below. You can specify multiple block devices which will create an instance with\nmultiple disks. This configuration is very flexible, so please see the\nfollowing [reference](http://docs.openstack.org/developer/nova/block_device_mapping.html) for more information.\n"
        },
        "computeInstanceV2Id": {
          "type": "string"
        },
        "configDrive": {
          "type": "boolean",
          "description": "Whether to use the config_drive feature to\nconfigure the instance. Changing this creates a new server.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "The flavor ID of the desired flavor for the server.\nIt is **Required** if `flavor_name` is empty. Changing this resizes the existing server.\n"
        },
        "flavorName": {
          "type": "string",
          "description": "The name of the desired flavor for the server.\nIt is **Required** if `flavor_id` is empty. Changing this resizes the existing server.\n"
        },
        "imageId": {
          "type": "string",
          "description": "The image ID of the desired image for the server.\nIt is **Required** if `image_name` is empty and not booting from a volume. Do not specify if booting from a volume.\nChanging this creates a new server.\n"
        },
        "imageName": {
          "type": "string",
          "description": "The name of the desired image for the server.\nIt is **Required** if `image_id` is empty and not booting from a volume. Do not specify if booting from a volume.\nChanging this creates a new server.\n"
        },
        "keyPair": {
          "type": "string",
          "description": "The name of a key pair to put on the server. The key\npair must already be created and associated with the tenant's account. Changing this creates a new server.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the instance.\n"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the resource.\n"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2Network:ComputeInstanceV2Network"
          },
          "description": "An array of one or more networks to attach to the\ninstance. The network object structure is documented below. Changing this\ncreates a new server.\n"
        },
        "personalities": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2Personality:ComputeInstanceV2Personality"
          }
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the server instance.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new server.\n"
        },
        "schedulerHints": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2SchedulerHint:ComputeInstanceV2SchedulerHint"
          },
          "description": "Provide the Nova scheduler with hints on how\nthe instance should be launched. The scheduler_hints object structure is documented below.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more security group names\nto associate with the server. Changing this results in adding/removing\nsecurity groups from the existing server. *Note*: When attaching the\ninstance to networks using Ports, place the security groups on the Port and not the instance.\n"
        },
        "stopBeforeDestroy": {
          "type": "boolean",
          "description": "Whether to try stop instance gracefully\nbefore destroying it, thus giving chance for guest OS daemons to stop correctly.\nIf instance doesn't stop within timeout, it will be destroyed anyway.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the instance.\n\n<a name=\"ecs_arg_network\"></a>\nThe `network` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2Timeouts:ComputeInstanceV2Timeouts"
        },
        "userData": {
          "type": "string",
          "description": "The user data to provide when launching the instance.\nChanging this creates a new server.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeInstanceV2 resources.\n",
        "properties": {
          "accessIpV4": {
            "type": "string",
            "description": "The first detected Fixed IPv4 address *or* the Floating IP.\n"
          },
          "accessIpV6": {
            "type": "string",
            "description": "The first detected Fixed IPv6 address.\n"
          },
          "adminPass": {
            "type": "string",
            "description": "The administrative password to assign to the server.\n"
          },
          "allMetadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "autoRecovery": {
            "type": "boolean",
            "description": "Configures or deletes automatic recovery of an instance\n"
          },
          "availabilityZone": {
            "type": "string",
            "description": "The availability zone in which to create the server.\nChanging this creates a new server.\n"
          },
          "blockDevices": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2BlockDevice:ComputeInstanceV2BlockDevice"
            },
            "description": "Configuration of block devices. The block_device object\nstructure is documented below. You can specify multiple block devices which will create an instance with\nmultiple disks. This configuration is very flexible, so please see the\nfollowing [reference](http://docs.openstack.org/developer/nova/block_device_mapping.html) for more information.\n"
          },
          "computeInstanceV2Id": {
            "type": "string"
          },
          "configDrive": {
            "type": "boolean",
            "description": "Whether to use the config_drive feature to\nconfigure the instance. Changing this creates a new server.\n"
          },
          "flavorId": {
            "type": "string",
            "description": "The flavor ID of the desired flavor for the server.\nIt is **Required** if `flavor_name` is empty. Changing this resizes the existing server.\n"
          },
          "flavorName": {
            "type": "string",
            "description": "The name of the desired flavor for the server.\nIt is **Required** if `flavor_id` is empty. Changing this resizes the existing server.\n"
          },
          "floatingIp": {
            "type": "string",
            "description": "The EIP address that is associate to the instance.\n"
          },
          "imageId": {
            "type": "string",
            "description": "The image ID of the desired image for the server.\nIt is **Required** if `image_name` is empty and not booting from a volume. Do not specify if booting from a volume.\nChanging this creates a new server.\n"
          },
          "imageName": {
            "type": "string",
            "description": "The name of the desired image for the server.\nIt is **Required** if `image_id` is empty and not booting from a volume. Do not specify if booting from a volume.\nChanging this creates a new server.\n"
          },
          "keyPair": {
            "type": "string",
            "description": "The name of a key pair to put on the server. The key\npair must already be created and associated with the tenant's account. Changing this creates a new server.\n"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the instance.\n"
          },
          "name": {
            "type": "string",
            "description": "A unique name for the resource.\n"
          },
          "networks": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2Network:ComputeInstanceV2Network"
            },
            "description": "An array of one or more networks to attach to the\ninstance. The network object structure is documented below. Changing this\ncreates a new server.\n"
          },
          "personalities": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2Personality:ComputeInstanceV2Personality"
            }
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the server instance.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new server.\n"
          },
          "schedulerHints": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2SchedulerHint:ComputeInstanceV2SchedulerHint"
            },
            "description": "Provide the Nova scheduler with hints on how\nthe instance should be launched. The scheduler_hints object structure is documented below.\n"
          },
          "securityGroups": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of one or more security group names\nto associate with the server. Changing this results in adding/removing\nsecurity groups from the existing server. *Note*: When attaching the\ninstance to networks using Ports, place the security groups on the Port and not the instance.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the instance.\n"
          },
          "stopBeforeDestroy": {
            "type": "boolean",
            "description": "Whether to try stop instance gracefully\nbefore destroying it, thus giving chance for guest OS daemons to stop correctly.\nIf instance doesn't stop within timeout, it will be destroyed anyway.\n"
          },
          "systemDiskId": {
            "type": "string",
            "description": "The system disk volume ID.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the key/value pairs to associate with the instance.\n\n<a name=\"ecs_arg_network\"></a>\nThe `network` block supports:\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2Timeouts:ComputeInstanceV2Timeouts"
          },
          "userData": {
            "type": "string",
            "description": "The user data to provide when launching the instance.\nChanging this creates a new server.\n"
          },
          "volumeAttacheds": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FComputeInstanceV2VolumeAttached:ComputeInstanceV2VolumeAttached"
            },
            "description": "An array of one or more disks to attach to the instance.\nThe volume_attached object structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/computeInterfaceAttachV2:ComputeInterfaceAttachV2": {
      "description": "Attaches a Network Interface (a Port) to an Instance using the FlexibleEngine\nCompute (Nova) v2 API.\n\n## Example Usage\n\n### Basic Attachment\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst exampleInstance = new flexibleengine.ComputeInstanceV2(\"exampleInstance\", {securityGroups: [\"default\"]});\nconst exampleInterfaceAttach = new flexibleengine.ComputeInterfaceAttachV2(\"exampleInterfaceAttach\", {\n    instanceId: exampleInstance.computeInstanceV2Id,\n    networkId: exampleSubnet.vpcSubnetV1Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nexample_instance = flexibleengine.ComputeInstanceV2(\"exampleInstance\", security_groups=[\"default\"])\nexample_interface_attach = flexibleengine.ComputeInterfaceAttachV2(\"exampleInterfaceAttach\",\n    instance_id=example_instance.compute_instance_v2_id,\n    network_id=example_subnet.vpc_subnet_v1_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var exampleInstance = new Flexibleengine.ComputeInstanceV2(\"exampleInstance\", new()\n    {\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n    });\n\n    var exampleInterfaceAttach = new Flexibleengine.ComputeInterfaceAttachV2(\"exampleInterfaceAttach\", new()\n    {\n        InstanceId = exampleInstance.ComputeInstanceV2Id,\n        NetworkId = exampleSubnet.VpcSubnetV1Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := flexibleengine.NewComputeInstanceV2(ctx, \"exampleInstance\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewComputeInterfaceAttachV2(ctx, \"exampleInterfaceAttach\", &flexibleengine.ComputeInterfaceAttachV2Args{\n\t\t\tInstanceId: exampleInstance.ComputeInstanceV2Id,\n\t\t\tNetworkId:  exampleSubnet.VpcSubnetV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.ComputeInterfaceAttachV2;\nimport com.pulumi.flexibleengine.ComputeInterfaceAttachV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var exampleInstance = new ComputeInstanceV2(\"exampleInstance\", ComputeInstanceV2Args.builder()\n            .securityGroups(\"default\")\n            .build());\n\n        var exampleInterfaceAttach = new ComputeInterfaceAttachV2(\"exampleInterfaceAttach\", ComputeInterfaceAttachV2Args.builder()\n            .instanceId(exampleInstance.computeInstanceV2Id())\n            .networkId(exampleSubnet.vpcSubnetV1Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  exampleInstance:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      securityGroups:\n        - default\n  exampleInterfaceAttach:\n    type: flexibleengine:ComputeInterfaceAttachV2\n    properties:\n      instanceId: ${exampleInstance.computeInstanceV2Id}\n      networkId: ${exampleSubnet.vpcSubnetV1Id}\n```\n<!--End PulumiCodeChooser -->\n\n### Attachment Specifying a Fixed IP\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleInterfaceAttach = new flexibleengine.ComputeInterfaceAttachV2(\"exampleInterfaceAttach\", {\n    instanceId: flexibleengine_compute_instance_v2.example_instance.id,\n    networkId: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    fixedIp: \"10.0.10.10\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_interface_attach = flexibleengine.ComputeInterfaceAttachV2(\"exampleInterfaceAttach\",\n    instance_id=flexibleengine_compute_instance_v2[\"example_instance\"][\"id\"],\n    network_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    fixed_ip=\"10.0.10.10\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleInterfaceAttach = new Flexibleengine.ComputeInterfaceAttachV2(\"exampleInterfaceAttach\", new()\n    {\n        InstanceId = flexibleengine_compute_instance_v2.Example_instance.Id,\n        NetworkId = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n        FixedIp = \"10.0.10.10\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewComputeInterfaceAttachV2(ctx, \"exampleInterfaceAttach\", &flexibleengine.ComputeInterfaceAttachV2Args{\n\t\t\tInstanceId: pulumi.Any(flexibleengine_compute_instance_v2.Example_instance.Id),\n\t\t\tNetworkId:  pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\tFixedIp:    pulumi.String(\"10.0.10.10\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeInterfaceAttachV2;\nimport com.pulumi.flexibleengine.ComputeInterfaceAttachV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleInterfaceAttach = new ComputeInterfaceAttachV2(\"exampleInterfaceAttach\", ComputeInterfaceAttachV2Args.builder()\n            .instanceId(flexibleengine_compute_instance_v2.example_instance().id())\n            .networkId(flexibleengine_vpc_subnet_v1.example_subnet().id())\n            .fixedIp(\"10.0.10.10\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleInterfaceAttach:\n    type: flexibleengine:ComputeInterfaceAttachV2\n    properties:\n      instanceId: ${flexibleengine_compute_instance_v2.example_instance.id}\n      networkId: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n      fixedIp: 10.0.10.10\n```\n<!--End PulumiCodeChooser -->\n\n### Attachment Using an Existing Port\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst examplePort = new flexibleengine.NetworkingPortV2(\"examplePort\", {\n    networkId: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    adminStateUp: true,\n});\nconst exampleInterfaceAttach = new flexibleengine.ComputeInterfaceAttachV2(\"exampleInterfaceAttach\", {\n    instanceId: flexibleengine_compute_instance_v2.example_instance.id,\n    portId: examplePort.networkingPortV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_port = flexibleengine.NetworkingPortV2(\"examplePort\",\n    network_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    admin_state_up=True)\nexample_interface_attach = flexibleengine.ComputeInterfaceAttachV2(\"exampleInterfaceAttach\",\n    instance_id=flexibleengine_compute_instance_v2[\"example_instance\"][\"id\"],\n    port_id=example_port.networking_port_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var examplePort = new Flexibleengine.NetworkingPortV2(\"examplePort\", new()\n    {\n        NetworkId = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n        AdminStateUp = true,\n    });\n\n    var exampleInterfaceAttach = new Flexibleengine.ComputeInterfaceAttachV2(\"exampleInterfaceAttach\", new()\n    {\n        InstanceId = flexibleengine_compute_instance_v2.Example_instance.Id,\n        PortId = examplePort.NetworkingPortV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texamplePort, err := flexibleengine.NewNetworkingPortV2(ctx, \"examplePort\", &flexibleengine.NetworkingPortV2Args{\n\t\t\tNetworkId:    pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewComputeInterfaceAttachV2(ctx, \"exampleInterfaceAttach\", &flexibleengine.ComputeInterfaceAttachV2Args{\n\t\t\tInstanceId: pulumi.Any(flexibleengine_compute_instance_v2.Example_instance.Id),\n\t\t\tPortId:     examplePort.NetworkingPortV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NetworkingPortV2;\nimport com.pulumi.flexibleengine.NetworkingPortV2Args;\nimport com.pulumi.flexibleengine.ComputeInterfaceAttachV2;\nimport com.pulumi.flexibleengine.ComputeInterfaceAttachV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var examplePort = new NetworkingPortV2(\"examplePort\", NetworkingPortV2Args.builder()\n            .networkId(flexibleengine_vpc_subnet_v1.example_subnet().id())\n            .adminStateUp(\"true\")\n            .build());\n\n        var exampleInterfaceAttach = new ComputeInterfaceAttachV2(\"exampleInterfaceAttach\", ComputeInterfaceAttachV2Args.builder()\n            .instanceId(flexibleengine_compute_instance_v2.example_instance().id())\n            .portId(examplePort.networkingPortV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  examplePort:\n    type: flexibleengine:NetworkingPortV2\n    properties:\n      networkId: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n      adminStateUp: 'true'\n  exampleInterfaceAttach:\n    type: flexibleengine:ComputeInterfaceAttachV2\n    properties:\n      instanceId: ${flexibleengine_compute_instance_v2.example_instance.id}\n      portId: ${examplePort.networkingPortV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nInterface Attachments can be imported using the Instance ID and Port ID\n\nseparated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/computeInterfaceAttachV2:ComputeInterfaceAttachV2 ai_1 89c60255-9bd6-460c-822a-e2b959ede9d2/45670584-225f-46c3-b33e-6707b589b666\n```\n\n",
      "properties": {
        "computeInterfaceAttachV2Id": {
          "type": "string"
        },
        "fixedIp": {
          "type": "string",
          "description": "An IP address to associate with the port.\nThis option cannot be used with port_id. You must specify a network_id.\nThe IP address must lie in a range on the supplied network.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "The ID of the Instance to attach the Port or Network to.\n"
        },
        "networkId": {
          "type": "string",
          "description": "The ID of the Network to attach to an Instance.\nA port will be created automatically. This option and `port_id` are mutually exclusive.\n"
        },
        "portId": {
          "type": "string",
          "description": "The ID of the Port to attach to an Instance.\nThis option and `network_id` are mutually exclusive.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the interface attachment.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new attachment.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FComputeInterfaceAttachV2Timeouts:ComputeInterfaceAttachV2Timeouts"
        }
      },
      "type": "object",
      "required": [
        "computeInterfaceAttachV2Id",
        "instanceId",
        "networkId",
        "portId",
        "region"
      ],
      "inputProperties": {
        "computeInterfaceAttachV2Id": {
          "type": "string"
        },
        "fixedIp": {
          "type": "string",
          "description": "An IP address to associate with the port.\nThis option cannot be used with port_id. You must specify a network_id.\nThe IP address must lie in a range on the supplied network.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "The ID of the Instance to attach the Port or Network to.\n"
        },
        "networkId": {
          "type": "string",
          "description": "The ID of the Network to attach to an Instance.\nA port will be created automatically. This option and `port_id` are mutually exclusive.\n"
        },
        "portId": {
          "type": "string",
          "description": "The ID of the Port to attach to an Instance.\nThis option and `network_id` are mutually exclusive.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the interface attachment.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new attachment.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FComputeInterfaceAttachV2Timeouts:ComputeInterfaceAttachV2Timeouts"
        }
      },
      "requiredInputs": [
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeInterfaceAttachV2 resources.\n",
        "properties": {
          "computeInterfaceAttachV2Id": {
            "type": "string"
          },
          "fixedIp": {
            "type": "string",
            "description": "An IP address to associate with the port.\nThis option cannot be used with port_id. You must specify a network_id.\nThe IP address must lie in a range on the supplied network.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "The ID of the Instance to attach the Port or Network to.\n"
          },
          "networkId": {
            "type": "string",
            "description": "The ID of the Network to attach to an Instance.\nA port will be created automatically. This option and `port_id` are mutually exclusive.\n"
          },
          "portId": {
            "type": "string",
            "description": "The ID of the Port to attach to an Instance.\nThis option and `network_id` are mutually exclusive.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the interface attachment.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new attachment.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FComputeInterfaceAttachV2Timeouts:ComputeInterfaceAttachV2Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/computeKeypairV2:ComputeKeypairV2": {
      "description": "Manages a V2 keypair resource within FlexibleEngine.\n\n## Example Usage\n\n### Create Key Pair\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst _new = new flexibleengine.ComputeKeypairV2(\"new\", {});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nnew = flexibleengine.ComputeKeypairV2(\"new\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @new = new Flexibleengine.ComputeKeypairV2(\"new\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewComputeKeypairV2(ctx, \"new\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeKeypairV2;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var new_ = new ComputeKeypairV2(\"new\");\n\n    }\n}\n```\n```yaml\nresources:\n  new:\n    type: flexibleengine:ComputeKeypairV2\n```\n<!--End PulumiCodeChooser -->\n\n### Import Key Pair\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst _import = new flexibleengine.ComputeKeypairV2(\"import\", {publicKey: \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\"});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nimport_ = flexibleengine.ComputeKeypairV2(\"import\", public_key=\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var import = new Flexibleengine.ComputeKeypairV2(\"import\", new()\n    {\n        PublicKey = \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewComputeKeypairV2(ctx, \"import\", &flexibleengine.ComputeKeypairV2Args{\n\t\t\tPublicKey: pulumi.String(\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeKeypairV2;\nimport com.pulumi.flexibleengine.ComputeKeypairV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var import_ = new ComputeKeypairV2(\"import\", ComputeKeypairV2Args.builder()\n            .publicKey(\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  import:\n    type: flexibleengine:ComputeKeypairV2\n    properties:\n      publicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nKeypairs can be imported using the `name`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/computeKeypairV2:ComputeKeypairV2 my-keypair test-keypair\n```\n\n",
      "properties": {
        "computeKeypairV2Id": {
          "type": "string",
          "description": "The resource ID which as same as keypair name.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies a unique name for the keypair.\nChanging this creates a new keypair.\n"
        },
        "privateKeyPath": {
          "type": "string",
          "description": "Specifies the path of the created private key.\nThe private key file (**.pem**) is created only after the resource is created.\nBy default, the private key file will be created in the same folder as the work directory.\nIf you need to create it in another folder, please specify the path for `private_key_path`.\nChanging this creates a new keypair.\n\n->**NOTE:** The private key file will be removed after the keypair is deleted.\n"
        },
        "publicKey": {
          "type": "string",
          "description": "Specifies a imported OpenSSH-formatted public key.\nChanging this creates a new keypair.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the keypair resource.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new keypair.\n"
        }
      },
      "type": "object",
      "required": [
        "computeKeypairV2Id",
        "name",
        "privateKeyPath",
        "publicKey",
        "region"
      ],
      "inputProperties": {
        "computeKeypairV2Id": {
          "type": "string",
          "description": "The resource ID which as same as keypair name.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies a unique name for the keypair.\nChanging this creates a new keypair.\n"
        },
        "privateKeyPath": {
          "type": "string",
          "description": "Specifies the path of the created private key.\nThe private key file (**.pem**) is created only after the resource is created.\nBy default, the private key file will be created in the same folder as the work directory.\nIf you need to create it in another folder, please specify the path for `private_key_path`.\nChanging this creates a new keypair.\n\n->**NOTE:** The private key file will be removed after the keypair is deleted.\n"
        },
        "publicKey": {
          "type": "string",
          "description": "Specifies a imported OpenSSH-formatted public key.\nChanging this creates a new keypair.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the keypair resource.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new keypair.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeKeypairV2 resources.\n",
        "properties": {
          "computeKeypairV2Id": {
            "type": "string",
            "description": "The resource ID which as same as keypair name.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies a unique name for the keypair.\nChanging this creates a new keypair.\n"
          },
          "privateKeyPath": {
            "type": "string",
            "description": "Specifies the path of the created private key.\nThe private key file (**.pem**) is created only after the resource is created.\nBy default, the private key file will be created in the same folder as the work directory.\nIf you need to create it in another folder, please specify the path for `private_key_path`.\nChanging this creates a new keypair.\n\n->**NOTE:** The private key file will be removed after the keypair is deleted.\n"
          },
          "publicKey": {
            "type": "string",
            "description": "Specifies a imported OpenSSH-formatted public key.\nChanging this creates a new keypair.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the keypair resource.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new keypair.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/computeServergroupV2:ComputeServergroupV2": {
      "description": "Manages a V2 Server Group resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test_sg = new flexibleengine.ComputeServergroupV2(\"test-sg\", {policies: [\"anti-affinity\"]});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest_sg = flexibleengine.ComputeServergroupV2(\"test-sg\", policies=[\"anti-affinity\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test_sg = new Flexibleengine.ComputeServergroupV2(\"test-sg\", new()\n    {\n        Policies = new[]\n        {\n            \"anti-affinity\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewComputeServergroupV2(ctx, \"test-sg\", &flexibleengine.ComputeServergroupV2Args{\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"anti-affinity\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ComputeServergroupV2;\nimport com.pulumi.flexibleengine.ComputeServergroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test_sg = new ComputeServergroupV2(\"test-sg\", ComputeServergroupV2Args.builder()\n            .policies(\"anti-affinity\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test-sg:\n    type: flexibleengine:ComputeServergroupV2\n    properties:\n      policies:\n        - anti-affinity\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nServer Groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/computeServergroupV2:ComputeServergroupV2 test-sg 1bc30ee9-9d5b-4c30-bdd5-7f1e663f5edf\n```\n\n",
      "properties": {
        "computeServergroupV2Id": {
          "type": "string"
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The instances that are part of this server group.\n"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the server group. Changing this creates\na new server group.\n"
        },
        "policies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The set of policies for the server group. Only **anti-affinity**\npolicy is supported right now, which menas all servers in this group must be\ndeployed on different hosts. Changing this creates a new server group.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Compute client.\nIf omitted, the `region` argument of the provider is used. Changing\nthis creates a new server group.\n"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\n"
        }
      },
      "type": "object",
      "required": [
        "computeServergroupV2Id",
        "members",
        "name",
        "region"
      ],
      "inputProperties": {
        "computeServergroupV2Id": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the server group. Changing this creates\na new server group.\n"
        },
        "policies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The set of policies for the server group. Only **anti-affinity**\npolicy is supported right now, which menas all servers in this group must be\ndeployed on different hosts. Changing this creates a new server group.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Compute client.\nIf omitted, the `region` argument of the provider is used. Changing\nthis creates a new server group.\n"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeServergroupV2 resources.\n",
        "properties": {
          "computeServergroupV2Id": {
            "type": "string"
          },
          "members": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The instances that are part of this server group.\n"
          },
          "name": {
            "type": "string",
            "description": "A unique name for the server group. Changing this creates\na new server group.\n"
          },
          "policies": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The set of policies for the server group. Only **anti-affinity**\npolicy is supported right now, which menas all servers in this group must be\ndeployed on different hosts. Changing this creates a new server group.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Compute client.\nIf omitted, the `region` argument of the provider is used. Changing\nthis creates a new server group.\n"
          },
          "valueSpecs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of additional options.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/computeVolumeAttachV2:ComputeVolumeAttachV2": {
      "description": "Attaches a Block Storage Volume to an Instance using the FlexibleEngine\nCompute (Nova) v2 API.\n\n## Example Usage\n\n### Basic attachment of a single volume to a single instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst volume1 = new flexibleengine.BlockstorageVolumeV2(\"volume1\", {size: 1});\nconst instance1 = new flexibleengine.ComputeInstanceV2(\"instance1\", {securityGroups: [\"default\"]});\nconst va1 = new flexibleengine.ComputeVolumeAttachV2(\"va1\", {\n    instanceId: instance1.computeInstanceV2Id,\n    volumeId: volume1.blockstorageVolumeV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nvolume1 = flexibleengine.BlockstorageVolumeV2(\"volume1\", size=1)\ninstance1 = flexibleengine.ComputeInstanceV2(\"instance1\", security_groups=[\"default\"])\nva1 = flexibleengine.ComputeVolumeAttachV2(\"va1\",\n    instance_id=instance1.compute_instance_v2_id,\n    volume_id=volume1.blockstorage_volume_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var volume1 = new Flexibleengine.BlockstorageVolumeV2(\"volume1\", new()\n    {\n        Size = 1,\n    });\n\n    var instance1 = new Flexibleengine.ComputeInstanceV2(\"instance1\", new()\n    {\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n    });\n\n    var va1 = new Flexibleengine.ComputeVolumeAttachV2(\"va1\", new()\n    {\n        InstanceId = instance1.ComputeInstanceV2Id,\n        VolumeId = volume1.BlockstorageVolumeV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume1, err := flexibleengine.NewBlockstorageVolumeV2(ctx, \"volume1\", &flexibleengine.BlockstorageVolumeV2Args{\n\t\t\tSize: pulumi.Float64(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := flexibleengine.NewComputeInstanceV2(ctx, \"instance1\", &flexibleengine.ComputeInstanceV2Args{\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewComputeVolumeAttachV2(ctx, \"va1\", &flexibleengine.ComputeVolumeAttachV2Args{\n\t\t\tInstanceId: instance1.ComputeInstanceV2Id,\n\t\t\tVolumeId:   volume1.BlockstorageVolumeV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2Args;\nimport com.pulumi.flexibleengine.ComputeInstanceV2;\nimport com.pulumi.flexibleengine.ComputeInstanceV2Args;\nimport com.pulumi.flexibleengine.ComputeVolumeAttachV2;\nimport com.pulumi.flexibleengine.ComputeVolumeAttachV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var volume1 = new BlockstorageVolumeV2(\"volume1\", BlockstorageVolumeV2Args.builder()\n            .size(1)\n            .build());\n\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .securityGroups(\"default\")\n            .build());\n\n        var va1 = new ComputeVolumeAttachV2(\"va1\", ComputeVolumeAttachV2Args.builder()\n            .instanceId(instance1.computeInstanceV2Id())\n            .volumeId(volume1.blockstorageVolumeV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume1:\n    type: flexibleengine:BlockstorageVolumeV2\n    properties:\n      size: 1\n  instance1:\n    type: flexibleengine:ComputeInstanceV2\n    properties:\n      securityGroups:\n        - default\n  va1:\n    type: flexibleengine:ComputeVolumeAttachV2\n    properties:\n      instanceId: ${instance1.computeInstanceV2Id}\n      volumeId: ${volume1.blockstorageVolumeV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVolume Attachments can be imported using the Instance ID and Volume ID\n\nseparated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/computeVolumeAttachV2:ComputeVolumeAttachV2 va_1 89c60255-9bd6-460c-822a-e2b959ede9d2/45670584-225f-46c3-b33e-6707b589b666\n```\n\n",
      "properties": {
        "computeVolumeAttachV2Id": {
          "type": "string"
        },
        "device": {
          "type": "string"
        },
        "instanceId": {
          "type": "string",
          "description": "The ID of the Instance to attach the Volume to.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Compute client.\nA Compute client is needed to create a volume attachment. If omitted, the\n`region` argument of the provider is used. Changing this creates a new volume attachment.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FComputeVolumeAttachV2Timeouts:ComputeVolumeAttachV2Timeouts"
        },
        "volumeId": {
          "type": "string",
          "description": "The ID of the Volume to attach to an Instance.\n"
        }
      },
      "type": "object",
      "required": [
        "computeVolumeAttachV2Id",
        "device",
        "instanceId",
        "region",
        "volumeId"
      ],
      "inputProperties": {
        "computeVolumeAttachV2Id": {
          "type": "string"
        },
        "device": {
          "type": "string"
        },
        "instanceId": {
          "type": "string",
          "description": "The ID of the Instance to attach the Volume to.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Compute client.\nA Compute client is needed to create a volume attachment. If omitted, the\n`region` argument of the provider is used. Changing this creates a new volume attachment.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FComputeVolumeAttachV2Timeouts:ComputeVolumeAttachV2Timeouts"
        },
        "volumeId": {
          "type": "string",
          "description": "The ID of the Volume to attach to an Instance.\n"
        }
      },
      "requiredInputs": [
        "instanceId",
        "volumeId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeVolumeAttachV2 resources.\n",
        "properties": {
          "computeVolumeAttachV2Id": {
            "type": "string"
          },
          "device": {
            "type": "string"
          },
          "instanceId": {
            "type": "string",
            "description": "The ID of the Instance to attach the Volume to.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Compute client.\nA Compute client is needed to create a volume attachment. If omitted, the\n`region` argument of the provider is used. Changing this creates a new volume attachment.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FComputeVolumeAttachV2Timeouts:ComputeVolumeAttachV2Timeouts"
          },
          "volumeId": {
            "type": "string",
            "description": "The ID of the Volume to attach to an Instance.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/csbsBackupPolicyV1:CsbsBackupPolicyV1": {
      "description": "Provides a FlexibleEngine Backup Policy of Resources.\n\n## Example Usage\n\n <!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject(\"name\");\nconst id = config.requireObject(\"id\");\nconst resourceName = config.requireObject(\"resourceName\");\nconst backupPolicyV1 = new flexibleengine.CsbsBackupPolicyV1(\"backupPolicyV1\", {\n    resources: [{\n        id: id,\n        type: \"OS::Nova::Server\",\n        name: resourceName,\n    }],\n    scheduledOperation: {\n        enabled: true,\n        operationType: \"backup\",\n        triggerPattern: `BEGIN:VCALENDAR\\x0d\nBEGIN:VEVENT\\x0d\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\\x0d\nEND:VEVENT\\x0d\nEND:VCALENDAR\\x0d\n`,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\nid = config.require_object(\"id\")\nresource_name = config.require_object(\"resourceName\")\nbackup_policy_v1 = flexibleengine.CsbsBackupPolicyV1(\"backupPolicyV1\",\n    resources=[{\n        \"id\": id,\n        \"type\": \"OS::Nova::Server\",\n        \"name\": resource_name,\n    }],\n    scheduled_operation={\n        \"enabled\": True,\n        \"operation_type\": \"backup\",\n        \"trigger_pattern\": \"\"\"BEGIN:VCALENDAR\\x0d\nBEGIN:VEVENT\\x0d\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\\x0d\nEND:VEVENT\\x0d\nEND:VCALENDAR\\x0d\n\"\"\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var id = config.RequireObject<dynamic>(\"id\");\n    var resourceName = config.RequireObject<dynamic>(\"resourceName\");\n    var backupPolicyV1 = new Flexibleengine.CsbsBackupPolicyV1(\"backupPolicyV1\", new()\n    {\n        Resources = new[]\n        {\n            new Flexibleengine.Inputs.CsbsBackupPolicyV1ResourceArgs\n            {\n                Id = id,\n                Type = \"OS::Nova::Server\",\n                Name = resourceName,\n            },\n        },\n        ScheduledOperation = new Flexibleengine.Inputs.CsbsBackupPolicyV1ScheduledOperationArgs\n        {\n            Enabled = true,\n            OperationType = \"backup\",\n            TriggerPattern = @\"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tid := cfg.RequireObject(\"id\")\n\t\tresourceName := cfg.RequireObject(\"resourceName\")\n\t\t_, err := flexibleengine.NewCsbsBackupPolicyV1(ctx, \"backupPolicyV1\", &flexibleengine.CsbsBackupPolicyV1Args{\n\t\t\tResources: flexibleengine.CsbsBackupPolicyV1ResourceArray{\n\t\t\t\t&flexibleengine.CsbsBackupPolicyV1ResourceArgs{\n\t\t\t\t\tId:   pulumi.Any(id),\n\t\t\t\t\tType: pulumi.String(\"OS::Nova::Server\"),\n\t\t\t\t\tName: pulumi.Any(resourceName),\n\t\t\t\t},\n\t\t\t},\n\t\t\tScheduledOperation: &flexibleengine.CsbsBackupPolicyV1ScheduledOperationArgs{\n\t\t\t\tEnabled:       pulumi.Bool(true),\n\t\t\t\tOperationType: pulumi.String(\"backup\"),\n\t\t\t\tTriggerPattern: pulumi.String(`BEGIN:VCALENDAR\nBEGIN:VEVENT\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\nEND:VEVENT\nEND:VCALENDAR\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CsbsBackupPolicyV1;\nimport com.pulumi.flexibleengine.CsbsBackupPolicyV1Args;\nimport com.pulumi.flexibleengine.inputs.CsbsBackupPolicyV1ResourceArgs;\nimport com.pulumi.flexibleengine.inputs.CsbsBackupPolicyV1ScheduledOperationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var id = config.get(\"id\");\n        final var resourceName = config.get(\"resourceName\");\n        var backupPolicyV1 = new CsbsBackupPolicyV1(\"backupPolicyV1\", CsbsBackupPolicyV1Args.builder()\n            .resources(CsbsBackupPolicyV1ResourceArgs.builder()\n                .id(id)\n                .type(\"OS::Nova::Server\")\n                .name(resourceName)\n                .build())\n            .scheduledOperation(CsbsBackupPolicyV1ScheduledOperationArgs.builder()\n                .enabled(true)\n                .operationType(\"backup\")\n                .triggerPattern(\"\"\"\nBEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n                \"\"\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\n  id:\n    type: dynamic\n  resourceName:\n    type: dynamic\nresources:\n  backupPolicyV1:\n    type: flexibleengine:CsbsBackupPolicyV1\n    properties:\n      resources:\n        - id: ${id}\n          type: OS::Nova::Server\n          name: ${resourceName}\n      scheduledOperation:\n        enabled: true\n        operationType: backup\n        triggerPattern: \"BEGIN:VCALENDAR\\r\\nBEGIN:VEVENT\\r\\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\\r\\nEND:VEVENT\\r\\nEND:VCALENDAR\\r\\n\"\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nBackup Policy can be imported using  `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/csbsBackupPolicyV1:CsbsBackupPolicyV1 backup_policy_v1 7056d636-ac60-4663-8a6c-82d3c32c1c64\n```\n\n",
      "properties": {
        "common": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "General backup policy parameters, which are blank by default.\n"
        },
        "csbsBackupPolicyV1Id": {
          "type": "string",
          "description": "Specifies Scheduling period ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Backup policy description. The value consists of 0 to 255 characters and\nmust not contain a greater-than sign (>) or less-than sign (<).\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of backup policy. The value consists of 1 to 255 characters and\ncan contain only letters, digits, underscores (_), and hyphens (-).\n"
        },
        "providerId": {
          "type": "string",
          "description": "Specifies backup provider ID. Default value is\n**fc4d5750-22e7-4798-8a46-f48f62c4c1da**\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CSBS backup policy resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CSBS backup policy resource.\n"
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCsbsBackupPolicyV1Resource:CsbsBackupPolicyV1Resource"
          },
          "description": "Backup Object.\n"
        },
        "scheduledOperation": {
          "$ref": "#/types/flexibleengine:index%2FCsbsBackupPolicyV1ScheduledOperation:CsbsBackupPolicyV1ScheduledOperation",
          "description": "Backup plan information.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of Backup Policy.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCsbsBackupPolicyV1Timeouts:CsbsBackupPolicyV1Timeouts"
        }
      },
      "type": "object",
      "required": [
        "csbsBackupPolicyV1Id",
        "name",
        "region",
        "resources",
        "scheduledOperation",
        "status"
      ],
      "inputProperties": {
        "common": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "General backup policy parameters, which are blank by default.\n"
        },
        "csbsBackupPolicyV1Id": {
          "type": "string",
          "description": "Specifies Scheduling period ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Backup policy description. The value consists of 0 to 255 characters and\nmust not contain a greater-than sign (>) or less-than sign (<).\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of backup policy. The value consists of 1 to 255 characters and\ncan contain only letters, digits, underscores (_), and hyphens (-).\n"
        },
        "providerId": {
          "type": "string",
          "description": "Specifies backup provider ID. Default value is\n**fc4d5750-22e7-4798-8a46-f48f62c4c1da**\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CSBS backup policy resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CSBS backup policy resource.\n"
        },
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCsbsBackupPolicyV1Resource:CsbsBackupPolicyV1Resource"
          },
          "description": "Backup Object.\n"
        },
        "scheduledOperation": {
          "$ref": "#/types/flexibleengine:index%2FCsbsBackupPolicyV1ScheduledOperation:CsbsBackupPolicyV1ScheduledOperation",
          "description": "Backup plan information.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCsbsBackupPolicyV1Timeouts:CsbsBackupPolicyV1Timeouts"
        }
      },
      "requiredInputs": [
        "resources",
        "scheduledOperation"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CsbsBackupPolicyV1 resources.\n",
        "properties": {
          "common": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "General backup policy parameters, which are blank by default.\n"
          },
          "csbsBackupPolicyV1Id": {
            "type": "string",
            "description": "Specifies Scheduling period ID.\n"
          },
          "description": {
            "type": "string",
            "description": "Backup policy description. The value consists of 0 to 255 characters and\nmust not contain a greater-than sign (>) or less-than sign (<).\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of backup policy. The value consists of 1 to 255 characters and\ncan contain only letters, digits, underscores (_), and hyphens (-).\n"
          },
          "providerId": {
            "type": "string",
            "description": "Specifies backup provider ID. Default value is\n**fc4d5750-22e7-4798-8a46-f48f62c4c1da**\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the CSBS backup policy resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CSBS backup policy resource.\n"
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCsbsBackupPolicyV1Resource:CsbsBackupPolicyV1Resource"
            },
            "description": "Backup Object.\n"
          },
          "scheduledOperation": {
            "$ref": "#/types/flexibleengine:index%2FCsbsBackupPolicyV1ScheduledOperation:CsbsBackupPolicyV1ScheduledOperation",
            "description": "Backup plan information.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of Backup Policy.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCsbsBackupPolicyV1Timeouts:CsbsBackupPolicyV1Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/csbsBackupV1:CsbsBackupV1": {
      "description": "Provides a FlexibleEngine Backup of Resources.\n\n## Example Usage\n\n <!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst backupName = config.requireObject(\"backupName\");\nconst resourceId = config.requireObject(\"resourceId\");\nconst backupV1 = new flexibleengine.CsbsBackupV1(\"backupV1\", {\n    backupName: backupName,\n    resourceId: resourceId,\n    resourceType: \"OS::Nova::Server\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nbackup_name = config.require_object(\"backupName\")\nresource_id = config.require_object(\"resourceId\")\nbackup_v1 = flexibleengine.CsbsBackupV1(\"backupV1\",\n    backup_name=backup_name,\n    resource_id=resource_id,\n    resource_type=\"OS::Nova::Server\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var backupName = config.RequireObject<dynamic>(\"backupName\");\n    var resourceId = config.RequireObject<dynamic>(\"resourceId\");\n    var backupV1 = new Flexibleengine.CsbsBackupV1(\"backupV1\", new()\n    {\n        BackupName = backupName,\n        ResourceId = resourceId,\n        ResourceType = \"OS::Nova::Server\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbackupName := cfg.RequireObject(\"backupName\")\n\t\tresourceId := cfg.RequireObject(\"resourceId\")\n\t\t_, err := flexibleengine.NewCsbsBackupV1(ctx, \"backupV1\", &flexibleengine.CsbsBackupV1Args{\n\t\t\tBackupName:   pulumi.Any(backupName),\n\t\t\tResourceId:   pulumi.Any(resourceId),\n\t\t\tResourceType: pulumi.String(\"OS::Nova::Server\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CsbsBackupV1;\nimport com.pulumi.flexibleengine.CsbsBackupV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var backupName = config.get(\"backupName\");\n        final var resourceId = config.get(\"resourceId\");\n        var backupV1 = new CsbsBackupV1(\"backupV1\", CsbsBackupV1Args.builder()\n            .backupName(backupName)\n            .resourceId(resourceId)\n            .resourceType(\"OS::Nova::Server\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  backupName:\n    type: dynamic\n  resourceId:\n    type: dynamic\nresources:\n  backupV1:\n    type: flexibleengine:CsbsBackupV1\n    properties:\n      backupName: ${backupName}\n      resourceId: ${resourceId}\n      resourceType: OS::Nova::Server\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nBackup can be imported using  `backup_record_id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/csbsBackupV1:CsbsBackupV1 backup_v1 7056d636-ac60-4663-8a6c-82d3c32c1c64\n```\n\n",
      "properties": {
        "backupName": {
          "type": "string",
          "description": "Name for the backup. The value consists of 1 to 255 characters and can\ncontain only letters, digits, underscores (_), and hyphens (-). Changing backup_name creates a new backup.\n"
        },
        "backupRecordId": {
          "type": "string",
          "description": "Specifies backup record ID.\n"
        },
        "csbsBackupV1Id": {
          "type": "string",
          "description": "Specifies Cinder backup ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Backup description. The value consists of 0 to 255 characters and must\nnot contain a greater-than sign (>) or less-than sign (<). Changing description creates a new backup.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CSBS backup resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CSBS backup resource.\n"
        },
        "resourceId": {
          "type": "string",
          "description": "ID of the target to which the backup is restored.\nChanging this creates a new backup.\n"
        },
        "resourceType": {
          "type": "string",
          "description": "Type of the target to which the backup is restored. The default value\nis **OS::Nova::Server** for an ECS. Changing this creates a new backup.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of backup Volume.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCsbsBackupV1Timeouts:CsbsBackupV1Timeouts"
        },
        "vmMetadatas": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCsbsBackupV1VmMetadata:CsbsBackupV1VmMetadata"
          },
          "description": "The vm_metadata object structure is documented below.\n"
        },
        "volumeBackups": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCsbsBackupV1VolumeBackup:CsbsBackupV1VolumeBackup"
          },
          "description": "The volume_backups object structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "backupName",
        "backupRecordId",
        "csbsBackupV1Id",
        "description",
        "region",
        "resourceId",
        "status",
        "vmMetadatas",
        "volumeBackups"
      ],
      "inputProperties": {
        "backupName": {
          "type": "string",
          "description": "Name for the backup. The value consists of 1 to 255 characters and can\ncontain only letters, digits, underscores (_), and hyphens (-). Changing backup_name creates a new backup.\n"
        },
        "csbsBackupV1Id": {
          "type": "string",
          "description": "Specifies Cinder backup ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Backup description. The value consists of 0 to 255 characters and must\nnot contain a greater-than sign (>) or less-than sign (<). Changing description creates a new backup.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CSBS backup resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CSBS backup resource.\n"
        },
        "resourceId": {
          "type": "string",
          "description": "ID of the target to which the backup is restored.\nChanging this creates a new backup.\n"
        },
        "resourceType": {
          "type": "string",
          "description": "Type of the target to which the backup is restored. The default value\nis **OS::Nova::Server** for an ECS. Changing this creates a new backup.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCsbsBackupV1Timeouts:CsbsBackupV1Timeouts"
        }
      },
      "requiredInputs": [
        "resourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CsbsBackupV1 resources.\n",
        "properties": {
          "backupName": {
            "type": "string",
            "description": "Name for the backup. The value consists of 1 to 255 characters and can\ncontain only letters, digits, underscores (_), and hyphens (-). Changing backup_name creates a new backup.\n"
          },
          "backupRecordId": {
            "type": "string",
            "description": "Specifies backup record ID.\n"
          },
          "csbsBackupV1Id": {
            "type": "string",
            "description": "Specifies Cinder backup ID.\n"
          },
          "description": {
            "type": "string",
            "description": "Backup description. The value consists of 0 to 255 characters and must\nnot contain a greater-than sign (>) or less-than sign (<). Changing description creates a new backup.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the CSBS backup resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CSBS backup resource.\n"
          },
          "resourceId": {
            "type": "string",
            "description": "ID of the target to which the backup is restored.\nChanging this creates a new backup.\n"
          },
          "resourceType": {
            "type": "string",
            "description": "Type of the target to which the backup is restored. The default value\nis **OS::Nova::Server** for an ECS. Changing this creates a new backup.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of backup Volume.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCsbsBackupV1Timeouts:CsbsBackupV1Timeouts"
          },
          "vmMetadatas": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCsbsBackupV1VmMetadata:CsbsBackupV1VmMetadata"
            },
            "description": "The vm_metadata object structure is documented below.\n"
          },
          "volumeBackups": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCsbsBackupV1VolumeBackup:CsbsBackupV1VolumeBackup"
            },
            "description": "The volume_backups object structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/cseMicroservice:CseMicroservice": {
      "description": "Manages a dedicated microservice resource within FlexibleEngine.\n\n> When deleting a microservice, all instances under it will also be deleted together.\n\n## Example Usage\n\n### Create a microservice in an engine with RBAC authentication disabled\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  engineConnAddr:\n    type: dynamic\n  serviceName:\n    type: dynamic\n  appName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:CseMicroservice\n    properties:\n      connectAddress: ${engineConnAddr}\n      verison: 1.0.0\n      environment: development\n      appName: ${appName}\n```\n<!--End PulumiCodeChooser -->\n\n### Create a microservice in an engine with RBAC authentication enabled\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  engineConnAddr:\n    type: dynamic\n  serviceName:\n    type: dynamic\n  appName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:CseMicroservice\n    properties:\n      connectAddress: ${engineConnAddr}\n      verison: 1.0.0\n      environment: development\n      appName: ${appName}\n      adminUser: root\n      adminPass: Flexibleengine!123\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nMicroservices can be imported using related `connect_address` and their `id`, separated by a slash (/), e.g.\n\n```sh\n$ pulumi import flexibleengine:index/cseMicroservice:CseMicroservice test https://124.70.26.32:30100/f14960ba495e03f59f85aacaaafbdef3fbff3f0d\n```\n\nIf you enabled the **RBAC** authorization, you also need to provide the account name and password, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/cseMicroservice:CseMicroservice test 'https://124.70.26.32:30100/f14960ba495e03f59f85aacaaafbdef3fbff3f0d/root/Test!123'\n```\n\nThe single quotes can help you solve the problem of special characters reporting errors on bash.\n\n",
      "properties": {
        "adminPass": {
          "type": "string",
          "description": "Specifies the account password.\nRequired if the `auth_type` of engine is **RBAC**. Changing this will create a new microservice.\nThe password format must meet the following conditions:\n+ Must be `8` to `32` characters long.\n+ A password must contain at least one digit, one uppercase letter, one lowercase letter, and one special character\n(-~!@#%^*_=+?$&()|<>{}[]).\n+ Cannot be the account name or account name spelled backwards.\n+ The password can only start with a letter.\n",
          "secret": true
        },
        "adminUser": {
          "type": "string",
          "description": "Specifies the account name. The initial account name is **root**.\nRequired if the `auth_type` of engine is **RBAC**. Changing this will create a new microservice.\n"
        },
        "appName": {
          "type": "string",
          "description": "Specifies the name of the dedicated microservice application.\nChanging this will create a new microservice.\n"
        },
        "connectAddress": {
          "type": "string",
          "description": "Specifies the connection address of service registry center for the\nspecified dedicated CSE engine. Changing this will create a new microservice.\n\n> We are only support IPv4 addresses yet.\n"
        },
        "cseMicroserviceId": {
          "type": "string",
          "description": "The microservice ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the dedicated microservice.\nThe description can contian a maximum of `256` characters.\nChanging this will create a new microservice.\n"
        },
        "environment": {
          "type": "string",
          "description": "Specifies the environment (stage) type.\nThe valid values are **development**, **testing**, **acceptance** and **production**.\nIf omitted, the microservice will be deployed in an empty environment.\nChanging this will create a new microservice.\n"
        },
        "level": {
          "type": "string",
          "description": "Specifies the microservice level.\nThe valid values are **FRONT**, **MIDDLE**, and **BACK**. Changing this will create a new microservice.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the dedicated microservice.\nThe name can contain `1` to `128` characters, only letters, digits, underscore (_), hyphens (-) and dots (.) are\nallowed. The name must start and end with a letter or digit. Changing this will create a new microservice.\n"
        },
        "status": {
          "type": "string",
          "description": "The microservice status. The values supports **UP** and **DOWN**.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the version of the dedicated microservice.\nChanging this will create a new microservice.\n"
        }
      },
      "type": "object",
      "required": [
        "appName",
        "connectAddress",
        "cseMicroserviceId",
        "name",
        "status",
        "version"
      ],
      "inputProperties": {
        "adminPass": {
          "type": "string",
          "description": "Specifies the account password.\nRequired if the `auth_type` of engine is **RBAC**. Changing this will create a new microservice.\nThe password format must meet the following conditions:\n+ Must be `8` to `32` characters long.\n+ A password must contain at least one digit, one uppercase letter, one lowercase letter, and one special character\n(-~!@#%^*_=+?$&()|<>{}[]).\n+ Cannot be the account name or account name spelled backwards.\n+ The password can only start with a letter.\n",
          "secret": true
        },
        "adminUser": {
          "type": "string",
          "description": "Specifies the account name. The initial account name is **root**.\nRequired if the `auth_type` of engine is **RBAC**. Changing this will create a new microservice.\n"
        },
        "appName": {
          "type": "string",
          "description": "Specifies the name of the dedicated microservice application.\nChanging this will create a new microservice.\n"
        },
        "connectAddress": {
          "type": "string",
          "description": "Specifies the connection address of service registry center for the\nspecified dedicated CSE engine. Changing this will create a new microservice.\n\n> We are only support IPv4 addresses yet.\n"
        },
        "cseMicroserviceId": {
          "type": "string",
          "description": "The microservice ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the dedicated microservice.\nThe description can contian a maximum of `256` characters.\nChanging this will create a new microservice.\n"
        },
        "environment": {
          "type": "string",
          "description": "Specifies the environment (stage) type.\nThe valid values are **development**, **testing**, **acceptance** and **production**.\nIf omitted, the microservice will be deployed in an empty environment.\nChanging this will create a new microservice.\n"
        },
        "level": {
          "type": "string",
          "description": "Specifies the microservice level.\nThe valid values are **FRONT**, **MIDDLE**, and **BACK**. Changing this will create a new microservice.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the dedicated microservice.\nThe name can contain `1` to `128` characters, only letters, digits, underscore (_), hyphens (-) and dots (.) are\nallowed. The name must start and end with a letter or digit. Changing this will create a new microservice.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the version of the dedicated microservice.\nChanging this will create a new microservice.\n"
        }
      },
      "requiredInputs": [
        "appName",
        "connectAddress",
        "version"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CseMicroservice resources.\n",
        "properties": {
          "adminPass": {
            "type": "string",
            "description": "Specifies the account password.\nRequired if the `auth_type` of engine is **RBAC**. Changing this will create a new microservice.\nThe password format must meet the following conditions:\n+ Must be `8` to `32` characters long.\n+ A password must contain at least one digit, one uppercase letter, one lowercase letter, and one special character\n(-~!@#%^*_=+?$&()|<>{}[]).\n+ Cannot be the account name or account name spelled backwards.\n+ The password can only start with a letter.\n",
            "secret": true
          },
          "adminUser": {
            "type": "string",
            "description": "Specifies the account name. The initial account name is **root**.\nRequired if the `auth_type` of engine is **RBAC**. Changing this will create a new microservice.\n"
          },
          "appName": {
            "type": "string",
            "description": "Specifies the name of the dedicated microservice application.\nChanging this will create a new microservice.\n"
          },
          "connectAddress": {
            "type": "string",
            "description": "Specifies the connection address of service registry center for the\nspecified dedicated CSE engine. Changing this will create a new microservice.\n\n> We are only support IPv4 addresses yet.\n"
          },
          "cseMicroserviceId": {
            "type": "string",
            "description": "The microservice ID.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the dedicated microservice.\nThe description can contian a maximum of `256` characters.\nChanging this will create a new microservice.\n"
          },
          "environment": {
            "type": "string",
            "description": "Specifies the environment (stage) type.\nThe valid values are **development**, **testing**, **acceptance** and **production**.\nIf omitted, the microservice will be deployed in an empty environment.\nChanging this will create a new microservice.\n"
          },
          "level": {
            "type": "string",
            "description": "Specifies the microservice level.\nThe valid values are **FRONT**, **MIDDLE**, and **BACK**. Changing this will create a new microservice.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the dedicated microservice.\nThe name can contain `1` to `128` characters, only letters, digits, underscore (_), hyphens (-) and dots (.) are\nallowed. The name must start and end with a letter or digit. Changing this will create a new microservice.\n"
          },
          "status": {
            "type": "string",
            "description": "The microservice status. The values supports **UP** and **DOWN**.\n"
          },
          "version": {
            "type": "string",
            "description": "Specifies the version of the dedicated microservice.\nChanging this will create a new microservice.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/cseMicroserviceEngine:CseMicroserviceEngine": {
      "description": "Manages a dedicated microservice engine resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleCse = new flexibleengine.CseMicroserviceEngine(\"exampleCse\", {\n    flavor: \"cse.s1.small\",\n    networkId: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    authType: \"NONE\",\n    availabilityZones: [\"eu-west-0a\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_cse = flexibleengine.CseMicroserviceEngine(\"exampleCse\",\n    flavor=\"cse.s1.small\",\n    network_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    auth_type=\"NONE\",\n    availability_zones=[\"eu-west-0a\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleCse = new Flexibleengine.CseMicroserviceEngine(\"exampleCse\", new()\n    {\n        Flavor = \"cse.s1.small\",\n        NetworkId = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n        AuthType = \"NONE\",\n        AvailabilityZones = new[]\n        {\n            \"eu-west-0a\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewCseMicroserviceEngine(ctx, \"exampleCse\", &flexibleengine.CseMicroserviceEngineArgs{\n\t\t\tFlavor:    pulumi.String(\"cse.s1.small\"),\n\t\t\tNetworkId: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\tAuthType:  pulumi.String(\"NONE\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-west-0a\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CseMicroserviceEngine;\nimport com.pulumi.flexibleengine.CseMicroserviceEngineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleCse = new CseMicroserviceEngine(\"exampleCse\", CseMicroserviceEngineArgs.builder()\n            .flavor(\"cse.s1.small\")\n            .networkId(flexibleengine_vpc_subnet_v1.example_subnet().id())\n            .authType(\"NONE\")\n            .availabilityZones(\"eu-west-0a\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleCse:\n    type: flexibleengine:CseMicroserviceEngine\n    properties:\n      flavor: cse.s1.small\n      networkId: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n      authType: NONE\n      availabilityZones:\n        - eu-west-0a\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nEngines can be imported using their `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/cseMicroserviceEngine:CseMicroserviceEngine test eddc5d42-f9d5-4f8e-984b-d6f3e088561c\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes are `admin_pass` and `extend_params`.\n\nIt is generally recommended running `pulumi preview` after importing an instance.\n\nYou can then decide if changes should be applied to the instance, or the resource definition should be updated to\n\nalign with the instance. Also you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_cse_microservice_engine\" \"test\" {\n\n  ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      admin_pass,\n\n      extend_params,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "adminPass": {
          "type": "string",
          "description": "Specifies the account password. The corresponding account name is **root**.\nRequired if `auth_type` is **RBAC**. Changing this will create a new engine.\nThe password format must meet the following conditions:\n+ Must be `8` to `32` characters long.\n+ A password must contain at least one digit, one uppercase letter, one lowercase letter, and one special character\n(-~!@#%^*_=+?$&()|<>{}[]).\n+ Cannot be the account name or account name spelled backwards.\n+ The password can only start with a letter.\n",
          "secret": true
        },
        "authType": {
          "type": "string",
          "description": "Specifies the authentication method for the dedicated microservice engine.\nChanging this will create a new engine.\n+ **RBAC**: Enable security authentication.\nSecurity authentication applies to the scenario where multiple users use the same engine.\nAfter security authentication is enabled, all users who use the engine can log in using the account and password.\nYou can assign the account and role in the System Management.\n+ **NONE**: Disable security authentication.\nAfter security authentication is disabled, all users who use the engine can use the engine without using the account\nand password, and have the same operation permissions on all services.\n"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of availability zone.\nChanging this will create a new engine.\n"
        },
        "configCenterAddresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCseMicroserviceEngineConfigCenterAddress:CseMicroserviceEngineConfigCenterAddress"
          },
          "description": "The address of config center.\nThe object structure is documented below.\n"
        },
        "cseMicroserviceEngineId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the dedicated microservice engine.\nThe description can contian a maximum of `255` characters.\nChanging this will create a new engine.\n"
        },
        "eipId": {
          "type": "string",
          "description": "Specifies the EIP ID to which the dedicated microservice engine assocated.\nChanging this will create a new engine.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the cse microservice\nengine resource. Changing this will create a new resource.\n"
        },
        "extendParams": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the additional parameters for the dedicated microservice engine.\nChanging this will create a new engine.\n\n> After the engine is created, the system will automatically add a series of additional parameters to it.\nThe specific parameters are subject to the state of the dedicated microservice engine.\nThis parameter will be affected by these parameters and will appear when `pulumi preview` or `pulumi up`.\nIf it is inconsistent with the script configuration, it can be ignored by `ignore_changes` in non-change scenarios.\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the flavor of the dedicated microservice engine.\nChanging this will create a new engine.\n"
        },
        "instanceLimit": {
          "type": "number",
          "description": "The maximum number of the microservice instance resources.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the dedicated microservice engine.\nThe name can contain `3` to `24` characters, only letters, digits and hyphens (-) are allowed.\nThe name must start with a letter and cannot end with a hyphen (-).\nChanging this will create a new engine.\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the ID of VPC the subnet to which the dedicated microservice\nengine belongs. Changing this will create a new engine.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the dedicated microservice engine.\nIf omitted, the provider-level region will be used. Changing this will create a new engine.\n"
        },
        "serviceLimit": {
          "type": "number",
          "description": "The maximum number of the microservice resources.\n"
        },
        "serviceRegistryAddresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCseMicroserviceEngineServiceRegistryAddress:CseMicroserviceEngineServiceRegistryAddress"
          },
          "description": "The connection address of service center.\nThe object structure is documented below.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCseMicroserviceEngineTimeouts:CseMicroserviceEngineTimeouts"
        },
        "version": {
          "type": "string",
          "description": "Specifies the version of the dedicated microservice engine. The value can be:\n**CSE**. Defaults to: **CSE**. Changing this will create a new engine.\n"
        }
      },
      "type": "object",
      "required": [
        "authType",
        "availabilityZones",
        "configCenterAddresses",
        "cseMicroserviceEngineId",
        "extendParams",
        "flavor",
        "instanceLimit",
        "name",
        "networkId",
        "region",
        "serviceLimit",
        "serviceRegistryAddresses"
      ],
      "inputProperties": {
        "adminPass": {
          "type": "string",
          "description": "Specifies the account password. The corresponding account name is **root**.\nRequired if `auth_type` is **RBAC**. Changing this will create a new engine.\nThe password format must meet the following conditions:\n+ Must be `8` to `32` characters long.\n+ A password must contain at least one digit, one uppercase letter, one lowercase letter, and one special character\n(-~!@#%^*_=+?$&()|<>{}[]).\n+ Cannot be the account name or account name spelled backwards.\n+ The password can only start with a letter.\n",
          "secret": true
        },
        "authType": {
          "type": "string",
          "description": "Specifies the authentication method for the dedicated microservice engine.\nChanging this will create a new engine.\n+ **RBAC**: Enable security authentication.\nSecurity authentication applies to the scenario where multiple users use the same engine.\nAfter security authentication is enabled, all users who use the engine can log in using the account and password.\nYou can assign the account and role in the System Management.\n+ **NONE**: Disable security authentication.\nAfter security authentication is disabled, all users who use the engine can use the engine without using the account\nand password, and have the same operation permissions on all services.\n"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of availability zone.\nChanging this will create a new engine.\n"
        },
        "cseMicroserviceEngineId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the dedicated microservice engine.\nThe description can contian a maximum of `255` characters.\nChanging this will create a new engine.\n"
        },
        "eipId": {
          "type": "string",
          "description": "Specifies the EIP ID to which the dedicated microservice engine assocated.\nChanging this will create a new engine.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the cse microservice\nengine resource. Changing this will create a new resource.\n"
        },
        "extendParams": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the additional parameters for the dedicated microservice engine.\nChanging this will create a new engine.\n\n> After the engine is created, the system will automatically add a series of additional parameters to it.\nThe specific parameters are subject to the state of the dedicated microservice engine.\nThis parameter will be affected by these parameters and will appear when `pulumi preview` or `pulumi up`.\nIf it is inconsistent with the script configuration, it can be ignored by `ignore_changes` in non-change scenarios.\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the flavor of the dedicated microservice engine.\nChanging this will create a new engine.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the dedicated microservice engine.\nThe name can contain `3` to `24` characters, only letters, digits and hyphens (-) are allowed.\nThe name must start with a letter and cannot end with a hyphen (-).\nChanging this will create a new engine.\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the ID of VPC the subnet to which the dedicated microservice\nengine belongs. Changing this will create a new engine.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the dedicated microservice engine.\nIf omitted, the provider-level region will be used. Changing this will create a new engine.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCseMicroserviceEngineTimeouts:CseMicroserviceEngineTimeouts"
        },
        "version": {
          "type": "string",
          "description": "Specifies the version of the dedicated microservice engine. The value can be:\n**CSE**. Defaults to: **CSE**. Changing this will create a new engine.\n"
        }
      },
      "requiredInputs": [
        "authType",
        "availabilityZones",
        "flavor",
        "networkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CseMicroserviceEngine resources.\n",
        "properties": {
          "adminPass": {
            "type": "string",
            "description": "Specifies the account password. The corresponding account name is **root**.\nRequired if `auth_type` is **RBAC**. Changing this will create a new engine.\nThe password format must meet the following conditions:\n+ Must be `8` to `32` characters long.\n+ A password must contain at least one digit, one uppercase letter, one lowercase letter, and one special character\n(-~!@#%^*_=+?$&()|<>{}[]).\n+ Cannot be the account name or account name spelled backwards.\n+ The password can only start with a letter.\n",
            "secret": true
          },
          "authType": {
            "type": "string",
            "description": "Specifies the authentication method for the dedicated microservice engine.\nChanging this will create a new engine.\n+ **RBAC**: Enable security authentication.\nSecurity authentication applies to the scenario where multiple users use the same engine.\nAfter security authentication is enabled, all users who use the engine can log in using the account and password.\nYou can assign the account and role in the System Management.\n+ **NONE**: Disable security authentication.\nAfter security authentication is disabled, all users who use the engine can use the engine without using the account\nand password, and have the same operation permissions on all services.\n"
          },
          "availabilityZones": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the list of availability zone.\nChanging this will create a new engine.\n"
          },
          "configCenterAddresses": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCseMicroserviceEngineConfigCenterAddress:CseMicroserviceEngineConfigCenterAddress"
            },
            "description": "The address of config center.\nThe object structure is documented below.\n"
          },
          "cseMicroserviceEngineId": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the dedicated microservice engine.\nThe description can contian a maximum of `255` characters.\nChanging this will create a new engine.\n"
          },
          "eipId": {
            "type": "string",
            "description": "Specifies the EIP ID to which the dedicated microservice engine assocated.\nChanging this will create a new engine.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id of the cse microservice\nengine resource. Changing this will create a new resource.\n"
          },
          "extendParams": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the additional parameters for the dedicated microservice engine.\nChanging this will create a new engine.\n\n> After the engine is created, the system will automatically add a series of additional parameters to it.\nThe specific parameters are subject to the state of the dedicated microservice engine.\nThis parameter will be affected by these parameters and will appear when `pulumi preview` or `pulumi up`.\nIf it is inconsistent with the script configuration, it can be ignored by `ignore_changes` in non-change scenarios.\n"
          },
          "flavor": {
            "type": "string",
            "description": "Specifies the flavor of the dedicated microservice engine.\nChanging this will create a new engine.\n"
          },
          "instanceLimit": {
            "type": "number",
            "description": "The maximum number of the microservice instance resources.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the dedicated microservice engine.\nThe name can contain `3` to `24` characters, only letters, digits and hyphens (-) are allowed.\nThe name must start with a letter and cannot end with a hyphen (-).\nChanging this will create a new engine.\n"
          },
          "networkId": {
            "type": "string",
            "description": "Specifies the ID of VPC the subnet to which the dedicated microservice\nengine belongs. Changing this will create a new engine.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the dedicated microservice engine.\nIf omitted, the provider-level region will be used. Changing this will create a new engine.\n"
          },
          "serviceLimit": {
            "type": "number",
            "description": "The maximum number of the microservice resources.\n"
          },
          "serviceRegistryAddresses": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCseMicroserviceEngineServiceRegistryAddress:CseMicroserviceEngineServiceRegistryAddress"
            },
            "description": "The connection address of service center.\nThe object structure is documented below.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCseMicroserviceEngineTimeouts:CseMicroserviceEngineTimeouts"
          },
          "version": {
            "type": "string",
            "description": "Specifies the version of the dedicated microservice engine. The value can be:\n**CSE**. Defaults to: **CSE**. Changing this will create a new engine.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/cseMicroserviceInstance:CseMicroserviceInstance": {
      "description": "Manages a dedicated microservice instance resource within FlexibleEngine.\n\n## Example Usage\n\n### Create a microservice instance under a microservice with RBAC authentication of engine disabled\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  engineConnAddr:\n    type: dynamic\n  microserviceId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:CseMicroserviceInstance\n    properties:\n      connectAddress: ${engineConnAddr}\n      microserviceId: ${microserviceId}\n      hostName: localhost\n      endpoints:\n        - grpc://127.0.1.132:9980\n        - rest://127.0.0.111:8081\n      verison: 1.0.0\n      properties:\n        _TAGS: A, B\n        attr1: a\n        nodeIP: 127.0.0.1\n      healthCheck:\n        mode: push\n        interval: 30\n        maxRetries: 3\n      dataCenter:\n        name: dc\n        region: ${var.region_name}\n        availabilityZone: ${var.az_name}\n```\n<!--End PulumiCodeChooser -->\n\n### Create a microservice instance under a microservice with RBAC authentication of engine enabled\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  engineConnAddr:\n    type: dynamic\n  microserviceId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:CseMicroserviceInstance\n    properties:\n      connectAddress: ${engineConnAddr}\n      microserviceId: ${microserviceId}\n      hostName: localhost\n      endpoints:\n        - grpc://127.0.1.132:9980\n        - rest://127.0.0.111:8081\n      verison: 1.0.0\n      properties:\n        _TAGS: A, B\n        attr1: a\n        nodeIP: 127.0.0.1\n      healthCheck:\n        mode: push\n        interval: 30\n        maxRetries: 3\n      dataCenter:\n        name: dc\n        region: ${var.region_name}\n        availabilityZone: ${var.az_name}\n      adminUser: root\n      adminPass: Flexibleengine!123\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nMicroservices can be imported using related `connect_address`, `microservice_id` and their `id`, separated by a\n\nslash (/), e.g.\n\n```sh\n$ pulumi import flexibleengine:index/cseMicroserviceInstance:CseMicroserviceInstance test https://124.70.26.32:30100/f14960ba495e03f59f85aacaaafbdef3fbff3f0d/336e7428dd9411eca913fa163e7364b7\n```\n\nIf you enabled the **RBAC** authorization, you also need to provide the account name and password, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/cseMicroserviceInstance:CseMicroserviceInstance test 'https://124.70.26.32:30100/f14960ba495e03f59f85aacaaafbdef3fbff3f0d/336e7428dd9411eca913fa163e7364b7/root/Test!123'\n```\n\nThe single quotes can help you solve the problem of special characters reporting errors on bash.\n\n",
      "properties": {
        "adminPass": {
          "type": "string",
          "description": "Specifies the account password.\nRequired if the `auth_type` of engine is **RBAC**. Changing this will create a new microservice instance.\nThe password format must meet the following conditions:\n+ Must be `8` to `32` characters long.\n+ A password must contain at least one digit, one uppercase letter, one lowercase letter, and one special character\n(-~!@#%^*_=+?$&()|<>{}[]).\n+ Cannot be the account name or account name spelled backwards.\n+ The password can only start with a letter.\n\n<a name=\"microservice_instance_health_check\"></a>\nThe `health_check` block supports:\n",
          "secret": true
        },
        "adminUser": {
          "type": "string",
          "description": "Specifies the account name. The initial account name is **root**.\nRequired if the `auth_type` of engine is **RBAC**. Changing this will create a new microservice instance.\n"
        },
        "connectAddress": {
          "type": "string",
          "description": "Specifies the connection address of service registry center for the\nspecified dedicated CSE engine. Changing this will create a new microservice instance.\n\n> We are only support IPv4 addresses yet.\n"
        },
        "cseMicroserviceInstanceId": {
          "type": "string",
          "description": "The microservice instance ID.\n"
        },
        "dataCenter": {
          "$ref": "#/types/flexibleengine:index%2FCseMicroserviceInstanceDataCenter:CseMicroserviceInstanceDataCenter",
          "description": "Specifies the data center configuration.\nThe object structure is documented below.\nChanging this will create a new microservice instance.\n"
        },
        "endpoints": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access addresses information.\nChanging this will create a new microservice instance.\n"
        },
        "healthCheck": {
          "$ref": "#/types/flexibleengine:index%2FCseMicroserviceInstanceHealthCheck:CseMicroserviceInstanceHealthCheck",
          "description": "Specifies the health check configuration.\nThe object structure is documented below.\nChanging this will create a new microservice instance.\n"
        },
        "hostName": {
          "type": "string",
          "description": "Specifies the host name, such as `localhost`.\nChanging this will create a new microservice instance.\n"
        },
        "microserviceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated microservice to which the instance\nbelongs. Changing this will create a new microservice instance.\n"
        },
        "properties": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the extended attributes.\nChanging this will create a new microservice instance.\n"
        },
        "status": {
          "type": "string",
          "description": "The microservice instance status. The values supports **UP**, **DOWN**, **STARTING** and **OUTOFSERVICE**.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the verison of the dedicated microservice instance.\nChanging this will create a new microservice instance.\n"
        }
      },
      "type": "object",
      "required": [
        "connectAddress",
        "cseMicroserviceInstanceId",
        "endpoints",
        "hostName",
        "microserviceId",
        "properties",
        "status",
        "version"
      ],
      "inputProperties": {
        "adminPass": {
          "type": "string",
          "description": "Specifies the account password.\nRequired if the `auth_type` of engine is **RBAC**. Changing this will create a new microservice instance.\nThe password format must meet the following conditions:\n+ Must be `8` to `32` characters long.\n+ A password must contain at least one digit, one uppercase letter, one lowercase letter, and one special character\n(-~!@#%^*_=+?$&()|<>{}[]).\n+ Cannot be the account name or account name spelled backwards.\n+ The password can only start with a letter.\n\n<a name=\"microservice_instance_health_check\"></a>\nThe `health_check` block supports:\n",
          "secret": true
        },
        "adminUser": {
          "type": "string",
          "description": "Specifies the account name. The initial account name is **root**.\nRequired if the `auth_type` of engine is **RBAC**. Changing this will create a new microservice instance.\n"
        },
        "connectAddress": {
          "type": "string",
          "description": "Specifies the connection address of service registry center for the\nspecified dedicated CSE engine. Changing this will create a new microservice instance.\n\n> We are only support IPv4 addresses yet.\n"
        },
        "cseMicroserviceInstanceId": {
          "type": "string",
          "description": "The microservice instance ID.\n"
        },
        "dataCenter": {
          "$ref": "#/types/flexibleengine:index%2FCseMicroserviceInstanceDataCenter:CseMicroserviceInstanceDataCenter",
          "description": "Specifies the data center configuration.\nThe object structure is documented below.\nChanging this will create a new microservice instance.\n"
        },
        "endpoints": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the access addresses information.\nChanging this will create a new microservice instance.\n"
        },
        "healthCheck": {
          "$ref": "#/types/flexibleengine:index%2FCseMicroserviceInstanceHealthCheck:CseMicroserviceInstanceHealthCheck",
          "description": "Specifies the health check configuration.\nThe object structure is documented below.\nChanging this will create a new microservice instance.\n"
        },
        "hostName": {
          "type": "string",
          "description": "Specifies the host name, such as `localhost`.\nChanging this will create a new microservice instance.\n"
        },
        "microserviceId": {
          "type": "string",
          "description": "Specifies the ID of the dedicated microservice to which the instance\nbelongs. Changing this will create a new microservice instance.\n"
        },
        "properties": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the extended attributes.\nChanging this will create a new microservice instance.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the verison of the dedicated microservice instance.\nChanging this will create a new microservice instance.\n"
        }
      },
      "requiredInputs": [
        "connectAddress",
        "endpoints",
        "hostName",
        "microserviceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CseMicroserviceInstance resources.\n",
        "properties": {
          "adminPass": {
            "type": "string",
            "description": "Specifies the account password.\nRequired if the `auth_type` of engine is **RBAC**. Changing this will create a new microservice instance.\nThe password format must meet the following conditions:\n+ Must be `8` to `32` characters long.\n+ A password must contain at least one digit, one uppercase letter, one lowercase letter, and one special character\n(-~!@#%^*_=+?$&()|<>{}[]).\n+ Cannot be the account name or account name spelled backwards.\n+ The password can only start with a letter.\n\n<a name=\"microservice_instance_health_check\"></a>\nThe `health_check` block supports:\n",
            "secret": true
          },
          "adminUser": {
            "type": "string",
            "description": "Specifies the account name. The initial account name is **root**.\nRequired if the `auth_type` of engine is **RBAC**. Changing this will create a new microservice instance.\n"
          },
          "connectAddress": {
            "type": "string",
            "description": "Specifies the connection address of service registry center for the\nspecified dedicated CSE engine. Changing this will create a new microservice instance.\n\n> We are only support IPv4 addresses yet.\n"
          },
          "cseMicroserviceInstanceId": {
            "type": "string",
            "description": "The microservice instance ID.\n"
          },
          "dataCenter": {
            "$ref": "#/types/flexibleengine:index%2FCseMicroserviceInstanceDataCenter:CseMicroserviceInstanceDataCenter",
            "description": "Specifies the data center configuration.\nThe object structure is documented below.\nChanging this will create a new microservice instance.\n"
          },
          "endpoints": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the access addresses information.\nChanging this will create a new microservice instance.\n"
          },
          "healthCheck": {
            "$ref": "#/types/flexibleengine:index%2FCseMicroserviceInstanceHealthCheck:CseMicroserviceInstanceHealthCheck",
            "description": "Specifies the health check configuration.\nThe object structure is documented below.\nChanging this will create a new microservice instance.\n"
          },
          "hostName": {
            "type": "string",
            "description": "Specifies the host name, such as `localhost`.\nChanging this will create a new microservice instance.\n"
          },
          "microserviceId": {
            "type": "string",
            "description": "Specifies the ID of the dedicated microservice to which the instance\nbelongs. Changing this will create a new microservice instance.\n"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the extended attributes.\nChanging this will create a new microservice instance.\n"
          },
          "status": {
            "type": "string",
            "description": "The microservice instance status. The values supports **UP**, **DOWN**, **STARTING** and **OUTOFSERVICE**.\n"
          },
          "version": {
            "type": "string",
            "description": "Specifies the verison of the dedicated microservice instance.\nChanging this will create a new microservice instance.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/cssClusterV1:CssClusterV1": {
      "description": "CSS cluster management\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst exampleSecgroup = new flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", {description: \"My neutron security group\"});\nconst cluster = new flexibleengine.CssClusterV1(\"cluster\", {\n    engineVersion: \"7.9.3\",\n    nodeNumber: 1,\n    nodeConfig: {\n        availabilityZone: \"eu-west-0a\",\n        flavor: \"ess.spec-4u16g\",\n        networkInfo: {\n            vpcId: exampleVpc.vpcV1Id,\n            subnetId: exampleSubnet.vpcSubnetV1Id,\n            securityGroupId: exampleSecgroup.networkingSecgroupV2Id,\n        },\n        volume: {\n            volumeType: \"COMMON\",\n            size: 40,\n        },\n    },\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nexample_secgroup = flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", description=\"My neutron security group\")\ncluster = flexibleengine.CssClusterV1(\"cluster\",\n    engine_version=\"7.9.3\",\n    node_number=1,\n    node_config={\n        \"availability_zone\": \"eu-west-0a\",\n        \"flavor\": \"ess.spec-4u16g\",\n        \"network_info\": {\n            \"vpc_id\": example_vpc.vpc_v1_id,\n            \"subnet_id\": example_subnet.vpc_subnet_v1_id,\n            \"security_group_id\": example_secgroup.networking_secgroup_v2_id,\n        },\n        \"volume\": {\n            \"volume_type\": \"COMMON\",\n            \"size\": 40,\n        },\n    },\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var exampleSecgroup = new Flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", new()\n    {\n        Description = \"My neutron security group\",\n    });\n\n    var cluster = new Flexibleengine.CssClusterV1(\"cluster\", new()\n    {\n        EngineVersion = \"7.9.3\",\n        NodeNumber = 1,\n        NodeConfig = new Flexibleengine.Inputs.CssClusterV1NodeConfigArgs\n        {\n            AvailabilityZone = \"eu-west-0a\",\n            Flavor = \"ess.spec-4u16g\",\n            NetworkInfo = new Flexibleengine.Inputs.CssClusterV1NodeConfigNetworkInfoArgs\n            {\n                VpcId = exampleVpc.VpcV1Id,\n                SubnetId = exampleSubnet.VpcSubnetV1Id,\n                SecurityGroupId = exampleSecgroup.NetworkingSecgroupV2Id,\n            },\n            Volume = new Flexibleengine.Inputs.CssClusterV1NodeConfigVolumeArgs\n            {\n                VolumeType = \"COMMON\",\n                Size = 40,\n            },\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecgroup, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"exampleSecgroup\", &flexibleengine.NetworkingSecgroupV2Args{\n\t\t\tDescription: pulumi.String(\"My neutron security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewCssClusterV1(ctx, \"cluster\", &flexibleengine.CssClusterV1Args{\n\t\t\tEngineVersion: pulumi.String(\"7.9.3\"),\n\t\t\tNodeNumber:    pulumi.Float64(1),\n\t\t\tNodeConfig: &flexibleengine.CssClusterV1NodeConfigArgs{\n\t\t\t\tAvailabilityZone: pulumi.String(\"eu-west-0a\"),\n\t\t\t\tFlavor:           pulumi.String(\"ess.spec-4u16g\"),\n\t\t\t\tNetworkInfo: &flexibleengine.CssClusterV1NodeConfigNetworkInfoArgs{\n\t\t\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\t\t\tSubnetId:        exampleSubnet.VpcSubnetV1Id,\n\t\t\t\t\tSecurityGroupId: exampleSecgroup.NetworkingSecgroupV2Id,\n\t\t\t\t},\n\t\t\t\tVolume: &flexibleengine.CssClusterV1NodeConfigVolumeArgs{\n\t\t\t\t\tVolumeType: pulumi.String(\"COMMON\"),\n\t\t\t\t\tSize:       pulumi.Float64(40),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2Args;\nimport com.pulumi.flexibleengine.CssClusterV1;\nimport com.pulumi.flexibleengine.CssClusterV1Args;\nimport com.pulumi.flexibleengine.inputs.CssClusterV1NodeConfigArgs;\nimport com.pulumi.flexibleengine.inputs.CssClusterV1NodeConfigNetworkInfoArgs;\nimport com.pulumi.flexibleengine.inputs.CssClusterV1NodeConfigVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var exampleSecgroup = new NetworkingSecgroupV2(\"exampleSecgroup\", NetworkingSecgroupV2Args.builder()\n            .description(\"My neutron security group\")\n            .build());\n\n        var cluster = new CssClusterV1(\"cluster\", CssClusterV1Args.builder()\n            .engineVersion(\"7.9.3\")\n            .nodeNumber(1)\n            .nodeConfig(CssClusterV1NodeConfigArgs.builder()\n                .availabilityZone(\"eu-west-0a\")\n                .flavor(\"ess.spec-4u16g\")\n                .networkInfo(CssClusterV1NodeConfigNetworkInfoArgs.builder()\n                    .vpcId(exampleVpc.vpcV1Id())\n                    .subnetId(exampleSubnet.vpcSubnetV1Id())\n                    .securityGroupId(exampleSecgroup.networkingSecgroupV2Id())\n                    .build())\n                .volume(CssClusterV1NodeConfigVolumeArgs.builder()\n                    .volumeType(\"COMMON\")\n                    .size(40)\n                    .build())\n                .build())\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  exampleSecgroup:\n    type: flexibleengine:NetworkingSecgroupV2\n    properties:\n      description: My neutron security group\n  cluster:\n    type: flexibleengine:CssClusterV1\n    properties:\n      engineVersion: 7.9.3\n      nodeNumber: 1\n      nodeConfig:\n        availabilityZone: eu-west-0a\n        flavor: ess.spec-4u16g\n        networkInfo:\n          vpcId: ${exampleVpc.vpcV1Id}\n          subnetId: ${exampleSubnet.vpcSubnetV1Id}\n          securityGroupId: ${exampleSecgroup.networkingSecgroupV2Id}\n        volume:\n          volumeType: COMMON\n          size: 40\n      tags:\n        foo: bar\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "backupStrategy": {
          "$ref": "#/types/flexibleengine:index%2FCssClusterV1BackupStrategy:CssClusterV1BackupStrategy",
          "description": "Specifies the advanced backup policy.\nbackup_strategy object structure is documented below.\n\n> **NOTE:** `backup_strategy` requires the authority of *OBS Bucket* and *IAM Agency*.\n"
        },
        "created": {
          "type": "string",
          "description": "Time when a cluster is created. The format is ISO8601: CCYY-MM-DDThh:mm:ss.\n"
        },
        "cssClusterV1Id": {
          "type": "string",
          "description": "Instance ID.\n"
        },
        "endpoint": {
          "type": "string",
          "description": "Indicates the IP address and port number.\n"
        },
        "engineType": {
          "type": "string",
          "description": "Specifies the engine type. The default value is `elasticsearch`.\nCurrently, the value can only be \"elasticsearch\". Changing this parameter will create a new resource.\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Specifies the engine version. For example, `7.6.2` and `7.9.3`.\nFor details, see CSS [Supported Cluster Versions](https://docs.prod-cloud-ocb.orange-business.com/api/css/css_03_0056.html).\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the cluster name. It contains 4 to 32 characters. Only letters,\ndigits,  hyphens (-), and underscores (_) are allowed. The value must start with a letter.\nChanging this parameter will create a new resource.\n"
        },
        "nodeConfig": {
          "$ref": "#/types/flexibleengine:index%2FCssClusterV1NodeConfig:CssClusterV1NodeConfig",
          "description": "Specifies the node configuration. node_config\nobject structure is documented below. Changing this parameter will create a new resource.\n"
        },
        "nodeNumber": {
          "type": "number",
          "description": "Specifies the number of cluster instances. The value range is 1 to 32. Defaults to 1.\n"
        },
        "nodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FCssClusterV1Node:CssClusterV1Node"
          },
          "description": "List of node objects. nodes object structure is documented below.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the password of the cluster administrator admin in security mode.\nThis parameter is mandatory only when security_mode is set to true. Changing this parameter will create a new resource.\nThe administrator password must meet the following requirements:\n- The password can contain 8 to 32 characters.\n- The password must contain at least 3 of the following character types: uppercase letters, lowercase letters,\ndigits, and special characters (~!@#$%^&*()-_=+\\\\|[{}];:,<.>/?).\n",
          "secret": true
        },
        "securityMode": {
          "type": "boolean",
          "description": "Whether to enable communication encryption and security authentication.\nAvailable values include *true* and *false*. security_mode is disabled by default.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the cluster.\n\n<a name=\"css_node_config_object\"></a>\nThe `node_config` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCssClusterV1Timeouts:CssClusterV1Timeouts"
        }
      },
      "type": "object",
      "required": [
        "created",
        "cssClusterV1Id",
        "endpoint",
        "engineVersion",
        "name",
        "nodeConfig",
        "nodes"
      ],
      "inputProperties": {
        "backupStrategy": {
          "$ref": "#/types/flexibleengine:index%2FCssClusterV1BackupStrategy:CssClusterV1BackupStrategy",
          "description": "Specifies the advanced backup policy.\nbackup_strategy object structure is documented below.\n\n> **NOTE:** `backup_strategy` requires the authority of *OBS Bucket* and *IAM Agency*.\n"
        },
        "cssClusterV1Id": {
          "type": "string",
          "description": "Instance ID.\n"
        },
        "engineType": {
          "type": "string",
          "description": "Specifies the engine type. The default value is `elasticsearch`.\nCurrently, the value can only be \"elasticsearch\". Changing this parameter will create a new resource.\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Specifies the engine version. For example, `7.6.2` and `7.9.3`.\nFor details, see CSS [Supported Cluster Versions](https://docs.prod-cloud-ocb.orange-business.com/api/css/css_03_0056.html).\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the cluster name. It contains 4 to 32 characters. Only letters,\ndigits,  hyphens (-), and underscores (_) are allowed. The value must start with a letter.\nChanging this parameter will create a new resource.\n"
        },
        "nodeConfig": {
          "$ref": "#/types/flexibleengine:index%2FCssClusterV1NodeConfig:CssClusterV1NodeConfig",
          "description": "Specifies the node configuration. node_config\nobject structure is documented below. Changing this parameter will create a new resource.\n"
        },
        "nodeNumber": {
          "type": "number",
          "description": "Specifies the number of cluster instances. The value range is 1 to 32. Defaults to 1.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the password of the cluster administrator admin in security mode.\nThis parameter is mandatory only when security_mode is set to true. Changing this parameter will create a new resource.\nThe administrator password must meet the following requirements:\n- The password can contain 8 to 32 characters.\n- The password must contain at least 3 of the following character types: uppercase letters, lowercase letters,\ndigits, and special characters (~!@#$%^&*()-_=+\\\\|[{}];:,<.>/?).\n",
          "secret": true
        },
        "securityMode": {
          "type": "boolean",
          "description": "Whether to enable communication encryption and security authentication.\nAvailable values include *true* and *false*. security_mode is disabled by default.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the cluster.\n\n<a name=\"css_node_config_object\"></a>\nThe `node_config` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCssClusterV1Timeouts:CssClusterV1Timeouts"
        }
      },
      "requiredInputs": [
        "engineVersion",
        "nodeConfig"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CssClusterV1 resources.\n",
        "properties": {
          "backupStrategy": {
            "$ref": "#/types/flexibleengine:index%2FCssClusterV1BackupStrategy:CssClusterV1BackupStrategy",
            "description": "Specifies the advanced backup policy.\nbackup_strategy object structure is documented below.\n\n> **NOTE:** `backup_strategy` requires the authority of *OBS Bucket* and *IAM Agency*.\n"
          },
          "created": {
            "type": "string",
            "description": "Time when a cluster is created. The format is ISO8601: CCYY-MM-DDThh:mm:ss.\n"
          },
          "cssClusterV1Id": {
            "type": "string",
            "description": "Instance ID.\n"
          },
          "endpoint": {
            "type": "string",
            "description": "Indicates the IP address and port number.\n"
          },
          "engineType": {
            "type": "string",
            "description": "Specifies the engine type. The default value is `elasticsearch`.\nCurrently, the value can only be \"elasticsearch\". Changing this parameter will create a new resource.\n"
          },
          "engineVersion": {
            "type": "string",
            "description": "Specifies the engine version. For example, `7.6.2` and `7.9.3`.\nFor details, see CSS [Supported Cluster Versions](https://docs.prod-cloud-ocb.orange-business.com/api/css/css_03_0056.html).\nChanging this parameter will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the cluster name. It contains 4 to 32 characters. Only letters,\ndigits,  hyphens (-), and underscores (_) are allowed. The value must start with a letter.\nChanging this parameter will create a new resource.\n"
          },
          "nodeConfig": {
            "$ref": "#/types/flexibleengine:index%2FCssClusterV1NodeConfig:CssClusterV1NodeConfig",
            "description": "Specifies the node configuration. node_config\nobject structure is documented below. Changing this parameter will create a new resource.\n"
          },
          "nodeNumber": {
            "type": "number",
            "description": "Specifies the number of cluster instances. The value range is 1 to 32. Defaults to 1.\n"
          },
          "nodes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FCssClusterV1Node:CssClusterV1Node"
            },
            "description": "List of node objects. nodes object structure is documented below.\n"
          },
          "password": {
            "type": "string",
            "description": "Specifies the password of the cluster administrator admin in security mode.\nThis parameter is mandatory only when security_mode is set to true. Changing this parameter will create a new resource.\nThe administrator password must meet the following requirements:\n- The password can contain 8 to 32 characters.\n- The password must contain at least 3 of the following character types: uppercase letters, lowercase letters,\ndigits, and special characters (~!@#$%^&*()-_=+\\\\|[{}];:,<.>/?).\n",
            "secret": true
          },
          "securityMode": {
            "type": "boolean",
            "description": "Whether to enable communication encryption and security authentication.\nAvailable values include *true* and *false*. security_mode is disabled by default.\nChanging this parameter will create a new resource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the key/value pairs to associate with the cluster.\n\n<a name=\"css_node_config_object\"></a>\nThe `node_config` block supports:\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCssClusterV1Timeouts:CssClusterV1Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/cssSnapshotV1:CssSnapshotV1": {
      "description": "CSS cluster snapshot management\n\n## Example Usage\n\n### create a snapshot\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst snapshot = new flexibleengine.CssSnapshotV1(\"snapshot\", {clusterId: _var.css_cluster_id});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nsnapshot = flexibleengine.CssSnapshotV1(\"snapshot\", cluster_id=var[\"css_cluster_id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var snapshot = new Flexibleengine.CssSnapshotV1(\"snapshot\", new()\n    {\n        ClusterId = @var.Css_cluster_id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewCssSnapshotV1(ctx, \"snapshot\", &flexibleengine.CssSnapshotV1Args{\n\t\t\tClusterId: pulumi.Any(_var.Css_cluster_id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CssSnapshotV1;\nimport com.pulumi.flexibleengine.CssSnapshotV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var snapshot = new CssSnapshotV1(\"snapshot\", CssSnapshotV1Args.builder()\n            .clusterId(var_.css_cluster_id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  snapshot:\n    type: flexibleengine:CssSnapshotV1\n    properties:\n      clusterId: ${var.css_cluster_id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThis resource can be imported by specifying the CSS cluster ID and snapshot ID\n\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/cssSnapshotV1:CssSnapshotV1 snapshot_1 <cluster_id>/<snapshot_id>\n```\n\n",
      "properties": {
        "backupType": {
          "type": "string",
          "description": "Indicates the snapshot creation mode, the value should be \"manual\" or \"automated\".\n"
        },
        "clusterId": {
          "type": "string",
          "description": "Specifies ID of the CSS cluster where index data is to be backed up.\nChanging this parameter will create a new resource.\n"
        },
        "clusterName": {
          "type": "string",
          "description": "Indicates the CSS cluster name.\n"
        },
        "cssSnapshotV1Id": {
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of a snapshot. The value contains 0 to 256\ncharacters, and angle brackets (<) and (>) are not allowed. Changing this parameter will create a new resource.\n"
        },
        "indices": {
          "type": "string",
          "description": "Specifies the name of the index to be backed up. Multiple index names\nare separated by commas (,). By default, data of all indices is backed up. You can use the\nasterisk (*) to back up data of certain indices. For example, if you enter 2018-06*, then\ndata of indices with the name prefix of 2018-06 will be backed up.\nThe value contains 0 to 1024 characters. Uppercase letters, spaces, and certain special\ncharacters (including \"\\<|>/?) are not allowed.\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the snapshot name. The snapshot name must\nstart with a letter and contains 4 to 64 characters consisting of only\nlowercase letters, digits, hyphens (-), and underscores (_).\nChanging this parameter will create a new resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the snapshot status.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCssSnapshotV1Timeouts:CssSnapshotV1Timeouts"
        }
      },
      "type": "object",
      "required": [
        "backupType",
        "clusterId",
        "clusterName",
        "cssSnapshotV1Id",
        "indices",
        "name",
        "status"
      ],
      "inputProperties": {
        "clusterId": {
          "type": "string",
          "description": "Specifies ID of the CSS cluster where index data is to be backed up.\nChanging this parameter will create a new resource.\n"
        },
        "cssSnapshotV1Id": {
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of a snapshot. The value contains 0 to 256\ncharacters, and angle brackets (<) and (>) are not allowed. Changing this parameter will create a new resource.\n"
        },
        "indices": {
          "type": "string",
          "description": "Specifies the name of the index to be backed up. Multiple index names\nare separated by commas (,). By default, data of all indices is backed up. You can use the\nasterisk (*) to back up data of certain indices. For example, if you enter 2018-06*, then\ndata of indices with the name prefix of 2018-06 will be backed up.\nThe value contains 0 to 1024 characters. Uppercase letters, spaces, and certain special\ncharacters (including \"\\<|>/?) are not allowed.\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the snapshot name. The snapshot name must\nstart with a letter and contains 4 to 64 characters consisting of only\nlowercase letters, digits, hyphens (-), and underscores (_).\nChanging this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCssSnapshotV1Timeouts:CssSnapshotV1Timeouts"
        }
      },
      "requiredInputs": [
        "clusterId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CssSnapshotV1 resources.\n",
        "properties": {
          "backupType": {
            "type": "string",
            "description": "Indicates the snapshot creation mode, the value should be \"manual\" or \"automated\".\n"
          },
          "clusterId": {
            "type": "string",
            "description": "Specifies ID of the CSS cluster where index data is to be backed up.\nChanging this parameter will create a new resource.\n"
          },
          "clusterName": {
            "type": "string",
            "description": "Indicates the CSS cluster name.\n"
          },
          "cssSnapshotV1Id": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of a snapshot. The value contains 0 to 256\ncharacters, and angle brackets (<) and (>) are not allowed. Changing this parameter will create a new resource.\n"
          },
          "indices": {
            "type": "string",
            "description": "Specifies the name of the index to be backed up. Multiple index names\nare separated by commas (,). By default, data of all indices is backed up. You can use the\nasterisk (*) to back up data of certain indices. For example, if you enter 2018-06*, then\ndata of indices with the name prefix of 2018-06 will be backed up.\nThe value contains 0 to 1024 characters. Uppercase letters, spaces, and certain special\ncharacters (including \"\\<|>/?) are not allowed.\nChanging this parameter will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the snapshot name. The snapshot name must\nstart with a letter and contains 4 to 64 characters consisting of only\nlowercase letters, digits, hyphens (-), and underscores (_).\nChanging this parameter will create a new resource.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the snapshot status.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCssSnapshotV1Timeouts:CssSnapshotV1Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/ctsTrackerV1:CtsTrackerV1": {
      "description": "Allows you to collect, store, and query cloud resource operation records.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst bucketName = config.requireObject(\"bucketName\");\nconst trackerV1 = new flexibleengine.CtsTrackerV1(\"trackerV1\", {\n    bucketName: bucketName,\n    filePrefixName: \"tracker\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nbucket_name = config.require_object(\"bucketName\")\ntracker_v1 = flexibleengine.CtsTrackerV1(\"trackerV1\",\n    bucket_name=bucket_name,\n    file_prefix_name=\"tracker\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bucketName = config.RequireObject<dynamic>(\"bucketName\");\n    var trackerV1 = new Flexibleengine.CtsTrackerV1(\"trackerV1\", new()\n    {\n        BucketName = bucketName,\n        FilePrefixName = \"tracker\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbucketName := cfg.RequireObject(\"bucketName\")\n\t\t_, err := flexibleengine.NewCtsTrackerV1(ctx, \"trackerV1\", &flexibleengine.CtsTrackerV1Args{\n\t\t\tBucketName:     pulumi.Any(bucketName),\n\t\t\tFilePrefixName: pulumi.String(\"tracker\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.CtsTrackerV1;\nimport com.pulumi.flexibleengine.CtsTrackerV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bucketName = config.get(\"bucketName\");\n        var trackerV1 = new CtsTrackerV1(\"trackerV1\", CtsTrackerV1Args.builder()\n            .bucketName(bucketName)\n            .filePrefixName(\"tracker\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bucketName:\n    type: dynamic\nresources:\n  trackerV1:\n    type: flexibleengine:CtsTrackerV1\n    properties:\n      bucketName: ${bucketName}\n      filePrefixName: tracker\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCTS tracker can be imported using  `tracker_name`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/ctsTrackerV1:CtsTrackerV1 tracker system\n```\n\n",
      "properties": {
        "bucketName": {
          "type": "string",
          "description": "The OBS bucket name for a tracker.\n"
        },
        "ctsTrackerV1Id": {
          "type": "string"
        },
        "filePrefixName": {
          "type": "string",
          "description": "The prefix of a log that needs to be stored in an OBS bucket.\nThe value can contain letters, digits, and special characters `.-_`, but cannot contain spaces.\nThe length is 1 to 64 characters.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CTS tracker resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CTS tracker resource.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of a tracker. The value should be **enabled** when creating a tracker,\nand can be enabled or disabled when updating it.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCtsTrackerV1Timeouts:CtsTrackerV1Timeouts"
        },
        "trackerName": {
          "type": "string",
          "description": "The tracker name. Currently, only tracker **system** is available.\n"
        }
      },
      "type": "object",
      "required": [
        "bucketName",
        "ctsTrackerV1Id",
        "filePrefixName",
        "region",
        "status",
        "trackerName"
      ],
      "inputProperties": {
        "bucketName": {
          "type": "string",
          "description": "The OBS bucket name for a tracker.\n"
        },
        "ctsTrackerV1Id": {
          "type": "string"
        },
        "filePrefixName": {
          "type": "string",
          "description": "The prefix of a log that needs to be stored in an OBS bucket.\nThe value can contain letters, digits, and special characters `.-_`, but cannot contain spaces.\nThe length is 1 to 64 characters.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the CTS tracker resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CTS tracker resource.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of a tracker. The value should be **enabled** when creating a tracker,\nand can be enabled or disabled when updating it.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FCtsTrackerV1Timeouts:CtsTrackerV1Timeouts"
        }
      },
      "requiredInputs": [
        "bucketName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CtsTrackerV1 resources.\n",
        "properties": {
          "bucketName": {
            "type": "string",
            "description": "The OBS bucket name for a tracker.\n"
          },
          "ctsTrackerV1Id": {
            "type": "string"
          },
          "filePrefixName": {
            "type": "string",
            "description": "The prefix of a log that needs to be stored in an OBS bucket.\nThe value can contain letters, digits, and special characters `.-_`, but cannot contain spaces.\nThe length is 1 to 64 characters.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the CTS tracker resource.\nIf omitted, the provider-level region will be used. Changing this will create a new CTS tracker resource.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of a tracker. The value should be **enabled** when creating a tracker,\nand can be enabled or disabled when updating it.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FCtsTrackerV1Timeouts:CtsTrackerV1Timeouts"
          },
          "trackerName": {
            "type": "string",
            "description": "The tracker name. Currently, only tracker **system** is available.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dcsBackupV1:DcsBackupV1": {
      "description": "Manages a DCS backup resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst dcsInstanceId = config.requireObject(\"dcsInstanceId\");\nconst test = new flexibleengine.DcsBackupV1(\"test\", {instanceId: dcsInstanceId});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ndcs_instance_id = config.require_object(\"dcsInstanceId\")\ntest = flexibleengine.DcsBackupV1(\"test\", instance_id=dcs_instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var dcsInstanceId = config.RequireObject<dynamic>(\"dcsInstanceId\");\n    var test = new Flexibleengine.DcsBackupV1(\"test\", new()\n    {\n        InstanceId = dcsInstanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdcsInstanceId := cfg.RequireObject(\"dcsInstanceId\")\n\t\t_, err := flexibleengine.NewDcsBackupV1(ctx, \"test\", &flexibleengine.DcsBackupV1Args{\n\t\t\tInstanceId: pulumi.Any(dcsInstanceId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DcsBackupV1;\nimport com.pulumi.flexibleengine.DcsBackupV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var dcsInstanceId = config.get(\"dcsInstanceId\");\n        var test = new DcsBackupV1(\"test\", DcsBackupV1Args.builder()\n            .instanceId(dcsInstanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  dcsInstanceId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DcsBackupV1\n    properties:\n      instanceId: ${dcsInstanceId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe DCS backup can be imported using the DCS instance ID and backup ID separated by a slash, e.g.:\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/dcsBackupV1:DcsBackupV1 test <instance_id>/<backup_id>\n```\n\n",
      "properties": {
        "backupFormat": {
          "type": "string",
          "description": "Specifies the format of the DCS instance backup.\nValue options: **aof**, **rdb**. Default to rdb.\n\nChanging this parameter will create a new resource.\n"
        },
        "beginTime": {
          "type": "string",
          "description": "Indicates the time when the backup task is created. The format is yyyy-mm-dd hh:mm:ss.\nThe value is in UTC format.\n"
        },
        "dcsBackupV1Id": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of DCS instance backup.\n\nChanging this parameter will create a new resource.\n"
        },
        "endTime": {
          "type": "string",
          "description": "Indicates the time at which DCS instance backup is completed. The format is yyyy-mm-dd hh:mm:ss.\nThe value is in UTC format.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the DCS instance.\n\nChanging this parameter will create a new resource.\n"
        },
        "isSupportRestore": {
          "type": "string",
          "description": "Indicates whether restoration is supported. Value Options: **TRUE**, **FALSE**.\n"
        },
        "name": {
          "type": "string",
          "description": "Indicates the backup name.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "size": {
          "type": "number",
          "description": "Indicates the size of the backup file (byte).\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the backup status. Valid value:\n+ **waiting**: The task is waiting to begin.\n+ **backuping**: DCS instance backup is in progress.\n+ **succeed**: DCS instance backup succeeded.\n+ **failed**: DCS instance backup failed.\n+ **expired**: The backup file has expired.\n+ **deleted**: The backup file has been deleted manually.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDcsBackupV1Timeouts:DcsBackupV1Timeouts"
        },
        "type": {
          "type": "string",
          "description": "Indicates the backup type. Valid value:\n+ **manual**: indicates manual backup.\n+ **auto**: indicates automatic backup.\n"
        }
      },
      "type": "object",
      "required": [
        "backupFormat",
        "beginTime",
        "dcsBackupV1Id",
        "description",
        "endTime",
        "instanceId",
        "isSupportRestore",
        "name",
        "region",
        "size",
        "status",
        "type"
      ],
      "inputProperties": {
        "backupFormat": {
          "type": "string",
          "description": "Specifies the format of the DCS instance backup.\nValue options: **aof**, **rdb**. Default to rdb.\n\nChanging this parameter will create a new resource.\n"
        },
        "dcsBackupV1Id": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of DCS instance backup.\n\nChanging this parameter will create a new resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the DCS instance.\n\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDcsBackupV1Timeouts:DcsBackupV1Timeouts"
        }
      },
      "requiredInputs": [
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DcsBackupV1 resources.\n",
        "properties": {
          "backupFormat": {
            "type": "string",
            "description": "Specifies the format of the DCS instance backup.\nValue options: **aof**, **rdb**. Default to rdb.\n\nChanging this parameter will create a new resource.\n"
          },
          "beginTime": {
            "type": "string",
            "description": "Indicates the time when the backup task is created. The format is yyyy-mm-dd hh:mm:ss.\nThe value is in UTC format.\n"
          },
          "dcsBackupV1Id": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of DCS instance backup.\n\nChanging this parameter will create a new resource.\n"
          },
          "endTime": {
            "type": "string",
            "description": "Indicates the time at which DCS instance backup is completed. The format is yyyy-mm-dd hh:mm:ss.\nThe value is in UTC format.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the DCS instance.\n\nChanging this parameter will create a new resource.\n"
          },
          "isSupportRestore": {
            "type": "string",
            "description": "Indicates whether restoration is supported. Value Options: **TRUE**, **FALSE**.\n"
          },
          "name": {
            "type": "string",
            "description": "Indicates the backup name.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "size": {
            "type": "number",
            "description": "Indicates the size of the backup file (byte).\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the backup status. Valid value:\n+ **waiting**: The task is waiting to begin.\n+ **backuping**: DCS instance backup is in progress.\n+ **succeed**: DCS instance backup succeeded.\n+ **failed**: DCS instance backup failed.\n+ **expired**: The backup file has expired.\n+ **deleted**: The backup file has been deleted manually.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDcsBackupV1Timeouts:DcsBackupV1Timeouts"
          },
          "type": {
            "type": "string",
            "description": "Indicates the backup type. Valid value:\n+ **manual**: indicates manual backup.\n+ **auto**: indicates automatic backup.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dcsInstanceV1:DcsInstanceV1": {
      "description": "Manages a DCS instance in the flexibleengine DCS Service.\n\n## Example Usage\n\n### DCS instance for Redis 5.0\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst myPassword = config.requireObject(\"myPassword\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst product1 = flexibleengine.getDcsProductV1({\n    engine: \"redis\",\n    engineVersion: \"4.0;5.0\",\n    cacheMode: \"cluster\",\n    capacity: 8,\n    replicaCount: 2,\n});\nconst instance1 = new flexibleengine.DcsInstanceV1(\"instance1\", {\n    engine: \"Redis\",\n    engineVersion: \"5.0\",\n    password: myPassword,\n    productId: product1.then(product1 => product1.id),\n    capacity: 8,\n    vpcId: exampleVpc.vpcV1Id,\n    networkId: exampleSubnet.vpcSubnetV1Id,\n    availableZones: [\n        \"eu-west-0a\",\n        \"eu-west-0b\",\n    ],\n    saveDays: 1,\n    backupType: \"manual\",\n    beginAt: \"00:00-01:00\",\n    periodType: \"weekly\",\n    backupAts: [1],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nmy_password = config.require_object(\"myPassword\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nproduct1 = flexibleengine.get_dcs_product_v1(engine=\"redis\",\n    engine_version=\"4.0;5.0\",\n    cache_mode=\"cluster\",\n    capacity=8,\n    replica_count=2)\ninstance1 = flexibleengine.DcsInstanceV1(\"instance1\",\n    engine=\"Redis\",\n    engine_version=\"5.0\",\n    password=my_password,\n    product_id=product1.id,\n    capacity=8,\n    vpc_id=example_vpc.vpc_v1_id,\n    network_id=example_subnet.vpc_subnet_v1_id,\n    available_zones=[\n        \"eu-west-0a\",\n        \"eu-west-0b\",\n    ],\n    save_days=1,\n    backup_type=\"manual\",\n    begin_at=\"00:00-01:00\",\n    period_type=\"weekly\",\n    backup_ats=[1])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var myPassword = config.RequireObject<dynamic>(\"myPassword\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var product1 = Flexibleengine.GetDcsProductV1.Invoke(new()\n    {\n        Engine = \"redis\",\n        EngineVersion = \"4.0;5.0\",\n        CacheMode = \"cluster\",\n        Capacity = 8,\n        ReplicaCount = 2,\n    });\n\n    var instance1 = new Flexibleengine.DcsInstanceV1(\"instance1\", new()\n    {\n        Engine = \"Redis\",\n        EngineVersion = \"5.0\",\n        Password = myPassword,\n        ProductId = product1.Apply(getDcsProductV1Result => getDcsProductV1Result.Id),\n        Capacity = 8,\n        VpcId = exampleVpc.VpcV1Id,\n        NetworkId = exampleSubnet.VpcSubnetV1Id,\n        AvailableZones = new[]\n        {\n            \"eu-west-0a\",\n            \"eu-west-0b\",\n        },\n        SaveDays = 1,\n        BackupType = \"manual\",\n        BeginAt = \"00:00-01:00\",\n        PeriodType = \"weekly\",\n        BackupAts = new[]\n        {\n            1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tmyPassword := cfg.RequireObject(\"myPassword\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproduct1, err := flexibleengine.GetDcsProductV1(ctx, &flexibleengine.GetDcsProductV1Args{\n\t\t\tEngine:        pulumi.StringRef(\"redis\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"4.0;5.0\"),\n\t\t\tCacheMode:     pulumi.StringRef(\"cluster\"),\n\t\t\tCapacity:      pulumi.Float64Ref(8),\n\t\t\tReplicaCount:  pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewDcsInstanceV1(ctx, \"instance1\", &flexibleengine.DcsInstanceV1Args{\n\t\t\tEngine:        pulumi.String(\"Redis\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0\"),\n\t\t\tPassword:      pulumi.Any(myPassword),\n\t\t\tProductId:     pulumi.String(product1.Id),\n\t\t\tCapacity:      pulumi.Float64(8),\n\t\t\tVpcId:         exampleVpc.VpcV1Id,\n\t\t\tNetworkId:     exampleSubnet.VpcSubnetV1Id,\n\t\t\tAvailableZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-west-0a\"),\n\t\t\t\tpulumi.String(\"eu-west-0b\"),\n\t\t\t},\n\t\t\tSaveDays:   pulumi.Float64(1),\n\t\t\tBackupType: pulumi.String(\"manual\"),\n\t\t\tBeginAt:    pulumi.String(\"00:00-01:00\"),\n\t\t\tPeriodType: pulumi.String(\"weekly\"),\n\t\t\tBackupAts: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDcsProductV1Args;\nimport com.pulumi.flexibleengine.DcsInstanceV1;\nimport com.pulumi.flexibleengine.DcsInstanceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var myPassword = config.get(\"myPassword\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        final var product1 = FlexibleengineFunctions.getDcsProductV1(GetDcsProductV1Args.builder()\n            .engine(\"redis\")\n            .engineVersion(\"4.0;5.0\")\n            .cacheMode(\"cluster\")\n            .capacity(8)\n            .replicaCount(2)\n            .build());\n\n        var instance1 = new DcsInstanceV1(\"instance1\", DcsInstanceV1Args.builder()\n            .engine(\"Redis\")\n            .engineVersion(\"5.0\")\n            .password(myPassword)\n            .productId(product1.applyValue(getDcsProductV1Result -> getDcsProductV1Result.id()))\n            .capacity(8)\n            .vpcId(exampleVpc.vpcV1Id())\n            .networkId(exampleSubnet.vpcSubnetV1Id())\n            .availableZones(            \n                \"eu-west-0a\",\n                \"eu-west-0b\")\n            .saveDays(1)\n            .backupType(\"manual\")\n            .beginAt(\"00:00-01:00\")\n            .periodType(\"weekly\")\n            .backupAts(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  myPassword:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  instance1:\n    type: flexibleengine:DcsInstanceV1\n    properties:\n      engine: Redis\n      engineVersion: '5.0'\n      password: ${myPassword}\n      productId: ${product1.id}\n      capacity: 8\n      vpcId: ${exampleVpc.vpcV1Id}\n      networkId: ${exampleSubnet.vpcSubnetV1Id}\n      availableZones:\n        - eu-west-0a\n        - eu-west-0b\n      saveDays: 1\n      backupType: manual\n      beginAt: 00:00-01:00\n      periodType: weekly\n      backupAts:\n        - 1\nvariables:\n  product1:\n    fn::invoke:\n      function: flexibleengine:getDcsProductV1\n      arguments:\n        engine: redis\n        engineVersion: 4.0;5.0\n        cacheMode: cluster\n        capacity: 8\n        replicaCount: 2\n```\n<!--End PulumiCodeChooser -->\n\n### DCS instance for Redis 3.0\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst myPassword = config.requireObject(\"myPassword\");\nconst vpcId = config.requireObject(\"vpcId\");\nconst networkId = config.requireObject(\"networkId\");\nconst exampleSecgroup = new flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", {});\nconst instance1 = new flexibleengine.DcsInstanceV1(\"instance1\", {\n    engine: \"Redis\",\n    engineVersion: \"3.0\",\n    password: myPassword,\n    productId: \"dcs.master_standby-h\",\n    capacity: 2,\n    vpcId: flexibleengine_vpc_v1.example_vpc.id,\n    networkId: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    securityGroupId: exampleSecgroup.networkingSecgroupV2Id,\n    availableZones: [\"eu-west-0a\"],\n    saveDays: 1,\n    backupType: \"manual\",\n    beginAt: \"00:00-01:00\",\n    periodType: \"weekly\",\n    backupAts: [1],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nmy_password = config.require_object(\"myPassword\")\nvpc_id = config.require_object(\"vpcId\")\nnetwork_id = config.require_object(\"networkId\")\nexample_secgroup = flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\")\ninstance1 = flexibleengine.DcsInstanceV1(\"instance1\",\n    engine=\"Redis\",\n    engine_version=\"3.0\",\n    password=my_password,\n    product_id=\"dcs.master_standby-h\",\n    capacity=2,\n    vpc_id=flexibleengine_vpc_v1[\"example_vpc\"][\"id\"],\n    network_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    security_group_id=example_secgroup.networking_secgroup_v2_id,\n    available_zones=[\"eu-west-0a\"],\n    save_days=1,\n    backup_type=\"manual\",\n    begin_at=\"00:00-01:00\",\n    period_type=\"weekly\",\n    backup_ats=[1])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var myPassword = config.RequireObject<dynamic>(\"myPassword\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var networkId = config.RequireObject<dynamic>(\"networkId\");\n    var exampleSecgroup = new Flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\");\n\n    var instance1 = new Flexibleengine.DcsInstanceV1(\"instance1\", new()\n    {\n        Engine = \"Redis\",\n        EngineVersion = \"3.0\",\n        Password = myPassword,\n        ProductId = \"dcs.master_standby-h\",\n        Capacity = 2,\n        VpcId = flexibleengine_vpc_v1.Example_vpc.Id,\n        NetworkId = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n        SecurityGroupId = exampleSecgroup.NetworkingSecgroupV2Id,\n        AvailableZones = new[]\n        {\n            \"eu-west-0a\",\n        },\n        SaveDays = 1,\n        BackupType = \"manual\",\n        BeginAt = \"00:00-01:00\",\n        PeriodType = \"weekly\",\n        BackupAts = new[]\n        {\n            1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tmyPassword := cfg.RequireObject(\"myPassword\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tnetworkId := cfg.RequireObject(\"networkId\")\n\t\texampleSecgroup, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"exampleSecgroup\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewDcsInstanceV1(ctx, \"instance1\", &flexibleengine.DcsInstanceV1Args{\n\t\t\tEngine:          pulumi.String(\"Redis\"),\n\t\t\tEngineVersion:   pulumi.String(\"3.0\"),\n\t\t\tPassword:        pulumi.Any(myPassword),\n\t\t\tProductId:       pulumi.String(\"dcs.master_standby-h\"),\n\t\t\tCapacity:        pulumi.Float64(2),\n\t\t\tVpcId:           pulumi.Any(flexibleengine_vpc_v1.Example_vpc.Id),\n\t\t\tNetworkId:       pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\tSecurityGroupId: exampleSecgroup.NetworkingSecgroupV2Id,\n\t\t\tAvailableZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-west-0a\"),\n\t\t\t},\n\t\t\tSaveDays:   pulumi.Float64(1),\n\t\t\tBackupType: pulumi.String(\"manual\"),\n\t\t\tBeginAt:    pulumi.String(\"00:00-01:00\"),\n\t\t\tPeriodType: pulumi.String(\"weekly\"),\n\t\t\tBackupAts: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.DcsInstanceV1;\nimport com.pulumi.flexibleengine.DcsInstanceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var myPassword = config.get(\"myPassword\");\n        final var vpcId = config.get(\"vpcId\");\n        final var networkId = config.get(\"networkId\");\n        var exampleSecgroup = new NetworkingSecgroupV2(\"exampleSecgroup\");\n\n        var instance1 = new DcsInstanceV1(\"instance1\", DcsInstanceV1Args.builder()\n            .engine(\"Redis\")\n            .engineVersion(\"3.0\")\n            .password(myPassword)\n            .productId(\"dcs.master_standby-h\")\n            .capacity(2)\n            .vpcId(flexibleengine_vpc_v1.example_vpc().id())\n            .networkId(flexibleengine_vpc_subnet_v1.example_subnet().id())\n            .securityGroupId(exampleSecgroup.networkingSecgroupV2Id())\n            .availableZones(\"eu-west-0a\")\n            .saveDays(1)\n            .backupType(\"manual\")\n            .beginAt(\"00:00-01:00\")\n            .periodType(\"weekly\")\n            .backupAts(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  myPassword:\n    type: dynamic\n  vpcId:\n    type: dynamic\n  networkId:\n    type: dynamic\nresources:\n  exampleSecgroup:\n    type: flexibleengine:NetworkingSecgroupV2\n  instance1:\n    type: flexibleengine:DcsInstanceV1\n    properties:\n      engine: Redis\n      engineVersion: '3.0'\n      password: ${myPassword}\n      productId: dcs.master_standby-h\n      capacity: 2\n      vpcId: ${flexibleengine_vpc_v1.example_vpc.id}\n      networkId: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n      securityGroupId: ${exampleSecgroup.networkingSecgroupV2Id}\n      availableZones:\n        - eu-west-0a\n      saveDays: 1\n      backupType: manual\n      beginAt: 00:00-01:00\n      periodType: weekly\n      backupAts:\n        - 1\n```\n<!--End PulumiCodeChooser -->\n\n### DCS instance for Memcached\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst myPassword = config.requireObject(\"myPassword\");\nconst exampleSecgroup = new flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", {});\nconst instance1 = new flexibleengine.DcsInstanceV1(\"instance1\", {\n    engine: \"Memcached\",\n    accessUser: \"admin\",\n    password: myPassword,\n    productId: \"dcs.memcached.master_standby-h\",\n    capacity: 2,\n    vpcId: flexibleengine_vpc_v1.example_vpc.id,\n    networkId: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    securityGroupId: exampleSecgroup.networkingSecgroupV2Id,\n    availableZones: [\"eu-west-0a\"],\n    saveDays: 1,\n    backupType: \"manual\",\n    beginAt: \"00:00-01:00\",\n    periodType: \"weekly\",\n    backupAts: [1],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nmy_password = config.require_object(\"myPassword\")\nexample_secgroup = flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\")\ninstance1 = flexibleengine.DcsInstanceV1(\"instance1\",\n    engine=\"Memcached\",\n    access_user=\"admin\",\n    password=my_password,\n    product_id=\"dcs.memcached.master_standby-h\",\n    capacity=2,\n    vpc_id=flexibleengine_vpc_v1[\"example_vpc\"][\"id\"],\n    network_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    security_group_id=example_secgroup.networking_secgroup_v2_id,\n    available_zones=[\"eu-west-0a\"],\n    save_days=1,\n    backup_type=\"manual\",\n    begin_at=\"00:00-01:00\",\n    period_type=\"weekly\",\n    backup_ats=[1])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var myPassword = config.RequireObject<dynamic>(\"myPassword\");\n    var exampleSecgroup = new Flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\");\n\n    var instance1 = new Flexibleengine.DcsInstanceV1(\"instance1\", new()\n    {\n        Engine = \"Memcached\",\n        AccessUser = \"admin\",\n        Password = myPassword,\n        ProductId = \"dcs.memcached.master_standby-h\",\n        Capacity = 2,\n        VpcId = flexibleengine_vpc_v1.Example_vpc.Id,\n        NetworkId = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n        SecurityGroupId = exampleSecgroup.NetworkingSecgroupV2Id,\n        AvailableZones = new[]\n        {\n            \"eu-west-0a\",\n        },\n        SaveDays = 1,\n        BackupType = \"manual\",\n        BeginAt = \"00:00-01:00\",\n        PeriodType = \"weekly\",\n        BackupAts = new[]\n        {\n            1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tmyPassword := cfg.RequireObject(\"myPassword\")\n\t\texampleSecgroup, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"exampleSecgroup\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewDcsInstanceV1(ctx, \"instance1\", &flexibleengine.DcsInstanceV1Args{\n\t\t\tEngine:          pulumi.String(\"Memcached\"),\n\t\t\tAccessUser:      pulumi.String(\"admin\"),\n\t\t\tPassword:        pulumi.Any(myPassword),\n\t\t\tProductId:       pulumi.String(\"dcs.memcached.master_standby-h\"),\n\t\t\tCapacity:        pulumi.Float64(2),\n\t\t\tVpcId:           pulumi.Any(flexibleengine_vpc_v1.Example_vpc.Id),\n\t\t\tNetworkId:       pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\tSecurityGroupId: exampleSecgroup.NetworkingSecgroupV2Id,\n\t\t\tAvailableZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-west-0a\"),\n\t\t\t},\n\t\t\tSaveDays:   pulumi.Float64(1),\n\t\t\tBackupType: pulumi.String(\"manual\"),\n\t\t\tBeginAt:    pulumi.String(\"00:00-01:00\"),\n\t\t\tPeriodType: pulumi.String(\"weekly\"),\n\t\t\tBackupAts: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.DcsInstanceV1;\nimport com.pulumi.flexibleengine.DcsInstanceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var myPassword = config.get(\"myPassword\");\n        var exampleSecgroup = new NetworkingSecgroupV2(\"exampleSecgroup\");\n\n        var instance1 = new DcsInstanceV1(\"instance1\", DcsInstanceV1Args.builder()\n            .engine(\"Memcached\")\n            .accessUser(\"admin\")\n            .password(myPassword)\n            .productId(\"dcs.memcached.master_standby-h\")\n            .capacity(2)\n            .vpcId(flexibleengine_vpc_v1.example_vpc().id())\n            .networkId(flexibleengine_vpc_subnet_v1.example_subnet().id())\n            .securityGroupId(exampleSecgroup.networkingSecgroupV2Id())\n            .availableZones(\"eu-west-0a\")\n            .saveDays(1)\n            .backupType(\"manual\")\n            .beginAt(\"00:00-01:00\")\n            .periodType(\"weekly\")\n            .backupAts(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  myPassword:\n    type: dynamic\nresources:\n  exampleSecgroup:\n    type: flexibleengine:NetworkingSecgroupV2\n  instance1:\n    type: flexibleengine:DcsInstanceV1\n    properties:\n      engine: Memcached\n      accessUser: admin\n      password: ${myPassword}\n      productId: dcs.memcached.master_standby-h\n      capacity: 2\n      vpcId: ${flexibleengine_vpc_v1.example_vpc.id}\n      networkId: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n      securityGroupId: ${exampleSecgroup.networkingSecgroupV2Id}\n      availableZones:\n        - eu-west-0a\n      saveDays: 1\n      backupType: manual\n      beginAt: 00:00-01:00\n      periodType: weekly\n      backupAts:\n        - 1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDCS instances can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dcsInstanceV1:DcsInstanceV1 instance_1 8a1b2c3d-4e5f-6g7h-8i9j-0k1l2m3n4o5p\n```\n\n",
      "properties": {
        "accessUser": {
          "type": "string",
          "description": "Username used for accessing a DCS instance after password\nauthentication. A username starts with a letter, consists of 1 to 64 characters,\nand supports only letters, digits, and hyphens (-).\nChanging this creates a new instance.\n"
        },
        "availableZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "IDs or Names of the AZs where cache nodes reside. For details\non how to query AZs, see Querying AZ Information.\nChanging this creates a new instance.\n"
        },
        "backupAts": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "Day in a week on which backup starts. Range: 1–7. Where: 1\nindicates Monday; 7 indicates Sunday. Changing this creates a new instance.\n"
        },
        "backupType": {
          "type": "string",
          "description": "Backup type. Options:\nauto: automatic backup.\nmanual: manual backup.\nChanging this creates a new instance.\n"
        },
        "beginAt": {
          "type": "string",
          "description": "Time at which backup starts. \"00:00-01:00\" indicates that backup\nstarts at 00:00:00. Changing this creates a new instance.\n"
        },
        "capacity": {
          "type": "number",
          "description": "Indicates the Cache capacity. Unit: GB.\nFor a DCS Redis or Memcached instance in single-node or master/standby mode, the cache\ncapacity can be 2 GB, 4 GB, 8 GB, 16 GB, 32 GB, or 64 GB.\nFor a DCS Redis instance in cluster mode, the cache capacity can be 64, 128, 256, 512,\nor 1024 GB. Changing this creates a new instance.\n"
        },
        "dcsInstanceV1Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "description": {
          "type": "string",
          "description": "Indicates the description of an instance. It is a character\nstring containing not more than 1024 characters.\n"
        },
        "engine": {
          "type": "string",
          "description": "Indicates a cache engine. Valid values are *Redis* and *Memcached*.\nChanging this creates a new instance.\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Indicates the version of a cache engine.\nThis parameter is only supported and **mandatory** for *Redis* engine.\nChanging this creates a new instance.\n"
        },
        "instanceType": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "internalVersion": {
          "type": "string",
          "description": "Internal DCS version.\n"
        },
        "ip": {
          "type": "string",
          "description": "Cache node's IP address in tenant's VPC.\n"
        },
        "maintainBegin": {
          "type": "string",
          "description": "Indicates the time at which a maintenance time window starts.\nFormat: HH:mm:ss.\nThe start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window. For details, see section Querying Maintenance Time Windows.\nThe start time must be set to 22:00, 02:00, 06:00, 10:00, 14:00, or 18:00.\nParameters maintain_begin and maintain_end must be set in pairs. If parameter maintain_begin\nis left blank, parameter maintain_end is also blank. In this case, the system automatically\nallocates the default start time 02:00.\n"
        },
        "maintainEnd": {
          "type": "string",
          "description": "Indicates the time at which a maintenance time window ends.\nFormat: HH:mm:ss.\nThe start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window. For details, see section Querying Maintenance Time Windows.\nThe end time is four hours later than the start time. For example, if the start time is 22:00,\nthe end time is 02:00.\nParameters maintain_begin and maintain_end must be set in pairs. If parameter maintain_end is left\nblank, parameter maintain_begin is also blank. In this case, the system automatically allocates\nthe default end time 06:00.\n"
        },
        "maxMemory": {
          "type": "number",
          "description": "Overall memory size. Unit: MB.\n"
        },
        "name": {
          "type": "string",
          "description": "Indicates the name of an instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, and hyphens (-).\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the ID of the VPC subnet. Changing this creates a new instance.\n"
        },
        "password": {
          "type": "string",
          "description": "Password of a DCS instance.\nThe password of a DCS Redis instance must meet the following complexity requirements:\nChanging this creates a new instance.\n",
          "secret": true
        },
        "periodType": {
          "type": "string",
          "description": "Interval at which backup is performed. Currently, only weekly\nbackup is supported. Changing this creates a new instance.\n"
        },
        "port": {
          "type": "number",
          "description": "Port customization, which is supported only by Redis 4.0 and Redis 5.0 instances\nand not by Redis 3.0 and Memcached instances. The values ranges from **1** to **65535**. The default value is **6379**.\nChanging this creates a new instance.\n"
        },
        "productId": {
          "type": "string",
          "description": "Product ID used to differentiate DCS instance types.\n\n+ For **Redis 4.0/5.0** instance, please use flexibleengine.getDcsProductV1\nto get the ID of an available product.\n\n+ For **Redis 3.0** instance, the valid values are `dcs.master_standby-h`, `dcs.single_node-h` and `dcs.cluster-h`.\n\n+ For **Memcached** instance, the valid values are `dcs.memcached.master_standby-h` and `dcs.memcached.single_node-h`.\n\nChanging this creates a new instance.\n"
        },
        "resourceSpecCode": {
          "type": "string",
          "description": "Resource specifications.\ndcs.single_node: indicates a DCS instance in single-node mode.\ndcs.master_standby: indicates a DCS instance in master/standby mode.\ndcs.cluster: indicates a DCS instance in cluster mode.\n"
        },
        "saveDays": {
          "type": "number",
          "description": "Retention time. Unit: day. Range: 1–7.\nChanging this creates a new instance.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the id of the security group which the instance belongs to.\nThis parameter is only supported and **mandatory** for Memcached and Redis 3.0 versions.\n"
        },
        "securityGroupName": {
          "type": "string",
          "description": "Indicates the name of a security group.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the Cache instance.\n"
        },
        "subnetName": {
          "type": "string",
          "description": "Indicates the name of a subnet.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDcsInstanceV1Timeouts:DcsInstanceV1Timeouts"
        },
        "usedMemory": {
          "type": "number",
          "description": "Size of the used memory. Unit: MB.\n"
        },
        "userId": {
          "type": "string",
          "description": "Indicates a user ID.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the id of the VPC. Changing this creates a new instance.\n"
        },
        "vpcName": {
          "type": "string",
          "description": "Indicates the name of a vpc.\n"
        }
      },
      "type": "object",
      "required": [
        "availableZones",
        "capacity",
        "dcsInstanceV1Id",
        "description",
        "engine",
        "engineVersion",
        "internalVersion",
        "ip",
        "maintainBegin",
        "maintainEnd",
        "maxMemory",
        "name",
        "networkId",
        "password",
        "port",
        "productId",
        "resourceSpecCode",
        "securityGroupName",
        "status",
        "subnetName",
        "usedMemory",
        "userId",
        "vpcId",
        "vpcName"
      ],
      "inputProperties": {
        "accessUser": {
          "type": "string",
          "description": "Username used for accessing a DCS instance after password\nauthentication. A username starts with a letter, consists of 1 to 64 characters,\nand supports only letters, digits, and hyphens (-).\nChanging this creates a new instance.\n"
        },
        "availableZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "IDs or Names of the AZs where cache nodes reside. For details\non how to query AZs, see Querying AZ Information.\nChanging this creates a new instance.\n"
        },
        "backupAts": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "Day in a week on which backup starts. Range: 1–7. Where: 1\nindicates Monday; 7 indicates Sunday. Changing this creates a new instance.\n"
        },
        "backupType": {
          "type": "string",
          "description": "Backup type. Options:\nauto: automatic backup.\nmanual: manual backup.\nChanging this creates a new instance.\n"
        },
        "beginAt": {
          "type": "string",
          "description": "Time at which backup starts. \"00:00-01:00\" indicates that backup\nstarts at 00:00:00. Changing this creates a new instance.\n"
        },
        "capacity": {
          "type": "number",
          "description": "Indicates the Cache capacity. Unit: GB.\nFor a DCS Redis or Memcached instance in single-node or master/standby mode, the cache\ncapacity can be 2 GB, 4 GB, 8 GB, 16 GB, 32 GB, or 64 GB.\nFor a DCS Redis instance in cluster mode, the cache capacity can be 64, 128, 256, 512,\nor 1024 GB. Changing this creates a new instance.\n"
        },
        "dcsInstanceV1Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "description": {
          "type": "string",
          "description": "Indicates the description of an instance. It is a character\nstring containing not more than 1024 characters.\n"
        },
        "engine": {
          "type": "string",
          "description": "Indicates a cache engine. Valid values are *Redis* and *Memcached*.\nChanging this creates a new instance.\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Indicates the version of a cache engine.\nThis parameter is only supported and **mandatory** for *Redis* engine.\nChanging this creates a new instance.\n"
        },
        "instanceType": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "maintainBegin": {
          "type": "string",
          "description": "Indicates the time at which a maintenance time window starts.\nFormat: HH:mm:ss.\nThe start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window. For details, see section Querying Maintenance Time Windows.\nThe start time must be set to 22:00, 02:00, 06:00, 10:00, 14:00, or 18:00.\nParameters maintain_begin and maintain_end must be set in pairs. If parameter maintain_begin\nis left blank, parameter maintain_end is also blank. In this case, the system automatically\nallocates the default start time 02:00.\n"
        },
        "maintainEnd": {
          "type": "string",
          "description": "Indicates the time at which a maintenance time window ends.\nFormat: HH:mm:ss.\nThe start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window. For details, see section Querying Maintenance Time Windows.\nThe end time is four hours later than the start time. For example, if the start time is 22:00,\nthe end time is 02:00.\nParameters maintain_begin and maintain_end must be set in pairs. If parameter maintain_end is left\nblank, parameter maintain_begin is also blank. In this case, the system automatically allocates\nthe default end time 06:00.\n"
        },
        "name": {
          "type": "string",
          "description": "Indicates the name of an instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, and hyphens (-).\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the ID of the VPC subnet. Changing this creates a new instance.\n"
        },
        "password": {
          "type": "string",
          "description": "Password of a DCS instance.\nThe password of a DCS Redis instance must meet the following complexity requirements:\nChanging this creates a new instance.\n",
          "secret": true
        },
        "periodType": {
          "type": "string",
          "description": "Interval at which backup is performed. Currently, only weekly\nbackup is supported. Changing this creates a new instance.\n"
        },
        "port": {
          "type": "number",
          "description": "Port customization, which is supported only by Redis 4.0 and Redis 5.0 instances\nand not by Redis 3.0 and Memcached instances. The values ranges from **1** to **65535**. The default value is **6379**.\nChanging this creates a new instance.\n"
        },
        "productId": {
          "type": "string",
          "description": "Product ID used to differentiate DCS instance types.\n\n+ For **Redis 4.0/5.0** instance, please use flexibleengine.getDcsProductV1\nto get the ID of an available product.\n\n+ For **Redis 3.0** instance, the valid values are `dcs.master_standby-h`, `dcs.single_node-h` and `dcs.cluster-h`.\n\n+ For **Memcached** instance, the valid values are `dcs.memcached.master_standby-h` and `dcs.memcached.single_node-h`.\n\nChanging this creates a new instance.\n"
        },
        "saveDays": {
          "type": "number",
          "description": "Retention time. Unit: day. Range: 1–7.\nChanging this creates a new instance.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the id of the security group which the instance belongs to.\nThis parameter is only supported and **mandatory** for Memcached and Redis 3.0 versions.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDcsInstanceV1Timeouts:DcsInstanceV1Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the id of the VPC. Changing this creates a new instance.\n"
        }
      },
      "requiredInputs": [
        "availableZones",
        "capacity",
        "engine",
        "networkId",
        "password",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DcsInstanceV1 resources.\n",
        "properties": {
          "accessUser": {
            "type": "string",
            "description": "Username used for accessing a DCS instance after password\nauthentication. A username starts with a letter, consists of 1 to 64 characters,\nand supports only letters, digits, and hyphens (-).\nChanging this creates a new instance.\n"
          },
          "availableZones": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "IDs or Names of the AZs where cache nodes reside. For details\non how to query AZs, see Querying AZ Information.\nChanging this creates a new instance.\n"
          },
          "backupAts": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Day in a week on which backup starts. Range: 1–7. Where: 1\nindicates Monday; 7 indicates Sunday. Changing this creates a new instance.\n"
          },
          "backupType": {
            "type": "string",
            "description": "Backup type. Options:\nauto: automatic backup.\nmanual: manual backup.\nChanging this creates a new instance.\n"
          },
          "beginAt": {
            "type": "string",
            "description": "Time at which backup starts. \"00:00-01:00\" indicates that backup\nstarts at 00:00:00. Changing this creates a new instance.\n"
          },
          "capacity": {
            "type": "number",
            "description": "Indicates the Cache capacity. Unit: GB.\nFor a DCS Redis or Memcached instance in single-node or master/standby mode, the cache\ncapacity can be 2 GB, 4 GB, 8 GB, 16 GB, 32 GB, or 64 GB.\nFor a DCS Redis instance in cluster mode, the cache capacity can be 64, 128, 256, 512,\nor 1024 GB. Changing this creates a new instance.\n"
          },
          "dcsInstanceV1Id": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "description": {
            "type": "string",
            "description": "Indicates the description of an instance. It is a character\nstring containing not more than 1024 characters.\n"
          },
          "engine": {
            "type": "string",
            "description": "Indicates a cache engine. Valid values are *Redis* and *Memcached*.\nChanging this creates a new instance.\n"
          },
          "engineVersion": {
            "type": "string",
            "description": "Indicates the version of a cache engine.\nThis parameter is only supported and **mandatory** for *Redis* engine.\nChanging this creates a new instance.\n"
          },
          "instanceType": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "internalVersion": {
            "type": "string",
            "description": "Internal DCS version.\n"
          },
          "ip": {
            "type": "string",
            "description": "Cache node's IP address in tenant's VPC.\n"
          },
          "maintainBegin": {
            "type": "string",
            "description": "Indicates the time at which a maintenance time window starts.\nFormat: HH:mm:ss.\nThe start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window. For details, see section Querying Maintenance Time Windows.\nThe start time must be set to 22:00, 02:00, 06:00, 10:00, 14:00, or 18:00.\nParameters maintain_begin and maintain_end must be set in pairs. If parameter maintain_begin\nis left blank, parameter maintain_end is also blank. In this case, the system automatically\nallocates the default start time 02:00.\n"
          },
          "maintainEnd": {
            "type": "string",
            "description": "Indicates the time at which a maintenance time window ends.\nFormat: HH:mm:ss.\nThe start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window. For details, see section Querying Maintenance Time Windows.\nThe end time is four hours later than the start time. For example, if the start time is 22:00,\nthe end time is 02:00.\nParameters maintain_begin and maintain_end must be set in pairs. If parameter maintain_end is left\nblank, parameter maintain_begin is also blank. In this case, the system automatically allocates\nthe default end time 06:00.\n"
          },
          "maxMemory": {
            "type": "number",
            "description": "Overall memory size. Unit: MB.\n"
          },
          "name": {
            "type": "string",
            "description": "Indicates the name of an instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, and hyphens (-).\n"
          },
          "networkId": {
            "type": "string",
            "description": "Specifies the ID of the VPC subnet. Changing this creates a new instance.\n"
          },
          "password": {
            "type": "string",
            "description": "Password of a DCS instance.\nThe password of a DCS Redis instance must meet the following complexity requirements:\nChanging this creates a new instance.\n",
            "secret": true
          },
          "periodType": {
            "type": "string",
            "description": "Interval at which backup is performed. Currently, only weekly\nbackup is supported. Changing this creates a new instance.\n"
          },
          "port": {
            "type": "number",
            "description": "Port customization, which is supported only by Redis 4.0 and Redis 5.0 instances\nand not by Redis 3.0 and Memcached instances. The values ranges from **1** to **65535**. The default value is **6379**.\nChanging this creates a new instance.\n"
          },
          "productId": {
            "type": "string",
            "description": "Product ID used to differentiate DCS instance types.\n\n+ For **Redis 4.0/5.0** instance, please use flexibleengine.getDcsProductV1\nto get the ID of an available product.\n\n+ For **Redis 3.0** instance, the valid values are `dcs.master_standby-h`, `dcs.single_node-h` and `dcs.cluster-h`.\n\n+ For **Memcached** instance, the valid values are `dcs.memcached.master_standby-h` and `dcs.memcached.single_node-h`.\n\nChanging this creates a new instance.\n"
          },
          "resourceSpecCode": {
            "type": "string",
            "description": "Resource specifications.\ndcs.single_node: indicates a DCS instance in single-node mode.\ndcs.master_standby: indicates a DCS instance in master/standby mode.\ndcs.cluster: indicates a DCS instance in cluster mode.\n"
          },
          "saveDays": {
            "type": "number",
            "description": "Retention time. Unit: day. Range: 1–7.\nChanging this creates a new instance.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Specifies the id of the security group which the instance belongs to.\nThis parameter is only supported and **mandatory** for Memcached and Redis 3.0 versions.\n"
          },
          "securityGroupName": {
            "type": "string",
            "description": "Indicates the name of a security group.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the Cache instance.\n"
          },
          "subnetName": {
            "type": "string",
            "description": "Indicates the name of a subnet.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDcsInstanceV1Timeouts:DcsInstanceV1Timeouts"
          },
          "usedMemory": {
            "type": "number",
            "description": "Size of the used memory. Unit: MB.\n"
          },
          "userId": {
            "type": "string",
            "description": "Indicates a user ID.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the id of the VPC. Changing this creates a new instance.\n"
          },
          "vpcName": {
            "type": "string",
            "description": "Indicates the name of a vpc.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/ddmAccount:DdmAccount": {
      "description": "Manages a DDM account resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst ddmInstanceId = config.requireObject(\"ddmInstanceId\");\nconst name = config.requireObject(\"name\");\nconst password = config.requireObject(\"password\");\nconst schemaName = config.requireObject(\"schemaName\");\nconst test = new flexibleengine.DdmAccount(\"test\", {\n    instanceId: ddmInstanceId,\n    password: password,\n    permissions: [\n        \"CREATE\",\n        \"SELECT\",\n    ],\n    schemas: [{\n        name: schemaName,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nddm_instance_id = config.require_object(\"ddmInstanceId\")\nname = config.require_object(\"name\")\npassword = config.require_object(\"password\")\nschema_name = config.require_object(\"schemaName\")\ntest = flexibleengine.DdmAccount(\"test\",\n    instance_id=ddm_instance_id,\n    password=password,\n    permissions=[\n        \"CREATE\",\n        \"SELECT\",\n    ],\n    schemas=[{\n        \"name\": schema_name,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var ddmInstanceId = config.RequireObject<dynamic>(\"ddmInstanceId\");\n    var name = config.RequireObject<dynamic>(\"name\");\n    var password = config.RequireObject<dynamic>(\"password\");\n    var schemaName = config.RequireObject<dynamic>(\"schemaName\");\n    var test = new Flexibleengine.DdmAccount(\"test\", new()\n    {\n        InstanceId = ddmInstanceId,\n        Password = password,\n        Permissions = new[]\n        {\n            \"CREATE\",\n            \"SELECT\",\n        },\n        Schemas = new[]\n        {\n            new Flexibleengine.Inputs.DdmAccountSchemaArgs\n            {\n                Name = schemaName,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tddmInstanceId := cfg.RequireObject(\"ddmInstanceId\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tpassword := cfg.RequireObject(\"password\")\n\t\tschemaName := cfg.RequireObject(\"schemaName\")\n\t\t_, err := flexibleengine.NewDdmAccount(ctx, \"test\", &flexibleengine.DdmAccountArgs{\n\t\t\tInstanceId: pulumi.Any(ddmInstanceId),\n\t\t\tPassword:   pulumi.Any(password),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"CREATE\"),\n\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t},\n\t\t\tSchemas: flexibleengine.DdmAccountSchemaArray{\n\t\t\t\t&flexibleengine.DdmAccountSchemaArgs{\n\t\t\t\t\tName: pulumi.Any(schemaName),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DdmAccount;\nimport com.pulumi.flexibleengine.DdmAccountArgs;\nimport com.pulumi.flexibleengine.inputs.DdmAccountSchemaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var ddmInstanceId = config.get(\"ddmInstanceId\");\n        final var name = config.get(\"name\");\n        final var password = config.get(\"password\");\n        final var schemaName = config.get(\"schemaName\");\n        var test = new DdmAccount(\"test\", DdmAccountArgs.builder()\n            .instanceId(ddmInstanceId)\n            .password(password)\n            .permissions(            \n                \"CREATE\",\n                \"SELECT\")\n            .schemas(DdmAccountSchemaArgs.builder()\n                .name(schemaName)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  ddmInstanceId:\n    type: dynamic\n  name:\n    type: dynamic\n  password:\n    type: dynamic\n  schemaName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DdmAccount\n    properties:\n      instanceId: ${ddmInstanceId}\n      password: ${password}\n      permissions:\n        - CREATE\n        - SELECT\n      schemas:\n        - name: ${schemaName}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe DDM account can be imported using the instance ID and account name separated by a slash, e.g.:\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/ddmAccount:DdmAccount test 0a8f1c6baa124e99853719d9257324dfin09/account_name\n```\n\n",
      "properties": {
        "ddmAccountId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the DDM account.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of a DDM instance.\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the associated schema.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the DDM account password.\n",
          "secret": true
        },
        "permissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the basic permissions of the DDM account. Value options: **CREATE**\n**DROP**、**ALTER**、**INDEX**、**INSERT**、**DELETE**、**UPDATE**、**SELECT**.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "schemas": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdmAccountSchema:DdmAccountSchema"
          },
          "description": "Specifies the schemas that associated with the account.\nThe Schema structure is documented below.\n\n<a name=\"DdmAccount_Schema\"></a>\nThe `Schema` block supports:\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the status of the DDM account.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdmAccountTimeouts:DdmAccountTimeouts"
        }
      },
      "type": "object",
      "required": [
        "ddmAccountId",
        "description",
        "instanceId",
        "name",
        "password",
        "permissions",
        "region",
        "status"
      ],
      "inputProperties": {
        "ddmAccountId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the DDM account.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of a DDM instance.\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the associated schema.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the DDM account password.\n",
          "secret": true
        },
        "permissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the basic permissions of the DDM account. Value options: **CREATE**\n**DROP**、**ALTER**、**INDEX**、**INSERT**、**DELETE**、**UPDATE**、**SELECT**.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "schemas": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdmAccountSchema:DdmAccountSchema"
          },
          "description": "Specifies the schemas that associated with the account.\nThe Schema structure is documented below.\n\n<a name=\"DdmAccount_Schema\"></a>\nThe `Schema` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdmAccountTimeouts:DdmAccountTimeouts"
        }
      },
      "requiredInputs": [
        "instanceId",
        "password",
        "permissions"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DdmAccount resources.\n",
        "properties": {
          "ddmAccountId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the DDM account.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of a DDM instance.\nChanging this parameter will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the associated schema.\n"
          },
          "password": {
            "type": "string",
            "description": "Specifies the DDM account password.\n",
            "secret": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the basic permissions of the DDM account. Value options: **CREATE**\n**DROP**、**ALTER**、**INDEX**、**INSERT**、**DELETE**、**UPDATE**、**SELECT**.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "schemas": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdmAccountSchema:DdmAccountSchema"
            },
            "description": "Specifies the schemas that associated with the account.\nThe Schema structure is documented below.\n\n<a name=\"DdmAccount_Schema\"></a>\nThe `Schema` block supports:\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the status of the DDM account.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDdmAccountTimeouts:DdmAccountTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/ddmInstance:DdmInstance": {
      "description": "Manages DDM instance resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst testVpcV1 = new flexibleengine.VpcV1(\"testVpcV1\", {cidr: \"192.168.0.0/24\"});\nconst testVpcSubnetV1 = new flexibleengine.VpcSubnetV1(\"testVpcSubnetV1\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: testVpcV1.vpcV1Id,\n});\nconst testNetworkingSecgroupV2 = new flexibleengine.NetworkingSecgroupV2(\"testNetworkingSecgroupV2\", {});\nconst testAvailabilityZones = flexibleengine.getAvailabilityZones({});\nconst testDdmEngines = flexibleengine.getDdmEngines({\n    version: \"3.0.8.5\",\n});\nconst testDdmFlavors = testDdmEngines.then(testDdmEngines => flexibleengine.getDdmFlavors({\n    engineId: testDdmEngines.engines?.[0]?.id,\n    cpuArch: \"X86\",\n}));\nconst testDdmInstance = new flexibleengine.DdmInstance(\"testDdmInstance\", {\n    flavorId: testDdmFlavors.then(testDdmFlavors => testDdmFlavors.flavors?.[0]?.id),\n    nodeNum: 2,\n    engineId: testDdmEngines.then(testDdmEngines => testDdmEngines.engines?.[0]?.id),\n    vpcId: testVpcV1.vpcV1Id,\n    subnetId: testVpcSubnetV1.vpcSubnetV1Id,\n    securityGroupId: testNetworkingSecgroupV2.networkingSecgroupV2Id,\n    availabilityZones: [testAvailabilityZones.then(testAvailabilityZones => testAvailabilityZones.names?.[0])],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest_vpc_v1 = flexibleengine.VpcV1(\"testVpcV1\", cidr=\"192.168.0.0/24\")\ntest_vpc_subnet_v1 = flexibleengine.VpcSubnetV1(\"testVpcSubnetV1\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=test_vpc_v1.vpc_v1_id)\ntest_networking_secgroup_v2 = flexibleengine.NetworkingSecgroupV2(\"testNetworkingSecgroupV2\")\ntest_availability_zones = flexibleengine.get_availability_zones()\ntest_ddm_engines = flexibleengine.get_ddm_engines(version=\"3.0.8.5\")\ntest_ddm_flavors = flexibleengine.get_ddm_flavors(engine_id=test_ddm_engines.engines[0].id,\n    cpu_arch=\"X86\")\ntest_ddm_instance = flexibleengine.DdmInstance(\"testDdmInstance\",\n    flavor_id=test_ddm_flavors.flavors[0].id,\n    node_num=2,\n    engine_id=test_ddm_engines.engines[0].id,\n    vpc_id=test_vpc_v1.vpc_v1_id,\n    subnet_id=test_vpc_subnet_v1.vpc_subnet_v1_id,\n    security_group_id=test_networking_secgroup_v2.networking_secgroup_v2_id,\n    availability_zones=[test_availability_zones.names[0]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var testVpcV1 = new Flexibleengine.VpcV1(\"testVpcV1\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n    });\n\n    var testVpcSubnetV1 = new Flexibleengine.VpcSubnetV1(\"testVpcSubnetV1\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = testVpcV1.VpcV1Id,\n    });\n\n    var testNetworkingSecgroupV2 = new Flexibleengine.NetworkingSecgroupV2(\"testNetworkingSecgroupV2\");\n\n    var testAvailabilityZones = Flexibleengine.GetAvailabilityZones.Invoke();\n\n    var testDdmEngines = Flexibleengine.GetDdmEngines.Invoke(new()\n    {\n        Version = \"3.0.8.5\",\n    });\n\n    var testDdmFlavors = Flexibleengine.GetDdmFlavors.Invoke(new()\n    {\n        EngineId = testDdmEngines.Apply(getDdmEnginesResult => getDdmEnginesResult.Engines[0]?.Id),\n        CpuArch = \"X86\",\n    });\n\n    var testDdmInstance = new Flexibleengine.DdmInstance(\"testDdmInstance\", new()\n    {\n        FlavorId = testDdmFlavors.Apply(getDdmFlavorsResult => getDdmFlavorsResult.Flavors[0]?.Id),\n        NodeNum = 2,\n        EngineId = testDdmEngines.Apply(getDdmEnginesResult => getDdmEnginesResult.Engines[0]?.Id),\n        VpcId = testVpcV1.VpcV1Id,\n        SubnetId = testVpcSubnetV1.VpcSubnetV1Id,\n        SecurityGroupId = testNetworkingSecgroupV2.NetworkingSecgroupV2Id,\n        AvailabilityZones = new[]\n        {\n            testAvailabilityZones.Apply(getAvailabilityZonesResult => getAvailabilityZonesResult.Names[0]),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestVpcV1, err := flexibleengine.NewVpcV1(ctx, \"testVpcV1\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestVpcSubnetV1, err := flexibleengine.NewVpcSubnetV1(ctx, \"testVpcSubnetV1\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     testVpcV1.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestNetworkingSecgroupV2, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"testNetworkingSecgroupV2\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestAvailabilityZones, err := flexibleengine.GetAvailabilityZones(ctx, &flexibleengine.GetAvailabilityZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestDdmEngines, err := flexibleengine.GetDdmEngines(ctx, &flexibleengine.GetDdmEnginesArgs{\n\t\t\tVersion: pulumi.StringRef(\"3.0.8.5\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestDdmFlavors, err := flexibleengine.GetDdmFlavors(ctx, &flexibleengine.GetDdmFlavorsArgs{\n\t\t\tEngineId: testDdmEngines.Engines[0].Id,\n\t\t\tCpuArch:  pulumi.StringRef(\"X86\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewDdmInstance(ctx, \"testDdmInstance\", &flexibleengine.DdmInstanceArgs{\n\t\t\tFlavorId:        pulumi.String(testDdmFlavors.Flavors[0].Id),\n\t\t\tNodeNum:         pulumi.Float64(2),\n\t\t\tEngineId:        pulumi.String(testDdmEngines.Engines[0].Id),\n\t\t\tVpcId:           testVpcV1.VpcV1Id,\n\t\t\tSubnetId:        testVpcSubnetV1.VpcSubnetV1Id,\n\t\t\tSecurityGroupId: testNetworkingSecgroupV2.NetworkingSecgroupV2Id,\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(testAvailabilityZones.Names[0]),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetAvailabilityZonesArgs;\nimport com.pulumi.flexibleengine.inputs.GetDdmEnginesArgs;\nimport com.pulumi.flexibleengine.inputs.GetDdmFlavorsArgs;\nimport com.pulumi.flexibleengine.DdmInstance;\nimport com.pulumi.flexibleengine.DdmInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testVpcV1 = new VpcV1(\"testVpcV1\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .build());\n\n        var testVpcSubnetV1 = new VpcSubnetV1(\"testVpcSubnetV1\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(testVpcV1.vpcV1Id())\n            .build());\n\n        var testNetworkingSecgroupV2 = new NetworkingSecgroupV2(\"testNetworkingSecgroupV2\");\n\n        final var testAvailabilityZones = FlexibleengineFunctions.getAvailabilityZones();\n\n        final var testDdmEngines = FlexibleengineFunctions.getDdmEngines(GetDdmEnginesArgs.builder()\n            .version(\"3.0.8.5\")\n            .build());\n\n        final var testDdmFlavors = FlexibleengineFunctions.getDdmFlavors(GetDdmFlavorsArgs.builder()\n            .engineId(testDdmEngines.applyValue(getDdmEnginesResult -> getDdmEnginesResult.engines()[0].id()))\n            .cpuArch(\"X86\")\n            .build());\n\n        var testDdmInstance = new DdmInstance(\"testDdmInstance\", DdmInstanceArgs.builder()\n            .flavorId(testDdmFlavors.applyValue(getDdmFlavorsResult -> getDdmFlavorsResult.flavors()[0].id()))\n            .nodeNum(2)\n            .engineId(testDdmEngines.applyValue(getDdmEnginesResult -> getDdmEnginesResult.engines()[0].id()))\n            .vpcId(testVpcV1.vpcV1Id())\n            .subnetId(testVpcSubnetV1.vpcSubnetV1Id())\n            .securityGroupId(testNetworkingSecgroupV2.networkingSecgroupV2Id())\n            .availabilityZones(testAvailabilityZones.applyValue(getAvailabilityZonesResult -> getAvailabilityZonesResult.names()[0]))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testVpcV1:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/24\n  testVpcSubnetV1:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${testVpcV1.vpcV1Id}\n  testNetworkingSecgroupV2:\n    type: flexibleengine:NetworkingSecgroupV2\n  testDdmInstance:\n    type: flexibleengine:DdmInstance\n    properties:\n      flavorId: ${testDdmFlavors.flavors[0].id}\n      nodeNum: 2\n      engineId: ${testDdmEngines.engines[0].id}\n      vpcId: ${testVpcV1.vpcV1Id}\n      subnetId: ${testVpcSubnetV1.vpcSubnetV1Id}\n      securityGroupId: ${testNetworkingSecgroupV2.networkingSecgroupV2Id}\n      availabilityZones:\n        - ${testAvailabilityZones.names[0]}\nvariables:\n  testAvailabilityZones:\n    fn::invoke:\n      function: flexibleengine:getAvailabilityZones\n      arguments: {}\n  testDdmEngines:\n    fn::invoke:\n      function: flexibleengine:getDdmEngines\n      arguments:\n        version: 3.0.8.5\n  testDdmFlavors:\n    fn::invoke:\n      function: flexibleengine:getDdmFlavors\n      arguments:\n        engineId: ${testDdmEngines.engines[0].id}\n        cpuArch: X86\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe ddm instance can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/ddmInstance:DdmInstance test 4bc36477c36642479acf2d90751c8c29in09\n```\n\n",
      "properties": {
        "accessIp": {
          "type": "string",
          "description": "Indicates the address for accessing the DDM instance.\n"
        },
        "accessPort": {
          "type": "string",
          "description": "Indicates the port for accessing the DDM instance.\n"
        },
        "adminPassword": {
          "type": "string",
          "description": "Specifies the password of the administrator.\nThe password consists of 8 to 32 characters, and must be a combination of uppercase letters,\nlowercase letters, digits, and the following special characters: ~!@#%^*-_=+?.\n\nChanging this parameter will create a new resource.\n",
          "secret": true
        },
        "adminUser": {
          "type": "string",
          "description": "Specifies the username of the administrator.\nThe user name starts with a letter, consists of 1 to 32 characters, and can contain only letters,\ndigits, and underscores (_).\n\nChanging this parameter will create a new resource.\n"
        },
        "autoRenew": {
          "type": "string"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of availability zones.\n\nChanging this parameter will create a new resource.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "ddmInstanceId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "deleteRdsData": {
          "type": "string",
          "description": "Specifies whether data stored on the associated DB instances is deleted.\n"
        },
        "engineId": {
          "type": "string",
          "description": "Specifies the ID of an Engine.\n\nChanging this parameter will create a new resource.\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Indicates the engine version.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "Specifies the ID of a product.\n\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DDM instance.\nAn instance name starts with a letter, consists of 4 to 64 characters, and can contain only letters,\ndigits, and hyphens (-).\n"
        },
        "nodeNum": {
          "type": "number",
          "description": "Specifies the number of nodes.\n"
        },
        "nodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdmInstanceNode:DdmInstanceNode"
          },
          "description": "Indicates the node information.\nThe NodeInfoRef structure is documented below.\n"
        },
        "paramGroupId": {
          "type": "string",
          "description": "Specifies the ID of parameter group.\n\nChanging this parameter will create a new resource.\n"
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the ID of a security group.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the status of the DDM instance node.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of a subnet.\n\nChanging this parameter will create a new resource.\n"
        },
        "timeZone": {
          "type": "string",
          "description": "Specifies the time zone.\n\nChanging this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdmInstanceTimeouts:DdmInstanceTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of a VPC.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "accessIp",
        "accessPort",
        "adminPassword",
        "adminUser",
        "availabilityZones",
        "chargingMode",
        "ddmInstanceId",
        "deleteRdsData",
        "engineId",
        "engineVersion",
        "enterpriseProjectId",
        "flavorId",
        "name",
        "nodeNum",
        "nodes",
        "paramGroupId",
        "region",
        "securityGroupId",
        "status",
        "subnetId",
        "timeZone",
        "vpcId"
      ],
      "inputProperties": {
        "adminPassword": {
          "type": "string",
          "description": "Specifies the password of the administrator.\nThe password consists of 8 to 32 characters, and must be a combination of uppercase letters,\nlowercase letters, digits, and the following special characters: ~!@#%^*-_=+?.\n\nChanging this parameter will create a new resource.\n",
          "secret": true
        },
        "adminUser": {
          "type": "string",
          "description": "Specifies the username of the administrator.\nThe user name starts with a letter, consists of 1 to 32 characters, and can contain only letters,\ndigits, and underscores (_).\n\nChanging this parameter will create a new resource.\n"
        },
        "autoRenew": {
          "type": "string"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of availability zones.\n\nChanging this parameter will create a new resource.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "ddmInstanceId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "deleteRdsData": {
          "type": "string",
          "description": "Specifies whether data stored on the associated DB instances is deleted.\n"
        },
        "engineId": {
          "type": "string",
          "description": "Specifies the ID of an Engine.\n\nChanging this parameter will create a new resource.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "Specifies the ID of a product.\n\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DDM instance.\nAn instance name starts with a letter, consists of 4 to 64 characters, and can contain only letters,\ndigits, and hyphens (-).\n"
        },
        "nodeNum": {
          "type": "number",
          "description": "Specifies the number of nodes.\n"
        },
        "paramGroupId": {
          "type": "string",
          "description": "Specifies the ID of parameter group.\n\nChanging this parameter will create a new resource.\n"
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the ID of a security group.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of a subnet.\n\nChanging this parameter will create a new resource.\n"
        },
        "timeZone": {
          "type": "string",
          "description": "Specifies the time zone.\n\nChanging this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdmInstanceTimeouts:DdmInstanceTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of a VPC.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "availabilityZones",
        "engineId",
        "flavorId",
        "nodeNum",
        "securityGroupId",
        "subnetId",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DdmInstance resources.\n",
        "properties": {
          "accessIp": {
            "type": "string",
            "description": "Indicates the address for accessing the DDM instance.\n"
          },
          "accessPort": {
            "type": "string",
            "description": "Indicates the port for accessing the DDM instance.\n"
          },
          "adminPassword": {
            "type": "string",
            "description": "Specifies the password of the administrator.\nThe password consists of 8 to 32 characters, and must be a combination of uppercase letters,\nlowercase letters, digits, and the following special characters: ~!@#%^*-_=+?.\n\nChanging this parameter will create a new resource.\n",
            "secret": true
          },
          "adminUser": {
            "type": "string",
            "description": "Specifies the username of the administrator.\nThe user name starts with a letter, consists of 1 to 32 characters, and can contain only letters,\ndigits, and underscores (_).\n\nChanging this parameter will create a new resource.\n"
          },
          "autoRenew": {
            "type": "string"
          },
          "availabilityZones": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the list of availability zones.\n\nChanging this parameter will create a new resource.\n"
          },
          "chargingMode": {
            "type": "string"
          },
          "ddmInstanceId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "deleteRdsData": {
            "type": "string",
            "description": "Specifies whether data stored on the associated DB instances is deleted.\n"
          },
          "engineId": {
            "type": "string",
            "description": "Specifies the ID of an Engine.\n\nChanging this parameter will create a new resource.\n"
          },
          "engineVersion": {
            "type": "string",
            "description": "Indicates the engine version.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id.\n"
          },
          "flavorId": {
            "type": "string",
            "description": "Specifies the ID of a product.\n\nChanging this parameter will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the DDM instance.\nAn instance name starts with a letter, consists of 4 to 64 characters, and can contain only letters,\ndigits, and hyphens (-).\n"
          },
          "nodeNum": {
            "type": "number",
            "description": "Specifies the number of nodes.\n"
          },
          "nodes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdmInstanceNode:DdmInstanceNode"
            },
            "description": "Indicates the node information.\nThe NodeInfoRef structure is documented below.\n"
          },
          "paramGroupId": {
            "type": "string",
            "description": "Specifies the ID of parameter group.\n\nChanging this parameter will create a new resource.\n"
          },
          "period": {
            "type": "number"
          },
          "periodUnit": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Specifies the ID of a security group.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the status of the DDM instance node.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the ID of a subnet.\n\nChanging this parameter will create a new resource.\n"
          },
          "timeZone": {
            "type": "string",
            "description": "Specifies the time zone.\n\nChanging this parameter will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDdmInstanceTimeouts:DdmInstanceTimeouts"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of a VPC.\n\nChanging this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/ddmSchema:DdmSchema": {
      "description": "Manages a DDM schema resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst testVpcV1 = new flexibleengine.VpcV1(\"testVpcV1\", {cidr: \"192.168.0.0/24\"});\nconst testVpcSubnetV1 = new flexibleengine.VpcSubnetV1(\"testVpcSubnetV1\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: testVpcV1.vpcV1Id,\n});\nconst testNetworkingSecgroupV2 = new flexibleengine.NetworkingSecgroupV2(\"testNetworkingSecgroupV2\", {});\nconst testNetworkingSecgroupRuleV2 = new flexibleengine.NetworkingSecgroupRuleV2(\"testNetworkingSecgroupRuleV2\", {\n    securityGroupId: testNetworkingSecgroupV2.networkingSecgroupV2Id,\n    direction: \"ingress\",\n    ethertype: \"IPv4\",\n    remoteGroupId: testNetworkingSecgroupV2.networkingSecgroupV2Id,\n});\nconst testAvailabilityZones = flexibleengine.getAvailabilityZones({});\nconst testDdmEngines = flexibleengine.getDdmEngines({\n    version: \"3.0.8.5\",\n});\nconst testDdmFlavors = testDdmEngines.then(testDdmEngines => flexibleengine.getDdmFlavors({\n    engineId: testDdmEngines.engines?.[0]?.id,\n    cpuArch: \"X86\",\n}));\nconst testDdmInstance = new flexibleengine.DdmInstance(\"testDdmInstance\", {\n    flavorId: testDdmFlavors.then(testDdmFlavors => testDdmFlavors.flavors?.[0]?.id),\n    nodeNum: 2,\n    engineId: testDdmEngines.then(testDdmEngines => testDdmEngines.engines?.[0]?.id),\n    vpcId: testVpcV1.vpcV1Id,\n    subnetId: testVpcSubnetV1.vpcSubnetV1Id,\n    securityGroupId: testNetworkingSecgroupV2.networkingSecgroupV2Id,\n    availabilityZones: [testAvailabilityZones.then(testAvailabilityZones => testAvailabilityZones.names?.[0])],\n});\nconst testRdsFlavorsV3 = flexibleengine.getRdsFlavorsV3({\n    dbType: \"MySQL\",\n    dbVersion: \"5.7\",\n    instanceMode: \"single\",\n    vcpus: 2,\n    memory: 4,\n});\nconst testRdsInstanceV3 = new flexibleengine.RdsInstanceV3(\"testRdsInstanceV3\", {\n    flavor: testRdsFlavorsV3.then(testRdsFlavorsV3 => testRdsFlavorsV3.flavors?.[0]?.name),\n    securityGroupId: testNetworkingSecgroupV2.networkingSecgroupV2Id,\n    subnetId: testVpcSubnetV1.vpcSubnetV1Id,\n    vpcId: testVpcV1.vpcV1Id,\n    availabilityZones: [testAvailabilityZones.then(testAvailabilityZones => testAvailabilityZones.names?.[0])],\n    db: {\n        password: \"test_password_123\",\n        type: \"MySQL\",\n        version: \"5.7\",\n        port: 3306,\n    },\n    volume: {\n        type: \"ULTRAHIGH\",\n        size: 40,\n    },\n});\nconst testDdmSchema = new flexibleengine.DdmSchema(\"testDdmSchema\", {\n    instanceId: testDdmInstance.ddmInstanceId,\n    shardMode: \"single\",\n    shardNumber: 1,\n    dataNodes: [{\n        id: testRdsInstanceV3.rdsInstanceV3Id,\n        adminUser: \"root\",\n        adminPassword: \"test_password_123\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest_vpc_v1 = flexibleengine.VpcV1(\"testVpcV1\", cidr=\"192.168.0.0/24\")\ntest_vpc_subnet_v1 = flexibleengine.VpcSubnetV1(\"testVpcSubnetV1\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=test_vpc_v1.vpc_v1_id)\ntest_networking_secgroup_v2 = flexibleengine.NetworkingSecgroupV2(\"testNetworkingSecgroupV2\")\ntest_networking_secgroup_rule_v2 = flexibleengine.NetworkingSecgroupRuleV2(\"testNetworkingSecgroupRuleV2\",\n    security_group_id=test_networking_secgroup_v2.networking_secgroup_v2_id,\n    direction=\"ingress\",\n    ethertype=\"IPv4\",\n    remote_group_id=test_networking_secgroup_v2.networking_secgroup_v2_id)\ntest_availability_zones = flexibleengine.get_availability_zones()\ntest_ddm_engines = flexibleengine.get_ddm_engines(version=\"3.0.8.5\")\ntest_ddm_flavors = flexibleengine.get_ddm_flavors(engine_id=test_ddm_engines.engines[0].id,\n    cpu_arch=\"X86\")\ntest_ddm_instance = flexibleengine.DdmInstance(\"testDdmInstance\",\n    flavor_id=test_ddm_flavors.flavors[0].id,\n    node_num=2,\n    engine_id=test_ddm_engines.engines[0].id,\n    vpc_id=test_vpc_v1.vpc_v1_id,\n    subnet_id=test_vpc_subnet_v1.vpc_subnet_v1_id,\n    security_group_id=test_networking_secgroup_v2.networking_secgroup_v2_id,\n    availability_zones=[test_availability_zones.names[0]])\ntest_rds_flavors_v3 = flexibleengine.get_rds_flavors_v3(db_type=\"MySQL\",\n    db_version=\"5.7\",\n    instance_mode=\"single\",\n    vcpus=2,\n    memory=4)\ntest_rds_instance_v3 = flexibleengine.RdsInstanceV3(\"testRdsInstanceV3\",\n    flavor=test_rds_flavors_v3.flavors[0].name,\n    security_group_id=test_networking_secgroup_v2.networking_secgroup_v2_id,\n    subnet_id=test_vpc_subnet_v1.vpc_subnet_v1_id,\n    vpc_id=test_vpc_v1.vpc_v1_id,\n    availability_zones=[test_availability_zones.names[0]],\n    db={\n        \"password\": \"test_password_123\",\n        \"type\": \"MySQL\",\n        \"version\": \"5.7\",\n        \"port\": 3306,\n    },\n    volume={\n        \"type\": \"ULTRAHIGH\",\n        \"size\": 40,\n    })\ntest_ddm_schema = flexibleengine.DdmSchema(\"testDdmSchema\",\n    instance_id=test_ddm_instance.ddm_instance_id,\n    shard_mode=\"single\",\n    shard_number=1,\n    data_nodes=[{\n        \"id\": test_rds_instance_v3.rds_instance_v3_id,\n        \"admin_user\": \"root\",\n        \"admin_password\": \"test_password_123\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var testVpcV1 = new Flexibleengine.VpcV1(\"testVpcV1\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n    });\n\n    var testVpcSubnetV1 = new Flexibleengine.VpcSubnetV1(\"testVpcSubnetV1\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = testVpcV1.VpcV1Id,\n    });\n\n    var testNetworkingSecgroupV2 = new Flexibleengine.NetworkingSecgroupV2(\"testNetworkingSecgroupV2\");\n\n    var testNetworkingSecgroupRuleV2 = new Flexibleengine.NetworkingSecgroupRuleV2(\"testNetworkingSecgroupRuleV2\", new()\n    {\n        SecurityGroupId = testNetworkingSecgroupV2.NetworkingSecgroupV2Id,\n        Direction = \"ingress\",\n        Ethertype = \"IPv4\",\n        RemoteGroupId = testNetworkingSecgroupV2.NetworkingSecgroupV2Id,\n    });\n\n    var testAvailabilityZones = Flexibleengine.GetAvailabilityZones.Invoke();\n\n    var testDdmEngines = Flexibleengine.GetDdmEngines.Invoke(new()\n    {\n        Version = \"3.0.8.5\",\n    });\n\n    var testDdmFlavors = Flexibleengine.GetDdmFlavors.Invoke(new()\n    {\n        EngineId = testDdmEngines.Apply(getDdmEnginesResult => getDdmEnginesResult.Engines[0]?.Id),\n        CpuArch = \"X86\",\n    });\n\n    var testDdmInstance = new Flexibleengine.DdmInstance(\"testDdmInstance\", new()\n    {\n        FlavorId = testDdmFlavors.Apply(getDdmFlavorsResult => getDdmFlavorsResult.Flavors[0]?.Id),\n        NodeNum = 2,\n        EngineId = testDdmEngines.Apply(getDdmEnginesResult => getDdmEnginesResult.Engines[0]?.Id),\n        VpcId = testVpcV1.VpcV1Id,\n        SubnetId = testVpcSubnetV1.VpcSubnetV1Id,\n        SecurityGroupId = testNetworkingSecgroupV2.NetworkingSecgroupV2Id,\n        AvailabilityZones = new[]\n        {\n            testAvailabilityZones.Apply(getAvailabilityZonesResult => getAvailabilityZonesResult.Names[0]),\n        },\n    });\n\n    var testRdsFlavorsV3 = Flexibleengine.GetRdsFlavorsV3.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"5.7\",\n        InstanceMode = \"single\",\n        Vcpus = 2,\n        Memory = 4,\n    });\n\n    var testRdsInstanceV3 = new Flexibleengine.RdsInstanceV3(\"testRdsInstanceV3\", new()\n    {\n        Flavor = testRdsFlavorsV3.Apply(getRdsFlavorsV3Result => getRdsFlavorsV3Result.Flavors[0]?.Name),\n        SecurityGroupId = testNetworkingSecgroupV2.NetworkingSecgroupV2Id,\n        SubnetId = testVpcSubnetV1.VpcSubnetV1Id,\n        VpcId = testVpcV1.VpcV1Id,\n        AvailabilityZones = new[]\n        {\n            testAvailabilityZones.Apply(getAvailabilityZonesResult => getAvailabilityZonesResult.Names[0]),\n        },\n        Db = new Flexibleengine.Inputs.RdsInstanceV3DbArgs\n        {\n            Password = \"test_password_123\",\n            Type = \"MySQL\",\n            Version = \"5.7\",\n            Port = 3306,\n        },\n        Volume = new Flexibleengine.Inputs.RdsInstanceV3VolumeArgs\n        {\n            Type = \"ULTRAHIGH\",\n            Size = 40,\n        },\n    });\n\n    var testDdmSchema = new Flexibleengine.DdmSchema(\"testDdmSchema\", new()\n    {\n        InstanceId = testDdmInstance.DdmInstanceId,\n        ShardMode = \"single\",\n        ShardNumber = 1,\n        DataNodes = new[]\n        {\n            new Flexibleengine.Inputs.DdmSchemaDataNodeArgs\n            {\n                Id = testRdsInstanceV3.RdsInstanceV3Id,\n                AdminUser = \"root\",\n                AdminPassword = \"test_password_123\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestVpcV1, err := flexibleengine.NewVpcV1(ctx, \"testVpcV1\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestVpcSubnetV1, err := flexibleengine.NewVpcSubnetV1(ctx, \"testVpcSubnetV1\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     testVpcV1.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestNetworkingSecgroupV2, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"testNetworkingSecgroupV2\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewNetworkingSecgroupRuleV2(ctx, \"testNetworkingSecgroupRuleV2\", &flexibleengine.NetworkingSecgroupRuleV2Args{\n\t\t\tSecurityGroupId: testNetworkingSecgroupV2.NetworkingSecgroupV2Id,\n\t\t\tDirection:       pulumi.String(\"ingress\"),\n\t\t\tEthertype:       pulumi.String(\"IPv4\"),\n\t\t\tRemoteGroupId:   testNetworkingSecgroupV2.NetworkingSecgroupV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestAvailabilityZones, err := flexibleengine.GetAvailabilityZones(ctx, &flexibleengine.GetAvailabilityZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestDdmEngines, err := flexibleengine.GetDdmEngines(ctx, &flexibleengine.GetDdmEnginesArgs{\n\t\t\tVersion: pulumi.StringRef(\"3.0.8.5\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestDdmFlavors, err := flexibleengine.GetDdmFlavors(ctx, &flexibleengine.GetDdmFlavorsArgs{\n\t\t\tEngineId: testDdmEngines.Engines[0].Id,\n\t\t\tCpuArch:  pulumi.StringRef(\"X86\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestDdmInstance, err := flexibleengine.NewDdmInstance(ctx, \"testDdmInstance\", &flexibleengine.DdmInstanceArgs{\n\t\t\tFlavorId:        pulumi.String(testDdmFlavors.Flavors[0].Id),\n\t\t\tNodeNum:         pulumi.Float64(2),\n\t\t\tEngineId:        pulumi.String(testDdmEngines.Engines[0].Id),\n\t\t\tVpcId:           testVpcV1.VpcV1Id,\n\t\t\tSubnetId:        testVpcSubnetV1.VpcSubnetV1Id,\n\t\t\tSecurityGroupId: testNetworkingSecgroupV2.NetworkingSecgroupV2Id,\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(testAvailabilityZones.Names[0]),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestRdsFlavorsV3, err := flexibleengine.GetRdsFlavorsV3(ctx, &flexibleengine.GetRdsFlavorsV3Args{\n\t\t\tDbType:       \"MySQL\",\n\t\t\tDbVersion:    pulumi.StringRef(\"5.7\"),\n\t\t\tInstanceMode: pulumi.StringRef(\"single\"),\n\t\t\tVcpus:        pulumi.Float64Ref(2),\n\t\t\tMemory:       pulumi.Float64Ref(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestRdsInstanceV3, err := flexibleengine.NewRdsInstanceV3(ctx, \"testRdsInstanceV3\", &flexibleengine.RdsInstanceV3Args{\n\t\t\tFlavor:          pulumi.String(testRdsFlavorsV3.Flavors[0].Name),\n\t\t\tSecurityGroupId: testNetworkingSecgroupV2.NetworkingSecgroupV2Id,\n\t\t\tSubnetId:        testVpcSubnetV1.VpcSubnetV1Id,\n\t\t\tVpcId:           testVpcV1.VpcV1Id,\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(testAvailabilityZones.Names[0]),\n\t\t\t},\n\t\t\tDb: &flexibleengine.RdsInstanceV3DbArgs{\n\t\t\t\tPassword: pulumi.String(\"test_password_123\"),\n\t\t\t\tType:     pulumi.String(\"MySQL\"),\n\t\t\t\tVersion:  pulumi.String(\"5.7\"),\n\t\t\t\tPort:     pulumi.Float64(3306),\n\t\t\t},\n\t\t\tVolume: &flexibleengine.RdsInstanceV3VolumeArgs{\n\t\t\t\tType: pulumi.String(\"ULTRAHIGH\"),\n\t\t\t\tSize: pulumi.Float64(40),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewDdmSchema(ctx, \"testDdmSchema\", &flexibleengine.DdmSchemaArgs{\n\t\t\tInstanceId:  testDdmInstance.DdmInstanceId,\n\t\t\tShardMode:   pulumi.String(\"single\"),\n\t\t\tShardNumber: pulumi.Float64(1),\n\t\t\tDataNodes: flexibleengine.DdmSchemaDataNodeArray{\n\t\t\t\t&flexibleengine.DdmSchemaDataNodeArgs{\n\t\t\t\t\tId:            testRdsInstanceV3.RdsInstanceV3Id,\n\t\t\t\t\tAdminUser:     pulumi.String(\"root\"),\n\t\t\t\t\tAdminPassword: pulumi.String(\"test_password_123\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupRuleV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupRuleV2Args;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetAvailabilityZonesArgs;\nimport com.pulumi.flexibleengine.inputs.GetDdmEnginesArgs;\nimport com.pulumi.flexibleengine.inputs.GetDdmFlavorsArgs;\nimport com.pulumi.flexibleengine.DdmInstance;\nimport com.pulumi.flexibleengine.DdmInstanceArgs;\nimport com.pulumi.flexibleengine.inputs.GetRdsFlavorsV3Args;\nimport com.pulumi.flexibleengine.RdsInstanceV3;\nimport com.pulumi.flexibleengine.RdsInstanceV3Args;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3DbArgs;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3VolumeArgs;\nimport com.pulumi.flexibleengine.DdmSchema;\nimport com.pulumi.flexibleengine.DdmSchemaArgs;\nimport com.pulumi.flexibleengine.inputs.DdmSchemaDataNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testVpcV1 = new VpcV1(\"testVpcV1\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .build());\n\n        var testVpcSubnetV1 = new VpcSubnetV1(\"testVpcSubnetV1\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(testVpcV1.vpcV1Id())\n            .build());\n\n        var testNetworkingSecgroupV2 = new NetworkingSecgroupV2(\"testNetworkingSecgroupV2\");\n\n        var testNetworkingSecgroupRuleV2 = new NetworkingSecgroupRuleV2(\"testNetworkingSecgroupRuleV2\", NetworkingSecgroupRuleV2Args.builder()\n            .securityGroupId(testNetworkingSecgroupV2.networkingSecgroupV2Id())\n            .direction(\"ingress\")\n            .ethertype(\"IPv4\")\n            .remoteGroupId(testNetworkingSecgroupV2.networkingSecgroupV2Id())\n            .build());\n\n        final var testAvailabilityZones = FlexibleengineFunctions.getAvailabilityZones();\n\n        final var testDdmEngines = FlexibleengineFunctions.getDdmEngines(GetDdmEnginesArgs.builder()\n            .version(\"3.0.8.5\")\n            .build());\n\n        final var testDdmFlavors = FlexibleengineFunctions.getDdmFlavors(GetDdmFlavorsArgs.builder()\n            .engineId(testDdmEngines.applyValue(getDdmEnginesResult -> getDdmEnginesResult.engines()[0].id()))\n            .cpuArch(\"X86\")\n            .build());\n\n        var testDdmInstance = new DdmInstance(\"testDdmInstance\", DdmInstanceArgs.builder()\n            .flavorId(testDdmFlavors.applyValue(getDdmFlavorsResult -> getDdmFlavorsResult.flavors()[0].id()))\n            .nodeNum(2)\n            .engineId(testDdmEngines.applyValue(getDdmEnginesResult -> getDdmEnginesResult.engines()[0].id()))\n            .vpcId(testVpcV1.vpcV1Id())\n            .subnetId(testVpcSubnetV1.vpcSubnetV1Id())\n            .securityGroupId(testNetworkingSecgroupV2.networkingSecgroupV2Id())\n            .availabilityZones(testAvailabilityZones.applyValue(getAvailabilityZonesResult -> getAvailabilityZonesResult.names()[0]))\n            .build());\n\n        final var testRdsFlavorsV3 = FlexibleengineFunctions.getRdsFlavorsV3(GetRdsFlavorsV3Args.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"5.7\")\n            .instanceMode(\"single\")\n            .vcpus(2)\n            .memory(4)\n            .build());\n\n        var testRdsInstanceV3 = new RdsInstanceV3(\"testRdsInstanceV3\", RdsInstanceV3Args.builder()\n            .flavor(testRdsFlavorsV3.applyValue(getRdsFlavorsV3Result -> getRdsFlavorsV3Result.flavors()[0].name()))\n            .securityGroupId(testNetworkingSecgroupV2.networkingSecgroupV2Id())\n            .subnetId(testVpcSubnetV1.vpcSubnetV1Id())\n            .vpcId(testVpcV1.vpcV1Id())\n            .availabilityZones(testAvailabilityZones.applyValue(getAvailabilityZonesResult -> getAvailabilityZonesResult.names()[0]))\n            .db(RdsInstanceV3DbArgs.builder()\n                .password(\"test_password_123\")\n                .type(\"MySQL\")\n                .version(\"5.7\")\n                .port(3306)\n                .build())\n            .volume(RdsInstanceV3VolumeArgs.builder()\n                .type(\"ULTRAHIGH\")\n                .size(40)\n                .build())\n            .build());\n\n        var testDdmSchema = new DdmSchema(\"testDdmSchema\", DdmSchemaArgs.builder()\n            .instanceId(testDdmInstance.ddmInstanceId())\n            .shardMode(\"single\")\n            .shardNumber(1)\n            .dataNodes(DdmSchemaDataNodeArgs.builder()\n                .id(testRdsInstanceV3.rdsInstanceV3Id())\n                .adminUser(\"root\")\n                .adminPassword(\"test_password_123\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testVpcV1:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/24\n  testVpcSubnetV1:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${testVpcV1.vpcV1Id}\n  testNetworkingSecgroupV2:\n    type: flexibleengine:NetworkingSecgroupV2\n  testNetworkingSecgroupRuleV2:\n    type: flexibleengine:NetworkingSecgroupRuleV2\n    properties:\n      securityGroupId: ${testNetworkingSecgroupV2.networkingSecgroupV2Id}\n      direction: ingress\n      ethertype: IPv4\n      remoteGroupId: ${testNetworkingSecgroupV2.networkingSecgroupV2Id}\n  testDdmInstance:\n    type: flexibleengine:DdmInstance\n    properties:\n      flavorId: ${testDdmFlavors.flavors[0].id}\n      nodeNum: 2\n      engineId: ${testDdmEngines.engines[0].id}\n      vpcId: ${testVpcV1.vpcV1Id}\n      subnetId: ${testVpcSubnetV1.vpcSubnetV1Id}\n      securityGroupId: ${testNetworkingSecgroupV2.networkingSecgroupV2Id}\n      availabilityZones:\n        - ${testAvailabilityZones.names[0]}\n  testRdsInstanceV3:\n    type: flexibleengine:RdsInstanceV3\n    properties:\n      flavor: ${testRdsFlavorsV3.flavors[0].name}\n      securityGroupId: ${testNetworkingSecgroupV2.networkingSecgroupV2Id}\n      subnetId: ${testVpcSubnetV1.vpcSubnetV1Id}\n      vpcId: ${testVpcV1.vpcV1Id}\n      availabilityZones:\n        - ${testAvailabilityZones.names[0]}\n      db:\n        password: test_password_123\n        type: MySQL\n        version: '5.7'\n        port: 3306\n      volume:\n        type: ULTRAHIGH\n        size: 40\n  testDdmSchema:\n    type: flexibleengine:DdmSchema\n    properties:\n      instanceId: ${testDdmInstance.ddmInstanceId}\n      shardMode: single\n      shardNumber: 1\n      dataNodes:\n        - id: ${testRdsInstanceV3.rdsInstanceV3Id}\n          adminUser: root\n          adminPassword: test_password_123\nvariables:\n  testAvailabilityZones:\n    fn::invoke:\n      function: flexibleengine:getAvailabilityZones\n      arguments: {}\n  testDdmEngines:\n    fn::invoke:\n      function: flexibleengine:getDdmEngines\n      arguments:\n        version: 3.0.8.5\n  testDdmFlavors:\n    fn::invoke:\n      function: flexibleengine:getDdmFlavors\n      arguments:\n        engineId: ${testDdmEngines.engines[0].id}\n        cpuArch: X86\n  testRdsFlavorsV3:\n    fn::invoke:\n      function: flexibleengine:getRdsFlavorsV3\n      arguments:\n        dbType: MySQL\n        dbVersion: '5.7'\n        instanceMode: single\n        vcpus: 2\n        memory: 4\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe DDM schema can be imported using the `<instance_id>/<schema_name>`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/ddmSchema:DdmSchema test 80e373f9-872e-4046-aae9-ccd9ddc55511/schema_name\n```\n\n",
      "properties": {
        "dataNodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdmSchemaDataNode:DdmSchemaDataNode"
          },
          "description": "Specifies the RDS instances associated with the schema.\n\nChanging this parameter will create a new resource.\nThe DataNode structure is documented below.\n"
        },
        "dataVips": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the IP address and port number for connecting to the schema.\n"
        },
        "ddmSchemaId": {
          "type": "string",
          "description": "Specifies the ID of the RDS instance associated with the schema.\n"
        },
        "deleteRdsData": {
          "type": "string",
          "description": "Specifies whether data stored on the associated DB instances is deleted.\n\n<a name=\"DdmSchema_DataNode\"></a>\nThe `DataNode` block supports:\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of a DDM instance.\n\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DDM schema.\nAn instance name starts with a letter, consists of 2 to 48 characters, and can contain only lowercase letters,\ndigits, and underscores (_). Cannot contain keywords information_schema, mysql, performance_schema, or sys.\n\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "shardMode": {
          "type": "string",
          "description": "Specifies the sharding mode of the schema. Values option: **cluster**, **single**.\n+ **cluster**: indicates that the schema is in sharded mode.\n+ **single**: indicates that the schema is in unsharded mode.\n\nChanging this parameter will create a new resource.\n"
        },
        "shardNumber": {
          "type": "number",
          "description": "Specifies the number of shards in the same working mode.\nThe value must be greater than or equal to the number of associated RDS instances and less than or equal\nto the number of associated instances multiplied by 64.\n\nChanging this parameter will create a new resource.\n"
        },
        "shards": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdmSchemaShard:DdmSchemaShard"
          },
          "description": "Indicates the sharding information of the schema.\nThe Shard structure is documented below.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the status of the associated RDS instance.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdmSchemaTimeouts:DdmSchemaTimeouts"
        }
      },
      "type": "object",
      "required": [
        "dataNodes",
        "dataVips",
        "ddmSchemaId",
        "deleteRdsData",
        "instanceId",
        "name",
        "region",
        "shardMode",
        "shardNumber",
        "shards",
        "status"
      ],
      "inputProperties": {
        "dataNodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdmSchemaDataNode:DdmSchemaDataNode"
          },
          "description": "Specifies the RDS instances associated with the schema.\n\nChanging this parameter will create a new resource.\nThe DataNode structure is documented below.\n"
        },
        "ddmSchemaId": {
          "type": "string",
          "description": "Specifies the ID of the RDS instance associated with the schema.\n"
        },
        "deleteRdsData": {
          "type": "string",
          "description": "Specifies whether data stored on the associated DB instances is deleted.\n\n<a name=\"DdmSchema_DataNode\"></a>\nThe `DataNode` block supports:\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of a DDM instance.\n\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DDM schema.\nAn instance name starts with a letter, consists of 2 to 48 characters, and can contain only lowercase letters,\ndigits, and underscores (_). Cannot contain keywords information_schema, mysql, performance_schema, or sys.\n\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "shardMode": {
          "type": "string",
          "description": "Specifies the sharding mode of the schema. Values option: **cluster**, **single**.\n+ **cluster**: indicates that the schema is in sharded mode.\n+ **single**: indicates that the schema is in unsharded mode.\n\nChanging this parameter will create a new resource.\n"
        },
        "shardNumber": {
          "type": "number",
          "description": "Specifies the number of shards in the same working mode.\nThe value must be greater than or equal to the number of associated RDS instances and less than or equal\nto the number of associated instances multiplied by 64.\n\nChanging this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdmSchemaTimeouts:DdmSchemaTimeouts"
        }
      },
      "requiredInputs": [
        "dataNodes",
        "instanceId",
        "shardMode",
        "shardNumber"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DdmSchema resources.\n",
        "properties": {
          "dataNodes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdmSchemaDataNode:DdmSchemaDataNode"
            },
            "description": "Specifies the RDS instances associated with the schema.\n\nChanging this parameter will create a new resource.\nThe DataNode structure is documented below.\n"
          },
          "dataVips": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Indicates the IP address and port number for connecting to the schema.\n"
          },
          "ddmSchemaId": {
            "type": "string",
            "description": "Specifies the ID of the RDS instance associated with the schema.\n"
          },
          "deleteRdsData": {
            "type": "string",
            "description": "Specifies whether data stored on the associated DB instances is deleted.\n\n<a name=\"DdmSchema_DataNode\"></a>\nThe `DataNode` block supports:\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of a DDM instance.\n\nChanging this parameter will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the DDM schema.\nAn instance name starts with a letter, consists of 2 to 48 characters, and can contain only lowercase letters,\ndigits, and underscores (_). Cannot contain keywords information_schema, mysql, performance_schema, or sys.\n\nChanging this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "shardMode": {
            "type": "string",
            "description": "Specifies the sharding mode of the schema. Values option: **cluster**, **single**.\n+ **cluster**: indicates that the schema is in sharded mode.\n+ **single**: indicates that the schema is in unsharded mode.\n\nChanging this parameter will create a new resource.\n"
          },
          "shardNumber": {
            "type": "number",
            "description": "Specifies the number of shards in the same working mode.\nThe value must be greater than or equal to the number of associated RDS instances and less than or equal\nto the number of associated instances multiplied by 64.\n\nChanging this parameter will create a new resource.\n"
          },
          "shards": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdmSchemaShard:DdmSchemaShard"
            },
            "description": "Indicates the sharding information of the schema.\nThe Shard structure is documented below.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the status of the associated RDS instance.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDdmSchemaTimeouts:DdmSchemaTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/ddsAuditLogPolicy:DdsAuditLogPolicy": {
      "description": "Manages a DDS audit log policy resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst keepDays = config.requireObject(\"keepDays\");\nconst test = new flexibleengine.DdsAuditLogPolicy(\"test\", {\n    instanceId: instanceId,\n    keepDays: keepDays,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nkeep_days = config.require_object(\"keepDays\")\ntest = flexibleengine.DdsAuditLogPolicy(\"test\",\n    instance_id=instance_id,\n    keep_days=keep_days)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var keepDays = config.RequireObject<dynamic>(\"keepDays\");\n    var test = new Flexibleengine.DdsAuditLogPolicy(\"test\", new()\n    {\n        InstanceId = instanceId,\n        KeepDays = keepDays,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tkeepDays := cfg.RequireObject(\"keepDays\")\n\t\t_, err := flexibleengine.NewDdsAuditLogPolicy(ctx, \"test\", &flexibleengine.DdsAuditLogPolicyArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tKeepDays:   pulumi.Any(keepDays),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DdsAuditLogPolicy;\nimport com.pulumi.flexibleengine.DdsAuditLogPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var keepDays = config.get(\"keepDays\");\n        var test = new DdsAuditLogPolicy(\"test\", DdsAuditLogPolicyArgs.builder()\n            .instanceId(instanceId)\n            .keepDays(keepDays)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  keepDays:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DdsAuditLogPolicy\n    properties:\n      instanceId: ${instanceId}\n      keepDays: ${keepDays}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe DDS audit log policy can be imported using the instance ID, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/ddsAuditLogPolicy:DdsAuditLogPolicy test <instance_id>\n```\n\n",
      "properties": {
        "auditScope": {
          "type": "string",
          "description": "Specifies the audit scope.\nIf this parameter is left blank or set to **all**, all audit log policies are enabled.\nYou can enter the database or collection name. Use commas (,) to separate multiple databases\nor collections. If the name contains a comma (,), add a dollar sign ($) before the comma\nto distinguish it from the separators. Enter a maximum of 1024 characters. The value\ncannot contain spaces or the following special characters \"[]{}():? The dollar sign ($)\ncan be used only in escape mode.\n"
        },
        "auditTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the audit type. The value is **auth**, **insert**, **delete**, **update**,\n**query** or **command**.\n"
        },
        "ddsAuditLogPolicyId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the DDS instance.\n\nChanging this parameter will create a new resource.\n"
        },
        "keepDays": {
          "type": "number",
          "description": "Specifies the number of days for storing audit logs. The value ranges from 7 to 732.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "reserveAuditlogs": {
          "type": "string",
          "description": "Specifies whether the historical audit logs are\nretained when SQL audit is disabled.\n+ **true**: indicates that historical audit logs are retained when SQL audit is disabled.(default value)\n+ **false**: indicates that existing historical audit logs are deleted when SQL audit is disabled.\n"
        }
      },
      "type": "object",
      "required": [
        "auditScope",
        "auditTypes",
        "ddsAuditLogPolicyId",
        "instanceId",
        "keepDays",
        "region",
        "reserveAuditlogs"
      ],
      "inputProperties": {
        "auditScope": {
          "type": "string",
          "description": "Specifies the audit scope.\nIf this parameter is left blank or set to **all**, all audit log policies are enabled.\nYou can enter the database or collection name. Use commas (,) to separate multiple databases\nor collections. If the name contains a comma (,), add a dollar sign ($) before the comma\nto distinguish it from the separators. Enter a maximum of 1024 characters. The value\ncannot contain spaces or the following special characters \"[]{}():? The dollar sign ($)\ncan be used only in escape mode.\n"
        },
        "auditTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the audit type. The value is **auth**, **insert**, **delete**, **update**,\n**query** or **command**.\n"
        },
        "ddsAuditLogPolicyId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the DDS instance.\n\nChanging this parameter will create a new resource.\n"
        },
        "keepDays": {
          "type": "number",
          "description": "Specifies the number of days for storing audit logs. The value ranges from 7 to 732.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "reserveAuditlogs": {
          "type": "string",
          "description": "Specifies whether the historical audit logs are\nretained when SQL audit is disabled.\n+ **true**: indicates that historical audit logs are retained when SQL audit is disabled.(default value)\n+ **false**: indicates that existing historical audit logs are deleted when SQL audit is disabled.\n"
        }
      },
      "requiredInputs": [
        "instanceId",
        "keepDays"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DdsAuditLogPolicy resources.\n",
        "properties": {
          "auditScope": {
            "type": "string",
            "description": "Specifies the audit scope.\nIf this parameter is left blank or set to **all**, all audit log policies are enabled.\nYou can enter the database or collection name. Use commas (,) to separate multiple databases\nor collections. If the name contains a comma (,), add a dollar sign ($) before the comma\nto distinguish it from the separators. Enter a maximum of 1024 characters. The value\ncannot contain spaces or the following special characters \"[]{}():? The dollar sign ($)\ncan be used only in escape mode.\n"
          },
          "auditTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the audit type. The value is **auth**, **insert**, **delete**, **update**,\n**query** or **command**.\n"
          },
          "ddsAuditLogPolicyId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the DDS instance.\n\nChanging this parameter will create a new resource.\n"
          },
          "keepDays": {
            "type": "number",
            "description": "Specifies the number of days for storing audit logs. The value ranges from 7 to 732.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "reserveAuditlogs": {
            "type": "string",
            "description": "Specifies whether the historical audit logs are\nretained when SQL audit is disabled.\n+ **true**: indicates that historical audit logs are retained when SQL audit is disabled.(default value)\n+ **false**: indicates that existing historical audit logs are deleted when SQL audit is disabled.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/ddsBackup:DdsBackup": {
      "description": "Manages a DDS backup resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst ddsInstanceId = config.requireObject(\"ddsInstanceId\");\nconst name = config.requireObject(\"name\");\nconst test = new flexibleengine.DdsBackup(\"test\", {instanceId: ddsInstanceId});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ndds_instance_id = config.require_object(\"ddsInstanceId\")\nname = config.require_object(\"name\")\ntest = flexibleengine.DdsBackup(\"test\", instance_id=dds_instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var ddsInstanceId = config.RequireObject<dynamic>(\"ddsInstanceId\");\n    var name = config.RequireObject<dynamic>(\"name\");\n    var test = new Flexibleengine.DdsBackup(\"test\", new()\n    {\n        InstanceId = ddsInstanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tddsInstanceId := cfg.RequireObject(\"ddsInstanceId\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\t_, err := flexibleengine.NewDdsBackup(ctx, \"test\", &flexibleengine.DdsBackupArgs{\n\t\t\tInstanceId: pulumi.Any(ddsInstanceId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DdsBackup;\nimport com.pulumi.flexibleengine.DdsBackupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var ddsInstanceId = config.get(\"ddsInstanceId\");\n        final var name = config.get(\"name\");\n        var test = new DdsBackup(\"test\", DdsBackupArgs.builder()\n            .instanceId(ddsInstanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  ddsInstanceId:\n    type: dynamic\n  name:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DdsBackup\n    properties:\n      instanceId: ${ddsInstanceId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe DDS backup can be imported using the instance ID and the backup ID separated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/ddsBackup:DdsBackup test 6fb8b99944c7459da32f751f0edea756br02/0ce123456a00f2591fabc00385ff1234\n```\n\n",
      "properties": {
        "beginTime": {
          "type": "string",
          "description": "Indicates the start time of the backup. The format is yyyy-mm-dd hh:mm:ss. The value is in UTC format.\n"
        },
        "datastores": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsBackupDatastore:DdsBackupDatastore"
          },
          "description": "Indicates the database version.\nThe datastore object structure is documented below.\n"
        },
        "ddsBackupId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the manual backup description.\nChanging this parameter will create a new resource.\n"
        },
        "endTime": {
          "type": "string",
          "description": "Indicates the end time of the backup. The format is yyyy-mm-dd hh:mm:ss. The value is in UTC format.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of a DDS instance.\nChanging this parameter will create a new resource.\n"
        },
        "instanceName": {
          "type": "string",
          "description": "Indicates the name of a DDS instance.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the manual backup name.\nThe value must be 4 to 64 characters in length and start with a letter (from A to Z or from a to z).\nIt is case-sensitive and can contain only letters, digits (from 0 to 9), hyphens (-), and underscores (_).\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "size": {
          "type": "number",
          "description": "Indicates the backup size in KB.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the backup status. Valid value:\n+ **BUILDING**: Backup in progress.\n+ **COMPLETED**: Backup completed.\n+ **FAILED**: Backup failed.\n+ **DISABLED**: Backup being deleted.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdsBackupTimeouts:DdsBackupTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Indicates the DB engine.\n"
        }
      },
      "type": "object",
      "required": [
        "beginTime",
        "datastores",
        "ddsBackupId",
        "description",
        "endTime",
        "instanceId",
        "instanceName",
        "name",
        "region",
        "size",
        "status",
        "type"
      ],
      "inputProperties": {
        "ddsBackupId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the manual backup description.\nChanging this parameter will create a new resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of a DDS instance.\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the manual backup name.\nThe value must be 4 to 64 characters in length and start with a letter (from A to Z or from a to z).\nIt is case-sensitive and can contain only letters, digits (from 0 to 9), hyphens (-), and underscores (_).\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdsBackupTimeouts:DdsBackupTimeouts"
        }
      },
      "requiredInputs": [
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DdsBackup resources.\n",
        "properties": {
          "beginTime": {
            "type": "string",
            "description": "Indicates the start time of the backup. The format is yyyy-mm-dd hh:mm:ss. The value is in UTC format.\n"
          },
          "datastores": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdsBackupDatastore:DdsBackupDatastore"
            },
            "description": "Indicates the database version.\nThe datastore object structure is documented below.\n"
          },
          "ddsBackupId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the manual backup description.\nChanging this parameter will create a new resource.\n"
          },
          "endTime": {
            "type": "string",
            "description": "Indicates the end time of the backup. The format is yyyy-mm-dd hh:mm:ss. The value is in UTC format.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of a DDS instance.\nChanging this parameter will create a new resource.\n"
          },
          "instanceName": {
            "type": "string",
            "description": "Indicates the name of a DDS instance.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the manual backup name.\nThe value must be 4 to 64 characters in length and start with a letter (from A to Z or from a to z).\nIt is case-sensitive and can contain only letters, digits (from 0 to 9), hyphens (-), and underscores (_).\nChanging this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "size": {
            "type": "number",
            "description": "Indicates the backup size in KB.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the backup status. Valid value:\n+ **BUILDING**: Backup in progress.\n+ **COMPLETED**: Backup completed.\n+ **FAILED**: Backup failed.\n+ **DISABLED**: Backup being deleted.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDdsBackupTimeouts:DdsBackupTimeouts"
          },
          "type": {
            "type": "string",
            "description": "Indicates the DB engine.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/ddsDatabaseRole:DdsDatabaseRole": {
      "description": "Manages a database role resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst roleName = config.requireObject(\"roleName\");\nconst dbName = config.requireObject(\"dbName\");\nconst ownedRoleName = config.requireObject(\"ownedRoleName\");\nconst ownedRoleDbName = config.requireObject(\"ownedRoleDbName\");\nconst test = new flexibleengine.DdsDatabaseRole(\"test\", {\n    instanceId: instanceId,\n    dbName: dbName,\n    roles: [{\n        name: ownedRoleName,\n        dbName: ownedRoleDbName,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nrole_name = config.require_object(\"roleName\")\ndb_name = config.require_object(\"dbName\")\nowned_role_name = config.require_object(\"ownedRoleName\")\nowned_role_db_name = config.require_object(\"ownedRoleDbName\")\ntest = flexibleengine.DdsDatabaseRole(\"test\",\n    instance_id=instance_id,\n    db_name=db_name,\n    roles=[{\n        \"name\": owned_role_name,\n        \"db_name\": owned_role_db_name,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var roleName = config.RequireObject<dynamic>(\"roleName\");\n    var dbName = config.RequireObject<dynamic>(\"dbName\");\n    var ownedRoleName = config.RequireObject<dynamic>(\"ownedRoleName\");\n    var ownedRoleDbName = config.RequireObject<dynamic>(\"ownedRoleDbName\");\n    var test = new Flexibleengine.DdsDatabaseRole(\"test\", new()\n    {\n        InstanceId = instanceId,\n        DbName = dbName,\n        Roles = new[]\n        {\n            new Flexibleengine.Inputs.DdsDatabaseRoleRoleArgs\n            {\n                Name = ownedRoleName,\n                DbName = ownedRoleDbName,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\troleName := cfg.RequireObject(\"roleName\")\n\t\tdbName := cfg.RequireObject(\"dbName\")\n\t\townedRoleName := cfg.RequireObject(\"ownedRoleName\")\n\t\townedRoleDbName := cfg.RequireObject(\"ownedRoleDbName\")\n\t\t_, err := flexibleengine.NewDdsDatabaseRole(ctx, \"test\", &flexibleengine.DdsDatabaseRoleArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tDbName:     pulumi.Any(dbName),\n\t\t\tRoles: flexibleengine.DdsDatabaseRoleRoleArray{\n\t\t\t\t&flexibleengine.DdsDatabaseRoleRoleArgs{\n\t\t\t\t\tName:   pulumi.Any(ownedRoleName),\n\t\t\t\t\tDbName: pulumi.Any(ownedRoleDbName),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DdsDatabaseRole;\nimport com.pulumi.flexibleengine.DdsDatabaseRoleArgs;\nimport com.pulumi.flexibleengine.inputs.DdsDatabaseRoleRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var roleName = config.get(\"roleName\");\n        final var dbName = config.get(\"dbName\");\n        final var ownedRoleName = config.get(\"ownedRoleName\");\n        final var ownedRoleDbName = config.get(\"ownedRoleDbName\");\n        var test = new DdsDatabaseRole(\"test\", DdsDatabaseRoleArgs.builder()\n            .instanceId(instanceId)\n            .dbName(dbName)\n            .roles(DdsDatabaseRoleRoleArgs.builder()\n                .name(ownedRoleName)\n                .dbName(ownedRoleDbName)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  roleName:\n    type: dynamic\n  dbName:\n    type: dynamic\n  ownedRoleName:\n    type: dynamic\n  ownedRoleDbName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DdsDatabaseRole\n    properties:\n      instanceId: ${instanceId}\n      dbName: ${dbName}\n      roles:\n        - name: ${ownedRoleName}\n          dbName: ${ownedRoleDbName}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDatabase roles can be imported using their `id` (combination of `instance_id`, `db_name` and `name`), separated by a\n\nslash (/), e.g.\n\n```sh\n$ pulumi import flexibleengine:index/ddsDatabaseRole:DdsDatabaseRole test <instance_id>/<db_name>/<name>\n```\n\n",
      "properties": {
        "dbName": {
          "type": "string",
          "description": "Specifies the database name to which this owned role belongs.\nChanging this parameter will create a new role.\n"
        },
        "ddsDatabaseRoleId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "inheritedPrivileges": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseRoleInheritedPrivilege:DdsDatabaseRoleInheritedPrivilege"
          },
          "description": "The list of database privileges owned by the current role, includes all privileges\ninherited by owned roles. The object structure is documented below.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the DDS instance ID to which the role belongs.\nChanging this parameter will create a new role.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of role owned by the current role.\nThe name can contain `1` to `64` characters, only letters, digits, underscores (_), hyphens (-) and dots (.) are\nallowed. Changing this parameter will create a new role.\n"
        },
        "privileges": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseRolePrivilege:DdsDatabaseRolePrivilege"
          },
          "description": "The list of database privileges owned by the current role.\nThe object structure is documented below.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the DDS instance is located.\nChanging this parameter will create a new role.\n"
        },
        "roles": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseRoleRole:DdsDatabaseRoleRole"
          },
          "description": "Specifies the list of roles owned by the current role.\nThe object structure is documented below.\nChanging this parameter will create a new role.\n\n<a name=\"dds_database_owned_roles\"></a>\nThe `roles` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdsDatabaseRoleTimeouts:DdsDatabaseRoleTimeouts"
        }
      },
      "type": "object",
      "required": [
        "dbName",
        "ddsDatabaseRoleId",
        "inheritedPrivileges",
        "instanceId",
        "name",
        "privileges",
        "region"
      ],
      "inputProperties": {
        "dbName": {
          "type": "string",
          "description": "Specifies the database name to which this owned role belongs.\nChanging this parameter will create a new role.\n"
        },
        "ddsDatabaseRoleId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the DDS instance ID to which the role belongs.\nChanging this parameter will create a new role.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of role owned by the current role.\nThe name can contain `1` to `64` characters, only letters, digits, underscores (_), hyphens (-) and dots (.) are\nallowed. Changing this parameter will create a new role.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the DDS instance is located.\nChanging this parameter will create a new role.\n"
        },
        "roles": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseRoleRole:DdsDatabaseRoleRole"
          },
          "description": "Specifies the list of roles owned by the current role.\nThe object structure is documented below.\nChanging this parameter will create a new role.\n\n<a name=\"dds_database_owned_roles\"></a>\nThe `roles` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdsDatabaseRoleTimeouts:DdsDatabaseRoleTimeouts"
        }
      },
      "requiredInputs": [
        "dbName",
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DdsDatabaseRole resources.\n",
        "properties": {
          "dbName": {
            "type": "string",
            "description": "Specifies the database name to which this owned role belongs.\nChanging this parameter will create a new role.\n"
          },
          "ddsDatabaseRoleId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "inheritedPrivileges": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdsDatabaseRoleInheritedPrivilege:DdsDatabaseRoleInheritedPrivilege"
            },
            "description": "The list of database privileges owned by the current role, includes all privileges\ninherited by owned roles. The object structure is documented below.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the DDS instance ID to which the role belongs.\nChanging this parameter will create a new role.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of role owned by the current role.\nThe name can contain `1` to `64` characters, only letters, digits, underscores (_), hyphens (-) and dots (.) are\nallowed. Changing this parameter will create a new role.\n"
          },
          "privileges": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdsDatabaseRolePrivilege:DdsDatabaseRolePrivilege"
            },
            "description": "The list of database privileges owned by the current role.\nThe object structure is documented below.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the DDS instance is located.\nChanging this parameter will create a new role.\n"
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdsDatabaseRoleRole:DdsDatabaseRoleRole"
            },
            "description": "Specifies the list of roles owned by the current role.\nThe object structure is documented below.\nChanging this parameter will create a new role.\n\n<a name=\"dds_database_owned_roles\"></a>\nThe `roles` block supports:\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseRoleTimeouts:DdsDatabaseRoleTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/ddsDatabaseUser:DdsDatabaseUser": {
      "description": "Manages a database user resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst userName = config.requireObject(\"userName\");\nconst userPassword = config.requireObject(\"userPassword\");\nconst ownedRoleName = config.requireObject(\"ownedRoleName\");\nconst ownedRoleDbName = config.requireObject(\"ownedRoleDbName\");\nconst test = new flexibleengine.DdsDatabaseUser(\"test\", {\n    instanceId: instanceId,\n    password: userPassword,\n    dbName: _var.db_name,\n    roles: [{\n        name: ownedRoleName,\n        dbName: ownedRoleDbName,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nuser_name = config.require_object(\"userName\")\nuser_password = config.require_object(\"userPassword\")\nowned_role_name = config.require_object(\"ownedRoleName\")\nowned_role_db_name = config.require_object(\"ownedRoleDbName\")\ntest = flexibleengine.DdsDatabaseUser(\"test\",\n    instance_id=instance_id,\n    password=user_password,\n    db_name=var[\"db_name\"],\n    roles=[{\n        \"name\": owned_role_name,\n        \"db_name\": owned_role_db_name,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var userName = config.RequireObject<dynamic>(\"userName\");\n    var userPassword = config.RequireObject<dynamic>(\"userPassword\");\n    var ownedRoleName = config.RequireObject<dynamic>(\"ownedRoleName\");\n    var ownedRoleDbName = config.RequireObject<dynamic>(\"ownedRoleDbName\");\n    var test = new Flexibleengine.DdsDatabaseUser(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Password = userPassword,\n        DbName = @var.Db_name,\n        Roles = new[]\n        {\n            new Flexibleengine.Inputs.DdsDatabaseUserRoleArgs\n            {\n                Name = ownedRoleName,\n                DbName = ownedRoleDbName,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tuserName := cfg.RequireObject(\"userName\")\n\t\tuserPassword := cfg.RequireObject(\"userPassword\")\n\t\townedRoleName := cfg.RequireObject(\"ownedRoleName\")\n\t\townedRoleDbName := cfg.RequireObject(\"ownedRoleDbName\")\n\t\t_, err := flexibleengine.NewDdsDatabaseUser(ctx, \"test\", &flexibleengine.DdsDatabaseUserArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tPassword:   pulumi.Any(userPassword),\n\t\t\tDbName:     pulumi.Any(_var.Db_name),\n\t\t\tRoles: flexibleengine.DdsDatabaseUserRoleArray{\n\t\t\t\t&flexibleengine.DdsDatabaseUserRoleArgs{\n\t\t\t\t\tName:   pulumi.Any(ownedRoleName),\n\t\t\t\t\tDbName: pulumi.Any(ownedRoleDbName),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DdsDatabaseUser;\nimport com.pulumi.flexibleengine.DdsDatabaseUserArgs;\nimport com.pulumi.flexibleengine.inputs.DdsDatabaseUserRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var userName = config.get(\"userName\");\n        final var userPassword = config.get(\"userPassword\");\n        final var ownedRoleName = config.get(\"ownedRoleName\");\n        final var ownedRoleDbName = config.get(\"ownedRoleDbName\");\n        var test = new DdsDatabaseUser(\"test\", DdsDatabaseUserArgs.builder()\n            .instanceId(instanceId)\n            .password(userPassword)\n            .dbName(var_.db_name())\n            .roles(DdsDatabaseUserRoleArgs.builder()\n                .name(ownedRoleName)\n                .dbName(ownedRoleDbName)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  userName:\n    type: dynamic\n  userPassword:\n    type: dynamic\n  ownedRoleName:\n    type: dynamic\n  ownedRoleDbName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DdsDatabaseUser\n    properties:\n      instanceId: ${instanceId}\n      password: ${userPassword}\n      dbName: ${var.db_name}\n      roles:\n        - name: ${ownedRoleName}\n          dbName: ${ownedRoleDbName}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDatabase users can be imported using their `id` (combination of `instance_id`, `db_name` and `name`), separated by a\n\nslash (/), e.g.\n\n```sh\n$ pulumi import flexibleengine:index/ddsDatabaseUser:DdsDatabaseUser test <instance_id>/<db_name>/<name>\n```\n\nDue to security reason, the imported state may not be identical to your resource definition (`password` parameter).\n\nIt is generally recommended running `pulumi preview` after importing a user resource.\n\nYou can then decide if changes should be applied to the user, or the resource definition should be updated to align with\n\nthe user. Also you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_dds_database_user\" \"test\" {\n\n  ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      password,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "dbName": {
          "type": "string",
          "description": "Specifies the database name to which this owned role belongs.\nChanging this parameter will create a new user.\n"
        },
        "ddsDatabaseUserId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "inheritedPrivileges": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseUserInheritedPrivilege:DdsDatabaseUserInheritedPrivilege"
          },
          "description": "The list of database privileges owned by the current user, includes all privileges\ninherited by owned roles. The object structure is documented below.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the DDS instance ID to which the user belongs.\nChanging this parameter will create a new user.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of role owned by the current user.\nThe name can contain `1` to `64` characters, only letters, digits, underscores (_), hyphens (-) and dots (.) are\nallowed. Changing this parameter will create a new user.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the user password.\nThe assword content must meet the following conditions:\n",
          "secret": true
        },
        "privileges": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseUserPrivilege:DdsDatabaseUserPrivilege"
          },
          "description": "The list of database privileges owned by the current user.\nThe object structure is documented below.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the DDS instance is located.\nChanging this parameter will create a new user.\n"
        },
        "roles": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseUserRole:DdsDatabaseUserRole"
          },
          "description": "Specifies the list of roles owned by the current user.\nThe object structure is documented below. Changing this parameter will create a new user.\n\n<a name=\"dds_database_owned_roles\"></a>\nThe `roles` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdsDatabaseUserTimeouts:DdsDatabaseUserTimeouts"
        }
      },
      "type": "object",
      "required": [
        "dbName",
        "ddsDatabaseUserId",
        "inheritedPrivileges",
        "instanceId",
        "name",
        "password",
        "privileges",
        "region",
        "roles"
      ],
      "inputProperties": {
        "dbName": {
          "type": "string",
          "description": "Specifies the database name to which this owned role belongs.\nChanging this parameter will create a new user.\n"
        },
        "ddsDatabaseUserId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the DDS instance ID to which the user belongs.\nChanging this parameter will create a new user.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of role owned by the current user.\nThe name can contain `1` to `64` characters, only letters, digits, underscores (_), hyphens (-) and dots (.) are\nallowed. Changing this parameter will create a new user.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the user password.\nThe assword content must meet the following conditions:\n",
          "secret": true
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the DDS instance is located.\nChanging this parameter will create a new user.\n"
        },
        "roles": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseUserRole:DdsDatabaseUserRole"
          },
          "description": "Specifies the list of roles owned by the current user.\nThe object structure is documented below. Changing this parameter will create a new user.\n\n<a name=\"dds_database_owned_roles\"></a>\nThe `roles` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdsDatabaseUserTimeouts:DdsDatabaseUserTimeouts"
        }
      },
      "requiredInputs": [
        "dbName",
        "instanceId",
        "password",
        "roles"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DdsDatabaseUser resources.\n",
        "properties": {
          "dbName": {
            "type": "string",
            "description": "Specifies the database name to which this owned role belongs.\nChanging this parameter will create a new user.\n"
          },
          "ddsDatabaseUserId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "inheritedPrivileges": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdsDatabaseUserInheritedPrivilege:DdsDatabaseUserInheritedPrivilege"
            },
            "description": "The list of database privileges owned by the current user, includes all privileges\ninherited by owned roles. The object structure is documented below.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the DDS instance ID to which the user belongs.\nChanging this parameter will create a new user.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of role owned by the current user.\nThe name can contain `1` to `64` characters, only letters, digits, underscores (_), hyphens (-) and dots (.) are\nallowed. Changing this parameter will create a new user.\n"
          },
          "password": {
            "type": "string",
            "description": "Specifies the user password.\nThe assword content must meet the following conditions:\n",
            "secret": true
          },
          "privileges": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdsDatabaseUserPrivilege:DdsDatabaseUserPrivilege"
            },
            "description": "The list of database privileges owned by the current user.\nThe object structure is documented below.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the DDS instance is located.\nChanging this parameter will create a new user.\n"
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdsDatabaseUserRole:DdsDatabaseUserRole"
            },
            "description": "Specifies the list of roles owned by the current user.\nThe object structure is documented below. Changing this parameter will create a new user.\n\n<a name=\"dds_database_owned_roles\"></a>\nThe `roles` block supports:\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDdsDatabaseUserTimeouts:DdsDatabaseUserTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/ddsInstanceV3:DdsInstanceV3": {
      "description": "Manages dds instance resource within FlexibleEngine\n\n## Example Usage\n\n### Creating A Cluster Community Edition\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst exampleSecgroup = new flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", {description: \"My neutron security group\"});\nconst instance = new flexibleengine.DdsInstanceV3(\"instance\", {\n    region: \"eu-west-0\",\n    availabilityZone: \"eu-west-0a\",\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    securityGroupId: exampleSecgroup.networkingSecgroupV2Id,\n    password: \"Test@123\",\n    mode: \"Sharding\",\n    datastore: {\n        type: \"DDS-Community\",\n        version: \"3.4\",\n        storageEngine: \"wiredTiger\",\n    },\n    flavors: [\n        {\n            type: \"mongos\",\n            num: 2,\n            specCode: \"dds.mongodb.s3.medium.4.mongos\",\n        },\n        {\n            type: \"shard\",\n            num: 2,\n            storage: \"ULTRAHIGH\",\n            size: 20,\n            specCode: \"dds.mongodb.s3.medium.4.shard\",\n        },\n        {\n            type: \"config\",\n            num: 1,\n            storage: \"ULTRAHIGH\",\n            size: 20,\n            specCode: \"dds.mongodb.s3.large.2.config\",\n        },\n    ],\n    backupStrategy: {\n        startTime: \"08:00-09:00\",\n        keepDays: 8,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nexample_secgroup = flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", description=\"My neutron security group\")\ninstance = flexibleengine.DdsInstanceV3(\"instance\",\n    region=\"eu-west-0\",\n    availability_zone=\"eu-west-0a\",\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    security_group_id=example_secgroup.networking_secgroup_v2_id,\n    password=\"Test@123\",\n    mode=\"Sharding\",\n    datastore={\n        \"type\": \"DDS-Community\",\n        \"version\": \"3.4\",\n        \"storage_engine\": \"wiredTiger\",\n    },\n    flavors=[\n        {\n            \"type\": \"mongos\",\n            \"num\": 2,\n            \"spec_code\": \"dds.mongodb.s3.medium.4.mongos\",\n        },\n        {\n            \"type\": \"shard\",\n            \"num\": 2,\n            \"storage\": \"ULTRAHIGH\",\n            \"size\": 20,\n            \"spec_code\": \"dds.mongodb.s3.medium.4.shard\",\n        },\n        {\n            \"type\": \"config\",\n            \"num\": 1,\n            \"storage\": \"ULTRAHIGH\",\n            \"size\": 20,\n            \"spec_code\": \"dds.mongodb.s3.large.2.config\",\n        },\n    ],\n    backup_strategy={\n        \"start_time\": \"08:00-09:00\",\n        \"keep_days\": 8,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var exampleSecgroup = new Flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", new()\n    {\n        Description = \"My neutron security group\",\n    });\n\n    var instance = new Flexibleengine.DdsInstanceV3(\"instance\", new()\n    {\n        Region = \"eu-west-0\",\n        AvailabilityZone = \"eu-west-0a\",\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        SecurityGroupId = exampleSecgroup.NetworkingSecgroupV2Id,\n        Password = \"Test@123\",\n        Mode = \"Sharding\",\n        Datastore = new Flexibleengine.Inputs.DdsInstanceV3DatastoreArgs\n        {\n            Type = \"DDS-Community\",\n            Version = \"3.4\",\n            StorageEngine = \"wiredTiger\",\n        },\n        Flavors = new[]\n        {\n            new Flexibleengine.Inputs.DdsInstanceV3FlavorArgs\n            {\n                Type = \"mongos\",\n                Num = 2,\n                SpecCode = \"dds.mongodb.s3.medium.4.mongos\",\n            },\n            new Flexibleengine.Inputs.DdsInstanceV3FlavorArgs\n            {\n                Type = \"shard\",\n                Num = 2,\n                Storage = \"ULTRAHIGH\",\n                Size = 20,\n                SpecCode = \"dds.mongodb.s3.medium.4.shard\",\n            },\n            new Flexibleengine.Inputs.DdsInstanceV3FlavorArgs\n            {\n                Type = \"config\",\n                Num = 1,\n                Storage = \"ULTRAHIGH\",\n                Size = 20,\n                SpecCode = \"dds.mongodb.s3.large.2.config\",\n            },\n        },\n        BackupStrategy = new Flexibleengine.Inputs.DdsInstanceV3BackupStrategyArgs\n        {\n            StartTime = \"08:00-09:00\",\n            KeepDays = 8,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecgroup, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"exampleSecgroup\", &flexibleengine.NetworkingSecgroupV2Args{\n\t\t\tDescription: pulumi.String(\"My neutron security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewDdsInstanceV3(ctx, \"instance\", &flexibleengine.DdsInstanceV3Args{\n\t\t\tRegion:           pulumi.String(\"eu-west-0\"),\n\t\t\tAvailabilityZone: pulumi.String(\"eu-west-0a\"),\n\t\t\tVpcId:            exampleVpc.VpcV1Id,\n\t\t\tSubnetId:         exampleSubnet.VpcSubnetV1Id,\n\t\t\tSecurityGroupId:  exampleSecgroup.NetworkingSecgroupV2Id,\n\t\t\tPassword:         pulumi.String(\"Test@123\"),\n\t\t\tMode:             pulumi.String(\"Sharding\"),\n\t\t\tDatastore: &flexibleengine.DdsInstanceV3DatastoreArgs{\n\t\t\t\tType:          pulumi.String(\"DDS-Community\"),\n\t\t\t\tVersion:       pulumi.String(\"3.4\"),\n\t\t\t\tStorageEngine: pulumi.String(\"wiredTiger\"),\n\t\t\t},\n\t\t\tFlavors: flexibleengine.DdsInstanceV3FlavorArray{\n\t\t\t\t&flexibleengine.DdsInstanceV3FlavorArgs{\n\t\t\t\t\tType:     pulumi.String(\"mongos\"),\n\t\t\t\t\tNum:      pulumi.Float64(2),\n\t\t\t\t\tSpecCode: pulumi.String(\"dds.mongodb.s3.medium.4.mongos\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.DdsInstanceV3FlavorArgs{\n\t\t\t\t\tType:     pulumi.String(\"shard\"),\n\t\t\t\t\tNum:      pulumi.Float64(2),\n\t\t\t\t\tStorage:  pulumi.String(\"ULTRAHIGH\"),\n\t\t\t\t\tSize:     pulumi.Float64(20),\n\t\t\t\t\tSpecCode: pulumi.String(\"dds.mongodb.s3.medium.4.shard\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.DdsInstanceV3FlavorArgs{\n\t\t\t\t\tType:     pulumi.String(\"config\"),\n\t\t\t\t\tNum:      pulumi.Float64(1),\n\t\t\t\t\tStorage:  pulumi.String(\"ULTRAHIGH\"),\n\t\t\t\t\tSize:     pulumi.Float64(20),\n\t\t\t\t\tSpecCode: pulumi.String(\"dds.mongodb.s3.large.2.config\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackupStrategy: &flexibleengine.DdsInstanceV3BackupStrategyArgs{\n\t\t\t\tStartTime: pulumi.String(\"08:00-09:00\"),\n\t\t\t\tKeepDays:  pulumi.Float64(8),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2Args;\nimport com.pulumi.flexibleengine.DdsInstanceV3;\nimport com.pulumi.flexibleengine.DdsInstanceV3Args;\nimport com.pulumi.flexibleengine.inputs.DdsInstanceV3DatastoreArgs;\nimport com.pulumi.flexibleengine.inputs.DdsInstanceV3FlavorArgs;\nimport com.pulumi.flexibleengine.inputs.DdsInstanceV3BackupStrategyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var exampleSecgroup = new NetworkingSecgroupV2(\"exampleSecgroup\", NetworkingSecgroupV2Args.builder()\n            .description(\"My neutron security group\")\n            .build());\n\n        var instance = new DdsInstanceV3(\"instance\", DdsInstanceV3Args.builder()\n            .region(\"eu-west-0\")\n            .availabilityZone(\"eu-west-0a\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .securityGroupId(exampleSecgroup.networkingSecgroupV2Id())\n            .password(\"Test@123\")\n            .mode(\"Sharding\")\n            .datastore(DdsInstanceV3DatastoreArgs.builder()\n                .type(\"DDS-Community\")\n                .version(\"3.4\")\n                .storageEngine(\"wiredTiger\")\n                .build())\n            .flavors(            \n                DdsInstanceV3FlavorArgs.builder()\n                    .type(\"mongos\")\n                    .num(2)\n                    .specCode(\"dds.mongodb.s3.medium.4.mongos\")\n                    .build(),\n                DdsInstanceV3FlavorArgs.builder()\n                    .type(\"shard\")\n                    .num(2)\n                    .storage(\"ULTRAHIGH\")\n                    .size(20)\n                    .specCode(\"dds.mongodb.s3.medium.4.shard\")\n                    .build(),\n                DdsInstanceV3FlavorArgs.builder()\n                    .type(\"config\")\n                    .num(1)\n                    .storage(\"ULTRAHIGH\")\n                    .size(20)\n                    .specCode(\"dds.mongodb.s3.large.2.config\")\n                    .build())\n            .backupStrategy(DdsInstanceV3BackupStrategyArgs.builder()\n                .startTime(\"08:00-09:00\")\n                .keepDays(\"8\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  exampleSecgroup:\n    type: flexibleengine:NetworkingSecgroupV2\n    properties:\n      description: My neutron security group\n  instance:\n    type: flexibleengine:DdsInstanceV3\n    properties:\n      region: eu-west-0\n      availabilityZone: eu-west-0a\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      securityGroupId: ${exampleSecgroup.networkingSecgroupV2Id}\n      password: Test@123\n      mode: Sharding\n      datastore:\n        type: DDS-Community\n        version: '3.4'\n        storageEngine: wiredTiger\n      flavors:\n        - type: mongos\n          num: 2\n          specCode: dds.mongodb.s3.medium.4.mongos\n        - type: shard\n          num: 2\n          storage: ULTRAHIGH\n          size: 20\n          specCode: dds.mongodb.s3.medium.4.shard\n        - type: config\n          num: 1\n          storage: ULTRAHIGH\n          size: 20\n          specCode: dds.mongodb.s3.large.2.config\n      backupStrategy:\n        startTime: 08:00-09:00\n        keepDays: '8'\n```\n<!--End PulumiCodeChooser -->\n\n\n### Creating A Replica Set\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst instance = new flexibleengine.DdsInstanceV3(\"instance\", {\n    region: \"eu-west-0\",\n    availabilityZone: \"eu-west-0a\",\n    vpcId: flexibleengine_vpc_v1.example_vpc.id,\n    subnetId: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    securityGroupId: flexibleengine_networking_secgroup_v2.example_secgroup.id,\n    password: \"Test@123\",\n    mode: \"ReplicaSet\",\n    datastore: {\n        type: \"DDS-Community\",\n        version: \"3.4\",\n        storageEngine: \"wiredTiger\",\n    },\n    flavors: [{\n        type: \"replica\",\n        num: 1,\n        storage: \"ULTRAHIGH\",\n        size: 30,\n        specCode: \"dds.mongodb.s3.medium.4.repset\",\n    }],\n    backupStrategy: {\n        startTime: \"08:00-09:00\",\n        keepDays: 8,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ninstance = flexibleengine.DdsInstanceV3(\"instance\",\n    region=\"eu-west-0\",\n    availability_zone=\"eu-west-0a\",\n    vpc_id=flexibleengine_vpc_v1[\"example_vpc\"][\"id\"],\n    subnet_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    security_group_id=flexibleengine_networking_secgroup_v2[\"example_secgroup\"][\"id\"],\n    password=\"Test@123\",\n    mode=\"ReplicaSet\",\n    datastore={\n        \"type\": \"DDS-Community\",\n        \"version\": \"3.4\",\n        \"storage_engine\": \"wiredTiger\",\n    },\n    flavors=[{\n        \"type\": \"replica\",\n        \"num\": 1,\n        \"storage\": \"ULTRAHIGH\",\n        \"size\": 30,\n        \"spec_code\": \"dds.mongodb.s3.medium.4.repset\",\n    }],\n    backup_strategy={\n        \"start_time\": \"08:00-09:00\",\n        \"keep_days\": 8,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance = new Flexibleengine.DdsInstanceV3(\"instance\", new()\n    {\n        Region = \"eu-west-0\",\n        AvailabilityZone = \"eu-west-0a\",\n        VpcId = flexibleengine_vpc_v1.Example_vpc.Id,\n        SubnetId = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n        SecurityGroupId = flexibleengine_networking_secgroup_v2.Example_secgroup.Id,\n        Password = \"Test@123\",\n        Mode = \"ReplicaSet\",\n        Datastore = new Flexibleengine.Inputs.DdsInstanceV3DatastoreArgs\n        {\n            Type = \"DDS-Community\",\n            Version = \"3.4\",\n            StorageEngine = \"wiredTiger\",\n        },\n        Flavors = new[]\n        {\n            new Flexibleengine.Inputs.DdsInstanceV3FlavorArgs\n            {\n                Type = \"replica\",\n                Num = 1,\n                Storage = \"ULTRAHIGH\",\n                Size = 30,\n                SpecCode = \"dds.mongodb.s3.medium.4.repset\",\n            },\n        },\n        BackupStrategy = new Flexibleengine.Inputs.DdsInstanceV3BackupStrategyArgs\n        {\n            StartTime = \"08:00-09:00\",\n            KeepDays = 8,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewDdsInstanceV3(ctx, \"instance\", &flexibleengine.DdsInstanceV3Args{\n\t\t\tRegion:           pulumi.String(\"eu-west-0\"),\n\t\t\tAvailabilityZone: pulumi.String(\"eu-west-0a\"),\n\t\t\tVpcId:            pulumi.Any(flexibleengine_vpc_v1.Example_vpc.Id),\n\t\t\tSubnetId:         pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\tSecurityGroupId:  pulumi.Any(flexibleengine_networking_secgroup_v2.Example_secgroup.Id),\n\t\t\tPassword:         pulumi.String(\"Test@123\"),\n\t\t\tMode:             pulumi.String(\"ReplicaSet\"),\n\t\t\tDatastore: &flexibleengine.DdsInstanceV3DatastoreArgs{\n\t\t\t\tType:          pulumi.String(\"DDS-Community\"),\n\t\t\t\tVersion:       pulumi.String(\"3.4\"),\n\t\t\t\tStorageEngine: pulumi.String(\"wiredTiger\"),\n\t\t\t},\n\t\t\tFlavors: flexibleengine.DdsInstanceV3FlavorArray{\n\t\t\t\t&flexibleengine.DdsInstanceV3FlavorArgs{\n\t\t\t\t\tType:     pulumi.String(\"replica\"),\n\t\t\t\t\tNum:      pulumi.Float64(1),\n\t\t\t\t\tStorage:  pulumi.String(\"ULTRAHIGH\"),\n\t\t\t\t\tSize:     pulumi.Float64(30),\n\t\t\t\t\tSpecCode: pulumi.String(\"dds.mongodb.s3.medium.4.repset\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackupStrategy: &flexibleengine.DdsInstanceV3BackupStrategyArgs{\n\t\t\t\tStartTime: pulumi.String(\"08:00-09:00\"),\n\t\t\t\tKeepDays:  pulumi.Float64(8),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DdsInstanceV3;\nimport com.pulumi.flexibleengine.DdsInstanceV3Args;\nimport com.pulumi.flexibleengine.inputs.DdsInstanceV3DatastoreArgs;\nimport com.pulumi.flexibleengine.inputs.DdsInstanceV3FlavorArgs;\nimport com.pulumi.flexibleengine.inputs.DdsInstanceV3BackupStrategyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance = new DdsInstanceV3(\"instance\", DdsInstanceV3Args.builder()\n            .region(\"eu-west-0\")\n            .availabilityZone(\"eu-west-0a\")\n            .vpcId(flexibleengine_vpc_v1.example_vpc().id())\n            .subnetId(flexibleengine_vpc_subnet_v1.example_subnet().id())\n            .securityGroupId(flexibleengine_networking_secgroup_v2.example_secgroup().id())\n            .password(\"Test@123\")\n            .mode(\"ReplicaSet\")\n            .datastore(DdsInstanceV3DatastoreArgs.builder()\n                .type(\"DDS-Community\")\n                .version(\"3.4\")\n                .storageEngine(\"wiredTiger\")\n                .build())\n            .flavors(DdsInstanceV3FlavorArgs.builder()\n                .type(\"replica\")\n                .num(1)\n                .storage(\"ULTRAHIGH\")\n                .size(30)\n                .specCode(\"dds.mongodb.s3.medium.4.repset\")\n                .build())\n            .backupStrategy(DdsInstanceV3BackupStrategyArgs.builder()\n                .startTime(\"08:00-09:00\")\n                .keepDays(\"8\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance:\n    type: flexibleengine:DdsInstanceV3\n    properties:\n      region: eu-west-0\n      availabilityZone: eu-west-0a\n      vpcId: ${flexibleengine_vpc_v1.example_vpc.id}\n      subnetId: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n      securityGroupId: ${flexibleengine_networking_secgroup_v2.example_secgroup.id}\n      password: Test@123\n      mode: ReplicaSet\n      datastore:\n        type: DDS-Community\n        version: '3.4'\n        storageEngine: wiredTiger\n      flavors:\n        - type: replica\n          num: 1\n          storage: ULTRAHIGH\n          size: 30\n          specCode: dds.mongodb.s3.medium.4.repset\n      backupStrategy:\n        startTime: 08:00-09:00\n        keepDays: '8'\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the ID of the availability zone. Changing\nthis creates a new instance.\n"
        },
        "backupStrategy": {
          "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3BackupStrategy:DdsInstanceV3BackupStrategy",
          "description": "Specifies the advanced backup policy.\nThe backup_strategy object structure is documented below. Changing this creates a new instance.\n"
        },
        "datastore": {
          "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3Datastore:DdsInstanceV3Datastore",
          "description": "Specifies database information. The datastore object\nstructure is documented below. Changing this creates a new instance.\n"
        },
        "dbUsername": {
          "type": "string",
          "description": "Indicates the DB Administator name.\n"
        },
        "ddsInstanceV3Id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "diskEncryptionId": {
          "type": "string",
          "description": "Specifies the disk encryption ID of the instance.\nChanging this creates a new instance.\n",
          "secret": true
        },
        "flavors": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3Flavor:DdsInstanceV3Flavor"
          },
          "description": "Specifies the flavors information. The flavor object structure\nis documented below. Changing this creates a new instance.\n"
        },
        "mode": {
          "type": "string",
          "description": "Specifies the mode of the database instance.Changing this creates a new instance.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the DB instance name. The DB instance name of the same\ntype is unique in the same tenant. Changing this creates a new instance.\n"
        },
        "nodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3Node:DdsInstanceV3Node"
          },
          "description": "Indicates the instance nodes information.The nodes object structure is documented below.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the Administrator password of the database instance.\nChanging this creates a new instance.\n",
          "secret": true
        },
        "port": {
          "type": "number",
          "description": "Indicates the database port number. The port range is 2100 to 9500.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region of the DDS instance. Changing this creates\na new instance.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the security group ID of the DDS instance.\nChanging this creates a new instance.\n"
        },
        "ssl": {
          "type": "boolean",
          "description": "Specifies whether to enable or disable SSL. Defaults to true.\nChanging this creates a new instance.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet. Changing this creates a new instance.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the DDS instance.\n\n<a name=\"dds_datastore\"></a>\nThe `datastore` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3Timeouts:DdsInstanceV3Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID. Changing this creates a new instance.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "datastore",
        "dbUsername",
        "ddsInstanceV3Id",
        "flavors",
        "mode",
        "name",
        "nodes",
        "password",
        "port",
        "region",
        "securityGroupId",
        "status",
        "subnetId",
        "vpcId"
      ],
      "inputProperties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the ID of the availability zone. Changing\nthis creates a new instance.\n"
        },
        "backupStrategy": {
          "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3BackupStrategy:DdsInstanceV3BackupStrategy",
          "description": "Specifies the advanced backup policy.\nThe backup_strategy object structure is documented below. Changing this creates a new instance.\n"
        },
        "datastore": {
          "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3Datastore:DdsInstanceV3Datastore",
          "description": "Specifies database information. The datastore object\nstructure is documented below. Changing this creates a new instance.\n"
        },
        "ddsInstanceV3Id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "diskEncryptionId": {
          "type": "string",
          "description": "Specifies the disk encryption ID of the instance.\nChanging this creates a new instance.\n",
          "secret": true
        },
        "flavors": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3Flavor:DdsInstanceV3Flavor"
          },
          "description": "Specifies the flavors information. The flavor object structure\nis documented below. Changing this creates a new instance.\n"
        },
        "mode": {
          "type": "string",
          "description": "Specifies the mode of the database instance.Changing this creates a new instance.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the DB instance name. The DB instance name of the same\ntype is unique in the same tenant. Changing this creates a new instance.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the Administrator password of the database instance.\nChanging this creates a new instance.\n",
          "secret": true
        },
        "region": {
          "type": "string",
          "description": "Specifies the region of the DDS instance. Changing this creates\na new instance.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the security group ID of the DDS instance.\nChanging this creates a new instance.\n"
        },
        "ssl": {
          "type": "boolean",
          "description": "Specifies whether to enable or disable SSL. Defaults to true.\nChanging this creates a new instance.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet. Changing this creates a new instance.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the DDS instance.\n\n<a name=\"dds_datastore\"></a>\nThe `datastore` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3Timeouts:DdsInstanceV3Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID. Changing this creates a new instance.\n"
        }
      },
      "requiredInputs": [
        "availabilityZone",
        "datastore",
        "flavors",
        "mode",
        "password",
        "securityGroupId",
        "subnetId",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DdsInstanceV3 resources.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the ID of the availability zone. Changing\nthis creates a new instance.\n"
          },
          "backupStrategy": {
            "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3BackupStrategy:DdsInstanceV3BackupStrategy",
            "description": "Specifies the advanced backup policy.\nThe backup_strategy object structure is documented below. Changing this creates a new instance.\n"
          },
          "datastore": {
            "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3Datastore:DdsInstanceV3Datastore",
            "description": "Specifies database information. The datastore object\nstructure is documented below. Changing this creates a new instance.\n"
          },
          "dbUsername": {
            "type": "string",
            "description": "Indicates the DB Administator name.\n"
          },
          "ddsInstanceV3Id": {
            "type": "string",
            "description": "Indicates the node ID.\n"
          },
          "diskEncryptionId": {
            "type": "string",
            "description": "Specifies the disk encryption ID of the instance.\nChanging this creates a new instance.\n",
            "secret": true
          },
          "flavors": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3Flavor:DdsInstanceV3Flavor"
            },
            "description": "Specifies the flavors information. The flavor object structure\nis documented below. Changing this creates a new instance.\n"
          },
          "mode": {
            "type": "string",
            "description": "Specifies the mode of the database instance.Changing this creates a new instance.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the DB instance name. The DB instance name of the same\ntype is unique in the same tenant. Changing this creates a new instance.\n"
          },
          "nodes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3Node:DdsInstanceV3Node"
            },
            "description": "Indicates the instance nodes information.The nodes object structure is documented below.\n"
          },
          "password": {
            "type": "string",
            "description": "Specifies the Administrator password of the database instance.\nChanging this creates a new instance.\n",
            "secret": true
          },
          "port": {
            "type": "number",
            "description": "Indicates the database port number. The port range is 2100 to 9500.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region of the DDS instance. Changing this creates\na new instance.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Specifies the security group ID of the DDS instance.\nChanging this creates a new instance.\n"
          },
          "ssl": {
            "type": "boolean",
            "description": "Specifies whether to enable or disable SSL. Defaults to true.\nChanging this creates a new instance.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the node status.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the ID of the VPC Subnet. Changing this creates a new instance.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the DDS instance.\n\n<a name=\"dds_datastore\"></a>\nThe `datastore` block supports:\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDdsInstanceV3Timeouts:DdsInstanceV3Timeouts"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC ID. Changing this creates a new instance.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/ddsParameterTemplate:DdsParameterTemplate": {
      "description": "Manages a DDS parameter template resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject(\"name\");\nconst parameterValues = config.requireObject(\"parameterValues\");\nconst nodeType = config.requireObject(\"nodeType\");\nconst nodeVersion = config.requireObject(\"nodeVersion\");\nconst test = new flexibleengine.DdsParameterTemplate(\"test\", {\n    parameterValues: parameterValues,\n    nodeType: nodeType,\n    nodeVersion: nodeVersion,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\nparameter_values = config.require_object(\"parameterValues\")\nnode_type = config.require_object(\"nodeType\")\nnode_version = config.require_object(\"nodeVersion\")\ntest = flexibleengine.DdsParameterTemplate(\"test\",\n    parameter_values=parameter_values,\n    node_type=node_type,\n    node_version=node_version)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var parameterValues = config.RequireObject<dynamic>(\"parameterValues\");\n    var nodeType = config.RequireObject<dynamic>(\"nodeType\");\n    var nodeVersion = config.RequireObject<dynamic>(\"nodeVersion\");\n    var test = new Flexibleengine.DdsParameterTemplate(\"test\", new()\n    {\n        ParameterValues = parameterValues,\n        NodeType = nodeType,\n        NodeVersion = nodeVersion,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tparameterValues := cfg.RequireObject(\"parameterValues\")\n\t\tnodeType := cfg.RequireObject(\"nodeType\")\n\t\tnodeVersion := cfg.RequireObject(\"nodeVersion\")\n\t\t_, err := flexibleengine.NewDdsParameterTemplate(ctx, \"test\", &flexibleengine.DdsParameterTemplateArgs{\n\t\t\tParameterValues: pulumi.Any(parameterValues),\n\t\t\tNodeType:        pulumi.Any(nodeType),\n\t\t\tNodeVersion:     pulumi.Any(nodeVersion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DdsParameterTemplate;\nimport com.pulumi.flexibleengine.DdsParameterTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var parameterValues = config.get(\"parameterValues\");\n        final var nodeType = config.get(\"nodeType\");\n        final var nodeVersion = config.get(\"nodeVersion\");\n        var test = new DdsParameterTemplate(\"test\", DdsParameterTemplateArgs.builder()\n            .parameterValues(parameterValues)\n            .nodeType(nodeType)\n            .nodeVersion(nodeVersion)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\n  parameterValues:\n    type: dynamic\n  nodeType:\n    type: dynamic\n  nodeVersion:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DdsParameterTemplate\n    properties:\n      parameterValues: ${parameterValues}\n      nodeType: ${nodeType}\n      nodeVersion: ${nodeVersion}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe DDS parameter template can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/ddsParameterTemplate:DdsParameterTemplate test <tempalate_id>\n```\n\n",
      "properties": {
        "ddsParameterTemplateId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the parameter template description.\nThe description must consist of a maximum of 256 characters and cannot contain the carriage\nreturn character or the following special characters: >!<\"&'=.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the parameter template name.\nThe value must be 1 to 64 characters in length and start with a letter (from A to Z or from a to z).\nIt is case-sensitive and can contain only letters, digits (from 0 to 9), hyphens (-), and underscores (_).\n"
        },
        "nodeType": {
          "type": "string",
          "description": "Specifies the node type of parameter template node_type. Valid value:\n+ **mongos**: the mongos node type.\n+ **shard**: the shard node type.\n+ **config**: the config node type.\n+ **replica**: the replica node type.\n+ **single**: the single node type.\n\nChanging this parameter will create a new resource.\n"
        },
        "nodeVersion": {
          "type": "string",
          "description": "Specifies the database version.\nThe value can be **4.2**, **4.0** or **3.4**.\n\nChanging this parameter will create a new resource.\n"
        },
        "parameterValues": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the mapping between parameter names and parameter values.\nYou can customize parameter values based on the parameters in the default parameter template.\n"
        },
        "parameters": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDdsParameterTemplateParameter:DdsParameterTemplateParameter"
          },
          "description": "Indicates the parameters defined by users based on the default parameter templates.\nThe parameters structure is documented below.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "ddsParameterTemplateId",
        "description",
        "name",
        "nodeType",
        "nodeVersion",
        "parameters",
        "region"
      ],
      "inputProperties": {
        "ddsParameterTemplateId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the parameter template description.\nThe description must consist of a maximum of 256 characters and cannot contain the carriage\nreturn character or the following special characters: >!<\"&'=.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the parameter template name.\nThe value must be 1 to 64 characters in length and start with a letter (from A to Z or from a to z).\nIt is case-sensitive and can contain only letters, digits (from 0 to 9), hyphens (-), and underscores (_).\n"
        },
        "nodeType": {
          "type": "string",
          "description": "Specifies the node type of parameter template node_type. Valid value:\n+ **mongos**: the mongos node type.\n+ **shard**: the shard node type.\n+ **config**: the config node type.\n+ **replica**: the replica node type.\n+ **single**: the single node type.\n\nChanging this parameter will create a new resource.\n"
        },
        "nodeVersion": {
          "type": "string",
          "description": "Specifies the database version.\nThe value can be **4.2**, **4.0** or **3.4**.\n\nChanging this parameter will create a new resource.\n"
        },
        "parameterValues": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the mapping between parameter names and parameter values.\nYou can customize parameter values based on the parameters in the default parameter template.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "nodeType",
        "nodeVersion"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DdsParameterTemplate resources.\n",
        "properties": {
          "ddsParameterTemplateId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the parameter template description.\nThe description must consist of a maximum of 256 characters and cannot contain the carriage\nreturn character or the following special characters: >!<\"&'=.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the parameter template name.\nThe value must be 1 to 64 characters in length and start with a letter (from A to Z or from a to z).\nIt is case-sensitive and can contain only letters, digits (from 0 to 9), hyphens (-), and underscores (_).\n"
          },
          "nodeType": {
            "type": "string",
            "description": "Specifies the node type of parameter template node_type. Valid value:\n+ **mongos**: the mongos node type.\n+ **shard**: the shard node type.\n+ **config**: the config node type.\n+ **replica**: the replica node type.\n+ **single**: the single node type.\n\nChanging this parameter will create a new resource.\n"
          },
          "nodeVersion": {
            "type": "string",
            "description": "Specifies the database version.\nThe value can be **4.2**, **4.0** or **3.4**.\n\nChanging this parameter will create a new resource.\n"
          },
          "parameterValues": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the mapping between parameter names and parameter values.\nYou can customize parameter values based on the parameters in the default parameter template.\n"
          },
          "parameters": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDdsParameterTemplateParameter:DdsParameterTemplateParameter"
            },
            "description": "Indicates the parameters defined by users based on the default parameter templates.\nThe parameters structure is documented below.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/disStream:DisStream": {
      "description": "Manages DIS Stream resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst stream = new flexibleengine.DisStream(\"stream\", {partitionCount: 3});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nstream = flexibleengine.DisStream(\"stream\", partition_count=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var stream = new Flexibleengine.DisStream(\"stream\", new()\n    {\n        PartitionCount = 3,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewDisStream(ctx, \"stream\", &flexibleengine.DisStreamArgs{\n\t\t\tPartitionCount: pulumi.Float64(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DisStream;\nimport com.pulumi.flexibleengine.DisStreamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var stream = new DisStream(\"stream\", DisStreamArgs.builder()\n            .partitionCount(3)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  stream:\n    type: flexibleengine:DisStream\n    properties:\n      partitionCount: 3\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDis stream can be imported by `name`. For example,\n\n```sh\n$ pulumi import flexibleengine:index/disStream:DisStream example dis-demo\n```\n\n",
      "properties": {
        "dataDuration": {
          "type": "number",
          "description": "Specifies the number of hours for which data from the stream\nwill be retained in DIS. The value ranges from 24 to 168 and defaults to 24. Changing this will create a new resource.\n"
        },
        "disStreamId": {
          "type": "string",
          "description": "The ID of the partition.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DIS stream to be created.\nChanging this will create a new resource.\n"
        },
        "partitionCount": {
          "type": "number",
          "description": "Specifies the number of the expect partitions.\nChanging this will create a new resource.\n"
        },
        "partitions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDisStreamPartition:DisStreamPartition"
          },
          "description": "The information of stream partitions. The partitions object structure is\ndocumented below.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the DIS stream resource.\nIf omitted, the provider-level region will be used. Changing this will create a new DIS stream resource.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the partition.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the Stream type. The value can be *COMMON* or *ADVANCED*.\nDefaults to *COMMON*. Changing this will create a new resource.\n\n+ **COMMON stream:**\nEach partition supports a read speed of up to 2 MB/s and a write speed of up to 1000 records/s and 1 MB/s.\n\n+ **ADVANCED stream:**\nEach partition supports a read speed of up to 10 MB/s and a write speed of up to 2000 records/s and 5 MB/s.\n"
        }
      },
      "type": "object",
      "required": [
        "disStreamId",
        "name",
        "partitionCount",
        "partitions",
        "region",
        "status"
      ],
      "inputProperties": {
        "dataDuration": {
          "type": "number",
          "description": "Specifies the number of hours for which data from the stream\nwill be retained in DIS. The value ranges from 24 to 168 and defaults to 24. Changing this will create a new resource.\n"
        },
        "disStreamId": {
          "type": "string",
          "description": "The ID of the partition.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DIS stream to be created.\nChanging this will create a new resource.\n"
        },
        "partitionCount": {
          "type": "number",
          "description": "Specifies the number of the expect partitions.\nChanging this will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the DIS stream resource.\nIf omitted, the provider-level region will be used. Changing this will create a new DIS stream resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the Stream type. The value can be *COMMON* or *ADVANCED*.\nDefaults to *COMMON*. Changing this will create a new resource.\n\n+ **COMMON stream:**\nEach partition supports a read speed of up to 2 MB/s and a write speed of up to 1000 records/s and 1 MB/s.\n\n+ **ADVANCED stream:**\nEach partition supports a read speed of up to 10 MB/s and a write speed of up to 2000 records/s and 5 MB/s.\n"
        }
      },
      "requiredInputs": [
        "partitionCount"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DisStream resources.\n",
        "properties": {
          "dataDuration": {
            "type": "number",
            "description": "Specifies the number of hours for which data from the stream\nwill be retained in DIS. The value ranges from 24 to 168 and defaults to 24. Changing this will create a new resource.\n"
          },
          "disStreamId": {
            "type": "string",
            "description": "The ID of the partition.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the DIS stream to be created.\nChanging this will create a new resource.\n"
          },
          "partitionCount": {
            "type": "number",
            "description": "Specifies the number of the expect partitions.\nChanging this will create a new resource.\n"
          },
          "partitions": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDisStreamPartition:DisStreamPartition"
            },
            "description": "The information of stream partitions. The partitions object structure is\ndocumented below.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the DIS stream resource.\nIf omitted, the provider-level region will be used. Changing this will create a new DIS stream resource.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the partition.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the Stream type. The value can be *COMMON* or *ADVANCED*.\nDefaults to *COMMON*. Changing this will create a new resource.\n\n+ **COMMON stream:**\nEach partition supports a read speed of up to 2 MB/s and a write speed of up to 1000 records/s and 1 MB/s.\n\n+ **ADVANCED stream:**\nEach partition supports a read speed of up to 10 MB/s and a write speed of up to 2000 records/s and 5 MB/s.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dliDatabase:DliDatabase": {
      "description": "Manages DLI SQL database resource within FlexibleEngine.\n\n## Example Usage\n\n### Create a database\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst databaseName = config.requireObject(\"databaseName\");\nconst test = new flexibleengine.DliDatabase(\"test\", {});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ndatabase_name = config.require_object(\"databaseName\")\ntest = flexibleengine.DliDatabase(\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var databaseName = config.RequireObject<dynamic>(\"databaseName\");\n    var test = new Flexibleengine.DliDatabase(\"test\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdatabaseName := cfg.RequireObject(\"databaseName\")\n\t\t_, err := flexibleengine.NewDliDatabase(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DliDatabase;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var databaseName = config.get(\"databaseName\");\n        var test = new DliDatabase(\"test\");\n\n    }\n}\n```\n```yaml\nconfiguration:\n  databaseName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DliDatabase\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDLI SQL databases can be imported by their `name`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dliDatabase:DliDatabase test terraform_test\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of a queue.\nChanging this parameter will create a new database resource.\n"
        },
        "dliDatabaseId": {
          "type": "string",
          "description": "Resource ID. For database resources, the ID is the database name.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project ID.\nThe value 0 indicates the default enterprise project. Changing this parameter will create a new database resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the database name. The name consists of 1 to 128 characters, starting\nwith a letter or digit. Only letters, digits and underscores (_) are allowed and the name cannot be all digits.\nChanging this parameter will create a new database resource.\n"
        },
        "owner": {
          "type": "string",
          "description": "Specifies the name of the SQL database owner.\nThe owner must be IAM user.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the DLI database resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new database resource.\n"
        }
      },
      "type": "object",
      "required": [
        "dliDatabaseId",
        "enterpriseProjectId",
        "name",
        "owner",
        "region"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of a queue.\nChanging this parameter will create a new database resource.\n"
        },
        "dliDatabaseId": {
          "type": "string",
          "description": "Resource ID. For database resources, the ID is the database name.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project ID.\nThe value 0 indicates the default enterprise project. Changing this parameter will create a new database resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the database name. The name consists of 1 to 128 characters, starting\nwith a letter or digit. Only letters, digits and underscores (_) are allowed and the name cannot be all digits.\nChanging this parameter will create a new database resource.\n"
        },
        "owner": {
          "type": "string",
          "description": "Specifies the name of the SQL database owner.\nThe owner must be IAM user.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the DLI database resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new database resource.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DliDatabase resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies the description of a queue.\nChanging this parameter will create a new database resource.\n"
          },
          "dliDatabaseId": {
            "type": "string",
            "description": "Resource ID. For database resources, the ID is the database name.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project ID.\nThe value 0 indicates the default enterprise project. Changing this parameter will create a new database resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the database name. The name consists of 1 to 128 characters, starting\nwith a letter or digit. Only letters, digits and underscores (_) are allowed and the name cannot be all digits.\nChanging this parameter will create a new database resource.\n"
          },
          "owner": {
            "type": "string",
            "description": "Specifies the name of the SQL database owner.\nThe owner must be IAM user.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the DLI database resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new database resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dliDatasourceConnection:DliDatasourceConnection": {
      "description": "Manages a DLI datasource **enhanced** connection resource within FlexibleEngine.  \n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject(\"name\");\nconst vpcId = config.requireObject(\"vpcId\");\nconst subnetId = config.requireObject(\"subnetId\");\nconst test = new flexibleengine.DliDatasourceConnection(\"test\", {\n    vpcId: vpcId,\n    subnetId: subnetId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\ntest = flexibleengine.DliDatasourceConnection(\"test\",\n    vpc_id=vpc_id,\n    subnet_id=subnet_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var test = new Flexibleengine.DliDatasourceConnection(\"test\", new()\n    {\n        VpcId = vpcId,\n        SubnetId = subnetId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\t_, err := flexibleengine.NewDliDatasourceConnection(ctx, \"test\", &flexibleengine.DliDatasourceConnectionArgs{\n\t\t\tVpcId:    pulumi.Any(vpcId),\n\t\t\tSubnetId: pulumi.Any(subnetId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DliDatasourceConnection;\nimport com.pulumi.flexibleengine.DliDatasourceConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        var test = new DliDatasourceConnection(\"test\", DliDatasourceConnectionArgs.builder()\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DliDatasourceConnection\n    properties:\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe DLI datasource connection can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dliDatasourceConnection:DliDatasourceConnection test 0ce123456a00f2591fabc00385ff1234\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include: `tags`.\n\nIt is generally recommended running `pulumi preview` after importing a resource.\n\nYou can then decide if changes should be applied to the resource, or the resource definition should be updated to\n\nalign with the resource. Also, you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_dli_datasource_connection\" \"test\" {\n\n    ...\n\n    lifecycle {\n\n      ignore_changes = [\n\n        tags,\n\n      ]\n\n    }\n\n}\n\n",
      "properties": {
        "dliDatasourceConnectionId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDliDatasourceConnectionHost:DliDatasourceConnectionHost"
          },
          "description": "The user-defined host information. A maximum of 20,000 records are supported.\nThe hosts object structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "The user-defined host name.\n"
        },
        "queues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of queue names that are available for datasource connections.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "routeTableId": {
          "type": "string",
          "description": "The route table ID associated with the subnet of the service to be\nconnected. Changing this parameter will create a new resource.\n"
        },
        "routes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDliDatasourceConnectionRoute:DliDatasourceConnectionRoute"
          },
          "description": "List of routes.\n"
        },
        "status": {
          "type": "string",
          "description": "The connection status. The options are as follows:\n+ **ACTIVE**: The datasource connection is activated.\n+ **DELETED**: The datasource connection is deleted.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The subnet ID of the service to be connected.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the datasource connection.\nChanging this parameter will create a new resource.\n\n<a name=\"dli_hosts\"></a>\nThe `hosts` block supports:\n"
        },
        "vpcId": {
          "type": "string",
          "description": "The VPC ID of the service to be connected.\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "dliDatasourceConnectionId",
        "name",
        "queues",
        "region",
        "routeTableId",
        "status",
        "subnetId",
        "vpcId"
      ],
      "inputProperties": {
        "dliDatasourceConnectionId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDliDatasourceConnectionHost:DliDatasourceConnectionHost"
          },
          "description": "The user-defined host information. A maximum of 20,000 records are supported.\nThe hosts object structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "The user-defined host name.\n"
        },
        "queues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of queue names that are available for datasource connections.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "routeTableId": {
          "type": "string",
          "description": "The route table ID associated with the subnet of the service to be\nconnected. Changing this parameter will create a new resource.\n"
        },
        "routes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDliDatasourceConnectionRoute:DliDatasourceConnectionRoute"
          },
          "description": "List of routes.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The subnet ID of the service to be connected.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the datasource connection.\nChanging this parameter will create a new resource.\n\n<a name=\"dli_hosts\"></a>\nThe `hosts` block supports:\n"
        },
        "vpcId": {
          "type": "string",
          "description": "The VPC ID of the service to be connected.\nChanging this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "subnetId",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DliDatasourceConnection resources.\n",
        "properties": {
          "dliDatasourceConnectionId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "hosts": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDliDatasourceConnectionHost:DliDatasourceConnectionHost"
            },
            "description": "The user-defined host information. A maximum of 20,000 records are supported.\nThe hosts object structure is documented below.\n"
          },
          "name": {
            "type": "string",
            "description": "The user-defined host name.\n"
          },
          "queues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of queue names that are available for datasource connections.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "routeTableId": {
            "type": "string",
            "description": "The route table ID associated with the subnet of the service to be\nconnected. Changing this parameter will create a new resource.\n"
          },
          "routes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDliDatasourceConnectionRoute:DliDatasourceConnectionRoute"
            },
            "description": "List of routes.\n"
          },
          "status": {
            "type": "string",
            "description": "The connection status. The options are as follows:\n+ **ACTIVE**: The datasource connection is activated.\n+ **DELETED**: The datasource connection is deleted.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "The subnet ID of the service to be connected.\nChanging this parameter will create a new resource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the datasource connection.\nChanging this parameter will create a new resource.\n\n<a name=\"dli_hosts\"></a>\nThe `hosts` block supports:\n"
          },
          "vpcId": {
            "type": "string",
            "description": "The VPC ID of the service to be connected.\nChanging this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dliFlinksqlJob:DliFlinksqlJob": {
      "description": "Manages a flink sql job resource within FlexibleEngine DLI.\n\n## Example Usage\n\n### Create a flink job\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst sql = config.requireObject(\"sql\");\nconst jobName = config.requireObject(\"jobName\");\nconst test = new flexibleengine.DliFlinksqlJob(\"test\", {\n    type: \"flink_sql_job\",\n    sql: sql,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nsql = config.require_object(\"sql\")\njob_name = config.require_object(\"jobName\")\ntest = flexibleengine.DliFlinksqlJob(\"test\",\n    type=\"flink_sql_job\",\n    sql=sql)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var sql = config.RequireObject<dynamic>(\"sql\");\n    var jobName = config.RequireObject<dynamic>(\"jobName\");\n    var test = new Flexibleengine.DliFlinksqlJob(\"test\", new()\n    {\n        Type = \"flink_sql_job\",\n        Sql = sql,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsql := cfg.RequireObject(\"sql\")\n\t\tjobName := cfg.RequireObject(\"jobName\")\n\t\t_, err := flexibleengine.NewDliFlinksqlJob(ctx, \"test\", &flexibleengine.DliFlinksqlJobArgs{\n\t\t\tType: pulumi.String(\"flink_sql_job\"),\n\t\t\tSql:  pulumi.Any(sql),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DliFlinksqlJob;\nimport com.pulumi.flexibleengine.DliFlinksqlJobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sql = config.get(\"sql\");\n        final var jobName = config.get(\"jobName\");\n        var test = new DliFlinksqlJob(\"test\", DliFlinksqlJobArgs.builder()\n            .type(\"flink_sql_job\")\n            .sql(sql)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sql:\n    type: dynamic\n  jobName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DliFlinksqlJob\n    properties:\n      type: flink_sql_job\n      sql: ${sql}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nClusters can be imported by their `id`. For example,\n\n```sh\n$ pulumi import flexibleengine:index/dliFlinksqlJob:DliFlinksqlJob test 12345\n```\n\n",
      "properties": {
        "checkpointEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable the automatic job snapshot function.\n+ **true**: indicates to enable the automatic job snapshot function.\n+ **false**: indicates to disable the automatic job snapshot function.\n\nDefault value: false\n"
        },
        "checkpointInterval": {
          "type": "number",
          "description": "Specifies snapshot interval. The unit is second.\nThe default value is 10.\n"
        },
        "checkpointMode": {
          "type": "string",
          "description": "Specifies snapshot mode. There are two options:\n+ **exactly_once**: indicates that data is processed only once.\n+ **at_least_once**: indicates that data is processed at least once.\n\nThe default value is 1.\n"
        },
        "cuNumber": {
          "type": "number",
          "description": "Specifies number of CUs selected for a job. The default value is 2.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies job description. Length range: 1 to 512 characters.\n"
        },
        "dirtyDataStrategy": {
          "type": "string",
          "description": "Specifies dirty data policy of a job.\n+ **2:obsDir**: Save the dirty data to the obs path `obsDir`. For example: `2:yourBucket/output_path`\n+ **1**: Trigger a job exception\n+ **0**: Ignore\n\nThe default value is `0`.\n"
        },
        "dliFlinksqlJobId": {
          "type": "string",
          "description": "The Job ID in Int format.\n"
        },
        "edgeGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies edge computing group IDs.\n"
        },
        "idleStateRetention": {
          "type": "number",
          "description": "Specifies retention time of the idle state. The unit is hour.\nThe default value is 1.\n"
        },
        "logEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable the function of uploading job logs to\nusers' OBS buckets. The default value is false.\n"
        },
        "managerCuNumber": {
          "type": "number",
          "description": "Specifies number of CUs in the JobManager selected for a job.\nThe default value is 1.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the job. Length range: 1 to 57 characters.\nwhich may consist of letters, digits, underscores (_) and hyphens (-).\n"
        },
        "obsBucket": {
          "type": "string",
          "description": "Specifies OBS path. OBS path where users are authorized to save the\nsnapshot. This parameter is valid only when `checkpoint_enabled` is set to `true`. OBS path where users are authorized\nto save the snapshot. This parameter is valid only when `log_enabled` is set to `true`.\n"
        },
        "parallelNumber": {
          "type": "number",
          "description": "Specifies number of parallel for a job. The default value is 1.\n"
        },
        "queueName": {
          "type": "string",
          "description": "Specifies name of a queue.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the DLI flink job resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "restartWhenException": {
          "type": "boolean",
          "description": "Specifies whether to enable the function of automatically\nrestarting a job upon job exceptions. The default value is false.\n"
        },
        "resumeCheckpoint": {
          "type": "boolean",
          "description": "Specifies whether the abnormal restart is recovered from the\ncheckpoint.\n"
        },
        "resumeMaxNum": {
          "type": "number",
          "description": "Specifies maximum number of retry times upon exceptions. The unit is\n`times/hour`. Value range: `-1` or greater than `0`. The default value is `-1`, indicating that the number of times is\nunlimited.\n"
        },
        "runMode": {
          "type": "string",
          "description": "Specifies job running mode. The options are as follows:\n\n+ **shared_cluster**: indicates that the job is running on a shared cluster.\n+ **exclusive_cluster**: indicates that the job is running on an exclusive cluster.\n+ **edge_node**: indicates that the job is running on an edge node.\n\nThe default value is `shared_cluster`.\n"
        },
        "runtimeConfig": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies customizes optimization parameters when a Flink job is\nrunning.\n"
        },
        "smnTopic": {
          "type": "string",
          "description": "Specifies SMN topic. If a job fails, the system will send a message to\nusers subscribed to the SMN topic.\n"
        },
        "sql": {
          "type": "string",
          "description": "Specifies stream SQL statement, which includes at least the following\nthree parts: source, query, and sink. Length range: 1024x1024 characters.\n"
        },
        "status": {
          "type": "string"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDliFlinksqlJobTimeouts:DliFlinksqlJobTimeouts"
        },
        "tmCus": {
          "type": "number",
          "description": "Specifies number of CUs for each Task Manager. The default value is 1.\n"
        },
        "tmSlotNum": {
          "type": "number",
          "description": "Specifies number of slots in each Task Manager.\nThe default value is (**parallel_number** * **tm_cus**)/(**cu_number** - **manager_cu_number**).\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the job. The valid values are `flink_sql_job`,\n`flink_opensource_sql_job` and `flink_sql_edge_job`. Default value is `flink_sql_job`.\nChanging this parameter will create a new resource.\n"
        },
        "udfJarUrl": {
          "type": "string",
          "description": "Specifies name of the resource package that has been uploaded to the\nDLI resource management system. The UDF Jar file of the SQL job is specified by this parameter.\n"
        }
      },
      "type": "object",
      "required": [
        "dliFlinksqlJobId",
        "name",
        "queueName",
        "region",
        "status",
        "tmSlotNum",
        "udfJarUrl"
      ],
      "inputProperties": {
        "checkpointEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable the automatic job snapshot function.\n+ **true**: indicates to enable the automatic job snapshot function.\n+ **false**: indicates to disable the automatic job snapshot function.\n\nDefault value: false\n"
        },
        "checkpointInterval": {
          "type": "number",
          "description": "Specifies snapshot interval. The unit is second.\nThe default value is 10.\n"
        },
        "checkpointMode": {
          "type": "string",
          "description": "Specifies snapshot mode. There are two options:\n+ **exactly_once**: indicates that data is processed only once.\n+ **at_least_once**: indicates that data is processed at least once.\n\nThe default value is 1.\n"
        },
        "cuNumber": {
          "type": "number",
          "description": "Specifies number of CUs selected for a job. The default value is 2.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies job description. Length range: 1 to 512 characters.\n"
        },
        "dirtyDataStrategy": {
          "type": "string",
          "description": "Specifies dirty data policy of a job.\n+ **2:obsDir**: Save the dirty data to the obs path `obsDir`. For example: `2:yourBucket/output_path`\n+ **1**: Trigger a job exception\n+ **0**: Ignore\n\nThe default value is `0`.\n"
        },
        "dliFlinksqlJobId": {
          "type": "string",
          "description": "The Job ID in Int format.\n"
        },
        "edgeGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies edge computing group IDs.\n"
        },
        "idleStateRetention": {
          "type": "number",
          "description": "Specifies retention time of the idle state. The unit is hour.\nThe default value is 1.\n"
        },
        "logEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable the function of uploading job logs to\nusers' OBS buckets. The default value is false.\n"
        },
        "managerCuNumber": {
          "type": "number",
          "description": "Specifies number of CUs in the JobManager selected for a job.\nThe default value is 1.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the job. Length range: 1 to 57 characters.\nwhich may consist of letters, digits, underscores (_) and hyphens (-).\n"
        },
        "obsBucket": {
          "type": "string",
          "description": "Specifies OBS path. OBS path where users are authorized to save the\nsnapshot. This parameter is valid only when `checkpoint_enabled` is set to `true`. OBS path where users are authorized\nto save the snapshot. This parameter is valid only when `log_enabled` is set to `true`.\n"
        },
        "parallelNumber": {
          "type": "number",
          "description": "Specifies number of parallel for a job. The default value is 1.\n"
        },
        "queueName": {
          "type": "string",
          "description": "Specifies name of a queue.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the DLI flink job resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "restartWhenException": {
          "type": "boolean",
          "description": "Specifies whether to enable the function of automatically\nrestarting a job upon job exceptions. The default value is false.\n"
        },
        "resumeCheckpoint": {
          "type": "boolean",
          "description": "Specifies whether the abnormal restart is recovered from the\ncheckpoint.\n"
        },
        "resumeMaxNum": {
          "type": "number",
          "description": "Specifies maximum number of retry times upon exceptions. The unit is\n`times/hour`. Value range: `-1` or greater than `0`. The default value is `-1`, indicating that the number of times is\nunlimited.\n"
        },
        "runMode": {
          "type": "string",
          "description": "Specifies job running mode. The options are as follows:\n\n+ **shared_cluster**: indicates that the job is running on a shared cluster.\n+ **exclusive_cluster**: indicates that the job is running on an exclusive cluster.\n+ **edge_node**: indicates that the job is running on an edge node.\n\nThe default value is `shared_cluster`.\n"
        },
        "runtimeConfig": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies customizes optimization parameters when a Flink job is\nrunning.\n"
        },
        "smnTopic": {
          "type": "string",
          "description": "Specifies SMN topic. If a job fails, the system will send a message to\nusers subscribed to the SMN topic.\n"
        },
        "sql": {
          "type": "string",
          "description": "Specifies stream SQL statement, which includes at least the following\nthree parts: source, query, and sink. Length range: 1024x1024 characters.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDliFlinksqlJobTimeouts:DliFlinksqlJobTimeouts"
        },
        "tmCus": {
          "type": "number",
          "description": "Specifies number of CUs for each Task Manager. The default value is 1.\n"
        },
        "tmSlotNum": {
          "type": "number",
          "description": "Specifies number of slots in each Task Manager.\nThe default value is (**parallel_number** * **tm_cus**)/(**cu_number** - **manager_cu_number**).\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the job. The valid values are `flink_sql_job`,\n`flink_opensource_sql_job` and `flink_sql_edge_job`. Default value is `flink_sql_job`.\nChanging this parameter will create a new resource.\n"
        },
        "udfJarUrl": {
          "type": "string",
          "description": "Specifies name of the resource package that has been uploaded to the\nDLI resource management system. The UDF Jar file of the SQL job is specified by this parameter.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DliFlinksqlJob resources.\n",
        "properties": {
          "checkpointEnabled": {
            "type": "boolean",
            "description": "Specifies whether to enable the automatic job snapshot function.\n+ **true**: indicates to enable the automatic job snapshot function.\n+ **false**: indicates to disable the automatic job snapshot function.\n\nDefault value: false\n"
          },
          "checkpointInterval": {
            "type": "number",
            "description": "Specifies snapshot interval. The unit is second.\nThe default value is 10.\n"
          },
          "checkpointMode": {
            "type": "string",
            "description": "Specifies snapshot mode. There are two options:\n+ **exactly_once**: indicates that data is processed only once.\n+ **at_least_once**: indicates that data is processed at least once.\n\nThe default value is 1.\n"
          },
          "cuNumber": {
            "type": "number",
            "description": "Specifies number of CUs selected for a job. The default value is 2.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies job description. Length range: 1 to 512 characters.\n"
          },
          "dirtyDataStrategy": {
            "type": "string",
            "description": "Specifies dirty data policy of a job.\n+ **2:obsDir**: Save the dirty data to the obs path `obsDir`. For example: `2:yourBucket/output_path`\n+ **1**: Trigger a job exception\n+ **0**: Ignore\n\nThe default value is `0`.\n"
          },
          "dliFlinksqlJobId": {
            "type": "string",
            "description": "The Job ID in Int format.\n"
          },
          "edgeGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies edge computing group IDs.\n"
          },
          "idleStateRetention": {
            "type": "number",
            "description": "Specifies retention time of the idle state. The unit is hour.\nThe default value is 1.\n"
          },
          "logEnabled": {
            "type": "boolean",
            "description": "Specifies whether to enable the function of uploading job logs to\nusers' OBS buckets. The default value is false.\n"
          },
          "managerCuNumber": {
            "type": "number",
            "description": "Specifies number of CUs in the JobManager selected for a job.\nThe default value is 1.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the job. Length range: 1 to 57 characters.\nwhich may consist of letters, digits, underscores (_) and hyphens (-).\n"
          },
          "obsBucket": {
            "type": "string",
            "description": "Specifies OBS path. OBS path where users are authorized to save the\nsnapshot. This parameter is valid only when `checkpoint_enabled` is set to `true`. OBS path where users are authorized\nto save the snapshot. This parameter is valid only when `log_enabled` is set to `true`.\n"
          },
          "parallelNumber": {
            "type": "number",
            "description": "Specifies number of parallel for a job. The default value is 1.\n"
          },
          "queueName": {
            "type": "string",
            "description": "Specifies name of a queue.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the DLI flink job resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "restartWhenException": {
            "type": "boolean",
            "description": "Specifies whether to enable the function of automatically\nrestarting a job upon job exceptions. The default value is false.\n"
          },
          "resumeCheckpoint": {
            "type": "boolean",
            "description": "Specifies whether the abnormal restart is recovered from the\ncheckpoint.\n"
          },
          "resumeMaxNum": {
            "type": "number",
            "description": "Specifies maximum number of retry times upon exceptions. The unit is\n`times/hour`. Value range: `-1` or greater than `0`. The default value is `-1`, indicating that the number of times is\nunlimited.\n"
          },
          "runMode": {
            "type": "string",
            "description": "Specifies job running mode. The options are as follows:\n\n+ **shared_cluster**: indicates that the job is running on a shared cluster.\n+ **exclusive_cluster**: indicates that the job is running on an exclusive cluster.\n+ **edge_node**: indicates that the job is running on an edge node.\n\nThe default value is `shared_cluster`.\n"
          },
          "runtimeConfig": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies customizes optimization parameters when a Flink job is\nrunning.\n"
          },
          "smnTopic": {
            "type": "string",
            "description": "Specifies SMN topic. If a job fails, the system will send a message to\nusers subscribed to the SMN topic.\n"
          },
          "sql": {
            "type": "string",
            "description": "Specifies stream SQL statement, which includes at least the following\nthree parts: source, query, and sink. Length range: 1024x1024 characters.\n"
          },
          "status": {
            "type": "string"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the key/value pairs to associate with the resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDliFlinksqlJobTimeouts:DliFlinksqlJobTimeouts"
          },
          "tmCus": {
            "type": "number",
            "description": "Specifies number of CUs for each Task Manager. The default value is 1.\n"
          },
          "tmSlotNum": {
            "type": "number",
            "description": "Specifies number of slots in each Task Manager.\nThe default value is (**parallel_number** * **tm_cus**)/(**cu_number** - **manager_cu_number**).\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the type of the job. The valid values are `flink_sql_job`,\n`flink_opensource_sql_job` and `flink_sql_edge_job`. Default value is `flink_sql_job`.\nChanging this parameter will create a new resource.\n"
          },
          "udfJarUrl": {
            "type": "string",
            "description": "Specifies name of the resource package that has been uploaded to the\nDLI resource management system. The UDF Jar file of the SQL job is specified by this parameter.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dliGlobalVariable:DliGlobalVariable": {
      "description": "Manages a DLI global variable resource within FlexibleEngine.  \n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = new flexibleengine.DliGlobalVariable(\"test\", {value: \"abc\"});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.DliGlobalVariable(\"test\", value=\"abc\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Flexibleengine.DliGlobalVariable(\"test\", new()\n    {\n        Value = \"abc\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewDliGlobalVariable(ctx, \"test\", &flexibleengine.DliGlobalVariableArgs{\n\t\t\tValue: pulumi.String(\"abc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DliGlobalVariable;\nimport com.pulumi.flexibleengine.DliGlobalVariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new DliGlobalVariable(\"test\", DliGlobalVariableArgs.builder()\n            .value(\"abc\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: flexibleengine:DliGlobalVariable\n    properties:\n      value: abc\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe global variable can be imported using the `id` which equals the name, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dliGlobalVariable:DliGlobalVariable test demo_name\n```\n\n",
      "properties": {
        "dliGlobalVariableId": {
          "type": "string",
          "description": "The resource ID which equals the name.\n"
        },
        "isSensitive": {
          "type": "boolean",
          "description": "Whether to set a variable as a sensitive variable. The default value is\n**false**. Changing this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of a global variable.\nThis parameter can contain a maximum of 128 characters, which may consist of digits, letters, and underscores (\\_),\nbut cannot start with an underscore (\\_) or contain only digits.\n\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "value": {
          "type": "string",
          "description": "The value of global variable.\n"
        }
      },
      "type": "object",
      "required": [
        "dliGlobalVariableId",
        "isSensitive",
        "name",
        "region",
        "value"
      ],
      "inputProperties": {
        "dliGlobalVariableId": {
          "type": "string",
          "description": "The resource ID which equals the name.\n"
        },
        "isSensitive": {
          "type": "boolean",
          "description": "Whether to set a variable as a sensitive variable. The default value is\n**false**. Changing this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of a global variable.\nThis parameter can contain a maximum of 128 characters, which may consist of digits, letters, and underscores (\\_),\nbut cannot start with an underscore (\\_) or contain only digits.\n\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "value": {
          "type": "string",
          "description": "The value of global variable.\n"
        }
      },
      "requiredInputs": [
        "value"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DliGlobalVariable resources.\n",
        "properties": {
          "dliGlobalVariableId": {
            "type": "string",
            "description": "The resource ID which equals the name.\n"
          },
          "isSensitive": {
            "type": "boolean",
            "description": "Whether to set a variable as a sensitive variable. The default value is\n**false**. Changing this parameter will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of a global variable.\nThis parameter can contain a maximum of 128 characters, which may consist of digits, letters, and underscores (\\_),\nbut cannot start with an underscore (\\_) or contain only digits.\n\nChanging this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "value": {
            "type": "string",
            "description": "The value of global variable.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dliPackage:DliPackage": {
      "description": "Manages DLI package resource within FlexibleEngine\n\n## Example Usage\n\n### Upload the specified python script as a resource package\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst groupName = config.requireObject(\"groupName\");\nconst accessDomainName = config.requireObject(\"accessDomainName\");\nconst queue = new flexibleengine.DliPackage(\"queue\", {\n    groupName: groupName,\n    objectPath: `https://${accessDomainName}/dli/packages/object_file.py`,\n    type: \"pyFile\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ngroup_name = config.require_object(\"groupName\")\naccess_domain_name = config.require_object(\"accessDomainName\")\nqueue = flexibleengine.DliPackage(\"queue\",\n    group_name=group_name,\n    object_path=f\"https://{access_domain_name}/dli/packages/object_file.py\",\n    type=\"pyFile\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var groupName = config.RequireObject<dynamic>(\"groupName\");\n    var accessDomainName = config.RequireObject<dynamic>(\"accessDomainName\");\n    var queue = new Flexibleengine.DliPackage(\"queue\", new()\n    {\n        GroupName = groupName,\n        ObjectPath = $\"https://{accessDomainName}/dli/packages/object_file.py\",\n        Type = \"pyFile\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgroupName := cfg.RequireObject(\"groupName\")\n\t\taccessDomainName := cfg.RequireObject(\"accessDomainName\")\n\t\t_, err := flexibleengine.NewDliPackage(ctx, \"queue\", &flexibleengine.DliPackageArgs{\n\t\t\tGroupName:  pulumi.Any(groupName),\n\t\t\tObjectPath: pulumi.Sprintf(\"https://%v/dli/packages/object_file.py\", accessDomainName),\n\t\t\tType:       pulumi.String(\"pyFile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DliPackage;\nimport com.pulumi.flexibleengine.DliPackageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var groupName = config.get(\"groupName\");\n        final var accessDomainName = config.get(\"accessDomainName\");\n        var queue = new DliPackage(\"queue\", DliPackageArgs.builder()\n            .groupName(groupName)\n            .objectPath(String.format(\"https://%s/dli/packages/object_file.py\", accessDomainName))\n            .type(\"pyFile\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  groupName:\n    type: dynamic\n  accessDomainName:\n    type: dynamic\nresources:\n  queue:\n    type: flexibleengine:DliPackage\n    properties:\n      groupName: ${groupName}\n      objectPath: https://${accessDomainName}/dli/packages/object_file.py\n      type: pyFile\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Time when a queue is created.\n"
        },
        "dliPackageId": {
          "type": "string",
          "description": "Resource ID. The ID is constructed from the `group_name` and `object_name`, separated by slash.\n"
        },
        "groupName": {
          "type": "string",
          "description": "Specifies the group name which the package belongs to.\nChanging this parameter will delete the current package and upload a new package.\n"
        },
        "isAsync": {
          "type": "boolean",
          "description": "Specifies whether to upload resource packages in asynchronous mode.\nThe default value is **false**. Changing this parameter will delete the current package and upload a new package.\n"
        },
        "objectName": {
          "type": "string",
          "description": "The package name.\n"
        },
        "objectPath": {
          "type": "string",
          "description": "Specifies the OBS storage path where the package is located.\nFor example, `https://{bucket_name}.oss.{region}.prod-cloud-ocb.orange-business.com/dli/packages/object_file.py`.\nChanging this parameter will delete the current package and upload a new package.\n"
        },
        "owner": {
          "type": "string",
          "description": "Specifies the name of the package owner. The owner must be IAM user.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to upload packages.\nIf omitted, the provider-level region will be used.\nChanging this parameter will delete the current package and upload a new package.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of a package group to be uploaded.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the package type.\n+ **jar**: `.jar` or jar related files.\n+ **pyFile**: `.py` or python related files.\n+ **file**: Other user files.\n\nChanging this parameter will delete the current package and upload a new package.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The last time when the package configuration update has complated.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "dliPackageId",
        "groupName",
        "isAsync",
        "objectName",
        "objectPath",
        "owner",
        "region",
        "status",
        "type",
        "updatedAt"
      ],
      "inputProperties": {
        "dliPackageId": {
          "type": "string",
          "description": "Resource ID. The ID is constructed from the `group_name` and `object_name`, separated by slash.\n"
        },
        "groupName": {
          "type": "string",
          "description": "Specifies the group name which the package belongs to.\nChanging this parameter will delete the current package and upload a new package.\n"
        },
        "isAsync": {
          "type": "boolean",
          "description": "Specifies whether to upload resource packages in asynchronous mode.\nThe default value is **false**. Changing this parameter will delete the current package and upload a new package.\n"
        },
        "objectPath": {
          "type": "string",
          "description": "Specifies the OBS storage path where the package is located.\nFor example, `https://{bucket_name}.oss.{region}.prod-cloud-ocb.orange-business.com/dli/packages/object_file.py`.\nChanging this parameter will delete the current package and upload a new package.\n"
        },
        "owner": {
          "type": "string",
          "description": "Specifies the name of the package owner. The owner must be IAM user.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to upload packages.\nIf omitted, the provider-level region will be used.\nChanging this parameter will delete the current package and upload a new package.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the package type.\n+ **jar**: `.jar` or jar related files.\n+ **pyFile**: `.py` or python related files.\n+ **file**: Other user files.\n\nChanging this parameter will delete the current package and upload a new package.\n"
        }
      },
      "requiredInputs": [
        "groupName",
        "objectPath",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DliPackage resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Time when a queue is created.\n"
          },
          "dliPackageId": {
            "type": "string",
            "description": "Resource ID. The ID is constructed from the `group_name` and `object_name`, separated by slash.\n"
          },
          "groupName": {
            "type": "string",
            "description": "Specifies the group name which the package belongs to.\nChanging this parameter will delete the current package and upload a new package.\n"
          },
          "isAsync": {
            "type": "boolean",
            "description": "Specifies whether to upload resource packages in asynchronous mode.\nThe default value is **false**. Changing this parameter will delete the current package and upload a new package.\n"
          },
          "objectName": {
            "type": "string",
            "description": "The package name.\n"
          },
          "objectPath": {
            "type": "string",
            "description": "Specifies the OBS storage path where the package is located.\nFor example, `https://{bucket_name}.oss.{region}.prod-cloud-ocb.orange-business.com/dli/packages/object_file.py`.\nChanging this parameter will delete the current package and upload a new package.\n"
          },
          "owner": {
            "type": "string",
            "description": "Specifies the name of the package owner. The owner must be IAM user.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to upload packages.\nIf omitted, the provider-level region will be used.\nChanging this parameter will delete the current package and upload a new package.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of a package group to be uploaded.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the package type.\n+ **jar**: `.jar` or jar related files.\n+ **pyFile**: `.py` or python related files.\n+ **file**: Other user files.\n\nChanging this parameter will delete the current package and upload a new package.\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "The last time when the package configuration update has complated.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dliQueue:DliQueue": {
      "description": "DLI Queue management\nAllows you to create a queue. The queue will be bound to specified compute resources.\n\n## Example Usage\n\n### create a queue\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst queue = new flexibleengine.DliQueue(\"queue\", {\n    cuCount: 16,\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nqueue = flexibleengine.DliQueue(\"queue\",\n    cu_count=16,\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var queue = new Flexibleengine.DliQueue(\"queue\", new()\n    {\n        CuCount = 16,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewDliQueue(ctx, \"queue\", &flexibleengine.DliQueueArgs{\n\t\t\tCuCount: pulumi.Float64(16),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DliQueue;\nimport com.pulumi.flexibleengine.DliQueueArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var queue = new DliQueue(\"queue\", DliQueueArgs.builder()\n            .cuCount(16)\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  queue:\n    type: flexibleengine:DliQueue\n    properties:\n      cuCount: 16\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDLI queue can be imported by  `id`. For example,\n\n```sh\n$ pulumi import flexibleengine:index/dliQueue:DliQueue example abc123\n```\n\n",
      "properties": {
        "createTime": {
          "type": "number",
          "description": "Time when a queue is created.\n"
        },
        "cuCount": {
          "type": "number",
          "description": "Minimum number of CUs that are bound to a queue. Initial value can be `16`,\n`64`, or `256`. When scale_out or scale_in, the number must be a multiple of 16\n"
        },
        "description": {
          "type": "string",
          "description": "Description of a queue.\nChanging this parameter will create a new resource.\n"
        },
        "dliQueueId": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of a queue. Name of a newly created resource queue.\nThe name can contain only digits, letters, and underscores (\\_),\nbut cannot contain only digits or start with an underscore (_).\nLength range: 1 to 128 characters. Changing this parameter will create a new resource.\n"
        },
        "queueType": {
          "type": "string",
          "description": "Indicates the queue type.\nChanging this parameter will create a new resource. The options are as follows:\n- sql,\n- general\n\nThe default value is `sql`.\n"
        },
        "resourceMode": {
          "type": "number",
          "description": "Queue resource mode.\nChanging this parameter will create a new resource.\nThe options are as follows:\n- 0: indicates the shared resource mode.\n- 1: indicates the exclusive resource mode.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Label of a queue. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDliQueueTimeouts:DliQueueTimeouts"
        }
      },
      "type": "object",
      "required": [
        "createTime",
        "cuCount",
        "dliQueueId",
        "name"
      ],
      "inputProperties": {
        "cuCount": {
          "type": "number",
          "description": "Minimum number of CUs that are bound to a queue. Initial value can be `16`,\n`64`, or `256`. When scale_out or scale_in, the number must be a multiple of 16\n"
        },
        "description": {
          "type": "string",
          "description": "Description of a queue.\nChanging this parameter will create a new resource.\n"
        },
        "dliQueueId": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of a queue. Name of a newly created resource queue.\nThe name can contain only digits, letters, and underscores (\\_),\nbut cannot contain only digits or start with an underscore (_).\nLength range: 1 to 128 characters. Changing this parameter will create a new resource.\n"
        },
        "queueType": {
          "type": "string",
          "description": "Indicates the queue type.\nChanging this parameter will create a new resource. The options are as follows:\n- sql,\n- general\n\nThe default value is `sql`.\n"
        },
        "resourceMode": {
          "type": "number",
          "description": "Queue resource mode.\nChanging this parameter will create a new resource.\nThe options are as follows:\n- 0: indicates the shared resource mode.\n- 1: indicates the exclusive resource mode.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Label of a queue. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDliQueueTimeouts:DliQueueTimeouts"
        }
      },
      "requiredInputs": [
        "cuCount"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DliQueue resources.\n",
        "properties": {
          "createTime": {
            "type": "number",
            "description": "Time when a queue is created.\n"
          },
          "cuCount": {
            "type": "number",
            "description": "Minimum number of CUs that are bound to a queue. Initial value can be `16`,\n`64`, or `256`. When scale_out or scale_in, the number must be a multiple of 16\n"
          },
          "description": {
            "type": "string",
            "description": "Description of a queue.\nChanging this parameter will create a new resource.\n"
          },
          "dliQueueId": {
            "type": "string",
            "description": "Specifies a resource ID in UUID format.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of a queue. Name of a newly created resource queue.\nThe name can contain only digits, letters, and underscores (\\_),\nbut cannot contain only digits or start with an underscore (_).\nLength range: 1 to 128 characters. Changing this parameter will create a new resource.\n"
          },
          "queueType": {
            "type": "string",
            "description": "Indicates the queue type.\nChanging this parameter will create a new resource. The options are as follows:\n- sql,\n- general\n\nThe default value is `sql`.\n"
          },
          "resourceMode": {
            "type": "number",
            "description": "Queue resource mode.\nChanging this parameter will create a new resource.\nThe options are as follows:\n- 0: indicates the shared resource mode.\n- 1: indicates the exclusive resource mode.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Label of a queue. Changing this parameter will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDliQueueTimeouts:DliQueueTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dliSparkJob:DliSparkJob": {
      "description": "Manages spark job resource of DLI within FlexibleEngine\n\n## Example Usage\n\n### Submit a new spark job with jar packages\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst _default = new flexibleengine.DliSparkJob(\"default\", {\n    queueName: _var.queue_name,\n    appName: \"driver_package/driver_behavior.jar\",\n    mainClass: \"driver_behavior\",\n    specification: \"B\",\n    maxRetries: 20,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ndefault = flexibleengine.DliSparkJob(\"default\",\n    queue_name=var[\"queue_name\"],\n    app_name=\"driver_package/driver_behavior.jar\",\n    main_class=\"driver_behavior\",\n    specification=\"B\",\n    max_retries=20)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @default = new Flexibleengine.DliSparkJob(\"default\", new()\n    {\n        QueueName = @var.Queue_name,\n        AppName = \"driver_package/driver_behavior.jar\",\n        MainClass = \"driver_behavior\",\n        Specification = \"B\",\n        MaxRetries = 20,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewDliSparkJob(ctx, \"default\", &flexibleengine.DliSparkJobArgs{\n\t\t\tQueueName:     pulumi.Any(_var.Queue_name),\n\t\t\tAppName:       pulumi.String(\"driver_package/driver_behavior.jar\"),\n\t\t\tMainClass:     pulumi.String(\"driver_behavior\"),\n\t\t\tSpecification: pulumi.String(\"B\"),\n\t\t\tMaxRetries:    pulumi.Float64(20),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DliSparkJob;\nimport com.pulumi.flexibleengine.DliSparkJobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new DliSparkJob(\"default\", DliSparkJobArgs.builder()\n            .queueName(var_.queue_name())\n            .appName(\"driver_package/driver_behavior.jar\")\n            .mainClass(\"driver_behavior\")\n            .specification(\"B\")\n            .maxRetries(20)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: flexibleengine:DliSparkJob\n    properties:\n      queueName: ${var.queue_name}\n      appName: driver_package/driver_behavior.jar\n      mainClass: driver_behavior\n      specification: B\n      maxRetries: 20\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "appName": {
          "type": "string",
          "description": "Specifies the name of the package that is of the JAR or python file type and\nhas been uploaded to the DLI resource management system.\nThe OBS paths are allowed, for example, `obs://<bucket name>/<package name>`.\nChanging this parameter will submit a new spark job.\n"
        },
        "appParameters": {
          "type": "string",
          "description": "Specifies the input parameters of the main class.\nChanging this parameter will submit a new spark job.\n"
        },
        "configurations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the configuration items of the DLI spark.\nPlease following the document of Spark [configurations](https://spark.apache.org/docs/latest/configuration.html) for\nthis argument. If you want to enable the `access metadata` of DLI spark in Flexibleengine, please set\n`spark.dli.metaAccess.enable` to `true`. Changing this parameter will submit a new spark job.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Time of the DLI spark job submit.\n"
        },
        "dependentPackages": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDliSparkJobDependentPackage:DliSparkJobDependentPackage"
          },
          "description": "Specifies a list of package resource objects.\nThe object structure is documented below.\nChanging this parameter will submit a new spark job.\n"
        },
        "dliSparkJobId": {
          "type": "string",
          "description": "ID of the spark job.\n"
        },
        "driverCores": {
          "type": "number",
          "description": "Specifies the number of CPU cores of the Spark application driver.\nThe default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
        },
        "driverMemory": {
          "type": "string",
          "description": "Specifies the driver memory of the spark application.\nThe default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
        },
        "executorCores": {
          "type": "number",
          "description": "Specifies the number of CPU cores of each executor in the Spark\napplication. The default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
        },
        "executorMemory": {
          "type": "string",
          "description": "Specifies the executor memory of the spark application.\napplication. The default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n\n->**NOTE:** The unit must be provided, such as **GB** or **MB**.\n"
        },
        "executors": {
          "type": "number",
          "description": "Specifies the number of executors in a spark application.\nThe default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
        },
        "files": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies a list of the other dependencies name which has been uploaded to the\nDLI resource management system. The OBS paths are allowed, for example, `obs://<bucket name>/<dependent files>`.\nChanging this parameter will submit a new spark job.\n"
        },
        "jars": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies a list of the jar package name which has been uploaded to the DLI\nresource management system. The OBS paths are allowed, for example, `obs://<bucket name>/<package name>`.\nChanging this parameter will submit a new spark job.\n"
        },
        "mainClass": {
          "type": "string",
          "description": "Specifies the main class of the spark job.\nRequired if the `app_name` is the JAR type.\nChanging this parameter will submit a new spark job.\n"
        },
        "maxRetries": {
          "type": "number",
          "description": "Specifies the maximum retry times.\nThe default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
        },
        "modules": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies a list of modules that depend on system resources.\nThe dependent modules and corresponding services are as follows.\nChanging this parameter will submit a new spark job.\n+ **sys.datasource.hbase**: CloudTable/MRS HBase\n+ **sys.datasource.opentsdb**: CloudTable/MRS OpenTSDB\n+ **sys.datasource.rds**: RDS MySQL\n+ **sys.datasource.css**: CSS\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the spark job name.\nThe value contains a maximum of 128 characters.\nChanging this parameter will submit a new spark job.\n"
        },
        "owner": {
          "type": "string",
          "description": "The owner of the spark job.\n"
        },
        "pythonFiles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies a list of the python file name which has been uploaded to the\nDLI resource management system. The OBS paths are allowed, for example, `obs://<bucket name>/<python file name>`.\nChanging this parameter will submit a new spark job.\n"
        },
        "queueName": {
          "type": "string",
          "description": "Specifies the DLI queue name.\nChanging this parameter will submit a new spark job.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to submit a spark job.\nIf omitted, the provider-level region will be used.\nChanging this parameter will submit a new spark job.\n"
        },
        "specification": {
          "type": "string",
          "description": "Specifies the compute resource type for spark application.\nThe available types and related specifications are as follows, default to minimum configuration (type **A**).\nChanging this parameter will submit a new spark job.\n\n| type | resource | driver cores | excutor cores | driver memory | executor memory | num executor |\n| ---- | ---- | ---- | ---- | ---- | ---- | ---- |\n| A | 8 vCPUs, 32-GB memory | 2 | 1 | 7G | 4G | 6 |\n| B | 16 vCPUs, 64-GB memory | 2 | 2 | 7G | 8G | 7 |\n| C | 32 vCPUs, 128-GB memory | 4 | 2 | 12G | 8G | 14 |\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDliSparkJobTimeouts:DliSparkJobTimeouts"
        }
      },
      "type": "object",
      "required": [
        "appName",
        "createdAt",
        "dliSparkJobId",
        "name",
        "owner",
        "queueName",
        "region"
      ],
      "inputProperties": {
        "appName": {
          "type": "string",
          "description": "Specifies the name of the package that is of the JAR or python file type and\nhas been uploaded to the DLI resource management system.\nThe OBS paths are allowed, for example, `obs://<bucket name>/<package name>`.\nChanging this parameter will submit a new spark job.\n"
        },
        "appParameters": {
          "type": "string",
          "description": "Specifies the input parameters of the main class.\nChanging this parameter will submit a new spark job.\n"
        },
        "configurations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the configuration items of the DLI spark.\nPlease following the document of Spark [configurations](https://spark.apache.org/docs/latest/configuration.html) for\nthis argument. If you want to enable the `access metadata` of DLI spark in Flexibleengine, please set\n`spark.dli.metaAccess.enable` to `true`. Changing this parameter will submit a new spark job.\n"
        },
        "dependentPackages": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDliSparkJobDependentPackage:DliSparkJobDependentPackage"
          },
          "description": "Specifies a list of package resource objects.\nThe object structure is documented below.\nChanging this parameter will submit a new spark job.\n"
        },
        "dliSparkJobId": {
          "type": "string",
          "description": "ID of the spark job.\n"
        },
        "driverCores": {
          "type": "number",
          "description": "Specifies the number of CPU cores of the Spark application driver.\nThe default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
        },
        "driverMemory": {
          "type": "string",
          "description": "Specifies the driver memory of the spark application.\nThe default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
        },
        "executorCores": {
          "type": "number",
          "description": "Specifies the number of CPU cores of each executor in the Spark\napplication. The default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
        },
        "executorMemory": {
          "type": "string",
          "description": "Specifies the executor memory of the spark application.\napplication. The default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n\n->**NOTE:** The unit must be provided, such as **GB** or **MB**.\n"
        },
        "executors": {
          "type": "number",
          "description": "Specifies the number of executors in a spark application.\nThe default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
        },
        "files": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies a list of the other dependencies name which has been uploaded to the\nDLI resource management system. The OBS paths are allowed, for example, `obs://<bucket name>/<dependent files>`.\nChanging this parameter will submit a new spark job.\n"
        },
        "jars": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies a list of the jar package name which has been uploaded to the DLI\nresource management system. The OBS paths are allowed, for example, `obs://<bucket name>/<package name>`.\nChanging this parameter will submit a new spark job.\n"
        },
        "mainClass": {
          "type": "string",
          "description": "Specifies the main class of the spark job.\nRequired if the `app_name` is the JAR type.\nChanging this parameter will submit a new spark job.\n"
        },
        "maxRetries": {
          "type": "number",
          "description": "Specifies the maximum retry times.\nThe default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
        },
        "modules": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies a list of modules that depend on system resources.\nThe dependent modules and corresponding services are as follows.\nChanging this parameter will submit a new spark job.\n+ **sys.datasource.hbase**: CloudTable/MRS HBase\n+ **sys.datasource.opentsdb**: CloudTable/MRS OpenTSDB\n+ **sys.datasource.rds**: RDS MySQL\n+ **sys.datasource.css**: CSS\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the spark job name.\nThe value contains a maximum of 128 characters.\nChanging this parameter will submit a new spark job.\n"
        },
        "pythonFiles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies a list of the python file name which has been uploaded to the\nDLI resource management system. The OBS paths are allowed, for example, `obs://<bucket name>/<python file name>`.\nChanging this parameter will submit a new spark job.\n"
        },
        "queueName": {
          "type": "string",
          "description": "Specifies the DLI queue name.\nChanging this parameter will submit a new spark job.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to submit a spark job.\nIf omitted, the provider-level region will be used.\nChanging this parameter will submit a new spark job.\n"
        },
        "specification": {
          "type": "string",
          "description": "Specifies the compute resource type for spark application.\nThe available types and related specifications are as follows, default to minimum configuration (type **A**).\nChanging this parameter will submit a new spark job.\n\n| type | resource | driver cores | excutor cores | driver memory | executor memory | num executor |\n| ---- | ---- | ---- | ---- | ---- | ---- | ---- |\n| A | 8 vCPUs, 32-GB memory | 2 | 1 | 7G | 4G | 6 |\n| B | 16 vCPUs, 64-GB memory | 2 | 2 | 7G | 8G | 7 |\n| C | 32 vCPUs, 128-GB memory | 4 | 2 | 12G | 8G | 14 |\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDliSparkJobTimeouts:DliSparkJobTimeouts"
        }
      },
      "requiredInputs": [
        "appName",
        "queueName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DliSparkJob resources.\n",
        "properties": {
          "appName": {
            "type": "string",
            "description": "Specifies the name of the package that is of the JAR or python file type and\nhas been uploaded to the DLI resource management system.\nThe OBS paths are allowed, for example, `obs://<bucket name>/<package name>`.\nChanging this parameter will submit a new spark job.\n"
          },
          "appParameters": {
            "type": "string",
            "description": "Specifies the input parameters of the main class.\nChanging this parameter will submit a new spark job.\n"
          },
          "configurations": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the configuration items of the DLI spark.\nPlease following the document of Spark [configurations](https://spark.apache.org/docs/latest/configuration.html) for\nthis argument. If you want to enable the `access metadata` of DLI spark in Flexibleengine, please set\n`spark.dli.metaAccess.enable` to `true`. Changing this parameter will submit a new spark job.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Time of the DLI spark job submit.\n"
          },
          "dependentPackages": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDliSparkJobDependentPackage:DliSparkJobDependentPackage"
            },
            "description": "Specifies a list of package resource objects.\nThe object structure is documented below.\nChanging this parameter will submit a new spark job.\n"
          },
          "dliSparkJobId": {
            "type": "string",
            "description": "ID of the spark job.\n"
          },
          "driverCores": {
            "type": "number",
            "description": "Specifies the number of CPU cores of the Spark application driver.\nThe default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
          },
          "driverMemory": {
            "type": "string",
            "description": "Specifies the driver memory of the spark application.\nThe default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
          },
          "executorCores": {
            "type": "number",
            "description": "Specifies the number of CPU cores of each executor in the Spark\napplication. The default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
          },
          "executorMemory": {
            "type": "string",
            "description": "Specifies the executor memory of the spark application.\napplication. The default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n\n->**NOTE:** The unit must be provided, such as **GB** or **MB**.\n"
          },
          "executors": {
            "type": "number",
            "description": "Specifies the number of executors in a spark application.\nThe default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
          },
          "files": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies a list of the other dependencies name which has been uploaded to the\nDLI resource management system. The OBS paths are allowed, for example, `obs://<bucket name>/<dependent files>`.\nChanging this parameter will submit a new spark job.\n"
          },
          "jars": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies a list of the jar package name which has been uploaded to the DLI\nresource management system. The OBS paths are allowed, for example, `obs://<bucket name>/<package name>`.\nChanging this parameter will submit a new spark job.\n"
          },
          "mainClass": {
            "type": "string",
            "description": "Specifies the main class of the spark job.\nRequired if the `app_name` is the JAR type.\nChanging this parameter will submit a new spark job.\n"
          },
          "maxRetries": {
            "type": "number",
            "description": "Specifies the maximum retry times.\nThe default value of this value corresponds to the configuration of the selected `specification`.\nIf you set this value instead of the default value, `specification` will be invalid.\nChanging this parameter will submit a new spark job.\n"
          },
          "modules": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies a list of modules that depend on system resources.\nThe dependent modules and corresponding services are as follows.\nChanging this parameter will submit a new spark job.\n+ **sys.datasource.hbase**: CloudTable/MRS HBase\n+ **sys.datasource.opentsdb**: CloudTable/MRS OpenTSDB\n+ **sys.datasource.rds**: RDS MySQL\n+ **sys.datasource.css**: CSS\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the spark job name.\nThe value contains a maximum of 128 characters.\nChanging this parameter will submit a new spark job.\n"
          },
          "owner": {
            "type": "string",
            "description": "The owner of the spark job.\n"
          },
          "pythonFiles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies a list of the python file name which has been uploaded to the\nDLI resource management system. The OBS paths are allowed, for example, `obs://<bucket name>/<python file name>`.\nChanging this parameter will submit a new spark job.\n"
          },
          "queueName": {
            "type": "string",
            "description": "Specifies the DLI queue name.\nChanging this parameter will submit a new spark job.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to submit a spark job.\nIf omitted, the provider-level region will be used.\nChanging this parameter will submit a new spark job.\n"
          },
          "specification": {
            "type": "string",
            "description": "Specifies the compute resource type for spark application.\nThe available types and related specifications are as follows, default to minimum configuration (type **A**).\nChanging this parameter will submit a new spark job.\n\n| type | resource | driver cores | excutor cores | driver memory | executor memory | num executor |\n| ---- | ---- | ---- | ---- | ---- | ---- | ---- |\n| A | 8 vCPUs, 32-GB memory | 2 | 1 | 7G | 4G | 6 |\n| B | 16 vCPUs, 64-GB memory | 2 | 2 | 7G | 8G | 7 |\n| C | 32 vCPUs, 128-GB memory | 4 | 2 | 12G | 8G | 14 |\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDliSparkJobTimeouts:DliSparkJobTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dliSqlJob:DliSqlJob": {
      "description": "Manages DLI SQL job resource within FlexibleEngine\n\n## Example Usage\n\n### Create a Sql job\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst databaseName = config.requireObject(\"databaseName\");\nconst queueName = config.requireObject(\"queueName\");\nconst sql = config.requireObject(\"sql\");\nconst test = new flexibleengine.DliSqlJob(\"test\", {\n    sql: sql,\n    databaseName: databaseName,\n    queueName: queueName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ndatabase_name = config.require_object(\"databaseName\")\nqueue_name = config.require_object(\"queueName\")\nsql = config.require_object(\"sql\")\ntest = flexibleengine.DliSqlJob(\"test\",\n    sql=sql,\n    database_name=database_name,\n    queue_name=queue_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var databaseName = config.RequireObject<dynamic>(\"databaseName\");\n    var queueName = config.RequireObject<dynamic>(\"queueName\");\n    var sql = config.RequireObject<dynamic>(\"sql\");\n    var test = new Flexibleengine.DliSqlJob(\"test\", new()\n    {\n        Sql = sql,\n        DatabaseName = databaseName,\n        QueueName = queueName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdatabaseName := cfg.RequireObject(\"databaseName\")\n\t\tqueueName := cfg.RequireObject(\"queueName\")\n\t\tsql := cfg.RequireObject(\"sql\")\n\t\t_, err := flexibleengine.NewDliSqlJob(ctx, \"test\", &flexibleengine.DliSqlJobArgs{\n\t\t\tSql:          pulumi.Any(sql),\n\t\t\tDatabaseName: pulumi.Any(databaseName),\n\t\t\tQueueName:    pulumi.Any(queueName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DliSqlJob;\nimport com.pulumi.flexibleengine.DliSqlJobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var databaseName = config.get(\"databaseName\");\n        final var queueName = config.get(\"queueName\");\n        final var sql = config.get(\"sql\");\n        var test = new DliSqlJob(\"test\", DliSqlJobArgs.builder()\n            .sql(sql)\n            .databaseName(databaseName)\n            .queueName(queueName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  databaseName:\n    type: dynamic\n  queueName:\n    type: dynamic\n  sql:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DliSqlJob\n    properties:\n      sql: ${sql}\n      databaseName: ${databaseName}\n      queueName: ${queueName}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDLI SQL job can be imported by `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dliSqlJob:DliSqlJob example 7f803d70-c533-469f-8431-e378f3e97123\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include: `conf`, `rows` and `schema`.\n\nIt is generally recommended running `pulumi preview` after importing a resource. You can then decide if changes should\n\nbe applied to the resource, or the resource definition should be updated to align with the resource. Also, you can\n\nignore changes as below.\n\nhcl\n\nresource \"flexibleengine_dli_sql_job\" \"test\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      conf, rows, schema\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "conf": {
          "$ref": "#/types/flexibleengine:index%2FDliSqlJobConf:DliSqlJobConf",
          "description": "Specifies the configuration parameters for the SQL job. Changing this parameter\nwill create a new resource. The conf object structure is documented below.\n\n<a name=\"dli_conf\"></a>\nThe `conf` block supports:\n"
        },
        "databaseName": {
          "type": "string",
          "description": "Specifies the database where the SQL is executed. This argument does\nnot need to be configured during database creation. Changing this parameter will create a new resource.\n"
        },
        "dliSqlJobId": {
          "type": "string",
          "description": "Indicates a resource ID in UUID format.\n"
        },
        "duration": {
          "type": "number",
          "description": "Job running duration (unit: millisecond).\n"
        },
        "jobType": {
          "type": "string",
          "description": "The type of job, includes **DDL**, **DCL**, **IMPORT**, **EXPORT**, **QUERY** and **INSERT**.\n"
        },
        "owner": {
          "type": "string",
          "description": "User who submits a job.\n"
        },
        "queueName": {
          "type": "string",
          "description": "Specifies queue which this job to be submitted belongs.\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the DLI table resource. If omitted,\nthe provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "rows": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "description": "When the statement type is DDL, results of the DDL are displayed.\n"
        },
        "schemas": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "When the statement type is DDL, the column name and type of DDL are displayed.\n"
        },
        "sql": {
          "type": "string",
          "description": "Specifies SQL statement that you want to execute.\nChanging this parameter will create a new resource.\n"
        },
        "startTime": {
          "type": "string",
          "description": "Time when a job is started, in RFC-3339 format. e.g. `2019-10-12T07:20:50.52Z`\n"
        },
        "status": {
          "type": "string",
          "description": "Status of a job, includes **RUNNING**, **SCALING**, **LAUNCHING**, **FINISHED**, **FAILED**,\nand **CANCELED**.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies label of a Job. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDliSqlJobTimeouts:DliSqlJobTimeouts"
        }
      },
      "type": "object",
      "required": [
        "dliSqlJobId",
        "duration",
        "jobType",
        "owner",
        "queueName",
        "region",
        "rows",
        "schemas",
        "sql",
        "startTime",
        "status"
      ],
      "inputProperties": {
        "conf": {
          "$ref": "#/types/flexibleengine:index%2FDliSqlJobConf:DliSqlJobConf",
          "description": "Specifies the configuration parameters for the SQL job. Changing this parameter\nwill create a new resource. The conf object structure is documented below.\n\n<a name=\"dli_conf\"></a>\nThe `conf` block supports:\n"
        },
        "databaseName": {
          "type": "string",
          "description": "Specifies the database where the SQL is executed. This argument does\nnot need to be configured during database creation. Changing this parameter will create a new resource.\n"
        },
        "dliSqlJobId": {
          "type": "string",
          "description": "Indicates a resource ID in UUID format.\n"
        },
        "queueName": {
          "type": "string",
          "description": "Specifies queue which this job to be submitted belongs.\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the DLI table resource. If omitted,\nthe provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "sql": {
          "type": "string",
          "description": "Specifies SQL statement that you want to execute.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies label of a Job. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDliSqlJobTimeouts:DliSqlJobTimeouts"
        }
      },
      "requiredInputs": [
        "sql"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DliSqlJob resources.\n",
        "properties": {
          "conf": {
            "$ref": "#/types/flexibleengine:index%2FDliSqlJobConf:DliSqlJobConf",
            "description": "Specifies the configuration parameters for the SQL job. Changing this parameter\nwill create a new resource. The conf object structure is documented below.\n\n<a name=\"dli_conf\"></a>\nThe `conf` block supports:\n"
          },
          "databaseName": {
            "type": "string",
            "description": "Specifies the database where the SQL is executed. This argument does\nnot need to be configured during database creation. Changing this parameter will create a new resource.\n"
          },
          "dliSqlJobId": {
            "type": "string",
            "description": "Indicates a resource ID in UUID format.\n"
          },
          "duration": {
            "type": "number",
            "description": "Job running duration (unit: millisecond).\n"
          },
          "jobType": {
            "type": "string",
            "description": "The type of job, includes **DDL**, **DCL**, **IMPORT**, **EXPORT**, **QUERY** and **INSERT**.\n"
          },
          "owner": {
            "type": "string",
            "description": "User who submits a job.\n"
          },
          "queueName": {
            "type": "string",
            "description": "Specifies queue which this job to be submitted belongs.\nChanging this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the DLI table resource. If omitted,\nthe provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "rows": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "When the statement type is DDL, results of the DDL are displayed.\n"
          },
          "schemas": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "description": "When the statement type is DDL, the column name and type of DDL are displayed.\n"
          },
          "sql": {
            "type": "string",
            "description": "Specifies SQL statement that you want to execute.\nChanging this parameter will create a new resource.\n"
          },
          "startTime": {
            "type": "string",
            "description": "Time when a job is started, in RFC-3339 format. e.g. `2019-10-12T07:20:50.52Z`\n"
          },
          "status": {
            "type": "string",
            "description": "Status of a job, includes **RUNNING**, **SCALING**, **LAUNCHING**, **FINISHED**, **FAILED**,\nand **CANCELED**.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies label of a Job. Changing this parameter will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDliSqlJobTimeouts:DliSqlJobTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dliTable:DliTable": {
      "description": "Manages DLI Table resource within FlexibleEngine\n\n## Example Usage\n\n### Create a Table\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst databaseName = config.requireObject(\"databaseName\");\nconst testDliDatabase = new flexibleengine.DliDatabase(\"testDliDatabase\", {});\nconst testObsBucket = new flexibleengine.ObsBucket(\"testObsBucket\", {\n    bucket: \"test\",\n    acl: \"private\",\n});\nconst testObsBucketObject = new flexibleengine.ObsBucketObject(\"testObsBucketObject\", {\n    bucket: testObsBucket.bucket,\n    key: \"user/data/user.csv\",\n    content: \"Jason,Tokyo\",\n    contentType: \"text/plain\",\n});\nconst testDliTable = new flexibleengine.DliTable(\"testDliTable\", {\n    databaseName: testDliDatabase.name,\n    dataLocation: \"OBS\",\n    description: \"dli table test\",\n    dataFormat: \"csv\",\n    bucketLocation: pulumi.interpolate`obs://${testObsBucketObject.bucket}/user/data`,\n    columns: [\n        {\n            name: \"name\",\n            type: \"string\",\n            description: \"person name\",\n        },\n        {\n            name: \"addrss\",\n            type: \"string\",\n            description: \"home address\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ndatabase_name = config.require_object(\"databaseName\")\ntest_dli_database = flexibleengine.DliDatabase(\"testDliDatabase\")\ntest_obs_bucket = flexibleengine.ObsBucket(\"testObsBucket\",\n    bucket=\"test\",\n    acl=\"private\")\ntest_obs_bucket_object = flexibleengine.ObsBucketObject(\"testObsBucketObject\",\n    bucket=test_obs_bucket.bucket,\n    key=\"user/data/user.csv\",\n    content=\"Jason,Tokyo\",\n    content_type=\"text/plain\")\ntest_dli_table = flexibleengine.DliTable(\"testDliTable\",\n    database_name=test_dli_database.name,\n    data_location=\"OBS\",\n    description=\"dli table test\",\n    data_format=\"csv\",\n    bucket_location=test_obs_bucket_object.bucket.apply(lambda bucket: f\"obs://{bucket}/user/data\"),\n    columns=[\n        {\n            \"name\": \"name\",\n            \"type\": \"string\",\n            \"description\": \"person name\",\n        },\n        {\n            \"name\": \"addrss\",\n            \"type\": \"string\",\n            \"description\": \"home address\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var databaseName = config.RequireObject<dynamic>(\"databaseName\");\n    var testDliDatabase = new Flexibleengine.DliDatabase(\"testDliDatabase\");\n\n    var testObsBucket = new Flexibleengine.ObsBucket(\"testObsBucket\", new()\n    {\n        Bucket = \"test\",\n        Acl = \"private\",\n    });\n\n    var testObsBucketObject = new Flexibleengine.ObsBucketObject(\"testObsBucketObject\", new()\n    {\n        Bucket = testObsBucket.Bucket,\n        Key = \"user/data/user.csv\",\n        Content = \"Jason,Tokyo\",\n        ContentType = \"text/plain\",\n    });\n\n    var testDliTable = new Flexibleengine.DliTable(\"testDliTable\", new()\n    {\n        DatabaseName = testDliDatabase.Name,\n        DataLocation = \"OBS\",\n        Description = \"dli table test\",\n        DataFormat = \"csv\",\n        BucketLocation = testObsBucketObject.Bucket.Apply(bucket => $\"obs://{bucket}/user/data\"),\n        Columns = new[]\n        {\n            new Flexibleengine.Inputs.DliTableColumnArgs\n            {\n                Name = \"name\",\n                Type = \"string\",\n                Description = \"person name\",\n            },\n            new Flexibleengine.Inputs.DliTableColumnArgs\n            {\n                Name = \"addrss\",\n                Type = \"string\",\n                Description = \"home address\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdatabaseName := cfg.RequireObject(\"databaseName\")\n\t\ttestDliDatabase, err := flexibleengine.NewDliDatabase(ctx, \"testDliDatabase\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestObsBucket, err := flexibleengine.NewObsBucket(ctx, \"testObsBucket\", &flexibleengine.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"test\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestObsBucketObject, err := flexibleengine.NewObsBucketObject(ctx, \"testObsBucketObject\", &flexibleengine.ObsBucketObjectArgs{\n\t\t\tBucket:      testObsBucket.Bucket,\n\t\t\tKey:         pulumi.String(\"user/data/user.csv\"),\n\t\t\tContent:     pulumi.String(\"Jason,Tokyo\"),\n\t\t\tContentType: pulumi.String(\"text/plain\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewDliTable(ctx, \"testDliTable\", &flexibleengine.DliTableArgs{\n\t\t\tDatabaseName: testDliDatabase.Name,\n\t\t\tDataLocation: pulumi.String(\"OBS\"),\n\t\t\tDescription:  pulumi.String(\"dli table test\"),\n\t\t\tDataFormat:   pulumi.String(\"csv\"),\n\t\t\tBucketLocation: testObsBucketObject.Bucket.ApplyT(func(bucket string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"obs://%v/user/data\", bucket), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tColumns: flexibleengine.DliTableColumnArray{\n\t\t\t\t&flexibleengine.DliTableColumnArgs{\n\t\t\t\t\tName:        pulumi.String(\"name\"),\n\t\t\t\t\tType:        pulumi.String(\"string\"),\n\t\t\t\t\tDescription: pulumi.String(\"person name\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.DliTableColumnArgs{\n\t\t\t\t\tName:        pulumi.String(\"addrss\"),\n\t\t\t\t\tType:        pulumi.String(\"string\"),\n\t\t\t\t\tDescription: pulumi.String(\"home address\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DliDatabase;\nimport com.pulumi.flexibleengine.ObsBucket;\nimport com.pulumi.flexibleengine.ObsBucketArgs;\nimport com.pulumi.flexibleengine.ObsBucketObject;\nimport com.pulumi.flexibleengine.ObsBucketObjectArgs;\nimport com.pulumi.flexibleengine.DliTable;\nimport com.pulumi.flexibleengine.DliTableArgs;\nimport com.pulumi.flexibleengine.inputs.DliTableColumnArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var databaseName = config.get(\"databaseName\");\n        var testDliDatabase = new DliDatabase(\"testDliDatabase\");\n\n        var testObsBucket = new ObsBucket(\"testObsBucket\", ObsBucketArgs.builder()\n            .bucket(\"test\")\n            .acl(\"private\")\n            .build());\n\n        var testObsBucketObject = new ObsBucketObject(\"testObsBucketObject\", ObsBucketObjectArgs.builder()\n            .bucket(testObsBucket.bucket())\n            .key(\"user/data/user.csv\")\n            .content(\"Jason,Tokyo\")\n            .contentType(\"text/plain\")\n            .build());\n\n        var testDliTable = new DliTable(\"testDliTable\", DliTableArgs.builder()\n            .databaseName(testDliDatabase.name())\n            .dataLocation(\"OBS\")\n            .description(\"dli table test\")\n            .dataFormat(\"csv\")\n            .bucketLocation(testObsBucketObject.bucket().applyValue(bucket -> String.format(\"obs://%s/user/data\", bucket)))\n            .columns(            \n                DliTableColumnArgs.builder()\n                    .name(\"name\")\n                    .type(\"string\")\n                    .description(\"person name\")\n                    .build(),\n                DliTableColumnArgs.builder()\n                    .name(\"addrss\")\n                    .type(\"string\")\n                    .description(\"home address\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  databaseName:\n    type: dynamic\nresources:\n  testDliDatabase:\n    type: flexibleengine:DliDatabase\n  testObsBucket:\n    type: flexibleengine:ObsBucket\n    properties:\n      bucket: test\n      acl: private\n  testObsBucketObject:\n    type: flexibleengine:ObsBucketObject\n    properties:\n      bucket: ${testObsBucket.bucket}\n      key: user/data/user.csv\n      content: Jason,Tokyo\n      contentType: text/plain\n  testDliTable:\n    type: flexibleengine:DliTable\n    properties:\n      databaseName: ${testDliDatabase.name}\n      dataLocation: OBS\n      description: dli table test\n      dataFormat: csv\n      bucketLocation: obs://${testObsBucketObject.bucket}/user/data\n      columns:\n        - name: name\n          type: string\n          description: person name\n        - name: addrss\n          type: string\n          description: home address\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDLI table can be imported by `id`. It is composed of the name of database which table belongs and the name of table,\n\n separated by a slash. For example,\n\n```sh\n$ pulumi import flexibleengine:index/dliTable:DliTable example <database_name>/<table_name>\n```\n\n",
      "properties": {
        "bucketLocation": {
          "type": "string",
          "description": "Specifies storage path of data which will be import to the OBS table.\nChanging this parameter will create a new resource.\n> If you need to import data stored in OBS to the OBS table, set this parameter to the path of a folder. If the table\ncreation path is a file, data fails to be imported. which must be a path on OBS and must begin with obs.\n"
        },
        "columns": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDliTableColumn:DliTableColumn"
          },
          "description": "Specifies Columns of the new table. Structure is documented below.\nChanging this parameter will create a new resource.\n"
        },
        "dataFormat": {
          "type": "string",
          "description": "Specifies type of the data to be added to the OBS table.\nThe options: parquet, orc, csv, json, carbon, and avro. Changing this parameter will create a new resource.\n"
        },
        "dataLocation": {
          "type": "string",
          "description": "Specifies data storage location. Changing this parameter will create\na newresource. The options are as follows:\n+ **OBS**: Data stored in OBS tables is applicable to delay-insensitive services, such as historical data statistics\nand analysis.\n"
        },
        "databaseName": {
          "type": "string",
          "description": "Specifies the database name which the table belongs to.\nChanging this parameter will create a new resource.\n"
        },
        "dateFormat": {
          "type": "string",
          "description": "Specifies date type. `yyyy-MM-dd` is used by default. Only\ndata in CSV and JSON files has this attribute. Changing this parameter will create a new resource.\n"
        },
        "delimiter": {
          "type": "string",
          "description": "Specifies data delimiter. Only data in CSV files has this\nattribute. Changing this parameter will create a new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies description of the table.\nChanging this parameter will create a new resource.\n"
        },
        "dliTableId": {
          "type": "string",
          "description": "A resource ID in format of **database_name/table_name**. It is composed of the name of database which table\nbelongs and the name of table, separated by a slash.\n"
        },
        "escapeChar": {
          "type": "string",
          "description": "Specifies escape character. Backslashes (`\\\\`) are used by\ndefault. Only data in CSV files has this attribute. Changing this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the table name. The name can contain only digits, letters,\nand underscores, but cannot contain only digits or start with an underscore. Length range: 1 to 128 characters.\nChanging this parameter will create a new resource.\n"
        },
        "quoteChar": {
          "type": "string",
          "description": "Specifies reference character. Double quotation marks (`\\`)\nare used by default. Only data in CSV files has this attribute. Changing this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the dli table resource. If omitted,\nthe provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDliTableTimeouts:DliTableTimeouts"
        },
        "timestampFormat": {
          "type": "string",
          "description": "Specifies timestamp type. `yyyy-MM-dd HH:mm:ss` is used by default.\nOnly data in CSV and JSON files has this attribute. Changing this parameter will create a new resource.\n"
        },
        "withColumnHeader": {
          "type": "boolean",
          "description": "Specifies whether the table header is included in the data file.\nOnly data in CSV files has this attribute. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "bucketLocation",
        "dataFormat",
        "dataLocation",
        "databaseName",
        "dateFormat",
        "delimiter",
        "dliTableId",
        "escapeChar",
        "name",
        "quoteChar",
        "region",
        "timestampFormat",
        "withColumnHeader"
      ],
      "inputProperties": {
        "bucketLocation": {
          "type": "string",
          "description": "Specifies storage path of data which will be import to the OBS table.\nChanging this parameter will create a new resource.\n> If you need to import data stored in OBS to the OBS table, set this parameter to the path of a folder. If the table\ncreation path is a file, data fails to be imported. which must be a path on OBS and must begin with obs.\n"
        },
        "columns": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDliTableColumn:DliTableColumn"
          },
          "description": "Specifies Columns of the new table. Structure is documented below.\nChanging this parameter will create a new resource.\n"
        },
        "dataFormat": {
          "type": "string",
          "description": "Specifies type of the data to be added to the OBS table.\nThe options: parquet, orc, csv, json, carbon, and avro. Changing this parameter will create a new resource.\n"
        },
        "dataLocation": {
          "type": "string",
          "description": "Specifies data storage location. Changing this parameter will create\na newresource. The options are as follows:\n+ **OBS**: Data stored in OBS tables is applicable to delay-insensitive services, such as historical data statistics\nand analysis.\n"
        },
        "databaseName": {
          "type": "string",
          "description": "Specifies the database name which the table belongs to.\nChanging this parameter will create a new resource.\n"
        },
        "dateFormat": {
          "type": "string",
          "description": "Specifies date type. `yyyy-MM-dd` is used by default. Only\ndata in CSV and JSON files has this attribute. Changing this parameter will create a new resource.\n"
        },
        "delimiter": {
          "type": "string",
          "description": "Specifies data delimiter. Only data in CSV files has this\nattribute. Changing this parameter will create a new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies description of the table.\nChanging this parameter will create a new resource.\n"
        },
        "dliTableId": {
          "type": "string",
          "description": "A resource ID in format of **database_name/table_name**. It is composed of the name of database which table\nbelongs and the name of table, separated by a slash.\n"
        },
        "escapeChar": {
          "type": "string",
          "description": "Specifies escape character. Backslashes (`\\\\`) are used by\ndefault. Only data in CSV files has this attribute. Changing this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the table name. The name can contain only digits, letters,\nand underscores, but cannot contain only digits or start with an underscore. Length range: 1 to 128 characters.\nChanging this parameter will create a new resource.\n"
        },
        "quoteChar": {
          "type": "string",
          "description": "Specifies reference character. Double quotation marks (`\\`)\nare used by default. Only data in CSV files has this attribute. Changing this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the dli table resource. If omitted,\nthe provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDliTableTimeouts:DliTableTimeouts"
        },
        "timestampFormat": {
          "type": "string",
          "description": "Specifies timestamp type. `yyyy-MM-dd HH:mm:ss` is used by default.\nOnly data in CSV and JSON files has this attribute. Changing this parameter will create a new resource.\n"
        },
        "withColumnHeader": {
          "type": "boolean",
          "description": "Specifies whether the table header is included in the data file.\nOnly data in CSV files has this attribute. Changing this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "dataLocation",
        "databaseName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DliTable resources.\n",
        "properties": {
          "bucketLocation": {
            "type": "string",
            "description": "Specifies storage path of data which will be import to the OBS table.\nChanging this parameter will create a new resource.\n> If you need to import data stored in OBS to the OBS table, set this parameter to the path of a folder. If the table\ncreation path is a file, data fails to be imported. which must be a path on OBS and must begin with obs.\n"
          },
          "columns": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDliTableColumn:DliTableColumn"
            },
            "description": "Specifies Columns of the new table. Structure is documented below.\nChanging this parameter will create a new resource.\n"
          },
          "dataFormat": {
            "type": "string",
            "description": "Specifies type of the data to be added to the OBS table.\nThe options: parquet, orc, csv, json, carbon, and avro. Changing this parameter will create a new resource.\n"
          },
          "dataLocation": {
            "type": "string",
            "description": "Specifies data storage location. Changing this parameter will create\na newresource. The options are as follows:\n+ **OBS**: Data stored in OBS tables is applicable to delay-insensitive services, such as historical data statistics\nand analysis.\n"
          },
          "databaseName": {
            "type": "string",
            "description": "Specifies the database name which the table belongs to.\nChanging this parameter will create a new resource.\n"
          },
          "dateFormat": {
            "type": "string",
            "description": "Specifies date type. `yyyy-MM-dd` is used by default. Only\ndata in CSV and JSON files has this attribute. Changing this parameter will create a new resource.\n"
          },
          "delimiter": {
            "type": "string",
            "description": "Specifies data delimiter. Only data in CSV files has this\nattribute. Changing this parameter will create a new resource.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies description of the table.\nChanging this parameter will create a new resource.\n"
          },
          "dliTableId": {
            "type": "string",
            "description": "A resource ID in format of **database_name/table_name**. It is composed of the name of database which table\nbelongs and the name of table, separated by a slash.\n"
          },
          "escapeChar": {
            "type": "string",
            "description": "Specifies escape character. Backslashes (`\\\\`) are used by\ndefault. Only data in CSV files has this attribute. Changing this parameter will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the table name. The name can contain only digits, letters,\nand underscores, but cannot contain only digits or start with an underscore. Length range: 1 to 128 characters.\nChanging this parameter will create a new resource.\n"
          },
          "quoteChar": {
            "type": "string",
            "description": "Specifies reference character. Double quotation marks (`\\`)\nare used by default. Only data in CSV files has this attribute. Changing this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the dli table resource. If omitted,\nthe provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDliTableTimeouts:DliTableTimeouts"
          },
          "timestampFormat": {
            "type": "string",
            "description": "Specifies timestamp type. `yyyy-MM-dd HH:mm:ss` is used by default.\nOnly data in CSV and JSON files has this attribute. Changing this parameter will create a new resource.\n"
          },
          "withColumnHeader": {
            "type": "boolean",
            "description": "Specifies whether the table header is included in the data file.\nOnly data in CSV files has this attribute. Changing this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dliTemplateFlink:DliTemplateFlink": {
      "description": "Manages a DLI Flink template resource within FlexibleEngine.  \n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst sql = config.requireObject(\"sql\");\nconst test = new flexibleengine.DliTemplateFlink(\"test\", {\n    type: \"flink_sql_job\",\n    sql: sql,\n    description: \"This is a demo\",\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nsql = config.require_object(\"sql\")\ntest = flexibleengine.DliTemplateFlink(\"test\",\n    type=\"flink_sql_job\",\n    sql=sql,\n    description=\"This is a demo\",\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var sql = config.RequireObject<dynamic>(\"sql\");\n    var test = new Flexibleengine.DliTemplateFlink(\"test\", new()\n    {\n        Type = \"flink_sql_job\",\n        Sql = sql,\n        Description = \"This is a demo\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsql := cfg.RequireObject(\"sql\")\n\t\t_, err := flexibleengine.NewDliTemplateFlink(ctx, \"test\", &flexibleengine.DliTemplateFlinkArgs{\n\t\t\tType:        pulumi.String(\"flink_sql_job\"),\n\t\t\tSql:         pulumi.Any(sql),\n\t\t\tDescription: pulumi.String(\"This is a demo\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DliTemplateFlink;\nimport com.pulumi.flexibleengine.DliTemplateFlinkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sql = config.get(\"sql\");\n        var test = new DliTemplateFlink(\"test\", DliTemplateFlinkArgs.builder()\n            .type(\"flink_sql_job\")\n            .sql(sql)\n            .description(\"This is a demo\")\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sql:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DliTemplateFlink\n    properties:\n      type: flink_sql_job\n      sql: ${sql}\n      description: This is a demo\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe flink template can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dliTemplateFlink:DliTemplateFlink test 1231\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include:\n\n`tags`.\n\nIt is generally recommended running `pulumi preview` after importing a resource.\n\nYou can then decide if changes should be applied to the resource, or the resource definition should be updated to align\n\nwith the resource. Also, you can ignore changes as below.\n\nbash\n\nresource \"flexibleengine_dli_template_flink\" \"test\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      tags\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "The description of the flink template.\n"
        },
        "dliTemplateFlinkId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the flink template.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "sql": {
          "type": "string",
          "description": "The statement of the flink template.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the flink template.\n\nChanging this parameter will create a new resource.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of the flink template.  \nValid values are **flink_sql_job** and **flink_opensource_sql_job**.\nDefaults to **flink_sql_job**.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "dliTemplateFlinkId",
        "name",
        "region",
        "sql",
        "tags",
        "type"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "The description of the flink template.\n"
        },
        "dliTemplateFlinkId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the flink template.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "sql": {
          "type": "string",
          "description": "The statement of the flink template.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the flink template.\n\nChanging this parameter will create a new resource.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of the flink template.  \nValid values are **flink_sql_job** and **flink_opensource_sql_job**.\nDefaults to **flink_sql_job**.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DliTemplateFlink resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "The description of the flink template.\n"
          },
          "dliTemplateFlinkId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the flink template.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "sql": {
            "type": "string",
            "description": "The statement of the flink template.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the flink template.\n\nChanging this parameter will create a new resource.\n"
          },
          "type": {
            "type": "string",
            "description": "The type of the flink template.  \nValid values are **flink_sql_job** and **flink_opensource_sql_job**.\nDefaults to **flink_sql_job**.\n\nChanging this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dmsKafkaInstance:DmsKafkaInstance": {
      "description": "Manage a DMS Kafka instance resources within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getDmsProduct({\n    bandwidth: \"100MB\",\n});\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst exampleSecgroup = new flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", {description: \"My neutron security group\"});\nconst product1 = new flexibleengine.DmsKafkaInstance(\"product1\", {\n    engineVersion: \"2.3.0\",\n    bandwidth: \"100MB\",\n    availabilityZones: data.flexibleengine_dms_product.product_1.availability_zones,\n    productId: test.then(test => test.id),\n    storageSpace: test.then(test => test.storageSpace),\n    storageSpecCode: \"dms.physical.storage.ultra\",\n    vpcId: exampleVpc.vpcV1Id,\n    networkId: exampleSubnet.vpcSubnetV1Id,\n    securityGroupId: exampleSecgroup.networkingSecgroupV2Id,\n    managerUser: \"admin\",\n    managerPassword: \"AdminTest@123\",\n    accessUser: \"user\",\n    password: \"Kafkatest@123\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_dms_product(bandwidth=\"100MB\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nexample_secgroup = flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", description=\"My neutron security group\")\nproduct1 = flexibleengine.DmsKafkaInstance(\"product1\",\n    engine_version=\"2.3.0\",\n    bandwidth=\"100MB\",\n    availability_zones=data[\"flexibleengine_dms_product\"][\"product_1\"][\"availability_zones\"],\n    product_id=test.id,\n    storage_space=test.storage_space,\n    storage_spec_code=\"dms.physical.storage.ultra\",\n    vpc_id=example_vpc.vpc_v1_id,\n    network_id=example_subnet.vpc_subnet_v1_id,\n    security_group_id=example_secgroup.networking_secgroup_v2_id,\n    manager_user=\"admin\",\n    manager_password=\"AdminTest@123\",\n    access_user=\"user\",\n    password=\"Kafkatest@123\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Flexibleengine.GetDmsProduct.Invoke(new()\n    {\n        Bandwidth = \"100MB\",\n    });\n\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var exampleSecgroup = new Flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", new()\n    {\n        Description = \"My neutron security group\",\n    });\n\n    var product1 = new Flexibleengine.DmsKafkaInstance(\"product1\", new()\n    {\n        EngineVersion = \"2.3.0\",\n        Bandwidth = \"100MB\",\n        AvailabilityZones = data.Flexibleengine_dms_product.Product_1.Availability_zones,\n        ProductId = test.Apply(getDmsProductResult => getDmsProductResult.Id),\n        StorageSpace = test.Apply(getDmsProductResult => getDmsProductResult.StorageSpace),\n        StorageSpecCode = \"dms.physical.storage.ultra\",\n        VpcId = exampleVpc.VpcV1Id,\n        NetworkId = exampleSubnet.VpcSubnetV1Id,\n        SecurityGroupId = exampleSecgroup.NetworkingSecgroupV2Id,\n        ManagerUser = \"admin\",\n        ManagerPassword = \"AdminTest@123\",\n        AccessUser = \"user\",\n        Password = \"Kafkatest@123\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := flexibleengine.GetDmsProduct(ctx, &flexibleengine.GetDmsProductArgs{\n\t\t\tBandwidth: \"100MB\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecgroup, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"exampleSecgroup\", &flexibleengine.NetworkingSecgroupV2Args{\n\t\t\tDescription: pulumi.String(\"My neutron security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewDmsKafkaInstance(ctx, \"product1\", &flexibleengine.DmsKafkaInstanceArgs{\n\t\t\tEngineVersion:     pulumi.String(\"2.3.0\"),\n\t\t\tBandwidth:         pulumi.String(\"100MB\"),\n\t\t\tAvailabilityZones: pulumi.Any(data.Flexibleengine_dms_product.Product_1.Availability_zones),\n\t\t\tProductId:         pulumi.String(test.Id),\n\t\t\tStorageSpace:      pulumi.Float64(test.StorageSpace),\n\t\t\tStorageSpecCode:   pulumi.String(\"dms.physical.storage.ultra\"),\n\t\t\tVpcId:             exampleVpc.VpcV1Id,\n\t\t\tNetworkId:         exampleSubnet.VpcSubnetV1Id,\n\t\t\tSecurityGroupId:   exampleSecgroup.NetworkingSecgroupV2Id,\n\t\t\tManagerUser:       pulumi.String(\"admin\"),\n\t\t\tManagerPassword:   pulumi.String(\"AdminTest@123\"),\n\t\t\tAccessUser:        pulumi.String(\"user\"),\n\t\t\tPassword:          pulumi.String(\"Kafkatest@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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDmsProductArgs;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2Args;\nimport com.pulumi.flexibleengine.DmsKafkaInstance;\nimport com.pulumi.flexibleengine.DmsKafkaInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getDmsProduct(GetDmsProductArgs.builder()\n            .bandwidth(\"100MB\")\n            .build());\n\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var exampleSecgroup = new NetworkingSecgroupV2(\"exampleSecgroup\", NetworkingSecgroupV2Args.builder()\n            .description(\"My neutron security group\")\n            .build());\n\n        var product1 = new DmsKafkaInstance(\"product1\", DmsKafkaInstanceArgs.builder()\n            .engineVersion(\"2.3.0\")\n            .bandwidth(\"100MB\")\n            .availabilityZones(data.flexibleengine_dms_product().product_1().availability_zones())\n            .productId(test.applyValue(getDmsProductResult -> getDmsProductResult.id()))\n            .storageSpace(test.applyValue(getDmsProductResult -> getDmsProductResult.storageSpace()))\n            .storageSpecCode(\"dms.physical.storage.ultra\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .networkId(exampleSubnet.vpcSubnetV1Id())\n            .securityGroupId(exampleSecgroup.networkingSecgroupV2Id())\n            .managerUser(\"admin\")\n            .managerPassword(\"AdminTest@123\")\n            .accessUser(\"user\")\n            .password(\"Kafkatest@123\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  exampleSecgroup:\n    type: flexibleengine:NetworkingSecgroupV2\n    properties:\n      description: My neutron security group\n  product1:\n    type: flexibleengine:DmsKafkaInstance\n    properties:\n      engineVersion: 2.3.0\n      bandwidth: 100MB\n      availabilityZones: ${data.flexibleengine_dms_product.product_1.availability_zones}\n      productId: ${test.id}\n      storageSpace: ${test.storageSpace}\n      storageSpecCode: dms.physical.storage.ultra\n      vpcId: ${exampleVpc.vpcV1Id}\n      networkId: ${exampleSubnet.vpcSubnetV1Id}\n      securityGroupId: ${exampleSecgroup.networkingSecgroupV2Id}\n      managerUser: admin\n      managerPassword: AdminTest@123\n      accessUser: user\n      password: Kafkatest@123\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDmsProduct\n      arguments:\n        bandwidth: 100MB\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDMS Kafka instance can be imported using the instance id, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dmsKafkaInstance:DmsKafkaInstance instance_1 8d3c7938-dc47-4937-a30f-c80de381c5e3\n```\n\nNote that the imported state may not be identical to your resource definition, because of `access_user`, `password`,\n\n`manager_user` and `manager_password` are missing from the API response due to security reason.\n\nIt is generally recommended running `pulumi preview` after importing a DMS Kafka instance.\n\nYou can then decide if changes should be applied to the instance, or the resource\n\ndefinition should be updated to align with the instance. Also you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_dms_kafka_instance\" \"instance_1\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      access_user, password, manager_user, manager_password,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "accessUser": {
          "type": "string",
          "description": "Specifies a username who can accesse the instance with\nSASL authentication. A username consists of 4 to 64 characters and supports only letters, digits, and hyphens (-).\nChanging this creates a new instance resource.\n"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The names of the AZ where the Kafka instance resides.\nChanging this creates a new instance resource.\n\n> **NOTE:** Deploy one availability zone or at least three availability zones. Do not select two availability zones.\nDeploy to more availability zones, the better the reliability and SLA coverage.\n"
        },
        "bandwidth": {
          "type": "string",
          "description": "The baseline bandwidth of a Kafka instance, that is, the maximum amount of\ndata transferred per unit time. The valid values are **100MB**, **300MB**, **600MB** and **1200MB**.\nChanging this creates a new instance resource.\n"
        },
        "connectAddress": {
          "type": "string",
          "description": "Indicates the IP addresses of the DMS Kafka instance.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Indicates the creation time of the DMS Kafka instance.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the DMS Kafka instance.\nIt is a character string containing not more than 1,024 characters.\n"
        },
        "dmsKafkaInstanceId": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "enableAutoTopic": {
          "type": "boolean",
          "description": "Specifies whether to enable automatic topic creation. If automatic\ntopic creation is enabled, a topic will be automatically created with 3 partitions and 3 replicas when a message is\nproduced to or consumed from a topic that does not exist. Changing this creates a new instance resource.\n"
        },
        "engine": {
          "type": "string",
          "description": "Indicates the message engine, the value is \"kafka\".\n"
        },
        "engineType": {
          "type": "string",
          "description": "Indicates the DMS Kafka instance type, the value is \"cluster\".\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Specifies the version of the Kafka engine. Valid values are \"1.1.0\"\nand \"2.3.0\". Defaults to **2.3.0**. Changing this creates a new instance resource.\n"
        },
        "maintainBegin": {
          "type": "string",
          "description": "Specifies the time at which a maintenance time window starts. Format: HH:mm:ss.\nThe start time must be set to 22:00:00, 02:00:00, 06:00:00, 10:00:00, 14:00:00, or 18:00:00.\nThe system automatically allocates the default start time 02:00:00.\n"
        },
        "maintainEnd": {
          "type": "string",
          "description": "Specifies the time at which a maintenance time window ends. Format: HH:mm:ss.\nThe end time is four hours later than the start time. For example, if the start time is 22:00:00, the end time is\n02:00:00. The system automatically allocates the default end time 06:00:00.\n\n> **NOTE:**  The start time and end time of a maintenance time window must be set in pairs.\n"
        },
        "managerPassword": {
          "type": "string",
          "description": "Specifies the password for logging in to the Kafka Manager. The\npassword must meet the following complexity requirements: Must be 8 to 32 characters long. Must contain at least 2 of\nthe following character types: lowercase letters, uppercase letters, digits, and special characters (`~!@#$%^&*()-_\n=+\\\\|[{}]:'\",<.>/?). Changing this creates a new instance resource.\n",
          "secret": true
        },
        "managerUser": {
          "type": "string",
          "description": "Specifies the username for logging in to the Kafka Manager.\nThe username consists of 4 to 64 characters and can contain letters, digits, hyphens (-), and underscores (_).\nChanging this creates a new instance resource.\n"
        },
        "manegementConnectAddress": {
          "type": "string",
          "description": "Indicates the connection address of the Kafka Manager of a Kafka instance.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DMS Kafka instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, hyphens (-) and underscores (_).\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the ID of a VPC subnet.\nChanging this creates a new instance resource.\n"
        },
        "nodeNum": {
          "type": "number",
          "description": "Indicates the count of ECS instances.\n"
        },
        "partitionNum": {
          "type": "number",
          "description": "Indicates the maximum number of topics in the DMS Kafka instance.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the password of the access user. A password must meet the\nfollowing complexity requirements: Must be 8 to 32 characters long. Must contain at least 2 of the following character\ntypes: lowercase letters, uppercase letters, digits, and special characters (`~!@#$%^&*()-_=+\\\\|[{}]:'\",<.>/?).\nChanging this creates a new instance resource.\n\n> **NOTE:** If `access_user` and `password` are specified, Kafka SASL_SSL will be automatically enabled.\n",
          "secret": true
        },
        "port": {
          "type": "number",
          "description": "Indicates the port number of the DMS Kafka instance.\n"
        },
        "productId": {
          "type": "string",
          "description": "Specifies a product ID. You can get the value from id of\nflexibleengine.getDmsProduct\ndata source. Changing this creates a new instance resource.\n"
        },
        "productSpecCode": {
          "type": "string",
          "description": "Indicates the DMS Kafka instance specification.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the DMS Kafka instance resource.\nIf omitted, the provider-level region will be used. Changing this creates a new instance resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the ID of a security group.\n"
        },
        "securityGroupName": {
          "type": "string",
          "description": "Indicates the name of a security group.\n"
        },
        "sslEnable": {
          "type": "boolean",
          "description": "Indicates whether the Kafka SASL_SSL is enabled.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the status of the DMS Kafka instance.\n"
        },
        "storageSpace": {
          "type": "number",
          "description": "Specifies the message storage capacity, the unit is GB. Value range:\n+ When bandwidth is **100MB**: 600–90,000 GB\n+ When bandwidth is **300MB**: 1,200–90,000 GB\n+ When bandwidth is **600MB**: 2,400–90,000 GB\n+ When bandwidth is **1,200MB**: 4,800–90,000 GB\n\nChanging this creates a new instance resource.\n"
        },
        "storageSpecCode": {
          "type": "string",
          "description": "Specifies the storage I/O specification. Value range:\n+ When bandwidth is **100MB**: dms.physical.storage.high or dms.physical.storage.ultra\n+ When bandwidth is **300MB**: dms.physical.storage.high or dms.physical.storage.ultra\n+ When bandwidth is **600MB**: dms.physical.storage.ultra\n+ When bandwidth is **1,200MB**: dms.physical.storage.ultra\n\nDefaults to **dms.physical.storage.ultra**. Changing this creates a new instance resource.\n"
        },
        "subnetName": {
          "type": "string",
          "description": "Indicates the name of a subnet.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the DMS Kafka instance.\nChanging this will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDmsKafkaInstanceTimeouts:DmsKafkaInstanceTimeouts"
        },
        "usedStorageSpace": {
          "type": "number",
          "description": "Indicates the used message storage space. Unit: GB\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of a VPC.\nChanging this creates a new instance resource.\n"
        },
        "vpcName": {
          "type": "string",
          "description": "Indicates the name of a vpc.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZones",
        "bandwidth",
        "connectAddress",
        "createdAt",
        "dmsKafkaInstanceId",
        "engine",
        "engineType",
        "maintainBegin",
        "maintainEnd",
        "manegementConnectAddress",
        "name",
        "networkId",
        "nodeNum",
        "partitionNum",
        "port",
        "productId",
        "productSpecCode",
        "region",
        "securityGroupId",
        "securityGroupName",
        "sslEnable",
        "status",
        "storageSpace",
        "subnetName",
        "usedStorageSpace",
        "vpcId",
        "vpcName"
      ],
      "inputProperties": {
        "accessUser": {
          "type": "string",
          "description": "Specifies a username who can accesse the instance with\nSASL authentication. A username consists of 4 to 64 characters and supports only letters, digits, and hyphens (-).\nChanging this creates a new instance resource.\n"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The names of the AZ where the Kafka instance resides.\nChanging this creates a new instance resource.\n\n> **NOTE:** Deploy one availability zone or at least three availability zones. Do not select two availability zones.\nDeploy to more availability zones, the better the reliability and SLA coverage.\n"
        },
        "bandwidth": {
          "type": "string",
          "description": "The baseline bandwidth of a Kafka instance, that is, the maximum amount of\ndata transferred per unit time. The valid values are **100MB**, **300MB**, **600MB** and **1200MB**.\nChanging this creates a new instance resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the DMS Kafka instance.\nIt is a character string containing not more than 1,024 characters.\n"
        },
        "dmsKafkaInstanceId": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "enableAutoTopic": {
          "type": "boolean",
          "description": "Specifies whether to enable automatic topic creation. If automatic\ntopic creation is enabled, a topic will be automatically created with 3 partitions and 3 replicas when a message is\nproduced to or consumed from a topic that does not exist. Changing this creates a new instance resource.\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Specifies the version of the Kafka engine. Valid values are \"1.1.0\"\nand \"2.3.0\". Defaults to **2.3.0**. Changing this creates a new instance resource.\n"
        },
        "maintainBegin": {
          "type": "string",
          "description": "Specifies the time at which a maintenance time window starts. Format: HH:mm:ss.\nThe start time must be set to 22:00:00, 02:00:00, 06:00:00, 10:00:00, 14:00:00, or 18:00:00.\nThe system automatically allocates the default start time 02:00:00.\n"
        },
        "maintainEnd": {
          "type": "string",
          "description": "Specifies the time at which a maintenance time window ends. Format: HH:mm:ss.\nThe end time is four hours later than the start time. For example, if the start time is 22:00:00, the end time is\n02:00:00. The system automatically allocates the default end time 06:00:00.\n\n> **NOTE:**  The start time and end time of a maintenance time window must be set in pairs.\n"
        },
        "managerPassword": {
          "type": "string",
          "description": "Specifies the password for logging in to the Kafka Manager. The\npassword must meet the following complexity requirements: Must be 8 to 32 characters long. Must contain at least 2 of\nthe following character types: lowercase letters, uppercase letters, digits, and special characters (`~!@#$%^&*()-_\n=+\\\\|[{}]:'\",<.>/?). Changing this creates a new instance resource.\n",
          "secret": true
        },
        "managerUser": {
          "type": "string",
          "description": "Specifies the username for logging in to the Kafka Manager.\nThe username consists of 4 to 64 characters and can contain letters, digits, hyphens (-), and underscores (_).\nChanging this creates a new instance resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DMS Kafka instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, hyphens (-) and underscores (_).\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the ID of a VPC subnet.\nChanging this creates a new instance resource.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the password of the access user. A password must meet the\nfollowing complexity requirements: Must be 8 to 32 characters long. Must contain at least 2 of the following character\ntypes: lowercase letters, uppercase letters, digits, and special characters (`~!@#$%^&*()-_=+\\\\|[{}]:'\",<.>/?).\nChanging this creates a new instance resource.\n\n> **NOTE:** If `access_user` and `password` are specified, Kafka SASL_SSL will be automatically enabled.\n",
          "secret": true
        },
        "productId": {
          "type": "string",
          "description": "Specifies a product ID. You can get the value from id of\nflexibleengine.getDmsProduct\ndata source. Changing this creates a new instance resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the DMS Kafka instance resource.\nIf omitted, the provider-level region will be used. Changing this creates a new instance resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the ID of a security group.\n"
        },
        "storageSpace": {
          "type": "number",
          "description": "Specifies the message storage capacity, the unit is GB. Value range:\n+ When bandwidth is **100MB**: 600–90,000 GB\n+ When bandwidth is **300MB**: 1,200–90,000 GB\n+ When bandwidth is **600MB**: 2,400–90,000 GB\n+ When bandwidth is **1,200MB**: 4,800–90,000 GB\n\nChanging this creates a new instance resource.\n"
        },
        "storageSpecCode": {
          "type": "string",
          "description": "Specifies the storage I/O specification. Value range:\n+ When bandwidth is **100MB**: dms.physical.storage.high or dms.physical.storage.ultra\n+ When bandwidth is **300MB**: dms.physical.storage.high or dms.physical.storage.ultra\n+ When bandwidth is **600MB**: dms.physical.storage.ultra\n+ When bandwidth is **1,200MB**: dms.physical.storage.ultra\n\nDefaults to **dms.physical.storage.ultra**. Changing this creates a new instance resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the DMS Kafka instance.\nChanging this will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDmsKafkaInstanceTimeouts:DmsKafkaInstanceTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of a VPC.\nChanging this creates a new instance resource.\n"
        }
      },
      "requiredInputs": [
        "availabilityZones",
        "bandwidth",
        "networkId",
        "productId",
        "securityGroupId",
        "storageSpace",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DmsKafkaInstance resources.\n",
        "properties": {
          "accessUser": {
            "type": "string",
            "description": "Specifies a username who can accesse the instance with\nSASL authentication. A username consists of 4 to 64 characters and supports only letters, digits, and hyphens (-).\nChanging this creates a new instance resource.\n"
          },
          "availabilityZones": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The names of the AZ where the Kafka instance resides.\nChanging this creates a new instance resource.\n\n> **NOTE:** Deploy one availability zone or at least three availability zones. Do not select two availability zones.\nDeploy to more availability zones, the better the reliability and SLA coverage.\n"
          },
          "bandwidth": {
            "type": "string",
            "description": "The baseline bandwidth of a Kafka instance, that is, the maximum amount of\ndata transferred per unit time. The valid values are **100MB**, **300MB**, **600MB** and **1200MB**.\nChanging this creates a new instance resource.\n"
          },
          "connectAddress": {
            "type": "string",
            "description": "Indicates the IP addresses of the DMS Kafka instance.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Indicates the creation time of the DMS Kafka instance.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the DMS Kafka instance.\nIt is a character string containing not more than 1,024 characters.\n"
          },
          "dmsKafkaInstanceId": {
            "type": "string",
            "description": "Specifies a resource ID in UUID format.\n"
          },
          "enableAutoTopic": {
            "type": "boolean",
            "description": "Specifies whether to enable automatic topic creation. If automatic\ntopic creation is enabled, a topic will be automatically created with 3 partitions and 3 replicas when a message is\nproduced to or consumed from a topic that does not exist. Changing this creates a new instance resource.\n"
          },
          "engine": {
            "type": "string",
            "description": "Indicates the message engine, the value is \"kafka\".\n"
          },
          "engineType": {
            "type": "string",
            "description": "Indicates the DMS Kafka instance type, the value is \"cluster\".\n"
          },
          "engineVersion": {
            "type": "string",
            "description": "Specifies the version of the Kafka engine. Valid values are \"1.1.0\"\nand \"2.3.0\". Defaults to **2.3.0**. Changing this creates a new instance resource.\n"
          },
          "maintainBegin": {
            "type": "string",
            "description": "Specifies the time at which a maintenance time window starts. Format: HH:mm:ss.\nThe start time must be set to 22:00:00, 02:00:00, 06:00:00, 10:00:00, 14:00:00, or 18:00:00.\nThe system automatically allocates the default start time 02:00:00.\n"
          },
          "maintainEnd": {
            "type": "string",
            "description": "Specifies the time at which a maintenance time window ends. Format: HH:mm:ss.\nThe end time is four hours later than the start time. For example, if the start time is 22:00:00, the end time is\n02:00:00. The system automatically allocates the default end time 06:00:00.\n\n> **NOTE:**  The start time and end time of a maintenance time window must be set in pairs.\n"
          },
          "managerPassword": {
            "type": "string",
            "description": "Specifies the password for logging in to the Kafka Manager. The\npassword must meet the following complexity requirements: Must be 8 to 32 characters long. Must contain at least 2 of\nthe following character types: lowercase letters, uppercase letters, digits, and special characters (`~!@#$%^&*()-_\n=+\\\\|[{}]:'\",<.>/?). Changing this creates a new instance resource.\n",
            "secret": true
          },
          "managerUser": {
            "type": "string",
            "description": "Specifies the username for logging in to the Kafka Manager.\nThe username consists of 4 to 64 characters and can contain letters, digits, hyphens (-), and underscores (_).\nChanging this creates a new instance resource.\n"
          },
          "manegementConnectAddress": {
            "type": "string",
            "description": "Indicates the connection address of the Kafka Manager of a Kafka instance.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the DMS Kafka instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, hyphens (-) and underscores (_).\n"
          },
          "networkId": {
            "type": "string",
            "description": "Specifies the ID of a VPC subnet.\nChanging this creates a new instance resource.\n"
          },
          "nodeNum": {
            "type": "number",
            "description": "Indicates the count of ECS instances.\n"
          },
          "partitionNum": {
            "type": "number",
            "description": "Indicates the maximum number of topics in the DMS Kafka instance.\n"
          },
          "password": {
            "type": "string",
            "description": "Specifies the password of the access user. A password must meet the\nfollowing complexity requirements: Must be 8 to 32 characters long. Must contain at least 2 of the following character\ntypes: lowercase letters, uppercase letters, digits, and special characters (`~!@#$%^&*()-_=+\\\\|[{}]:'\",<.>/?).\nChanging this creates a new instance resource.\n\n> **NOTE:** If `access_user` and `password` are specified, Kafka SASL_SSL will be automatically enabled.\n",
            "secret": true
          },
          "port": {
            "type": "number",
            "description": "Indicates the port number of the DMS Kafka instance.\n"
          },
          "productId": {
            "type": "string",
            "description": "Specifies a product ID. You can get the value from id of\nflexibleengine.getDmsProduct\ndata source. Changing this creates a new instance resource.\n"
          },
          "productSpecCode": {
            "type": "string",
            "description": "Indicates the DMS Kafka instance specification.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the DMS Kafka instance resource.\nIf omitted, the provider-level region will be used. Changing this creates a new instance resource.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Specifies the ID of a security group.\n"
          },
          "securityGroupName": {
            "type": "string",
            "description": "Indicates the name of a security group.\n"
          },
          "sslEnable": {
            "type": "boolean",
            "description": "Indicates whether the Kafka SASL_SSL is enabled.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the status of the DMS Kafka instance.\n"
          },
          "storageSpace": {
            "type": "number",
            "description": "Specifies the message storage capacity, the unit is GB. Value range:\n+ When bandwidth is **100MB**: 600–90,000 GB\n+ When bandwidth is **300MB**: 1,200–90,000 GB\n+ When bandwidth is **600MB**: 2,400–90,000 GB\n+ When bandwidth is **1,200MB**: 4,800–90,000 GB\n\nChanging this creates a new instance resource.\n"
          },
          "storageSpecCode": {
            "type": "string",
            "description": "Specifies the storage I/O specification. Value range:\n+ When bandwidth is **100MB**: dms.physical.storage.high or dms.physical.storage.ultra\n+ When bandwidth is **300MB**: dms.physical.storage.high or dms.physical.storage.ultra\n+ When bandwidth is **600MB**: dms.physical.storage.ultra\n+ When bandwidth is **1,200MB**: dms.physical.storage.ultra\n\nDefaults to **dms.physical.storage.ultra**. Changing this creates a new instance resource.\n"
          },
          "subnetName": {
            "type": "string",
            "description": "Indicates the name of a subnet.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the key/value pairs to associate with the DMS Kafka instance.\nChanging this will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDmsKafkaInstanceTimeouts:DmsKafkaInstanceTimeouts"
          },
          "usedStorageSpace": {
            "type": "number",
            "description": "Indicates the used message storage space. Unit: GB\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of a VPC.\nChanging this creates a new instance resource.\n"
          },
          "vpcName": {
            "type": "string",
            "description": "Indicates the name of a vpc.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dmsKafkaTopic:DmsKafkaTopic": {
      "description": "Manages a DMS Kafka topic resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst kafkaInstanceId = config.requireObject(\"kafkaInstanceId\");\nconst topic = new flexibleengine.DmsKafkaTopic(\"topic\", {\n    instanceId: kafkaInstanceId,\n    partitions: 20,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nkafka_instance_id = config.require_object(\"kafkaInstanceId\")\ntopic = flexibleengine.DmsKafkaTopic(\"topic\",\n    instance_id=kafka_instance_id,\n    partitions=20)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var kafkaInstanceId = config.RequireObject<dynamic>(\"kafkaInstanceId\");\n    var topic = new Flexibleengine.DmsKafkaTopic(\"topic\", new()\n    {\n        InstanceId = kafkaInstanceId,\n        Partitions = 20,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tkafkaInstanceId := cfg.RequireObject(\"kafkaInstanceId\")\n\t\t_, err := flexibleengine.NewDmsKafkaTopic(ctx, \"topic\", &flexibleengine.DmsKafkaTopicArgs{\n\t\t\tInstanceId: pulumi.Any(kafkaInstanceId),\n\t\t\tPartitions: pulumi.Float64(20),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DmsKafkaTopic;\nimport com.pulumi.flexibleengine.DmsKafkaTopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var kafkaInstanceId = config.get(\"kafkaInstanceId\");\n        var topic = new DmsKafkaTopic(\"topic\", DmsKafkaTopicArgs.builder()\n            .instanceId(kafkaInstanceId)\n            .partitions(20)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  kafkaInstanceId:\n    type: dynamic\nresources:\n  topic:\n    type: flexibleengine:DmsKafkaTopic\n    properties:\n      instanceId: ${kafkaInstanceId}\n      partitions: 20\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDMS Kafka topics can be imported using the Kafka instance ID and topic name separated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/dmsKafkaTopic:DmsKafkaTopic topic c8057fe5-23a8-46ef-ad83-c0055b4e0c5c/topic_1\n```\n\n",
      "properties": {
        "agingTime": {
          "type": "number",
          "description": "Specifies the aging time in hours.\nThe value ranges from 1 to 720 and defaults to 72. Changing this creates a new resource.\n"
        },
        "dmsKafkaTopicId": {
          "type": "string",
          "description": "The resource ID which equals to the topic name.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the DMS Kafka instance to which the topic belongs.\nChanging this creates a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the topic. The name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, hyphens (-) and underscores (_).\nChanging this creates a new resource.\n"
        },
        "partitions": {
          "type": "number",
          "description": "Specifies the partition number.\nThe value ranges from 1 to 50 and defaults to 3. Changing this creates a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the DMS Kafka topic resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "replicas": {
          "type": "number",
          "description": "Specifies the replica number. The value ranges from 1 to 3 and defaults to 3.\nChanging this creates a new resource.\n"
        },
        "syncFlushing": {
          "type": "boolean",
          "description": "Whether or not to enable synchronous flushing.\nChanging this creates a new resource.\n"
        },
        "syncReplication": {
          "type": "boolean",
          "description": "Whether or not to enable synchronous replication.\nChanging this creates a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "agingTime",
        "dmsKafkaTopicId",
        "instanceId",
        "name",
        "partitions",
        "region",
        "replicas",
        "syncFlushing",
        "syncReplication"
      ],
      "inputProperties": {
        "agingTime": {
          "type": "number",
          "description": "Specifies the aging time in hours.\nThe value ranges from 1 to 720 and defaults to 72. Changing this creates a new resource.\n"
        },
        "dmsKafkaTopicId": {
          "type": "string",
          "description": "The resource ID which equals to the topic name.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the DMS Kafka instance to which the topic belongs.\nChanging this creates a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the topic. The name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, hyphens (-) and underscores (_).\nChanging this creates a new resource.\n"
        },
        "partitions": {
          "type": "number",
          "description": "Specifies the partition number.\nThe value ranges from 1 to 50 and defaults to 3. Changing this creates a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the DMS Kafka topic resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "replicas": {
          "type": "number",
          "description": "Specifies the replica number. The value ranges from 1 to 3 and defaults to 3.\nChanging this creates a new resource.\n"
        },
        "syncFlushing": {
          "type": "boolean",
          "description": "Whether or not to enable synchronous flushing.\nChanging this creates a new resource.\n"
        },
        "syncReplication": {
          "type": "boolean",
          "description": "Whether or not to enable synchronous replication.\nChanging this creates a new resource.\n"
        }
      },
      "requiredInputs": [
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DmsKafkaTopic resources.\n",
        "properties": {
          "agingTime": {
            "type": "number",
            "description": "Specifies the aging time in hours.\nThe value ranges from 1 to 720 and defaults to 72. Changing this creates a new resource.\n"
          },
          "dmsKafkaTopicId": {
            "type": "string",
            "description": "The resource ID which equals to the topic name.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the DMS Kafka instance to which the topic belongs.\nChanging this creates a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the topic. The name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, hyphens (-) and underscores (_).\nChanging this creates a new resource.\n"
          },
          "partitions": {
            "type": "number",
            "description": "Specifies the partition number.\nThe value ranges from 1 to 50 and defaults to 3. Changing this creates a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the DMS Kafka topic resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
          },
          "replicas": {
            "type": "number",
            "description": "Specifies the replica number. The value ranges from 1 to 3 and defaults to 3.\nChanging this creates a new resource.\n"
          },
          "syncFlushing": {
            "type": "boolean",
            "description": "Whether or not to enable synchronous flushing.\nChanging this creates a new resource.\n"
          },
          "syncReplication": {
            "type": "boolean",
            "description": "Whether or not to enable synchronous replication.\nChanging this creates a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dmsKafkaUser:DmsKafkaUser": {
      "description": "Manages a DMS kafka user resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst kafkaInstanceId = config.requireObject(\"kafkaInstanceId\");\nconst user = new flexibleengine.DmsKafkaUser(\"user\", {\n    instanceId: kafkaInstanceId,\n    password: \"Test@123\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nkafka_instance_id = config.require_object(\"kafkaInstanceId\")\nuser = flexibleengine.DmsKafkaUser(\"user\",\n    instance_id=kafka_instance_id,\n    password=\"Test@123\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var kafkaInstanceId = config.RequireObject<dynamic>(\"kafkaInstanceId\");\n    var user = new Flexibleengine.DmsKafkaUser(\"user\", new()\n    {\n        InstanceId = kafkaInstanceId,\n        Password = \"Test@123\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tkafkaInstanceId := cfg.RequireObject(\"kafkaInstanceId\")\n\t\t_, err := flexibleengine.NewDmsKafkaUser(ctx, \"user\", &flexibleengine.DmsKafkaUserArgs{\n\t\t\tInstanceId: pulumi.Any(kafkaInstanceId),\n\t\t\tPassword:   pulumi.String(\"Test@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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DmsKafkaUser;\nimport com.pulumi.flexibleengine.DmsKafkaUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var kafkaInstanceId = config.get(\"kafkaInstanceId\");\n        var user = new DmsKafkaUser(\"user\", DmsKafkaUserArgs.builder()\n            .instanceId(kafkaInstanceId)\n            .password(\"Test@123\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  kafkaInstanceId:\n    type: dynamic\nresources:\n  user:\n    type: flexibleengine:DmsKafkaUser\n    properties:\n      instanceId: ${kafkaInstanceId}\n      password: Test@123\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDMS kafka users can be imported using the kafka instance ID and user name separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dmsKafkaUser:DmsKafkaUser user c8057fe5-23a8-46ef-ad83-c0055b4e0c5c/user_1\n```\n\n",
      "properties": {
        "dmsKafkaUserId": {
          "type": "string",
          "description": "The resource ID which is formatted `<instance_id>/<user_name>`.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the DMS kafka instance to which the user belongs.\nChanging this creates a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the user. Changing this creates a new resource.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the password of the user. The parameter must be 8 to 32 characters\nlong and contain only letters(case-sensitive), digits, and special characters(`~!@#$%^&*()-_=+|[{}]:'\",<.>/?).\nThe value must be different from name.\n",
          "secret": true
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the DMS kafka user resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "dmsKafkaUserId",
        "instanceId",
        "name",
        "password",
        "region"
      ],
      "inputProperties": {
        "dmsKafkaUserId": {
          "type": "string",
          "description": "The resource ID which is formatted `<instance_id>/<user_name>`.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the DMS kafka instance to which the user belongs.\nChanging this creates a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the user. Changing this creates a new resource.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the password of the user. The parameter must be 8 to 32 characters\nlong and contain only letters(case-sensitive), digits, and special characters(`~!@#$%^&*()-_=+|[{}]:'\",<.>/?).\nThe value must be different from name.\n",
          "secret": true
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the DMS kafka user resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
        }
      },
      "requiredInputs": [
        "instanceId",
        "password"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DmsKafkaUser resources.\n",
        "properties": {
          "dmsKafkaUserId": {
            "type": "string",
            "description": "The resource ID which is formatted `<instance_id>/<user_name>`.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the DMS kafka instance to which the user belongs.\nChanging this creates a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the user. Changing this creates a new resource.\n"
          },
          "password": {
            "type": "string",
            "description": "Specifies the password of the user. The parameter must be 8 to 32 characters\nlong and contain only letters(case-sensitive), digits, and special characters(`~!@#$%^&*()-_=+|[{}]:'\",<.>/?).\nThe value must be different from name.\n",
            "secret": true
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the DMS kafka user resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dmsRocketmqConsumerGroup:DmsRocketmqConsumerGroup": {
      "description": "Manages DMS RocketMQ consumer group resources within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst test = new flexibleengine.DmsRocketmqConsumerGroup(\"test\", {\n    instanceId: instanceId,\n    enabled: true,\n    broadcast: true,\n    brokers: [\n        \"broker-0\",\n        \"broker-1\",\n    ],\n    retryMaxTimes: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = flexibleengine.DmsRocketmqConsumerGroup(\"test\",\n    instance_id=instance_id,\n    enabled=True,\n    broadcast=True,\n    brokers=[\n        \"broker-0\",\n        \"broker-1\",\n    ],\n    retry_max_times=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = new Flexibleengine.DmsRocketmqConsumerGroup(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Enabled = true,\n        Broadcast = true,\n        Brokers = new[]\n        {\n            \"broker-0\",\n            \"broker-1\",\n        },\n        RetryMaxTimes = 3,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := flexibleengine.NewDmsRocketmqConsumerGroup(ctx, \"test\", &flexibleengine.DmsRocketmqConsumerGroupArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tEnabled:    pulumi.Bool(true),\n\t\t\tBroadcast:  pulumi.Bool(true),\n\t\t\tBrokers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"broker-0\"),\n\t\t\t\tpulumi.String(\"broker-1\"),\n\t\t\t},\n\t\t\tRetryMaxTimes: pulumi.Float64(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DmsRocketmqConsumerGroup;\nimport com.pulumi.flexibleengine.DmsRocketmqConsumerGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var test = new DmsRocketmqConsumerGroup(\"test\", DmsRocketmqConsumerGroupArgs.builder()\n            .instanceId(instanceId)\n            .enabled(true)\n            .broadcast(true)\n            .brokers(            \n                \"broker-0\",\n                \"broker-1\")\n            .retryMaxTimes(3)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DmsRocketmqConsumerGroup\n    properties:\n      instanceId: ${instanceId}\n      enabled: true\n      broadcast: true\n      brokers:\n        - broker-0\n        - broker-1\n      retryMaxTimes: 3\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe rocketmq consumer group can be imported using the rocketMQ instance ID and group name separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dmsRocketmqConsumerGroup:DmsRocketmqConsumerGroup test 8d3c7938-dc47-4937-a30f-c80de381c5e3/group_1\n```\n\n",
      "properties": {
        "broadcast": {
          "type": "boolean",
          "description": "Specifies whether to broadcast of the consumer group.\n"
        },
        "brokers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of associated brokers of the consumer group.\n\nChanging this parameter will create a new resource.\n"
        },
        "dmsRocketmqConsumerGroupId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies the consumer group is enabled or not. Default to true.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the rocketMQ instance.\n\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the consumer group.\n\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "retryMaxTimes": {
          "type": "number",
          "description": "Specifies the maximum number of retry times.\n"
        }
      },
      "type": "object",
      "required": [
        "broadcast",
        "brokers",
        "dmsRocketmqConsumerGroupId",
        "enabled",
        "instanceId",
        "name",
        "region",
        "retryMaxTimes"
      ],
      "inputProperties": {
        "broadcast": {
          "type": "boolean",
          "description": "Specifies whether to broadcast of the consumer group.\n"
        },
        "brokers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of associated brokers of the consumer group.\n\nChanging this parameter will create a new resource.\n"
        },
        "dmsRocketmqConsumerGroupId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies the consumer group is enabled or not. Default to true.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the rocketMQ instance.\n\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the consumer group.\n\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "retryMaxTimes": {
          "type": "number",
          "description": "Specifies the maximum number of retry times.\n"
        }
      },
      "requiredInputs": [
        "brokers",
        "instanceId",
        "retryMaxTimes"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DmsRocketmqConsumerGroup resources.\n",
        "properties": {
          "broadcast": {
            "type": "boolean",
            "description": "Specifies whether to broadcast of the consumer group.\n"
          },
          "brokers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the list of associated brokers of the consumer group.\n\nChanging this parameter will create a new resource.\n"
          },
          "dmsRocketmqConsumerGroupId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "enabled": {
            "type": "boolean",
            "description": "Specifies the consumer group is enabled or not. Default to true.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the rocketMQ instance.\n\nChanging this parameter will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the consumer group.\n\nChanging this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "retryMaxTimes": {
            "type": "number",
            "description": "Specifies the maximum number of retry times.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dmsRocketmqInstance:DmsRocketmqInstance": {
      "description": "Manage DMS RocketMQ instance resources within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject(\"vpcId\");\nconst subnetId = config.requireObject(\"subnetId\");\nconst securityGroupId = config.requireObject(\"securityGroupId\");\nconst availabilityZones = config.requireObject<Array<string>>(\"availabilityZones\");\nconst test = new flexibleengine.DmsRocketmqInstance(\"test\", {\n    description: \"this is a rocketmq instance\",\n    engineVersion: \"4.8.0\",\n    storageSpace: 300,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: securityGroupId,\n    availabilityZones: availabilityZones,\n    flavorId: \"c6.4u8g.cluster\",\n    storageSpecCode: \"dms.physical.storage.high.v2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nsecurity_group_id = config.require_object(\"securityGroupId\")\navailability_zones = config.require_object(\"availabilityZones\")\ntest = flexibleengine.DmsRocketmqInstance(\"test\",\n    description=\"this is a rocketmq instance\",\n    engine_version=\"4.8.0\",\n    storage_space=300,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=security_group_id,\n    availability_zones=availability_zones,\n    flavor_id=\"c6.4u8g.cluster\",\n    storage_spec_code=\"dms.physical.storage.high.v2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var securityGroupId = config.RequireObject<dynamic>(\"securityGroupId\");\n    var availabilityZones = config.RequireObject<string[]>(\"availabilityZones\");\n    var test = new Flexibleengine.DmsRocketmqInstance(\"test\", new()\n    {\n        Description = \"this is a rocketmq instance\",\n        EngineVersion = \"4.8.0\",\n        StorageSpace = 300,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = securityGroupId,\n        AvailabilityZones = availabilityZones,\n        FlavorId = \"c6.4u8g.cluster\",\n        StorageSpecCode = \"dms.physical.storage.high.v2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tsecurityGroupId := cfg.RequireObject(\"securityGroupId\")\n\t\tavailabilityZones := cfg.Require(\"availabilityZones\")\n\t\t_, err := flexibleengine.NewDmsRocketmqInstance(ctx, \"test\", &flexibleengine.DmsRocketmqInstanceArgs{\n\t\t\tDescription:       pulumi.String(\"this is a rocketmq instance\"),\n\t\t\tEngineVersion:     pulumi.String(\"4.8.0\"),\n\t\t\tStorageSpace:      pulumi.Float64(300),\n\t\t\tVpcId:             pulumi.Any(vpcId),\n\t\t\tSubnetId:          pulumi.Any(subnetId),\n\t\t\tSecurityGroupId:   pulumi.Any(securityGroupId),\n\t\t\tAvailabilityZones: availabilityZones,\n\t\t\tFlavorId:          pulumi.String(\"c6.4u8g.cluster\"),\n\t\t\tStorageSpecCode:   pulumi.String(\"dms.physical.storage.high.v2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DmsRocketmqInstance;\nimport com.pulumi.flexibleengine.DmsRocketmqInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var securityGroupId = config.get(\"securityGroupId\");\n        final var availabilityZones = config.get(\"availabilityZones\");\n        var test = new DmsRocketmqInstance(\"test\", DmsRocketmqInstanceArgs.builder()\n            .description(\"this is a rocketmq instance\")\n            .engineVersion(\"4.8.0\")\n            .storageSpace(300)\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(securityGroupId)\n            .availabilityZones(availabilityZones)\n            .flavorId(\"c6.4u8g.cluster\")\n            .storageSpecCode(\"dms.physical.storage.high.v2\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  securityGroupId:\n    type: dynamic\n  availabilityZones:\n    type: list(string)\nresources:\n  test:\n    type: flexibleengine:DmsRocketmqInstance\n    properties:\n      description: this is a rocketmq instance\n      engineVersion: 4.8.0\n      storageSpace: 300\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${securityGroupId}\n      availabilityZones: ${availabilityZones}\n      flavorId: c6.4u8g.cluster\n      storageSpecCode: dms.physical.storage.high.v2\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe rocketmq instance can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dmsRocketmqInstance:DmsRocketmqInstance test 8d3c7938-dc47-4937-a30f-c80de381c5e3\n```\n\n",
      "properties": {
        "autoRenew": {
          "type": "string"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of availability zone names, where\ninstance brokers reside and which has available resources.\n\nChanging this parameter will create a new resource.\n"
        },
        "brokerAddress": {
          "type": "string",
          "description": "Indicates the service data address.\n"
        },
        "brokerNum": {
          "type": "number",
          "description": "Specifies the broker numbers. Defaults to 1.\nChanging this parameter will create a new resource.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "crossVpcAccesses": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDmsRocketmqInstanceCrossVpcAccess:DmsRocketmqInstanceCrossVpcAccess"
          }
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the DMS RocketMQ instance.\nThe description can contain a maximum of 1024 characters.\n"
        },
        "dmsRocketmqInstanceId": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "enableAcl": {
          "type": "boolean",
          "description": "Indicates whether access control is enabled.\n"
        },
        "enablePublicip": {
          "type": "boolean",
          "description": "Specifies whether to enable public access.\nBy default, public access is disabled.\nChanging this parameter will create a new resource.\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Specifies the version of the RocketMQ engine. Value: 4.8.0.\nChanging this parameter will create a new resource.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the instance.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "Specifies a product ID. The options are as follows:\n+ **c6.4u8g.cluster**: maximum number of topics on each broker: 4000; maximum number of consumer groups\non each broker: 4000\n+ **c6.8u16g.cluster**: maximum number of topics on each broker: 8000; maximum number of consumer groups\non each broker: 8000\n+ **c6.12u24g.cluster**: maximum number of topics on each broker: 12,000; maximum number of consumer groups\non each broker: 12,000\n+ **c6.16u32g.cluster**: maximum number of topics on each broker: 16,000; maximum number of consumer groups\non each broker: 16,000\nChanging this parameter will create a new resource.\n"
        },
        "ipv6Enable": {
          "type": "boolean",
          "description": "Specifies whether to support IPv6. Defaults to false.\nChanging this parameter will create a new resource.\n"
        },
        "maintainBegin": {
          "type": "string",
          "description": "Indicates the time at which the maintenance window starts. The format is HH:mm:ss.\n"
        },
        "maintainEnd": {
          "type": "string",
          "description": "Indicates the time at which the maintenance window ends. The format is HH:mm:ss.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DMS RocketMQ instance.\nAn instance name starts with a letter, consists of 4 to 64 characters, and can contain only letters,\ndigits, underscores (_), and hyphens (-).\n"
        },
        "namesrvAddress": {
          "type": "string",
          "description": "Indicates the metadata address.\n"
        },
        "newSpecBillingEnable": {
          "type": "boolean",
          "description": "Indicates whether billing based on new specifications is enabled.\n"
        },
        "nodeNum": {
          "type": "number",
          "description": "Indicates the node quantity.\n"
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "publicBrokerAddress": {
          "type": "string",
          "description": "Indicates the public network service data address.\n"
        },
        "publicNamesrvAddress": {
          "type": "string",
          "description": "Indicates the public network metadata address.\n"
        },
        "publicipAddress": {
          "type": "string",
          "description": "Indicates the public IP address.\n"
        },
        "publicipId": {
          "type": "string",
          "description": "Specifies the ID of the EIP bound to the instance.\nUse commas (,) to separate multiple EIP IDs.\nThis parameter is mandatory if public access is enabled (that is, enable_publicip is set to true).\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "resourceSpecCode": {
          "type": "string",
          "description": "Indicates the resource specifications.\n"
        },
        "retentionPolicy": {
          "type": "boolean",
          "description": "Specifies the ACL access control.\n",
          "deprecationMessage": "Deprecated"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the ID of a security group.\n"
        },
        "specification": {
          "type": "string",
          "description": "Indicates the instance specification. For a cluster DMS RocketMQ instance, VM specifications\nand the number of nodes are returned.\n"
        },
        "sslEnable": {
          "type": "boolean",
          "description": "Specifies whether the RocketMQ SASL_SSL is enabled. Defaults to false.\nChanging this parameter will create a new resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the status of the DMS RocketMQ instance.\n"
        },
        "storageSpace": {
          "type": "number",
          "description": "Specifies the message storage capacity, Unit: GB.\nValue range: 300-3000.\nChanging this parameter will create a new resource.\n"
        },
        "storageSpecCode": {
          "type": "string",
          "description": "Specifies the storage I/O specification.\nThe options are as follows:\n+ **dms.physical.storage.high.v2**: high I/O disk\n+ **dms.physical.storage.ultra.v2**: ultra-high I/O disk\nChanging this parameter will create a new resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of a subnet.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDmsRocketmqInstanceTimeouts:DmsRocketmqInstanceTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Indicates the DMS RocketMQ instance type. Value: cluster.\n"
        },
        "usedStorageSpace": {
          "type": "number",
          "description": "Indicates the used message storage space. Unit: GB.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of a VPC.\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZones",
        "brokerAddress",
        "chargingMode",
        "crossVpcAccesses",
        "description",
        "dmsRocketmqInstanceId",
        "enableAcl",
        "engineVersion",
        "enterpriseProjectId",
        "flavorId",
        "maintainBegin",
        "maintainEnd",
        "name",
        "namesrvAddress",
        "newSpecBillingEnable",
        "nodeNum",
        "publicBrokerAddress",
        "publicNamesrvAddress",
        "publicipAddress",
        "publicipId",
        "region",
        "resourceSpecCode",
        "retentionPolicy",
        "securityGroupId",
        "specification",
        "sslEnable",
        "status",
        "storageSpace",
        "storageSpecCode",
        "subnetId",
        "type",
        "usedStorageSpace",
        "vpcId"
      ],
      "inputProperties": {
        "autoRenew": {
          "type": "string"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of availability zone names, where\ninstance brokers reside and which has available resources.\n\nChanging this parameter will create a new resource.\n"
        },
        "brokerNum": {
          "type": "number",
          "description": "Specifies the broker numbers. Defaults to 1.\nChanging this parameter will create a new resource.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the DMS RocketMQ instance.\nThe description can contain a maximum of 1024 characters.\n"
        },
        "dmsRocketmqInstanceId": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "enableAcl": {
          "type": "boolean",
          "description": "Indicates whether access control is enabled.\n"
        },
        "enablePublicip": {
          "type": "boolean",
          "description": "Specifies whether to enable public access.\nBy default, public access is disabled.\nChanging this parameter will create a new resource.\n"
        },
        "engineVersion": {
          "type": "string",
          "description": "Specifies the version of the RocketMQ engine. Value: 4.8.0.\nChanging this parameter will create a new resource.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the instance.\n"
        },
        "flavorId": {
          "type": "string",
          "description": "Specifies a product ID. The options are as follows:\n+ **c6.4u8g.cluster**: maximum number of topics on each broker: 4000; maximum number of consumer groups\non each broker: 4000\n+ **c6.8u16g.cluster**: maximum number of topics on each broker: 8000; maximum number of consumer groups\non each broker: 8000\n+ **c6.12u24g.cluster**: maximum number of topics on each broker: 12,000; maximum number of consumer groups\non each broker: 12,000\n+ **c6.16u32g.cluster**: maximum number of topics on each broker: 16,000; maximum number of consumer groups\non each broker: 16,000\nChanging this parameter will create a new resource.\n"
        },
        "ipv6Enable": {
          "type": "boolean",
          "description": "Specifies whether to support IPv6. Defaults to false.\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the DMS RocketMQ instance.\nAn instance name starts with a letter, consists of 4 to 64 characters, and can contain only letters,\ndigits, underscores (_), and hyphens (-).\n"
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "publicipId": {
          "type": "string",
          "description": "Specifies the ID of the EIP bound to the instance.\nUse commas (,) to separate multiple EIP IDs.\nThis parameter is mandatory if public access is enabled (that is, enable_publicip is set to true).\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "retentionPolicy": {
          "type": "boolean",
          "description": "Specifies the ACL access control.\n",
          "deprecationMessage": "Deprecated"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the ID of a security group.\n"
        },
        "sslEnable": {
          "type": "boolean",
          "description": "Specifies whether the RocketMQ SASL_SSL is enabled. Defaults to false.\nChanging this parameter will create a new resource.\n"
        },
        "storageSpace": {
          "type": "number",
          "description": "Specifies the message storage capacity, Unit: GB.\nValue range: 300-3000.\nChanging this parameter will create a new resource.\n"
        },
        "storageSpecCode": {
          "type": "string",
          "description": "Specifies the storage I/O specification.\nThe options are as follows:\n+ **dms.physical.storage.high.v2**: high I/O disk\n+ **dms.physical.storage.ultra.v2**: ultra-high I/O disk\nChanging this parameter will create a new resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of a subnet.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDmsRocketmqInstanceTimeouts:DmsRocketmqInstanceTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of a VPC.\nChanging this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "availabilityZones",
        "engineVersion",
        "flavorId",
        "securityGroupId",
        "storageSpace",
        "storageSpecCode",
        "subnetId",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DmsRocketmqInstance resources.\n",
        "properties": {
          "autoRenew": {
            "type": "string"
          },
          "availabilityZones": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the list of availability zone names, where\ninstance brokers reside and which has available resources.\n\nChanging this parameter will create a new resource.\n"
          },
          "brokerAddress": {
            "type": "string",
            "description": "Indicates the service data address.\n"
          },
          "brokerNum": {
            "type": "number",
            "description": "Specifies the broker numbers. Defaults to 1.\nChanging this parameter will create a new resource.\n"
          },
          "chargingMode": {
            "type": "string"
          },
          "crossVpcAccesses": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDmsRocketmqInstanceCrossVpcAccess:DmsRocketmqInstanceCrossVpcAccess"
            }
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the DMS RocketMQ instance.\nThe description can contain a maximum of 1024 characters.\n"
          },
          "dmsRocketmqInstanceId": {
            "type": "string",
            "description": "Specifies a resource ID in UUID format.\n"
          },
          "enableAcl": {
            "type": "boolean",
            "description": "Indicates whether access control is enabled.\n"
          },
          "enablePublicip": {
            "type": "boolean",
            "description": "Specifies whether to enable public access.\nBy default, public access is disabled.\nChanging this parameter will create a new resource.\n"
          },
          "engineVersion": {
            "type": "string",
            "description": "Specifies the version of the RocketMQ engine. Value: 4.8.0.\nChanging this parameter will create a new resource.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id of the instance.\n"
          },
          "flavorId": {
            "type": "string",
            "description": "Specifies a product ID. The options are as follows:\n+ **c6.4u8g.cluster**: maximum number of topics on each broker: 4000; maximum number of consumer groups\non each broker: 4000\n+ **c6.8u16g.cluster**: maximum number of topics on each broker: 8000; maximum number of consumer groups\non each broker: 8000\n+ **c6.12u24g.cluster**: maximum number of topics on each broker: 12,000; maximum number of consumer groups\non each broker: 12,000\n+ **c6.16u32g.cluster**: maximum number of topics on each broker: 16,000; maximum number of consumer groups\non each broker: 16,000\nChanging this parameter will create a new resource.\n"
          },
          "ipv6Enable": {
            "type": "boolean",
            "description": "Specifies whether to support IPv6. Defaults to false.\nChanging this parameter will create a new resource.\n"
          },
          "maintainBegin": {
            "type": "string",
            "description": "Indicates the time at which the maintenance window starts. The format is HH:mm:ss.\n"
          },
          "maintainEnd": {
            "type": "string",
            "description": "Indicates the time at which the maintenance window ends. The format is HH:mm:ss.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the DMS RocketMQ instance.\nAn instance name starts with a letter, consists of 4 to 64 characters, and can contain only letters,\ndigits, underscores (_), and hyphens (-).\n"
          },
          "namesrvAddress": {
            "type": "string",
            "description": "Indicates the metadata address.\n"
          },
          "newSpecBillingEnable": {
            "type": "boolean",
            "description": "Indicates whether billing based on new specifications is enabled.\n"
          },
          "nodeNum": {
            "type": "number",
            "description": "Indicates the node quantity.\n"
          },
          "period": {
            "type": "number"
          },
          "periodUnit": {
            "type": "string"
          },
          "publicBrokerAddress": {
            "type": "string",
            "description": "Indicates the public network service data address.\n"
          },
          "publicNamesrvAddress": {
            "type": "string",
            "description": "Indicates the public network metadata address.\n"
          },
          "publicipAddress": {
            "type": "string",
            "description": "Indicates the public IP address.\n"
          },
          "publicipId": {
            "type": "string",
            "description": "Specifies the ID of the EIP bound to the instance.\nUse commas (,) to separate multiple EIP IDs.\nThis parameter is mandatory if public access is enabled (that is, enable_publicip is set to true).\nChanging this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "resourceSpecCode": {
            "type": "string",
            "description": "Indicates the resource specifications.\n"
          },
          "retentionPolicy": {
            "type": "boolean",
            "description": "Specifies the ACL access control.\n",
            "deprecationMessage": "Deprecated"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Specifies the ID of a security group.\n"
          },
          "specification": {
            "type": "string",
            "description": "Indicates the instance specification. For a cluster DMS RocketMQ instance, VM specifications\nand the number of nodes are returned.\n"
          },
          "sslEnable": {
            "type": "boolean",
            "description": "Specifies whether the RocketMQ SASL_SSL is enabled. Defaults to false.\nChanging this parameter will create a new resource.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the status of the DMS RocketMQ instance.\n"
          },
          "storageSpace": {
            "type": "number",
            "description": "Specifies the message storage capacity, Unit: GB.\nValue range: 300-3000.\nChanging this parameter will create a new resource.\n"
          },
          "storageSpecCode": {
            "type": "string",
            "description": "Specifies the storage I/O specification.\nThe options are as follows:\n+ **dms.physical.storage.high.v2**: high I/O disk\n+ **dms.physical.storage.ultra.v2**: ultra-high I/O disk\nChanging this parameter will create a new resource.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the ID of a subnet.\nChanging this parameter will create a new resource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDmsRocketmqInstanceTimeouts:DmsRocketmqInstanceTimeouts"
          },
          "type": {
            "type": "string",
            "description": "Indicates the DMS RocketMQ instance type. Value: cluster.\n"
          },
          "usedStorageSpace": {
            "type": "number",
            "description": "Indicates the used message storage space. Unit: GB.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of a VPC.\nChanging this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dmsRocketmqTopic:DmsRocketmqTopic": {
      "description": "Manages DMS RocketMQ topic resources within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst test = new flexibleengine.DmsRocketmqTopic(\"test\", {\n    instanceId: instanceId,\n    queueNum: 3,\n    permission: \"all\",\n    brokers: [{\n        name: \"broker-0\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = flexibleengine.DmsRocketmqTopic(\"test\",\n    instance_id=instance_id,\n    queue_num=3,\n    permission=\"all\",\n    brokers=[{\n        \"name\": \"broker-0\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = new Flexibleengine.DmsRocketmqTopic(\"test\", new()\n    {\n        InstanceId = instanceId,\n        QueueNum = 3,\n        Permission = \"all\",\n        Brokers = new[]\n        {\n            new Flexibleengine.Inputs.DmsRocketmqTopicBrokerArgs\n            {\n                Name = \"broker-0\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := flexibleengine.NewDmsRocketmqTopic(ctx, \"test\", &flexibleengine.DmsRocketmqTopicArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tQueueNum:   pulumi.Float64(3),\n\t\t\tPermission: pulumi.String(\"all\"),\n\t\t\tBrokers: flexibleengine.DmsRocketmqTopicBrokerArray{\n\t\t\t\t&flexibleengine.DmsRocketmqTopicBrokerArgs{\n\t\t\t\t\tName: pulumi.String(\"broker-0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DmsRocketmqTopic;\nimport com.pulumi.flexibleengine.DmsRocketmqTopicArgs;\nimport com.pulumi.flexibleengine.inputs.DmsRocketmqTopicBrokerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var test = new DmsRocketmqTopic(\"test\", DmsRocketmqTopicArgs.builder()\n            .instanceId(instanceId)\n            .queueNum(3)\n            .permission(\"all\")\n            .brokers(DmsRocketmqTopicBrokerArgs.builder()\n                .name(\"broker-0\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DmsRocketmqTopic\n    properties:\n      instanceId: ${instanceId}\n      queueNum: 3\n      permission: all\n      brokers:\n        - name: broker-0\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe rocketmq topic can be imported using the rocketMQ instance ID and topic name separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dmsRocketmqTopic:DmsRocketmqTopic test c8057fe5-23a8-46ef-ad83-c0055b4e0c5c/topic_1\n```\n\n",
      "properties": {
        "brokers": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDmsRocketmqTopicBroker:DmsRocketmqTopicBroker"
          },
          "description": "Specifies the list of associated brokers of the topic.\nChanging this parameter will create a new resource.\nThe brokers structure is documented below.\n"
        },
        "dmsRocketmqTopicId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the rocketMQ instance.\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Indicates the name of the broker.\n"
        },
        "permission": {
          "type": "string",
          "description": "Specifies the permissions of the topic.\nValue options: **all**, **sub**, **pub**. Default to all.\n"
        },
        "queueNum": {
          "type": "number",
          "description": "Specifies the number of queues. Default to 3.\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "totalReadQueueNum": {
          "type": "number",
          "description": "Specifies the total number of read queues.\n"
        },
        "totalWriteQueueNum": {
          "type": "number",
          "description": "Specifies the total number of write queues.\n\n<a name=\"dms_arg_brokers\"></a>\nThe `brokers` block supports:\n"
        }
      },
      "type": "object",
      "required": [
        "dmsRocketmqTopicId",
        "instanceId",
        "name",
        "permission",
        "queueNum",
        "region",
        "totalReadQueueNum",
        "totalWriteQueueNum"
      ],
      "inputProperties": {
        "brokers": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDmsRocketmqTopicBroker:DmsRocketmqTopicBroker"
          },
          "description": "Specifies the list of associated brokers of the topic.\nChanging this parameter will create a new resource.\nThe brokers structure is documented below.\n"
        },
        "dmsRocketmqTopicId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the rocketMQ instance.\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Indicates the name of the broker.\n"
        },
        "permission": {
          "type": "string",
          "description": "Specifies the permissions of the topic.\nValue options: **all**, **sub**, **pub**. Default to all.\n"
        },
        "queueNum": {
          "type": "number",
          "description": "Specifies the number of queues. Default to 3.\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "totalReadQueueNum": {
          "type": "number",
          "description": "Specifies the total number of read queues.\n"
        },
        "totalWriteQueueNum": {
          "type": "number",
          "description": "Specifies the total number of write queues.\n\n<a name=\"dms_arg_brokers\"></a>\nThe `brokers` block supports:\n"
        }
      },
      "requiredInputs": [
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DmsRocketmqTopic resources.\n",
        "properties": {
          "brokers": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDmsRocketmqTopicBroker:DmsRocketmqTopicBroker"
            },
            "description": "Specifies the list of associated brokers of the topic.\nChanging this parameter will create a new resource.\nThe brokers structure is documented below.\n"
          },
          "dmsRocketmqTopicId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the rocketMQ instance.\nChanging this parameter will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Indicates the name of the broker.\n"
          },
          "permission": {
            "type": "string",
            "description": "Specifies the permissions of the topic.\nValue options: **all**, **sub**, **pub**. Default to all.\n"
          },
          "queueNum": {
            "type": "number",
            "description": "Specifies the number of queues. Default to 3.\nChanging this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "totalReadQueueNum": {
            "type": "number",
            "description": "Specifies the total number of read queues.\n"
          },
          "totalWriteQueueNum": {
            "type": "number",
            "description": "Specifies the total number of write queues.\n\n<a name=\"dms_arg_brokers\"></a>\nThe `brokers` block supports:\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dmsRocketmqUser:DmsRocketmqUser": {
      "description": "Manages DMS RocketMQ user resources within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst test = new flexibleengine.DmsRocketmqUser(\"test\", {\n    instanceId: instanceId,\n    accessKey: \"user_test\",\n    secretKey: \"abcdefg\",\n    whiteRemoteAddress: \"10.10.10.10\",\n    admin: false,\n    defaultTopicPerm: \"PUB\",\n    defaultGroupPerm: \"PUB\",\n    topicPerms: [{\n        name: \"topic_name\",\n        perm: \"PUB\",\n    }],\n    groupPerms: [{\n        name: \"group_name\",\n        perm: \"PUB\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = flexibleengine.DmsRocketmqUser(\"test\",\n    instance_id=instance_id,\n    access_key=\"user_test\",\n    secret_key=\"abcdefg\",\n    white_remote_address=\"10.10.10.10\",\n    admin=False,\n    default_topic_perm=\"PUB\",\n    default_group_perm=\"PUB\",\n    topic_perms=[{\n        \"name\": \"topic_name\",\n        \"perm\": \"PUB\",\n    }],\n    group_perms=[{\n        \"name\": \"group_name\",\n        \"perm\": \"PUB\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = new Flexibleengine.DmsRocketmqUser(\"test\", new()\n    {\n        InstanceId = instanceId,\n        AccessKey = \"user_test\",\n        SecretKey = \"abcdefg\",\n        WhiteRemoteAddress = \"10.10.10.10\",\n        Admin = false,\n        DefaultTopicPerm = \"PUB\",\n        DefaultGroupPerm = \"PUB\",\n        TopicPerms = new[]\n        {\n            new Flexibleengine.Inputs.DmsRocketmqUserTopicPermArgs\n            {\n                Name = \"topic_name\",\n                Perm = \"PUB\",\n            },\n        },\n        GroupPerms = new[]\n        {\n            new Flexibleengine.Inputs.DmsRocketmqUserGroupPermArgs\n            {\n                Name = \"group_name\",\n                Perm = \"PUB\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := flexibleengine.NewDmsRocketmqUser(ctx, \"test\", &flexibleengine.DmsRocketmqUserArgs{\n\t\t\tInstanceId:         pulumi.Any(instanceId),\n\t\t\tAccessKey:          pulumi.String(\"user_test\"),\n\t\t\tSecretKey:          pulumi.String(\"abcdefg\"),\n\t\t\tWhiteRemoteAddress: pulumi.String(\"10.10.10.10\"),\n\t\t\tAdmin:              pulumi.Bool(false),\n\t\t\tDefaultTopicPerm:   pulumi.String(\"PUB\"),\n\t\t\tDefaultGroupPerm:   pulumi.String(\"PUB\"),\n\t\t\tTopicPerms: flexibleengine.DmsRocketmqUserTopicPermArray{\n\t\t\t\t&flexibleengine.DmsRocketmqUserTopicPermArgs{\n\t\t\t\t\tName: pulumi.String(\"topic_name\"),\n\t\t\t\t\tPerm: pulumi.String(\"PUB\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tGroupPerms: flexibleengine.DmsRocketmqUserGroupPermArray{\n\t\t\t\t&flexibleengine.DmsRocketmqUserGroupPermArgs{\n\t\t\t\t\tName: pulumi.String(\"group_name\"),\n\t\t\t\t\tPerm: pulumi.String(\"PUB\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DmsRocketmqUser;\nimport com.pulumi.flexibleengine.DmsRocketmqUserArgs;\nimport com.pulumi.flexibleengine.inputs.DmsRocketmqUserTopicPermArgs;\nimport com.pulumi.flexibleengine.inputs.DmsRocketmqUserGroupPermArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var test = new DmsRocketmqUser(\"test\", DmsRocketmqUserArgs.builder()\n            .instanceId(instanceId)\n            .accessKey(\"user_test\")\n            .secretKey(\"abcdefg\")\n            .whiteRemoteAddress(\"10.10.10.10\")\n            .admin(false)\n            .defaultTopicPerm(\"PUB\")\n            .defaultGroupPerm(\"PUB\")\n            .topicPerms(DmsRocketmqUserTopicPermArgs.builder()\n                .name(\"topic_name\")\n                .perm(\"PUB\")\n                .build())\n            .groupPerms(DmsRocketmqUserGroupPermArgs.builder()\n                .name(\"group_name\")\n                .perm(\"PUB\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:DmsRocketmqUser\n    properties:\n      instanceId: ${instanceId}\n      accessKey: user_test\n      secretKey: abcdefg\n      whiteRemoteAddress: 10.10.10.10\n      admin: false\n      defaultTopicPerm: PUB\n      defaultGroupPerm: PUB\n      topicPerms:\n        - name: topic_name\n          perm: PUB\n      groupPerms:\n        - name: group_name\n          perm: PUB\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe rocketmq user can be imported using the rocketMQ instance ID and user access key separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dmsRocketmqUser:DmsRocketmqUser test c8057fe5-23a8-46ef-ad83-c0055b4e0c5c/access_key\n```\n\n",
      "properties": {
        "accessKey": {
          "type": "string",
          "description": "Specifies the access key of the user.\nChanging this parameter will create a new resource.\n"
        },
        "admin": {
          "type": "boolean",
          "description": "Specifies whether the user is an administrator.\n"
        },
        "defaultGroupPerm": {
          "type": "string",
          "description": "Specifies the default consumer group permissions.\nValue options: **PUB|SUB**, **PUB**, **SUB**, **DENY**.\n"
        },
        "defaultTopicPerm": {
          "type": "string",
          "description": "Specifies the default topic permissions.\nValue options: **PUB|SUB**, **PUB**, **SUB**, **DENY**.\n"
        },
        "dmsRocketmqUserId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "groupPerms": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDmsRocketmqUserGroupPerm:DmsRocketmqUserGroupPerm"
          },
          "description": "Specifies the special consumer group permissions.\nThe permission structure is documented below.\n\n<a name=\"DmsRocketMQUser_PermsRef\"></a>\nThe `topic_perms` and `group_perms` block supports:\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the rocketMQ instance.\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "secretKey": {
          "type": "string",
          "description": "Specifies the secret key of the user.\nChanging this parameter will create a new resource.\n"
        },
        "topicPerms": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDmsRocketmqUserTopicPerm:DmsRocketmqUserTopicPerm"
          },
          "description": "Specifies the special topic permissions.\nThe permission structure is documented below.\n"
        },
        "whiteRemoteAddress": {
          "type": "string",
          "description": "Specifies the IP address whitelist.\n"
        }
      },
      "type": "object",
      "required": [
        "accessKey",
        "admin",
        "defaultGroupPerm",
        "defaultTopicPerm",
        "dmsRocketmqUserId",
        "instanceId",
        "region",
        "secretKey",
        "whiteRemoteAddress"
      ],
      "inputProperties": {
        "accessKey": {
          "type": "string",
          "description": "Specifies the access key of the user.\nChanging this parameter will create a new resource.\n"
        },
        "admin": {
          "type": "boolean",
          "description": "Specifies whether the user is an administrator.\n"
        },
        "defaultGroupPerm": {
          "type": "string",
          "description": "Specifies the default consumer group permissions.\nValue options: **PUB|SUB**, **PUB**, **SUB**, **DENY**.\n"
        },
        "defaultTopicPerm": {
          "type": "string",
          "description": "Specifies the default topic permissions.\nValue options: **PUB|SUB**, **PUB**, **SUB**, **DENY**.\n"
        },
        "dmsRocketmqUserId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "groupPerms": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDmsRocketmqUserGroupPerm:DmsRocketmqUserGroupPerm"
          },
          "description": "Specifies the special consumer group permissions.\nThe permission structure is documented below.\n\n<a name=\"DmsRocketMQUser_PermsRef\"></a>\nThe `topic_perms` and `group_perms` block supports:\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the rocketMQ instance.\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "secretKey": {
          "type": "string",
          "description": "Specifies the secret key of the user.\nChanging this parameter will create a new resource.\n"
        },
        "topicPerms": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDmsRocketmqUserTopicPerm:DmsRocketmqUserTopicPerm"
          },
          "description": "Specifies the special topic permissions.\nThe permission structure is documented below.\n"
        },
        "whiteRemoteAddress": {
          "type": "string",
          "description": "Specifies the IP address whitelist.\n"
        }
      },
      "requiredInputs": [
        "accessKey",
        "instanceId",
        "secretKey"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DmsRocketmqUser resources.\n",
        "properties": {
          "accessKey": {
            "type": "string",
            "description": "Specifies the access key of the user.\nChanging this parameter will create a new resource.\n"
          },
          "admin": {
            "type": "boolean",
            "description": "Specifies whether the user is an administrator.\n"
          },
          "defaultGroupPerm": {
            "type": "string",
            "description": "Specifies the default consumer group permissions.\nValue options: **PUB|SUB**, **PUB**, **SUB**, **DENY**.\n"
          },
          "defaultTopicPerm": {
            "type": "string",
            "description": "Specifies the default topic permissions.\nValue options: **PUB|SUB**, **PUB**, **SUB**, **DENY**.\n"
          },
          "dmsRocketmqUserId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "groupPerms": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDmsRocketmqUserGroupPerm:DmsRocketmqUserGroupPerm"
            },
            "description": "Specifies the special consumer group permissions.\nThe permission structure is documented below.\n\n<a name=\"DmsRocketMQUser_PermsRef\"></a>\nThe `topic_perms` and `group_perms` block supports:\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the rocketMQ instance.\nChanging this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "secretKey": {
            "type": "string",
            "description": "Specifies the secret key of the user.\nChanging this parameter will create a new resource.\n"
          },
          "topicPerms": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDmsRocketmqUserTopicPerm:DmsRocketmqUserTopicPerm"
            },
            "description": "Specifies the special topic permissions.\nThe permission structure is documented below.\n"
          },
          "whiteRemoteAddress": {
            "type": "string",
            "description": "Specifies the IP address whitelist.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dnsPtrrecordV2:DnsPtrrecordV2": {
      "description": "Manages a DNS PTR record in the FlexibleEngine DNS Service.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst eip1 = new flexibleengine.VpcEip(\"eip1\", {\n    publicip: {\n        type: \"5_bgp\",\n    },\n    bandwidth: {\n        name: \"test\",\n        size: 5,\n        shareType: \"PER\",\n        chargeMode: \"traffic\",\n    },\n});\nconst ptr1 = new flexibleengine.DnsPtrrecordV2(\"ptr1\", {\n    description: \"An example PTR record\",\n    floatingipId: eip1.vpcEipId,\n    ttl: 3000,\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\neip1 = flexibleengine.VpcEip(\"eip1\",\n    publicip={\n        \"type\": \"5_bgp\",\n    },\n    bandwidth={\n        \"name\": \"test\",\n        \"size\": 5,\n        \"share_type\": \"PER\",\n        \"charge_mode\": \"traffic\",\n    })\nptr1 = flexibleengine.DnsPtrrecordV2(\"ptr1\",\n    description=\"An example PTR record\",\n    floatingip_id=eip1.vpc_eip_id,\n    ttl=3000,\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var eip1 = new Flexibleengine.VpcEip(\"eip1\", new()\n    {\n        Publicip = new Flexibleengine.Inputs.VpcEipPublicipArgs\n        {\n            Type = \"5_bgp\",\n        },\n        Bandwidth = new Flexibleengine.Inputs.VpcEipBandwidthArgs\n        {\n            Name = \"test\",\n            Size = 5,\n            ShareType = \"PER\",\n            ChargeMode = \"traffic\",\n        },\n    });\n\n    var ptr1 = new Flexibleengine.DnsPtrrecordV2(\"ptr1\", new()\n    {\n        Description = \"An example PTR record\",\n        FloatingipId = eip1.VpcEipId,\n        Ttl = 3000,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\teip1, err := flexibleengine.NewVpcEip(ctx, \"eip1\", &flexibleengine.VpcEipArgs{\n\t\t\tPublicip: &flexibleengine.VpcEipPublicipArgs{\n\t\t\t\tType: pulumi.String(\"5_bgp\"),\n\t\t\t},\n\t\t\tBandwidth: &flexibleengine.VpcEipBandwidthArgs{\n\t\t\t\tName:       pulumi.String(\"test\"),\n\t\t\t\tSize:       pulumi.Float64(5),\n\t\t\t\tShareType:  pulumi.String(\"PER\"),\n\t\t\t\tChargeMode: pulumi.String(\"traffic\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewDnsPtrrecordV2(ctx, \"ptr1\", &flexibleengine.DnsPtrrecordV2Args{\n\t\t\tDescription:  pulumi.String(\"An example PTR record\"),\n\t\t\tFloatingipId: eip1.VpcEipId,\n\t\t\tTtl:          pulumi.Float64(3000),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcEip;\nimport com.pulumi.flexibleengine.VpcEipArgs;\nimport com.pulumi.flexibleengine.inputs.VpcEipPublicipArgs;\nimport com.pulumi.flexibleengine.inputs.VpcEipBandwidthArgs;\nimport com.pulumi.flexibleengine.DnsPtrrecordV2;\nimport com.pulumi.flexibleengine.DnsPtrrecordV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var eip1 = new VpcEip(\"eip1\", VpcEipArgs.builder()\n            .publicip(VpcEipPublicipArgs.builder()\n                .type(\"5_bgp\")\n                .build())\n            .bandwidth(VpcEipBandwidthArgs.builder()\n                .name(\"test\")\n                .size(5)\n                .shareType(\"PER\")\n                .chargeMode(\"traffic\")\n                .build())\n            .build());\n\n        var ptr1 = new DnsPtrrecordV2(\"ptr1\", DnsPtrrecordV2Args.builder()\n            .description(\"An example PTR record\")\n            .floatingipId(eip1.vpcEipId())\n            .ttl(3000)\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  eip1:\n    type: flexibleengine:VpcEip\n    properties:\n      publicip:\n        type: 5_bgp\n      bandwidth:\n        name: test\n        size: 5\n        shareType: PER\n        chargeMode: traffic\n  ptr1:\n    type: flexibleengine:DnsPtrrecordV2\n    properties:\n      description: An example PTR record\n      floatingipId: ${eip1.vpcEipId}\n      ttl: 3000\n      tags:\n        foo: bar\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPTR records can be imported using region and floatingip/eip ID, separated by a colon(:), e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dnsPtrrecordV2:DnsPtrrecordV2 ptr_1 eu-west-0:d90ce693-5ccf-4136-a0ed-152ce412b6b9\n```\n\n",
      "properties": {
        "address": {
          "type": "string",
          "description": "The address of the FloatingIP/EIP.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the PTR record.\n"
        },
        "dnsPtrrecordV2Id": {
          "type": "string",
          "description": "The PTR record ID, which is in {region}:{floatingip_id} format.\n"
        },
        "floatingipId": {
          "type": "string",
          "description": "The ID of the FloatingIP/EIP.\nChanging this creates a new PTR record.\n"
        },
        "name": {
          "type": "string",
          "description": "Domain name of the PTR record. A domain name is case insensitive.\nUppercase letters will also be converted into lowercase letters.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the PTR record.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new PTR record.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags key/value pairs to associate with the PTR record.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDnsPtrrecordV2Timeouts:DnsPtrrecordV2Timeouts"
        },
        "ttl": {
          "type": "number",
          "description": "The time to live (TTL) of the record set (in seconds). The value\nrange is 300–2147483647. The default value is 300.\n"
        }
      },
      "type": "object",
      "required": [
        "address",
        "dnsPtrrecordV2Id",
        "floatingipId",
        "name",
        "region"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the PTR record.\n"
        },
        "dnsPtrrecordV2Id": {
          "type": "string",
          "description": "The PTR record ID, which is in {region}:{floatingip_id} format.\n"
        },
        "floatingipId": {
          "type": "string",
          "description": "The ID of the FloatingIP/EIP.\nChanging this creates a new PTR record.\n"
        },
        "name": {
          "type": "string",
          "description": "Domain name of the PTR record. A domain name is case insensitive.\nUppercase letters will also be converted into lowercase letters.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the PTR record.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new PTR record.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags key/value pairs to associate with the PTR record.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDnsPtrrecordV2Timeouts:DnsPtrrecordV2Timeouts"
        },
        "ttl": {
          "type": "number",
          "description": "The time to live (TTL) of the record set (in seconds). The value\nrange is 300–2147483647. The default value is 300.\n"
        }
      },
      "requiredInputs": [
        "floatingipId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DnsPtrrecordV2 resources.\n",
        "properties": {
          "address": {
            "type": "string",
            "description": "The address of the FloatingIP/EIP.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the PTR record.\n"
          },
          "dnsPtrrecordV2Id": {
            "type": "string",
            "description": "The PTR record ID, which is in {region}:{floatingip_id} format.\n"
          },
          "floatingipId": {
            "type": "string",
            "description": "The ID of the FloatingIP/EIP.\nChanging this creates a new PTR record.\n"
          },
          "name": {
            "type": "string",
            "description": "Domain name of the PTR record. A domain name is case insensitive.\nUppercase letters will also be converted into lowercase letters.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the PTR record.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new PTR record.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags key/value pairs to associate with the PTR record.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDnsPtrrecordV2Timeouts:DnsPtrrecordV2Timeouts"
          },
          "ttl": {
            "type": "number",
            "description": "The time to live (TTL) of the record set (in seconds). The value\nrange is 300–2147483647. The default value is 300.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dnsRecordsetV2:DnsRecordsetV2": {
      "description": "Manages a DNS record set in the FlexibleEngine DNS Service.\n\n## Example Usage\n\n### Automatically detect the correct network\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleZone = new flexibleengine.DnsZoneV2(\"exampleZone\", {\n    email: \"email2@example.com\",\n    description: \"a zone\",\n    ttl: 6000,\n    zoneType: \"public\",\n});\nconst rsExampleCom = new flexibleengine.DnsRecordsetV2(\"rsExampleCom\", {\n    zoneId: exampleZone.dnsZoneV2Id,\n    description: \"An example record set\",\n    ttl: 3000,\n    type: \"A\",\n    records: [\"10.0.0.1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_zone = flexibleengine.DnsZoneV2(\"exampleZone\",\n    email=\"email2@example.com\",\n    description=\"a zone\",\n    ttl=6000,\n    zone_type=\"public\")\nrs_example_com = flexibleengine.DnsRecordsetV2(\"rsExampleCom\",\n    zone_id=example_zone.dns_zone_v2_id,\n    description=\"An example record set\",\n    ttl=3000,\n    type=\"A\",\n    records=[\"10.0.0.1\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleZone = new Flexibleengine.DnsZoneV2(\"exampleZone\", new()\n    {\n        Email = \"email2@example.com\",\n        Description = \"a zone\",\n        Ttl = 6000,\n        ZoneType = \"public\",\n    });\n\n    var rsExampleCom = new Flexibleengine.DnsRecordsetV2(\"rsExampleCom\", new()\n    {\n        ZoneId = exampleZone.DnsZoneV2Id,\n        Description = \"An example record set\",\n        Ttl = 3000,\n        Type = \"A\",\n        Records = new[]\n        {\n            \"10.0.0.1\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleZone, err := flexibleengine.NewDnsZoneV2(ctx, \"exampleZone\", &flexibleengine.DnsZoneV2Args{\n\t\t\tEmail:       pulumi.String(\"email2@example.com\"),\n\t\t\tDescription: pulumi.String(\"a zone\"),\n\t\t\tTtl:         pulumi.Float64(6000),\n\t\t\tZoneType:    pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewDnsRecordsetV2(ctx, \"rsExampleCom\", &flexibleengine.DnsRecordsetV2Args{\n\t\t\tZoneId:      exampleZone.DnsZoneV2Id,\n\t\t\tDescription: pulumi.String(\"An example record set\"),\n\t\t\tTtl:         pulumi.Float64(3000),\n\t\t\tType:        pulumi.String(\"A\"),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DnsZoneV2;\nimport com.pulumi.flexibleengine.DnsZoneV2Args;\nimport com.pulumi.flexibleengine.DnsRecordsetV2;\nimport com.pulumi.flexibleengine.DnsRecordsetV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleZone = new DnsZoneV2(\"exampleZone\", DnsZoneV2Args.builder()\n            .email(\"email2@example.com\")\n            .description(\"a zone\")\n            .ttl(6000)\n            .zoneType(\"public\")\n            .build());\n\n        var rsExampleCom = new DnsRecordsetV2(\"rsExampleCom\", DnsRecordsetV2Args.builder()\n            .zoneId(exampleZone.dnsZoneV2Id())\n            .description(\"An example record set\")\n            .ttl(3000)\n            .type(\"A\")\n            .records(\"10.0.0.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleZone:\n    type: flexibleengine:DnsZoneV2\n    properties:\n      email: email2@example.com\n      description: a zone\n      ttl: 6000\n      zoneType: public\n  rsExampleCom:\n    type: flexibleengine:DnsRecordsetV2\n    properties:\n      zoneId: ${exampleZone.dnsZoneV2Id}\n      description: An example record set\n      ttl: 3000\n      type: A\n      records:\n        - 10.0.0.1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThis resource can be imported by specifying the zone ID (`zone_id`) and recordset ID (`id`),\n\nseparated by a forward slash `/`.\n\n```sh\n$ pulumi import flexibleengine:index/dnsRecordsetV2:DnsRecordsetV2 recordset_1 <zone_id>/<recordset_id>\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "A description of the record set. Max length is `255` characters.\n"
        },
        "dnsRecordsetV2Id": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the record set. Note the `.` at the end of the name.\nChanging this creates a new DNS record set.\n"
        },
        "records": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of DNS records.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the DNS record set.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new DNS record set.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the record set.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDnsRecordsetV2Timeouts:DnsRecordsetV2Timeouts"
        },
        "ttl": {
          "type": "number",
          "description": "The time to live (TTL) of the record set (in seconds). The value\nrange is 300–2147483647. The default value is `300`.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of record set. The options include `A`, `AAAA`, `MX`,\n`CNAME`, `TXT`, `NS`, `SRV`, `CAA`, and `PTR`.\nChanging this creates a new DNS record set.\n"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\nChanging this creates a new DNS record set.\n"
        },
        "zoneId": {
          "type": "string",
          "description": "The ID of the zone in which to create the record set.\nChanging this creates a new DNS record set.\n"
        }
      },
      "type": "object",
      "required": [
        "dnsRecordsetV2Id",
        "name",
        "records",
        "region",
        "type",
        "zoneId"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "A description of the record set. Max length is `255` characters.\n"
        },
        "dnsRecordsetV2Id": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the record set. Note the `.` at the end of the name.\nChanging this creates a new DNS record set.\n"
        },
        "records": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of DNS records.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the DNS record set.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new DNS record set.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the record set.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDnsRecordsetV2Timeouts:DnsRecordsetV2Timeouts"
        },
        "ttl": {
          "type": "number",
          "description": "The time to live (TTL) of the record set (in seconds). The value\nrange is 300–2147483647. The default value is `300`.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of record set. The options include `A`, `AAAA`, `MX`,\n`CNAME`, `TXT`, `NS`, `SRV`, `CAA`, and `PTR`.\nChanging this creates a new DNS record set.\n"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\nChanging this creates a new DNS record set.\n"
        },
        "zoneId": {
          "type": "string",
          "description": "The ID of the zone in which to create the record set.\nChanging this creates a new DNS record set.\n"
        }
      },
      "requiredInputs": [
        "records",
        "type",
        "zoneId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DnsRecordsetV2 resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "A description of the record set. Max length is `255` characters.\n"
          },
          "dnsRecordsetV2Id": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the record set. Note the `.` at the end of the name.\nChanging this creates a new DNS record set.\n"
          },
          "records": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of DNS records.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the DNS record set.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new DNS record set.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the record set.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDnsRecordsetV2Timeouts:DnsRecordsetV2Timeouts"
          },
          "ttl": {
            "type": "number",
            "description": "The time to live (TTL) of the record set (in seconds). The value\nrange is 300–2147483647. The default value is `300`.\n"
          },
          "type": {
            "type": "string",
            "description": "The type of record set. The options include `A`, `AAAA`, `MX`,\n`CNAME`, `TXT`, `NS`, `SRV`, `CAA`, and `PTR`.\nChanging this creates a new DNS record set.\n"
          },
          "valueSpecs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of additional options.\nChanging this creates a new DNS record set.\n"
          },
          "zoneId": {
            "type": "string",
            "description": "The ID of the zone in which to create the record set.\nChanging this creates a new DNS record set.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dnsZoneV2:DnsZoneV2": {
      "description": "Manages a DNS zone in the FlexibleEngine DNS Service.\n\n## Example Usage\n\n### Create a public DNS zone\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst myPublicZone = new flexibleengine.DnsZoneV2(\"myPublicZone\", {\n    description: \"my public zone\",\n    email: \"jdoe@example.com\",\n    ttl: 3000,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nmy_public_zone = flexibleengine.DnsZoneV2(\"myPublicZone\",\n    description=\"my public zone\",\n    email=\"jdoe@example.com\",\n    ttl=3000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myPublicZone = new Flexibleengine.DnsZoneV2(\"myPublicZone\", new()\n    {\n        Description = \"my public zone\",\n        Email = \"jdoe@example.com\",\n        Ttl = 3000,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewDnsZoneV2(ctx, \"myPublicZone\", &flexibleengine.DnsZoneV2Args{\n\t\t\tDescription: pulumi.String(\"my public zone\"),\n\t\t\tEmail:       pulumi.String(\"jdoe@example.com\"),\n\t\t\tTtl:         pulumi.Float64(3000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DnsZoneV2;\nimport com.pulumi.flexibleengine.DnsZoneV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myPublicZone = new DnsZoneV2(\"myPublicZone\", DnsZoneV2Args.builder()\n            .description(\"my public zone\")\n            .email(\"jdoe@example.com\")\n            .ttl(3000)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myPublicZone:\n    type: flexibleengine:DnsZoneV2\n    properties:\n      description: my public zone\n      email: jdoe@example.com\n      ttl: 3000\n```\n<!--End PulumiCodeChooser -->\n\n### Create a private DNS zone\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst myPrivateZone = new flexibleengine.DnsZoneV2(\"myPrivateZone\", {\n    description: \"my private zone\",\n    email: \"jdoe@example.com\",\n    routers: [{\n        routerId: \"2c1fe4bd-ebad-44ca-ae9d-e94e63847b75\",\n        routerRegion: \"eu-west-0\",\n    }],\n    ttl: 3000,\n    zoneType: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nmy_private_zone = flexibleengine.DnsZoneV2(\"myPrivateZone\",\n    description=\"my private zone\",\n    email=\"jdoe@example.com\",\n    routers=[{\n        \"router_id\": \"2c1fe4bd-ebad-44ca-ae9d-e94e63847b75\",\n        \"router_region\": \"eu-west-0\",\n    }],\n    ttl=3000,\n    zone_type=\"private\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myPrivateZone = new Flexibleengine.DnsZoneV2(\"myPrivateZone\", new()\n    {\n        Description = \"my private zone\",\n        Email = \"jdoe@example.com\",\n        Routers = new[]\n        {\n            new Flexibleengine.Inputs.DnsZoneV2RouterArgs\n            {\n                RouterId = \"2c1fe4bd-ebad-44ca-ae9d-e94e63847b75\",\n                RouterRegion = \"eu-west-0\",\n            },\n        },\n        Ttl = 3000,\n        ZoneType = \"private\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewDnsZoneV2(ctx, \"myPrivateZone\", &flexibleengine.DnsZoneV2Args{\n\t\t\tDescription: pulumi.String(\"my private zone\"),\n\t\t\tEmail:       pulumi.String(\"jdoe@example.com\"),\n\t\t\tRouters: flexibleengine.DnsZoneV2RouterArray{\n\t\t\t\t&flexibleengine.DnsZoneV2RouterArgs{\n\t\t\t\t\tRouterId:     pulumi.String(\"2c1fe4bd-ebad-44ca-ae9d-e94e63847b75\"),\n\t\t\t\t\tRouterRegion: pulumi.String(\"eu-west-0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTtl:      pulumi.Float64(3000),\n\t\t\tZoneType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.DnsZoneV2;\nimport com.pulumi.flexibleengine.DnsZoneV2Args;\nimport com.pulumi.flexibleengine.inputs.DnsZoneV2RouterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myPrivateZone = new DnsZoneV2(\"myPrivateZone\", DnsZoneV2Args.builder()\n            .description(\"my private zone\")\n            .email(\"jdoe@example.com\")\n            .routers(DnsZoneV2RouterArgs.builder()\n                .routerId(\"2c1fe4bd-ebad-44ca-ae9d-e94e63847b75\")\n                .routerRegion(\"eu-west-0\")\n                .build())\n            .ttl(3000)\n            .zoneType(\"private\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myPrivateZone:\n    type: flexibleengine:DnsZoneV2\n    properties:\n      description: my private zone\n      email: jdoe@example.com\n      routers:\n        - routerId: 2c1fe4bd-ebad-44ca-ae9d-e94e63847b75\n          routerRegion: eu-west-0\n      ttl: 3000\n      zoneType: private\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThis resource can be imported by specifying the zone ID:\n\n```sh\n$ pulumi import flexibleengine:index/dnsZoneV2:DnsZoneV2 zone_1 <zone_id>\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "A description of the zone. Max length is `255` characters.\n"
        },
        "dnsZoneV2Id": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "email": {
          "type": "string",
          "description": "The email contact for the zone record.\n"
        },
        "masters": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of master DNS servers.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the zone. Note the `.` at the end of the name.\nChanging this creates a new DNS zone.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the DNS zone.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new DNS zone.\n"
        },
        "routers": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDnsZoneV2Router:DnsZoneV2Router"
          },
          "description": "Router configuration block which is required if zone_type is private.\nThe router structure is documented below.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the zone.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDnsZoneV2Timeouts:DnsZoneV2Timeouts"
        },
        "ttl": {
          "type": "number",
          "description": "The time to live (TTL) of the zone. TTL ranges from 1 to 2147483647 seconds.\nDefault is  `300`.\n"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\nChanging this creates a new DNS zone.\n"
        },
        "zoneType": {
          "type": "string",
          "description": "The type of zone. Can either be `public` or `private`.\nDefault is `public`. Changing this creates a new DNS zone.\n"
        }
      },
      "type": "object",
      "required": [
        "dnsZoneV2Id",
        "masters",
        "name",
        "region"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "A description of the zone. Max length is `255` characters.\n"
        },
        "dnsZoneV2Id": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "email": {
          "type": "string",
          "description": "The email contact for the zone record.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the zone. Note the `.` at the end of the name.\nChanging this creates a new DNS zone.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the DNS zone.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new DNS zone.\n"
        },
        "routers": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDnsZoneV2Router:DnsZoneV2Router"
          },
          "description": "Router configuration block which is required if zone_type is private.\nThe router structure is documented below.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the zone.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDnsZoneV2Timeouts:DnsZoneV2Timeouts"
        },
        "ttl": {
          "type": "number",
          "description": "The time to live (TTL) of the zone. TTL ranges from 1 to 2147483647 seconds.\nDefault is  `300`.\n"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\nChanging this creates a new DNS zone.\n"
        },
        "zoneType": {
          "type": "string",
          "description": "The type of zone. Can either be `public` or `private`.\nDefault is `public`. Changing this creates a new DNS zone.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DnsZoneV2 resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "A description of the zone. Max length is `255` characters.\n"
          },
          "dnsZoneV2Id": {
            "type": "string",
            "description": "Specifies a resource ID in UUID format.\n"
          },
          "email": {
            "type": "string",
            "description": "The email contact for the zone record.\n"
          },
          "masters": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of master DNS servers.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the zone. Note the `.` at the end of the name.\nChanging this creates a new DNS zone.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the DNS zone.\nIf omitted, the `region` argument of the provider is used.\nChanging this creates a new DNS zone.\n"
          },
          "routers": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDnsZoneV2Router:DnsZoneV2Router"
            },
            "description": "Router configuration block which is required if zone_type is private.\nThe router structure is documented below.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the zone.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDnsZoneV2Timeouts:DnsZoneV2Timeouts"
          },
          "ttl": {
            "type": "number",
            "description": "The time to live (TTL) of the zone. TTL ranges from 1 to 2147483647 seconds.\nDefault is  `300`.\n"
          },
          "valueSpecs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of additional options.\nChanging this creates a new DNS zone.\n"
          },
          "zoneType": {
            "type": "string",
            "description": "The type of zone. Can either be `public` or `private`.\nDefault is `public`. Changing this creates a new DNS zone.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/drsJob:DrsJob": {
      "description": "Manages DRS job resource within FlexibleEngine.\n\n## Example Usage\n\n## Import\n\nThe DRS job can be imported by `id`. For example,\n\n```sh\n$ pulumi import flexibleengine:index/drsJob:DrsJob test b11b407c-e604-4e8d-8bc4-92398320b847\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include: `enterprise_project_id`, `tags`,\n\n`force_destroy`, `source_db.0.password` and `destination_db.0.password`.It is generally recommended running\n\n`pulumi preview` after importing a job. You can then decide if changes should be applied to the job, or the resource\n\ndefinition should be updated to align with the job. Also you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_drs_job\" \"test\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      source_db.0.password,destination_db.0.password\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Create time. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the job, which contain a\nmaximum of 256 characters, and certain special characters (including !<>&'\"\\\\) are not allowed.\n"
        },
        "destinationDb": {
          "$ref": "#/types/flexibleengine:index%2FDrsJobDestinationDb:DrsJobDestinationDb",
          "description": "Specifies the destination database configuration.\nThe `db_info` object structure of the `destination_db` is documented below.\nChanging this parameter will create a new resource.\n"
        },
        "destinationDbReadnoly": {
          "type": "boolean",
          "description": "Specifies the destination DB instance as read-only helps\nensure the migration is successful. Once the migration is complete, the DB instance automatically changes to\nRead/Write. The default value is `true`. Changing this parameter will create a new resource.\n"
        },
        "direction": {
          "type": "string",
          "description": "Specifies the direction of data flow.\nChanging this parameter will create a new resource. The options are as follows:\n+ **up**: To the cloud. The destination database must be a database in the current cloud.\n+ **down**: Out of the cloud. The source database must be a database in the current cloud.\n+ **non-dbs**: self-built database.\n"
        },
        "drsJobId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "engineType": {
          "type": "string",
          "description": "Specifies the migration engine type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **mysql**:  MySQL migration, MySQL synchronization use.\n+ **mongodb**: Mongodb migration use.\n+ **cloudDataGuard-mysql**: Disaster recovery use.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id.\nChanging this parameter will create a new resource.\n"
        },
        "expiredDays": {
          "type": "number",
          "description": "Specifies how many days after the task is abnormal, it will automatically\nend. The value ranges from 14 to 100. the default value is `14`. Changing this parameter will create a new resource.\n"
        },
        "forceDestroy": {
          "type": "boolean",
          "description": "Specifies whether to forcibly destroy the job even if it is running.\nThe default value is `false`.\n"
        },
        "limitSpeeds": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDrsJobLimitSpeed:DrsJobLimitSpeed"
          },
          "description": "Specifies the migration speed by setting a time period.\nThe default is no speed limit. The maximum length is 3. Structure is documented below.\nChanging this parameter will create a new resource.\n"
        },
        "migrateDefiner": {
          "type": "boolean",
          "description": "Specifies whether to migrate the definers of all source database\nobjects to the `user` of `destination_db`. The default value is `true`.\nChanging this parameter will create a new resource.\n"
        },
        "migrationType": {
          "type": "string",
          "description": "Specifies migration type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **FULL_TRANS**: Full migration. Suitable for scenarios where services can be interrupted. It migrates all database\nobjects and data, in a non-system database, to a destination database at a time.\n+ **INCR_TRANS**: Incremental migration. Suitable for migration from an on-premises self-built database to a\ndestination cloud database, or from one cloud database to another in a different region.\n+ **FULL_INCR_TRANS**:  Full+Incremental migration. This allows to migrate data with minimal downtime. After a full\nmigration initializes the destination database, an incremental migration parses logs to ensure data consistency\nbetween the source and destination databases.\n\nThe default value is `FULL_INCR_TRANS`.\n"
        },
        "multiWrite": {
          "type": "boolean",
          "description": "Specifies whether to enable multi write. It is mandatory when `type`\nis `cloudDataGuard`. When the disaster recovery type is dual-active disaster recovery, set `multi_write` to `true`,\notherwise to `false`. The default value is `false`. Changing this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the job name. The name consists of 4 to 50 characters, starting with\na letter. Only letters, digits, underscores (_) and hyphens (-) are allowed.\n"
        },
        "netType": {
          "type": "string",
          "description": "Specifies the network type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **eip**: suitable for migration from an on-premises or other cloud database to a destination cloud database.\nAn EIP will be automatically bound to the replication instance and released after the replication task is complete.\n+ **vpc**: suitable for migration from one cloud database to another.\n+ **vpn**: suitable for migration from an on-premises self-built database to a destination cloud database,\nor from one cloud database to another in a different region.\n\nThe default value is `eip`.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "Private IP.\n"
        },
        "publicIp": {
          "type": "string",
          "description": "Public IP.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "sourceDb": {
          "$ref": "#/types/flexibleengine:index%2FDrsJobSourceDb:DrsJobSourceDb",
          "description": "Specifies the source database configuration.\nThe `db_info` object structure of the `source_db` is documented below.\nChanging this parameter will create a new resource.\n"
        },
        "startTime": {
          "type": "string",
          "description": "Specifies the time to start the job. The time format\nis `yyyy-MM-dd HH:mm:ss`. Start immediately by default. Changing this parameter will create a new resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Status.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the DRS job.\nChanging this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDrsJobTimeouts:DrsJobTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the job type. Changing this parameter will create a new\nresource. The options are as follows:\n+ **migration**: Online Migration.\n+ **sync**: Data Synchronization.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "destinationDb",
        "direction",
        "drsJobId",
        "engineType",
        "name",
        "privateIp",
        "publicIp",
        "region",
        "sourceDb",
        "status",
        "type"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the job, which contain a\nmaximum of 256 characters, and certain special characters (including !<>&'\"\\\\) are not allowed.\n"
        },
        "destinationDb": {
          "$ref": "#/types/flexibleengine:index%2FDrsJobDestinationDb:DrsJobDestinationDb",
          "description": "Specifies the destination database configuration.\nThe `db_info` object structure of the `destination_db` is documented below.\nChanging this parameter will create a new resource.\n"
        },
        "destinationDbReadnoly": {
          "type": "boolean",
          "description": "Specifies the destination DB instance as read-only helps\nensure the migration is successful. Once the migration is complete, the DB instance automatically changes to\nRead/Write. The default value is `true`. Changing this parameter will create a new resource.\n"
        },
        "direction": {
          "type": "string",
          "description": "Specifies the direction of data flow.\nChanging this parameter will create a new resource. The options are as follows:\n+ **up**: To the cloud. The destination database must be a database in the current cloud.\n+ **down**: Out of the cloud. The source database must be a database in the current cloud.\n+ **non-dbs**: self-built database.\n"
        },
        "drsJobId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "engineType": {
          "type": "string",
          "description": "Specifies the migration engine type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **mysql**:  MySQL migration, MySQL synchronization use.\n+ **mongodb**: Mongodb migration use.\n+ **cloudDataGuard-mysql**: Disaster recovery use.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id.\nChanging this parameter will create a new resource.\n"
        },
        "expiredDays": {
          "type": "number",
          "description": "Specifies how many days after the task is abnormal, it will automatically\nend. The value ranges from 14 to 100. the default value is `14`. Changing this parameter will create a new resource.\n"
        },
        "forceDestroy": {
          "type": "boolean",
          "description": "Specifies whether to forcibly destroy the job even if it is running.\nThe default value is `false`.\n"
        },
        "limitSpeeds": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDrsJobLimitSpeed:DrsJobLimitSpeed"
          },
          "description": "Specifies the migration speed by setting a time period.\nThe default is no speed limit. The maximum length is 3. Structure is documented below.\nChanging this parameter will create a new resource.\n"
        },
        "migrateDefiner": {
          "type": "boolean",
          "description": "Specifies whether to migrate the definers of all source database\nobjects to the `user` of `destination_db`. The default value is `true`.\nChanging this parameter will create a new resource.\n"
        },
        "migrationType": {
          "type": "string",
          "description": "Specifies migration type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **FULL_TRANS**: Full migration. Suitable for scenarios where services can be interrupted. It migrates all database\nobjects and data, in a non-system database, to a destination database at a time.\n+ **INCR_TRANS**: Incremental migration. Suitable for migration from an on-premises self-built database to a\ndestination cloud database, or from one cloud database to another in a different region.\n+ **FULL_INCR_TRANS**:  Full+Incremental migration. This allows to migrate data with minimal downtime. After a full\nmigration initializes the destination database, an incremental migration parses logs to ensure data consistency\nbetween the source and destination databases.\n\nThe default value is `FULL_INCR_TRANS`.\n"
        },
        "multiWrite": {
          "type": "boolean",
          "description": "Specifies whether to enable multi write. It is mandatory when `type`\nis `cloudDataGuard`. When the disaster recovery type is dual-active disaster recovery, set `multi_write` to `true`,\notherwise to `false`. The default value is `false`. Changing this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the job name. The name consists of 4 to 50 characters, starting with\na letter. Only letters, digits, underscores (_) and hyphens (-) are allowed.\n"
        },
        "netType": {
          "type": "string",
          "description": "Specifies the network type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **eip**: suitable for migration from an on-premises or other cloud database to a destination cloud database.\nAn EIP will be automatically bound to the replication instance and released after the replication task is complete.\n+ **vpc**: suitable for migration from one cloud database to another.\n+ **vpn**: suitable for migration from an on-premises self-built database to a destination cloud database,\nor from one cloud database to another in a different region.\n\nThe default value is `eip`.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "sourceDb": {
          "$ref": "#/types/flexibleengine:index%2FDrsJobSourceDb:DrsJobSourceDb",
          "description": "Specifies the source database configuration.\nThe `db_info` object structure of the `source_db` is documented below.\nChanging this parameter will create a new resource.\n"
        },
        "startTime": {
          "type": "string",
          "description": "Specifies the time to start the job. The time format\nis `yyyy-MM-dd HH:mm:ss`. Start immediately by default. Changing this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the DRS job.\nChanging this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDrsJobTimeouts:DrsJobTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the job type. Changing this parameter will create a new\nresource. The options are as follows:\n+ **migration**: Online Migration.\n+ **sync**: Data Synchronization.\n"
        }
      },
      "requiredInputs": [
        "destinationDb",
        "direction",
        "engineType",
        "sourceDb",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DrsJob resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Create time. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the job, which contain a\nmaximum of 256 characters, and certain special characters (including !<>&'\"\\\\) are not allowed.\n"
          },
          "destinationDb": {
            "$ref": "#/types/flexibleengine:index%2FDrsJobDestinationDb:DrsJobDestinationDb",
            "description": "Specifies the destination database configuration.\nThe `db_info` object structure of the `destination_db` is documented below.\nChanging this parameter will create a new resource.\n"
          },
          "destinationDbReadnoly": {
            "type": "boolean",
            "description": "Specifies the destination DB instance as read-only helps\nensure the migration is successful. Once the migration is complete, the DB instance automatically changes to\nRead/Write. The default value is `true`. Changing this parameter will create a new resource.\n"
          },
          "direction": {
            "type": "string",
            "description": "Specifies the direction of data flow.\nChanging this parameter will create a new resource. The options are as follows:\n+ **up**: To the cloud. The destination database must be a database in the current cloud.\n+ **down**: Out of the cloud. The source database must be a database in the current cloud.\n+ **non-dbs**: self-built database.\n"
          },
          "drsJobId": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "engineType": {
            "type": "string",
            "description": "Specifies the migration engine type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **mysql**:  MySQL migration, MySQL synchronization use.\n+ **mongodb**: Mongodb migration use.\n+ **cloudDataGuard-mysql**: Disaster recovery use.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id.\nChanging this parameter will create a new resource.\n"
          },
          "expiredDays": {
            "type": "number",
            "description": "Specifies how many days after the task is abnormal, it will automatically\nend. The value ranges from 14 to 100. the default value is `14`. Changing this parameter will create a new resource.\n"
          },
          "forceDestroy": {
            "type": "boolean",
            "description": "Specifies whether to forcibly destroy the job even if it is running.\nThe default value is `false`.\n"
          },
          "limitSpeeds": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDrsJobLimitSpeed:DrsJobLimitSpeed"
            },
            "description": "Specifies the migration speed by setting a time period.\nThe default is no speed limit. The maximum length is 3. Structure is documented below.\nChanging this parameter will create a new resource.\n"
          },
          "migrateDefiner": {
            "type": "boolean",
            "description": "Specifies whether to migrate the definers of all source database\nobjects to the `user` of `destination_db`. The default value is `true`.\nChanging this parameter will create a new resource.\n"
          },
          "migrationType": {
            "type": "string",
            "description": "Specifies migration type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **FULL_TRANS**: Full migration. Suitable for scenarios where services can be interrupted. It migrates all database\nobjects and data, in a non-system database, to a destination database at a time.\n+ **INCR_TRANS**: Incremental migration. Suitable for migration from an on-premises self-built database to a\ndestination cloud database, or from one cloud database to another in a different region.\n+ **FULL_INCR_TRANS**:  Full+Incremental migration. This allows to migrate data with minimal downtime. After a full\nmigration initializes the destination database, an incremental migration parses logs to ensure data consistency\nbetween the source and destination databases.\n\nThe default value is `FULL_INCR_TRANS`.\n"
          },
          "multiWrite": {
            "type": "boolean",
            "description": "Specifies whether to enable multi write. It is mandatory when `type`\nis `cloudDataGuard`. When the disaster recovery type is dual-active disaster recovery, set `multi_write` to `true`,\notherwise to `false`. The default value is `false`. Changing this parameter will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the job name. The name consists of 4 to 50 characters, starting with\na letter. Only letters, digits, underscores (_) and hyphens (-) are allowed.\n"
          },
          "netType": {
            "type": "string",
            "description": "Specifies the network type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **eip**: suitable for migration from an on-premises or other cloud database to a destination cloud database.\nAn EIP will be automatically bound to the replication instance and released after the replication task is complete.\n+ **vpc**: suitable for migration from one cloud database to another.\n+ **vpn**: suitable for migration from an on-premises self-built database to a destination cloud database,\nor from one cloud database to another in a different region.\n\nThe default value is `eip`.\n"
          },
          "privateIp": {
            "type": "string",
            "description": "Private IP.\n"
          },
          "publicIp": {
            "type": "string",
            "description": "Public IP.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "sourceDb": {
            "$ref": "#/types/flexibleengine:index%2FDrsJobSourceDb:DrsJobSourceDb",
            "description": "Specifies the source database configuration.\nThe `db_info` object structure of the `source_db` is documented below.\nChanging this parameter will create a new resource.\n"
          },
          "startTime": {
            "type": "string",
            "description": "Specifies the time to start the job. The time format\nis `yyyy-MM-dd HH:mm:ss`. Start immediately by default. Changing this parameter will create a new resource.\n"
          },
          "status": {
            "type": "string",
            "description": "Status.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the key/value pairs to associate with the DRS job.\nChanging this parameter will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDrsJobTimeouts:DrsJobTimeouts"
          },
          "type": {
            "type": "string",
            "description": "Specifies the job type. Changing this parameter will create a new\nresource. The options are as follows:\n+ **migration**: Online Migration.\n+ **sync**: Data Synchronization.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/drsReplicationV2:DrsReplicationV2": {
      "description": "!> **Warning:** It has been deprecated.\n\nManages a V2 replication resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst volume1 = new flexibleengine.BlockstorageVolumeV2(\"volume1\", {\n    size: 10,\n    availabilityZone: \"eu-west-0a\",\n});\nconst volume2 = new flexibleengine.BlockstorageVolumeV2(\"volume2\", {\n    size: 10,\n    availabilityZone: \"eu-west-0b\",\n});\nconst replication1 = new flexibleengine.DrsReplicationV2(\"replication1\", {\n    description: \"The description of replication_1\",\n    priorityStation: \"eu-west-0a\",\n    volumeIds: [\n        volume1.blockstorageVolumeV2Id,\n        volume2.blockstorageVolumeV2Id,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nvolume1 = flexibleengine.BlockstorageVolumeV2(\"volume1\",\n    size=10,\n    availability_zone=\"eu-west-0a\")\nvolume2 = flexibleengine.BlockstorageVolumeV2(\"volume2\",\n    size=10,\n    availability_zone=\"eu-west-0b\")\nreplication1 = flexibleengine.DrsReplicationV2(\"replication1\",\n    description=\"The description of replication_1\",\n    priority_station=\"eu-west-0a\",\n    volume_ids=[\n        volume1.blockstorage_volume_v2_id,\n        volume2.blockstorage_volume_v2_id,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var volume1 = new Flexibleengine.BlockstorageVolumeV2(\"volume1\", new()\n    {\n        Size = 10,\n        AvailabilityZone = \"eu-west-0a\",\n    });\n\n    var volume2 = new Flexibleengine.BlockstorageVolumeV2(\"volume2\", new()\n    {\n        Size = 10,\n        AvailabilityZone = \"eu-west-0b\",\n    });\n\n    var replication1 = new Flexibleengine.DrsReplicationV2(\"replication1\", new()\n    {\n        Description = \"The description of replication_1\",\n        PriorityStation = \"eu-west-0a\",\n        VolumeIds = new[]\n        {\n            volume1.BlockstorageVolumeV2Id,\n            volume2.BlockstorageVolumeV2Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume1, err := flexibleengine.NewBlockstorageVolumeV2(ctx, \"volume1\", &flexibleengine.BlockstorageVolumeV2Args{\n\t\t\tSize:             pulumi.Float64(10),\n\t\t\tAvailabilityZone: pulumi.String(\"eu-west-0a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvolume2, err := flexibleengine.NewBlockstorageVolumeV2(ctx, \"volume2\", &flexibleengine.BlockstorageVolumeV2Args{\n\t\t\tSize:             pulumi.Float64(10),\n\t\t\tAvailabilityZone: pulumi.String(\"eu-west-0b\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewDrsReplicationV2(ctx, \"replication1\", &flexibleengine.DrsReplicationV2Args{\n\t\t\tDescription:     pulumi.String(\"The description of replication_1\"),\n\t\t\tPriorityStation: pulumi.String(\"eu-west-0a\"),\n\t\t\tVolumeIds: pulumi.StringArray{\n\t\t\t\tvolume1.BlockstorageVolumeV2Id,\n\t\t\t\tvolume2.BlockstorageVolumeV2Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2Args;\nimport com.pulumi.flexibleengine.DrsReplicationV2;\nimport com.pulumi.flexibleengine.DrsReplicationV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var volume1 = new BlockstorageVolumeV2(\"volume1\", BlockstorageVolumeV2Args.builder()\n            .size(10)\n            .availabilityZone(\"eu-west-0a\")\n            .build());\n\n        var volume2 = new BlockstorageVolumeV2(\"volume2\", BlockstorageVolumeV2Args.builder()\n            .size(10)\n            .availabilityZone(\"eu-west-0b\")\n            .build());\n\n        var replication1 = new DrsReplicationV2(\"replication1\", DrsReplicationV2Args.builder()\n            .description(\"The description of replication_1\")\n            .priorityStation(\"eu-west-0a\")\n            .volumeIds(            \n                volume1.blockstorageVolumeV2Id(),\n                volume2.blockstorageVolumeV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume1:\n    type: flexibleengine:BlockstorageVolumeV2\n    properties:\n      size: 10\n      availabilityZone: eu-west-0a\n  volume2:\n    type: flexibleengine:BlockstorageVolumeV2\n    properties:\n      size: 10\n      availabilityZone: eu-west-0b\n  replication1:\n    type: flexibleengine:DrsReplicationV2\n    properties:\n      description: The description of replication_1\n      priorityStation: eu-west-0a\n      volumeIds:\n        - ${volume1.blockstorageVolumeV2Id}\n        - ${volume2.blockstorageVolumeV2Id}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The creation time of the EVS replication pair.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the EVS replication pair. The description can contain a maximum of 255 bytes.\n"
        },
        "drsReplicationV2Id": {
          "type": "string"
        },
        "failureDetail": {
          "type": "string",
          "description": "The returned error code if the EVS replication pair status is error.\n"
        },
        "faultLevel": {
          "type": "string",
          "description": "The fault level of the EVS replication pair.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the EVS replication pair. The name can contain a maximum of 255 bytes.\n"
        },
        "priorityStation": {
          "type": "string",
          "description": "The primary AZ of the EVS replication pair. That is the AZ where the production disk belongs.\n"
        },
        "progress": {
          "type": "string",
          "description": "The synchronization progress of the EVS replication pair. Unit: %.\n"
        },
        "recordMetadata": {
          "type": "string",
          "description": "The metadata of the EVS replication pair.\n"
        },
        "replicationConsistencyGroupId": {
          "type": "string",
          "description": "The ID of the replication consistency group where the EVS replication pair belongs.\n"
        },
        "replicationModel": {
          "type": "string",
          "description": "The type of the EVS replication pair. Currently only type hypermetro is supported.\n"
        },
        "replicationStatus": {
          "type": "string",
          "description": "The replication status of the EVS replication pair.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the EVS replication pair.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The update time of the EVS replication pair.\n"
        },
        "volumeIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more IDs of the EVS disks used to create the EVS replication pair.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "drsReplicationV2Id",
        "failureDetail",
        "faultLevel",
        "name",
        "priorityStation",
        "progress",
        "recordMetadata",
        "replicationConsistencyGroupId",
        "replicationStatus",
        "status",
        "updatedAt",
        "volumeIds"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "The description of the EVS replication pair. The description can contain a maximum of 255 bytes.\n"
        },
        "drsReplicationV2Id": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of the EVS replication pair. The name can contain a maximum of 255 bytes.\n"
        },
        "priorityStation": {
          "type": "string",
          "description": "The primary AZ of the EVS replication pair. That is the AZ where the production disk belongs.\n"
        },
        "replicationModel": {
          "type": "string",
          "description": "The type of the EVS replication pair. Currently only type hypermetro is supported.\n"
        },
        "volumeIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more IDs of the EVS disks used to create the EVS replication pair.\n"
        }
      },
      "requiredInputs": [
        "priorityStation",
        "volumeIds"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DrsReplicationV2 resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "The creation time of the EVS replication pair.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of the EVS replication pair. The description can contain a maximum of 255 bytes.\n"
          },
          "drsReplicationV2Id": {
            "type": "string"
          },
          "failureDetail": {
            "type": "string",
            "description": "The returned error code if the EVS replication pair status is error.\n"
          },
          "faultLevel": {
            "type": "string",
            "description": "The fault level of the EVS replication pair.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the EVS replication pair. The name can contain a maximum of 255 bytes.\n"
          },
          "priorityStation": {
            "type": "string",
            "description": "The primary AZ of the EVS replication pair. That is the AZ where the production disk belongs.\n"
          },
          "progress": {
            "type": "string",
            "description": "The synchronization progress of the EVS replication pair. Unit: %.\n"
          },
          "recordMetadata": {
            "type": "string",
            "description": "The metadata of the EVS replication pair.\n"
          },
          "replicationConsistencyGroupId": {
            "type": "string",
            "description": "The ID of the replication consistency group where the EVS replication pair belongs.\n"
          },
          "replicationModel": {
            "type": "string",
            "description": "The type of the EVS replication pair. Currently only type hypermetro is supported.\n"
          },
          "replicationStatus": {
            "type": "string",
            "description": "The replication status of the EVS replication pair.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the EVS replication pair.\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "The update time of the EVS replication pair.\n"
          },
          "volumeIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of one or more IDs of the EVS disks used to create the EVS replication pair.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/drsReplicationconsistencygroupV2:DrsReplicationconsistencygroupV2": {
      "description": "!> **Warning:** It has been deprecated.\n\nManages a V2 replicationconsistencygroup resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst volume1 = new flexibleengine.BlockstorageVolumeV2(\"volume1\", {\n    size: 1,\n    availabilityZone: \"eu-west-0a\",\n});\nconst volume2 = new flexibleengine.BlockstorageVolumeV2(\"volume2\", {\n    size: 1,\n    availabilityZone: \"eu-west-0b\",\n});\nconst replication1 = new flexibleengine.DrsReplicationV2(\"replication1\", {\n    description: \"The description of replication_1\",\n    priorityStation: \"eu-west-0a\",\n    volumeIds: [\n        volume1.blockstorageVolumeV2Id,\n        volume2.blockstorageVolumeV2Id,\n    ],\n});\nconst replicationconsistencygroup1 = new flexibleengine.DrsReplicationconsistencygroupV2(\"replicationconsistencygroup1\", {\n    description: \"The description of replicationconsistencygroup_1\",\n    replicationIds: [replication1.drsReplicationV2Id],\n    priorityStation: \"eu-west-0a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nvolume1 = flexibleengine.BlockstorageVolumeV2(\"volume1\",\n    size=1,\n    availability_zone=\"eu-west-0a\")\nvolume2 = flexibleengine.BlockstorageVolumeV2(\"volume2\",\n    size=1,\n    availability_zone=\"eu-west-0b\")\nreplication1 = flexibleengine.DrsReplicationV2(\"replication1\",\n    description=\"The description of replication_1\",\n    priority_station=\"eu-west-0a\",\n    volume_ids=[\n        volume1.blockstorage_volume_v2_id,\n        volume2.blockstorage_volume_v2_id,\n    ])\nreplicationconsistencygroup1 = flexibleengine.DrsReplicationconsistencygroupV2(\"replicationconsistencygroup1\",\n    description=\"The description of replicationconsistencygroup_1\",\n    replication_ids=[replication1.drs_replication_v2_id],\n    priority_station=\"eu-west-0a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var volume1 = new Flexibleengine.BlockstorageVolumeV2(\"volume1\", new()\n    {\n        Size = 1,\n        AvailabilityZone = \"eu-west-0a\",\n    });\n\n    var volume2 = new Flexibleengine.BlockstorageVolumeV2(\"volume2\", new()\n    {\n        Size = 1,\n        AvailabilityZone = \"eu-west-0b\",\n    });\n\n    var replication1 = new Flexibleengine.DrsReplicationV2(\"replication1\", new()\n    {\n        Description = \"The description of replication_1\",\n        PriorityStation = \"eu-west-0a\",\n        VolumeIds = new[]\n        {\n            volume1.BlockstorageVolumeV2Id,\n            volume2.BlockstorageVolumeV2Id,\n        },\n    });\n\n    var replicationconsistencygroup1 = new Flexibleengine.DrsReplicationconsistencygroupV2(\"replicationconsistencygroup1\", new()\n    {\n        Description = \"The description of replicationconsistencygroup_1\",\n        ReplicationIds = new[]\n        {\n            replication1.DrsReplicationV2Id,\n        },\n        PriorityStation = \"eu-west-0a\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume1, err := flexibleengine.NewBlockstorageVolumeV2(ctx, \"volume1\", &flexibleengine.BlockstorageVolumeV2Args{\n\t\t\tSize:             pulumi.Float64(1),\n\t\t\tAvailabilityZone: pulumi.String(\"eu-west-0a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvolume2, err := flexibleengine.NewBlockstorageVolumeV2(ctx, \"volume2\", &flexibleengine.BlockstorageVolumeV2Args{\n\t\t\tSize:             pulumi.Float64(1),\n\t\t\tAvailabilityZone: pulumi.String(\"eu-west-0b\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treplication1, err := flexibleengine.NewDrsReplicationV2(ctx, \"replication1\", &flexibleengine.DrsReplicationV2Args{\n\t\t\tDescription:     pulumi.String(\"The description of replication_1\"),\n\t\t\tPriorityStation: pulumi.String(\"eu-west-0a\"),\n\t\t\tVolumeIds: pulumi.StringArray{\n\t\t\t\tvolume1.BlockstorageVolumeV2Id,\n\t\t\t\tvolume2.BlockstorageVolumeV2Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewDrsReplicationconsistencygroupV2(ctx, \"replicationconsistencygroup1\", &flexibleengine.DrsReplicationconsistencygroupV2Args{\n\t\t\tDescription: pulumi.String(\"The description of replicationconsistencygroup_1\"),\n\t\t\tReplicationIds: pulumi.StringArray{\n\t\t\t\treplication1.DrsReplicationV2Id,\n\t\t\t},\n\t\t\tPriorityStation: pulumi.String(\"eu-west-0a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2;\nimport com.pulumi.flexibleengine.BlockstorageVolumeV2Args;\nimport com.pulumi.flexibleengine.DrsReplicationV2;\nimport com.pulumi.flexibleengine.DrsReplicationV2Args;\nimport com.pulumi.flexibleengine.DrsReplicationconsistencygroupV2;\nimport com.pulumi.flexibleengine.DrsReplicationconsistencygroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var volume1 = new BlockstorageVolumeV2(\"volume1\", BlockstorageVolumeV2Args.builder()\n            .size(1)\n            .availabilityZone(\"eu-west-0a\")\n            .build());\n\n        var volume2 = new BlockstorageVolumeV2(\"volume2\", BlockstorageVolumeV2Args.builder()\n            .size(1)\n            .availabilityZone(\"eu-west-0b\")\n            .build());\n\n        var replication1 = new DrsReplicationV2(\"replication1\", DrsReplicationV2Args.builder()\n            .description(\"The description of replication_1\")\n            .priorityStation(\"eu-west-0a\")\n            .volumeIds(            \n                volume1.blockstorageVolumeV2Id(),\n                volume2.blockstorageVolumeV2Id())\n            .build());\n\n        var replicationconsistencygroup1 = new DrsReplicationconsistencygroupV2(\"replicationconsistencygroup1\", DrsReplicationconsistencygroupV2Args.builder()\n            .description(\"The description of replicationconsistencygroup_1\")\n            .replicationIds(replication1.drsReplicationV2Id())\n            .priorityStation(\"eu-west-0a\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume1:\n    type: flexibleengine:BlockstorageVolumeV2\n    properties:\n      size: 1\n      availabilityZone: eu-west-0a\n  volume2:\n    type: flexibleengine:BlockstorageVolumeV2\n    properties:\n      size: 1\n      availabilityZone: eu-west-0b\n  replication1:\n    type: flexibleengine:DrsReplicationV2\n    properties:\n      description: The description of replication_1\n      priorityStation: eu-west-0a\n      volumeIds:\n        - ${volume1.blockstorageVolumeV2Id}\n        - ${volume2.blockstorageVolumeV2Id}\n  replicationconsistencygroup1:\n    type: flexibleengine:DrsReplicationconsistencygroupV2\n    properties:\n      description: The description of replicationconsistencygroup_1\n      replicationIds:\n        - ${replication1.drsReplicationV2Id}\n      priorityStation: eu-west-0a\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The creation time of the replication consistency group.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the replication consistency group.\nThe description can contain a maximum of 255 bytes.\n"
        },
        "drsReplicationconsistencygroupV2Id": {
          "type": "string"
        },
        "failureDetail": {
          "type": "string",
          "description": "The returned error code if the replication consistency group status is error.\n"
        },
        "faultLevel": {
          "type": "string",
          "description": "The fault level of the replication consistency group.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the replication consistency group. The name can contain a maximum of 255 bytes.\n"
        },
        "priorityStation": {
          "type": "string",
          "description": "The primary AZ of the replication consistency group. That is the AZ where\nthe production disk belongs.\n"
        },
        "replicationIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more IDs of the EVS replication pairs used to create\nthe replication consistency group.\n"
        },
        "replicationModel": {
          "type": "string",
          "description": "The type of the created replication consistency group.\nCurrently only type hypermetro is supported.\n"
        },
        "replicationStatus": {
          "type": "string",
          "description": "The replication status of the replication consistency group.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the replication consistency group.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The update time of the replication consistency group.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "drsReplicationconsistencygroupV2Id",
        "failureDetail",
        "faultLevel",
        "name",
        "priorityStation",
        "replicationIds",
        "replicationStatus",
        "status",
        "updatedAt"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "The description of the replication consistency group.\nThe description can contain a maximum of 255 bytes.\n"
        },
        "drsReplicationconsistencygroupV2Id": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of the replication consistency group. The name can contain a maximum of 255 bytes.\n"
        },
        "priorityStation": {
          "type": "string",
          "description": "The primary AZ of the replication consistency group. That is the AZ where\nthe production disk belongs.\n"
        },
        "replicationIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more IDs of the EVS replication pairs used to create\nthe replication consistency group.\n"
        },
        "replicationModel": {
          "type": "string",
          "description": "The type of the created replication consistency group.\nCurrently only type hypermetro is supported.\n"
        }
      },
      "requiredInputs": [
        "priorityStation",
        "replicationIds"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DrsReplicationconsistencygroupV2 resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "The creation time of the replication consistency group.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of the replication consistency group.\nThe description can contain a maximum of 255 bytes.\n"
          },
          "drsReplicationconsistencygroupV2Id": {
            "type": "string"
          },
          "failureDetail": {
            "type": "string",
            "description": "The returned error code if the replication consistency group status is error.\n"
          },
          "faultLevel": {
            "type": "string",
            "description": "The fault level of the replication consistency group.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the replication consistency group. The name can contain a maximum of 255 bytes.\n"
          },
          "priorityStation": {
            "type": "string",
            "description": "The primary AZ of the replication consistency group. That is the AZ where\nthe production disk belongs.\n"
          },
          "replicationIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of one or more IDs of the EVS replication pairs used to create\nthe replication consistency group.\n"
          },
          "replicationModel": {
            "type": "string",
            "description": "The type of the created replication consistency group.\nCurrently only type hypermetro is supported.\n"
          },
          "replicationStatus": {
            "type": "string",
            "description": "The replication status of the replication consistency group.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the replication consistency group.\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "The update time of the replication consistency group.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/dwsClusterV1:DwsClusterV1": {
      "description": "Manages a DWS cluster resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst flavor = flexibleengine.getDwsFlavors({\n    availabilityZone: \"eu-west-0a\",\n    vcpus: 8,\n});\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst exampleSecgroup = new flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", {description: \"My neutron security group\"});\nconst cluster = new flexibleengine.DwsClusterV1(\"cluster\", {\n    nodeType: data.flexibleengine_dws_flavors.test.flavors[0].flavor_id,\n    numberOfNode: 3,\n    userName: \"cluster_admin\",\n    userPwd: \"Cluster123@!\",\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    securityGroupId: exampleSecgroup.networkingSecgroupV2Id,\n    availabilityZone: \"eu-west-0a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nflavor = flexibleengine.get_dws_flavors(availability_zone=\"eu-west-0a\",\n    vcpus=8)\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nexample_secgroup = flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", description=\"My neutron security group\")\ncluster = flexibleengine.DwsClusterV1(\"cluster\",\n    node_type=data[\"flexibleengine_dws_flavors\"][\"test\"][\"flavors\"][0][\"flavor_id\"],\n    number_of_node=3,\n    user_name=\"cluster_admin\",\n    user_pwd=\"Cluster123@!\",\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    security_group_id=example_secgroup.networking_secgroup_v2_id,\n    availability_zone=\"eu-west-0a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var flavor = Flexibleengine.GetDwsFlavors.Invoke(new()\n    {\n        AvailabilityZone = \"eu-west-0a\",\n        Vcpus = 8,\n    });\n\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var exampleSecgroup = new Flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", new()\n    {\n        Description = \"My neutron security group\",\n    });\n\n    var cluster = new Flexibleengine.DwsClusterV1(\"cluster\", new()\n    {\n        NodeType = data.Flexibleengine_dws_flavors.Test.Flavors[0].Flavor_id,\n        NumberOfNode = 3,\n        UserName = \"cluster_admin\",\n        UserPwd = \"Cluster123@!\",\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        SecurityGroupId = exampleSecgroup.NetworkingSecgroupV2Id,\n        AvailabilityZone = \"eu-west-0a\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDwsFlavors(ctx, &flexibleengine.GetDwsFlavorsArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(\"eu-west-0a\"),\n\t\t\tVcpus:            pulumi.Float64Ref(8),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecgroup, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"exampleSecgroup\", &flexibleengine.NetworkingSecgroupV2Args{\n\t\t\tDescription: pulumi.String(\"My neutron security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewDwsClusterV1(ctx, \"cluster\", &flexibleengine.DwsClusterV1Args{\n\t\t\tNodeType:         pulumi.Any(data.Flexibleengine_dws_flavors.Test.Flavors[0].Flavor_id),\n\t\t\tNumberOfNode:     pulumi.Float64(3),\n\t\t\tUserName:         pulumi.String(\"cluster_admin\"),\n\t\t\tUserPwd:          pulumi.String(\"Cluster123@!\"),\n\t\t\tVpcId:            exampleVpc.VpcV1Id,\n\t\t\tSubnetId:         exampleSubnet.VpcSubnetV1Id,\n\t\t\tSecurityGroupId:  exampleSecgroup.NetworkingSecgroupV2Id,\n\t\t\tAvailabilityZone: pulumi.String(\"eu-west-0a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDwsFlavorsArgs;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2Args;\nimport com.pulumi.flexibleengine.DwsClusterV1;\nimport com.pulumi.flexibleengine.DwsClusterV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = FlexibleengineFunctions.getDwsFlavors(GetDwsFlavorsArgs.builder()\n            .availabilityZone(\"eu-west-0a\")\n            .vcpus(8)\n            .build());\n\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var exampleSecgroup = new NetworkingSecgroupV2(\"exampleSecgroup\", NetworkingSecgroupV2Args.builder()\n            .description(\"My neutron security group\")\n            .build());\n\n        var cluster = new DwsClusterV1(\"cluster\", DwsClusterV1Args.builder()\n            .nodeType(data.flexibleengine_dws_flavors().test().flavors()[0].flavor_id())\n            .numberOfNode(3)\n            .userName(\"cluster_admin\")\n            .userPwd(\"Cluster123@!\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .securityGroupId(exampleSecgroup.networkingSecgroupV2Id())\n            .availabilityZone(\"eu-west-0a\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  exampleSecgroup:\n    type: flexibleengine:NetworkingSecgroupV2\n    properties:\n      description: My neutron security group\n  cluster:\n    type: flexibleengine:DwsClusterV1\n    properties:\n      nodeType: ${data.flexibleengine_dws_flavors.test.flavors[0].flavor_id}\n      numberOfNode: 3\n      userName: cluster_admin\n      userPwd: Cluster123@!\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      securityGroupId: ${exampleSecgroup.networkingSecgroupV2Id}\n      availabilityZone: eu-west-0a\nvariables:\n  flavor:\n    fn::invoke:\n      function: flexibleengine:getDwsFlavors\n      arguments:\n        availabilityZone: eu-west-0a\n        vcpus: 8\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDWS cluster can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/dwsClusterV1:DwsClusterV1 cluster 1a2b3c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p\n```\n\n",
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "AZ in a cluster.Changing this will create a new resource.\n"
        },
        "created": {
          "type": "string",
          "description": "Cluster creation time. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ.\n"
        },
        "dwsClusterV1Id": {
          "type": "string",
          "description": "Cluster ID\n"
        },
        "endpoints": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDwsClusterV1Endpoint:DwsClusterV1Endpoint"
          },
          "description": "The private network connection information about the cluster.\nThe endpoints object structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Cluster name, which must be unique and contains 4 to 64\ncharacters, which consist of letters, digits, hyphens (-), or underscores(_) only and must start with a letter.\nChanging this will create a new resource.\n"
        },
        "nodeType": {
          "type": "string",
          "description": "Node type.Changing this will create a new resource.\n"
        },
        "numberOfNode": {
          "type": "number",
          "description": "Number of nodes in a cluster. The value ranges from 3 to 32.\nChanging this will create a new resource.\n"
        },
        "port": {
          "type": "number",
          "description": "Service port of a cluster (8000 to 10000). The default value is 8000.\nChanging this will create a new resource.\n"
        },
        "privateIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of private network IP address.\n"
        },
        "publicEndpoints": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FDwsClusterV1PublicEndpoint:DwsClusterV1PublicEndpoint"
          },
          "description": "The public network connection information about the cluster.\nThe public_endpoints object structure is documented below.\n"
        },
        "publicIp": {
          "$ref": "#/types/flexibleengine:index%2FDwsClusterV1PublicIp:DwsClusterV1PublicIp",
          "description": "Public IP address.The public_ip object structure is\ndocumented below. Changing this will create a new resource.\n\n<a name=\"dws_public_ip\"></a>\nThe `public_ip` block supports:\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the DWS cluster (v1) resource.\nIf omitted, the provider-level region will be used. Changing this will create a new DWS cluster (v1) resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "ID of a security group. The ID is used for\nconfiguring cluster network. Changing this will create a new resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Cluster status, which can be one of the following: *CREATING*, *AVAILABLE*, *UNAVAILABLE* and *CREATION FAILED*.\n"
        },
        "subStatus": {
          "type": "string",
          "description": "Sub-status of clusters in the AVAILABLE state.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the VPC Subnet, which is used for configuring cluster network.\nChanging this will create a new resource.\n"
        },
        "taskStatus": {
          "type": "string",
          "description": "Cluster management task.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDwsClusterV1Timeouts:DwsClusterV1Timeouts"
        },
        "updated": {
          "type": "string",
          "description": "Last modification time of a cluster. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ.\n"
        },
        "userName": {
          "type": "string",
          "description": "Administrator username for logging in to a data\nwarehouse cluster The administrator username must:\n- Consist of lowercase letters, digits, or underscores.\n- Start with a lowercase letter or an underscore.\n- Contain 1 to 63 characters.\n- Cannot be a keyword of the DWS database.\nChanging this will create a new resource.\n"
        },
        "userPwd": {
          "type": "string",
          "description": "Administrator password for logging in to a data\nwarehouse cluster. A password must conform to the following rules:\n- Contains 8 to 32 characters.\n- Cannot be the same as the username or the username written in reverse order.\n- Contains three types of lowercase letters, uppercase letters, digits and\nspecial characters ~!@#%^&*()-_=+|[{}];:,<.>/?\nChanging this will create a new resource.\n",
          "secret": true
        },
        "version": {
          "type": "string",
          "description": "Data warehouse version\n"
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID, which is used for configuring cluster network.\nChanging this will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "created",
        "dwsClusterV1Id",
        "endpoints",
        "name",
        "nodeType",
        "numberOfNode",
        "port",
        "privateIps",
        "publicEndpoints",
        "region",
        "securityGroupId",
        "status",
        "subStatus",
        "subnetId",
        "taskStatus",
        "updated",
        "userName",
        "userPwd",
        "version",
        "vpcId"
      ],
      "inputProperties": {
        "availabilityZone": {
          "type": "string",
          "description": "AZ in a cluster.Changing this will create a new resource.\n"
        },
        "dwsClusterV1Id": {
          "type": "string",
          "description": "Cluster ID\n"
        },
        "name": {
          "type": "string",
          "description": "Cluster name, which must be unique and contains 4 to 64\ncharacters, which consist of letters, digits, hyphens (-), or underscores(_) only and must start with a letter.\nChanging this will create a new resource.\n"
        },
        "nodeType": {
          "type": "string",
          "description": "Node type.Changing this will create a new resource.\n"
        },
        "numberOfNode": {
          "type": "number",
          "description": "Number of nodes in a cluster. The value ranges from 3 to 32.\nChanging this will create a new resource.\n"
        },
        "port": {
          "type": "number",
          "description": "Service port of a cluster (8000 to 10000). The default value is 8000.\nChanging this will create a new resource.\n"
        },
        "publicIp": {
          "$ref": "#/types/flexibleengine:index%2FDwsClusterV1PublicIp:DwsClusterV1PublicIp",
          "description": "Public IP address.The public_ip object structure is\ndocumented below. Changing this will create a new resource.\n\n<a name=\"dws_public_ip\"></a>\nThe `public_ip` block supports:\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the DWS cluster (v1) resource.\nIf omitted, the provider-level region will be used. Changing this will create a new DWS cluster (v1) resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "ID of a security group. The ID is used for\nconfiguring cluster network. Changing this will create a new resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the VPC Subnet, which is used for configuring cluster network.\nChanging this will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FDwsClusterV1Timeouts:DwsClusterV1Timeouts"
        },
        "userName": {
          "type": "string",
          "description": "Administrator username for logging in to a data\nwarehouse cluster The administrator username must:\n- Consist of lowercase letters, digits, or underscores.\n- Start with a lowercase letter or an underscore.\n- Contain 1 to 63 characters.\n- Cannot be a keyword of the DWS database.\nChanging this will create a new resource.\n"
        },
        "userPwd": {
          "type": "string",
          "description": "Administrator password for logging in to a data\nwarehouse cluster. A password must conform to the following rules:\n- Contains 8 to 32 characters.\n- Cannot be the same as the username or the username written in reverse order.\n- Contains three types of lowercase letters, uppercase letters, digits and\nspecial characters ~!@#%^&*()-_=+|[{}];:,<.>/?\nChanging this will create a new resource.\n",
          "secret": true
        },
        "vpcId": {
          "type": "string",
          "description": "VPC ID, which is used for configuring cluster network.\nChanging this will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "nodeType",
        "numberOfNode",
        "securityGroupId",
        "subnetId",
        "userName",
        "userPwd",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DwsClusterV1 resources.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "AZ in a cluster.Changing this will create a new resource.\n"
          },
          "created": {
            "type": "string",
            "description": "Cluster creation time. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ.\n"
          },
          "dwsClusterV1Id": {
            "type": "string",
            "description": "Cluster ID\n"
          },
          "endpoints": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDwsClusterV1Endpoint:DwsClusterV1Endpoint"
            },
            "description": "The private network connection information about the cluster.\nThe endpoints object structure is documented below.\n"
          },
          "name": {
            "type": "string",
            "description": "Cluster name, which must be unique and contains 4 to 64\ncharacters, which consist of letters, digits, hyphens (-), or underscores(_) only and must start with a letter.\nChanging this will create a new resource.\n"
          },
          "nodeType": {
            "type": "string",
            "description": "Node type.Changing this will create a new resource.\n"
          },
          "numberOfNode": {
            "type": "number",
            "description": "Number of nodes in a cluster. The value ranges from 3 to 32.\nChanging this will create a new resource.\n"
          },
          "port": {
            "type": "number",
            "description": "Service port of a cluster (8000 to 10000). The default value is 8000.\nChanging this will create a new resource.\n"
          },
          "privateIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of private network IP address.\n"
          },
          "publicEndpoints": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FDwsClusterV1PublicEndpoint:DwsClusterV1PublicEndpoint"
            },
            "description": "The public network connection information about the cluster.\nThe public_endpoints object structure is documented below.\n"
          },
          "publicIp": {
            "$ref": "#/types/flexibleengine:index%2FDwsClusterV1PublicIp:DwsClusterV1PublicIp",
            "description": "Public IP address.The public_ip object structure is\ndocumented below. Changing this will create a new resource.\n\n<a name=\"dws_public_ip\"></a>\nThe `public_ip` block supports:\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the DWS cluster (v1) resource.\nIf omitted, the provider-level region will be used. Changing this will create a new DWS cluster (v1) resource.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "ID of a security group. The ID is used for\nconfiguring cluster network. Changing this will create a new resource.\n"
          },
          "status": {
            "type": "string",
            "description": "Cluster status, which can be one of the following: *CREATING*, *AVAILABLE*, *UNAVAILABLE* and *CREATION FAILED*.\n"
          },
          "subStatus": {
            "type": "string",
            "description": "Sub-status of clusters in the AVAILABLE state.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "The ID of the VPC Subnet, which is used for configuring cluster network.\nChanging this will create a new resource.\n"
          },
          "taskStatus": {
            "type": "string",
            "description": "Cluster management task.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FDwsClusterV1Timeouts:DwsClusterV1Timeouts"
          },
          "updated": {
            "type": "string",
            "description": "Last modification time of a cluster. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ.\n"
          },
          "userName": {
            "type": "string",
            "description": "Administrator username for logging in to a data\nwarehouse cluster The administrator username must:\n- Consist of lowercase letters, digits, or underscores.\n- Start with a lowercase letter or an underscore.\n- Contain 1 to 63 characters.\n- Cannot be a keyword of the DWS database.\nChanging this will create a new resource.\n"
          },
          "userPwd": {
            "type": "string",
            "description": "Administrator password for logging in to a data\nwarehouse cluster. A password must conform to the following rules:\n- Contains 8 to 32 characters.\n- Cannot be the same as the username or the username written in reverse order.\n- Contains three types of lowercase letters, uppercase letters, digits and\nspecial characters ~!@#%^&*()-_=+|[{}];:,<.>/?\nChanging this will create a new resource.\n",
            "secret": true
          },
          "version": {
            "type": "string",
            "description": "Data warehouse version\n"
          },
          "vpcId": {
            "type": "string",
            "description": "VPC ID, which is used for configuring cluster network.\nChanging this will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/elbBackend:ElbBackend": {
      "description": "!> **Warning:** Classic load balancers are no longer provided, using elastic load balancers instead.\n\nManages a **classic** lb backend resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst backend = new flexibleengine.ElbBackend(\"backend\", {\n    listenerId: flexibleengine_elb_listener.listener.id,\n    serverId: \"8f7a32f1-f66c-4d13-9b17-3a13f9f0bb8d\",\n    address: \"192.168.0.211\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nbackend = flexibleengine.ElbBackend(\"backend\",\n    listener_id=flexibleengine_elb_listener[\"listener\"][\"id\"],\n    server_id=\"8f7a32f1-f66c-4d13-9b17-3a13f9f0bb8d\",\n    address=\"192.168.0.211\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var backend = new Flexibleengine.ElbBackend(\"backend\", new()\n    {\n        ListenerId = flexibleengine_elb_listener.Listener.Id,\n        ServerId = \"8f7a32f1-f66c-4d13-9b17-3a13f9f0bb8d\",\n        Address = \"192.168.0.211\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewElbBackend(ctx, \"backend\", &flexibleengine.ElbBackendArgs{\n\t\t\tListenerId: pulumi.Any(flexibleengine_elb_listener.Listener.Id),\n\t\t\tServerId:   pulumi.String(\"8f7a32f1-f66c-4d13-9b17-3a13f9f0bb8d\"),\n\t\t\tAddress:    pulumi.String(\"192.168.0.211\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ElbBackend;\nimport com.pulumi.flexibleengine.ElbBackendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var backend = new ElbBackend(\"backend\", ElbBackendArgs.builder()\n            .listenerId(flexibleengine_elb_listener.listener().id())\n            .serverId(\"8f7a32f1-f66c-4d13-9b17-3a13f9f0bb8d\")\n            .address(\"192.168.0.211\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  backend:\n    type: flexibleengine:ElbBackend\n    properties:\n      listenerId: ${flexibleengine_elb_listener.listener.id}\n      serverId: 8f7a32f1-f66c-4d13-9b17-3a13f9f0bb8d\n      address: 192.168.0.211\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "address": {
          "type": "string",
          "description": "Specifies the private IP address of the backend member.\nChanging this will create a new resource.\n"
        },
        "elbBackendId": {
          "type": "string"
        },
        "listenerId": {
          "type": "string",
          "description": "Specifies the listener ID. Changing this will create a new resource.\n"
        },
        "serverId": {
          "type": "string",
          "description": "Specifies the backend member ID. Changing this will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FElbBackendTimeouts:ElbBackendTimeouts"
        }
      },
      "type": "object",
      "required": [
        "address",
        "elbBackendId",
        "listenerId",
        "serverId"
      ],
      "inputProperties": {
        "address": {
          "type": "string",
          "description": "Specifies the private IP address of the backend member.\nChanging this will create a new resource.\n"
        },
        "elbBackendId": {
          "type": "string"
        },
        "listenerId": {
          "type": "string",
          "description": "Specifies the listener ID. Changing this will create a new resource.\n"
        },
        "serverId": {
          "type": "string",
          "description": "Specifies the backend member ID. Changing this will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FElbBackendTimeouts:ElbBackendTimeouts"
        }
      },
      "requiredInputs": [
        "address",
        "listenerId",
        "serverId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ElbBackend resources.\n",
        "properties": {
          "address": {
            "type": "string",
            "description": "Specifies the private IP address of the backend member.\nChanging this will create a new resource.\n"
          },
          "elbBackendId": {
            "type": "string"
          },
          "listenerId": {
            "type": "string",
            "description": "Specifies the listener ID. Changing this will create a new resource.\n"
          },
          "serverId": {
            "type": "string",
            "description": "Specifies the backend member ID. Changing this will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FElbBackendTimeouts:ElbBackendTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/elbCertificate:ElbCertificate": {
      "description": "Manages an ELB certificate resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst certificate1 = new flexibleengine.ElbCertificate(\"certificate1\", {\n    certificate: `-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n\n`,\n    description: \"terraform test certificate\",\n    domain: \"www.elb.com\",\n    privateKey: `-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ncertificate1 = flexibleengine.ElbCertificate(\"certificate1\",\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n\n\"\"\",\n    description=\"terraform test certificate\",\n    domain=\"www.elb.com\",\n    private_key=\"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var certificate1 = new Flexibleengine.ElbCertificate(\"certificate1\", new()\n    {\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n\n\",\n        Description = \"terraform test certificate\",\n        Domain = \"www.elb.com\",\n        PrivateKey = @\"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewElbCertificate(ctx, \"certificate1\", &flexibleengine.ElbCertificateArgs{\n\t\t\tCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n\n`),\n\t\t\tDescription: pulumi.String(\"terraform test certificate\"),\n\t\t\tDomain:      pulumi.String(\"www.elb.com\"),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ElbCertificate;\nimport com.pulumi.flexibleengine.ElbCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var certificate1 = new ElbCertificate(\"certificate1\", ElbCertificateArgs.builder()\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n\n            \"\"\")\n            .description(\"terraform test certificate\")\n            .domain(\"www.elb.com\")\n            .privateKey(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  certificate1:\n    type: flexibleengine:ElbCertificate\n    properties:\n      certificate: |+\n        -----BEGIN CERTIFICATE-----\n        MIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\n        BAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\n        CQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\n        b20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\n        eDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\n        CwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\n        IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n        2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\n        iE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n        3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\n        Q8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\n        mf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\n        AQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\n        FoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\n        AQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n        83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\n        r4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\n        c8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\n        i34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\n        i1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n        -----END CERTIFICATE-----\n\n      description: terraform test certificate\n      domain: www.elb.com\n      privateKey: |+\n        -----BEGIN RSA PRIVATE KEY-----\n        MIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\n        qEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\n        UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\n        MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\n        M3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n        13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\n        DRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\n        Nwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\n        iMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\n        rh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n        1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\n        yDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\n        RoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\n        vABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\n        Uk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\n        aKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\n        Hdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n        75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\n        uvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\n        Up7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n        79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\n        yHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n        2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\n        ep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\n        nEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n        -----END RSA PRIVATE KEY-----\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nELB certificate can be imported using the certificate ID, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/elbCertificate:ElbCertificate certificate_1 5c20fdad-7288-11eb-b817-0255ac10158b\n```\n\n",
      "properties": {
        "certificate": {
          "type": "string",
          "description": "Specifies the public encrypted key of the certificate, PEM format.\n"
        },
        "createTime": {
          "type": "string",
          "description": "Indicates the creation time.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the certificate.\n"
        },
        "domain": {
          "type": "string",
          "description": "Specifies the domain of the certificate. The value contains a maximum of 100 characters.\nThis parameter is valid only when `type` is set to \"server\".\n"
        },
        "elbCertificateId": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "expireTime": {
          "type": "string",
          "description": "Indicates the expired time.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the certificate. Does not have to be unique.\n"
        },
        "privateKey": {
          "type": "string",
          "description": "Specifies the private encrypted key of the certificate, PEM format.\nThis parameter is valid and mandatory only when `type` is set to \"server\".\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the ELB certificate resource. If omitted, the\nprovider-level region will be used. Changing this creates a new certificate.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the certificate type. The default value is \"server\".\nChanging this creates a new certificate. The value can be one of the following:\n+ server: indicates the server certificate.\n+ client: indicates the CA certificate.\n"
        },
        "updateTime": {
          "type": "string",
          "description": "Indicates the update time.\n"
        }
      },
      "type": "object",
      "required": [
        "certificate",
        "createTime",
        "elbCertificateId",
        "enterpriseProjectId",
        "expireTime",
        "name",
        "region",
        "updateTime"
      ],
      "inputProperties": {
        "certificate": {
          "type": "string",
          "description": "Specifies the public encrypted key of the certificate, PEM format.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the certificate.\n"
        },
        "domain": {
          "type": "string",
          "description": "Specifies the domain of the certificate. The value contains a maximum of 100 characters.\nThis parameter is valid only when `type` is set to \"server\".\n"
        },
        "elbCertificateId": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the certificate. Does not have to be unique.\n"
        },
        "privateKey": {
          "type": "string",
          "description": "Specifies the private encrypted key of the certificate, PEM format.\nThis parameter is valid and mandatory only when `type` is set to \"server\".\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the ELB certificate resource. If omitted, the\nprovider-level region will be used. Changing this creates a new certificate.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the certificate type. The default value is \"server\".\nChanging this creates a new certificate. The value can be one of the following:\n+ server: indicates the server certificate.\n+ client: indicates the CA certificate.\n"
        }
      },
      "requiredInputs": [
        "certificate"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ElbCertificate resources.\n",
        "properties": {
          "certificate": {
            "type": "string",
            "description": "Specifies the public encrypted key of the certificate, PEM format.\n"
          },
          "createTime": {
            "type": "string",
            "description": "Indicates the creation time.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the certificate.\n"
          },
          "domain": {
            "type": "string",
            "description": "Specifies the domain of the certificate. The value contains a maximum of 100 characters.\nThis parameter is valid only when `type` is set to \"server\".\n"
          },
          "elbCertificateId": {
            "type": "string",
            "description": "Specifies a resource ID in UUID format.\n"
          },
          "enterpriseProjectId": {
            "type": "string"
          },
          "expireTime": {
            "type": "string",
            "description": "Indicates the expired time.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the certificate. Does not have to be unique.\n"
          },
          "privateKey": {
            "type": "string",
            "description": "Specifies the private encrypted key of the certificate, PEM format.\nThis parameter is valid and mandatory only when `type` is set to \"server\".\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the ELB certificate resource. If omitted, the\nprovider-level region will be used. Changing this creates a new certificate.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the certificate type. The default value is \"server\".\nChanging this creates a new certificate. The value can be one of the following:\n+ server: indicates the server certificate.\n+ client: indicates the CA certificate.\n"
          },
          "updateTime": {
            "type": "string",
            "description": "Indicates the update time.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/elbHealth:ElbHealth": {
      "description": "!> **Warning:** Classic load balancers are no longer provided, using elastic load balancers instead.\n\nManages a **classic** lb health check resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst healthcheck = new flexibleengine.ElbHealth(\"healthcheck\", {\n    listenerId: flexibleengine_elb_listener.listener.id,\n    healthcheckProtocol: \"TCP\",\n    healthcheckConnectPort: 22,\n    healthyThreshold: 5,\n    healthcheckTimeout: 25,\n    healthcheckInterval: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nhealthcheck = flexibleengine.ElbHealth(\"healthcheck\",\n    listener_id=flexibleengine_elb_listener[\"listener\"][\"id\"],\n    healthcheck_protocol=\"TCP\",\n    healthcheck_connect_port=22,\n    healthy_threshold=5,\n    healthcheck_timeout=25,\n    healthcheck_interval=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var healthcheck = new Flexibleengine.ElbHealth(\"healthcheck\", new()\n    {\n        ListenerId = flexibleengine_elb_listener.Listener.Id,\n        HealthcheckProtocol = \"TCP\",\n        HealthcheckConnectPort = 22,\n        HealthyThreshold = 5,\n        HealthcheckTimeout = 25,\n        HealthcheckInterval = 3,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewElbHealth(ctx, \"healthcheck\", &flexibleengine.ElbHealthArgs{\n\t\t\tListenerId:             pulumi.Any(flexibleengine_elb_listener.Listener.Id),\n\t\t\tHealthcheckProtocol:    pulumi.String(\"TCP\"),\n\t\t\tHealthcheckConnectPort: pulumi.Float64(22),\n\t\t\tHealthyThreshold:       pulumi.Float64(5),\n\t\t\tHealthcheckTimeout:     pulumi.Float64(25),\n\t\t\tHealthcheckInterval:    pulumi.Float64(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ElbHealth;\nimport com.pulumi.flexibleengine.ElbHealthArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var healthcheck = new ElbHealth(\"healthcheck\", ElbHealthArgs.builder()\n            .listenerId(flexibleengine_elb_listener.listener().id())\n            .healthcheckProtocol(\"TCP\")\n            .healthcheckConnectPort(22)\n            .healthyThreshold(5)\n            .healthcheckTimeout(25)\n            .healthcheckInterval(3)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  healthcheck:\n    type: flexibleengine:ElbHealth\n    properties:\n      listenerId: ${flexibleengine_elb_listener.listener.id}\n      healthcheckProtocol: TCP\n      healthcheckConnectPort: 22\n      healthyThreshold: 5\n      healthcheckTimeout: 25\n      healthcheckInterval: 3\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "elbHealthId": {
          "type": "string",
          "description": "Specifies the health check ID.\n"
        },
        "healthcheckConnectPort": {
          "type": "number",
          "description": "Specifies the port used for the health\ncheck. The value ranges from 1 to 65535.\n"
        },
        "healthcheckInterval": {
          "type": "number",
          "description": "Specifies the maximum interval (s) for\nhealth check. The value ranges from 1 to 5.\n"
        },
        "healthcheckProtocol": {
          "type": "string",
          "description": "Specifies the protocol used for the health\ncheck. The value can be HTTP or TCP (case-insensitive).\n"
        },
        "healthcheckTimeout": {
          "type": "number",
          "description": "Specifies the maximum timeout duration\n(s) for the health check. The value ranges from 1 to 50.\n"
        },
        "healthcheckUri": {
          "type": "string",
          "description": "Specifies the URI for health check. This parameter\nis valid when healthcheck_ protocol is HTTP. The value is a string of 1 to 80\ncharacters that must start with a slash (/) and can only contain letters, digits,\nand special characters, such as -/.%?#&.\n"
        },
        "healthyThreshold": {
          "type": "number",
          "description": "Specifies the threshold at which the health\ncheck result is success, that is, the number of consecutive successful health\nchecks when the health check result of the backend server changes from fail\nto success. The value ranges from 1 to 10.\n"
        },
        "listenerId": {
          "type": "string",
          "description": "Specifies the ID of the listener to which the health\ncheck belongs. Changing this creates a new elb health.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the elb health. If\nomitted, the `region` argument of the provider is used. Changing this creates a new elb health.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FElbHealthTimeouts:ElbHealthTimeouts"
        },
        "unhealthyThreshold": {
          "type": "number",
          "description": "Specifies the threshold at which the health\ncheck result is fail, that is, the number of consecutive failed health checks\nwhen the health check result of the backend server changes from success to fail.\nThe value ranges from 1 to 10.\n"
        }
      },
      "type": "object",
      "required": [
        "elbHealthId",
        "listenerId",
        "region",
        "unhealthyThreshold"
      ],
      "inputProperties": {
        "elbHealthId": {
          "type": "string",
          "description": "Specifies the health check ID.\n"
        },
        "healthcheckConnectPort": {
          "type": "number",
          "description": "Specifies the port used for the health\ncheck. The value ranges from 1 to 65535.\n"
        },
        "healthcheckInterval": {
          "type": "number",
          "description": "Specifies the maximum interval (s) for\nhealth check. The value ranges from 1 to 5.\n"
        },
        "healthcheckProtocol": {
          "type": "string",
          "description": "Specifies the protocol used for the health\ncheck. The value can be HTTP or TCP (case-insensitive).\n"
        },
        "healthcheckTimeout": {
          "type": "number",
          "description": "Specifies the maximum timeout duration\n(s) for the health check. The value ranges from 1 to 50.\n"
        },
        "healthcheckUri": {
          "type": "string",
          "description": "Specifies the URI for health check. This parameter\nis valid when healthcheck_ protocol is HTTP. The value is a string of 1 to 80\ncharacters that must start with a slash (/) and can only contain letters, digits,\nand special characters, such as -/.%?#&.\n"
        },
        "healthyThreshold": {
          "type": "number",
          "description": "Specifies the threshold at which the health\ncheck result is success, that is, the number of consecutive successful health\nchecks when the health check result of the backend server changes from fail\nto success. The value ranges from 1 to 10.\n"
        },
        "listenerId": {
          "type": "string",
          "description": "Specifies the ID of the listener to which the health\ncheck belongs. Changing this creates a new elb health.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the elb health. If\nomitted, the `region` argument of the provider is used. Changing this creates a new elb health.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FElbHealthTimeouts:ElbHealthTimeouts"
        },
        "unhealthyThreshold": {
          "type": "number",
          "description": "Specifies the threshold at which the health\ncheck result is fail, that is, the number of consecutive failed health checks\nwhen the health check result of the backend server changes from success to fail.\nThe value ranges from 1 to 10.\n"
        }
      },
      "requiredInputs": [
        "listenerId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ElbHealth resources.\n",
        "properties": {
          "elbHealthId": {
            "type": "string",
            "description": "Specifies the health check ID.\n"
          },
          "healthcheckConnectPort": {
            "type": "number",
            "description": "Specifies the port used for the health\ncheck. The value ranges from 1 to 65535.\n"
          },
          "healthcheckInterval": {
            "type": "number",
            "description": "Specifies the maximum interval (s) for\nhealth check. The value ranges from 1 to 5.\n"
          },
          "healthcheckProtocol": {
            "type": "string",
            "description": "Specifies the protocol used for the health\ncheck. The value can be HTTP or TCP (case-insensitive).\n"
          },
          "healthcheckTimeout": {
            "type": "number",
            "description": "Specifies the maximum timeout duration\n(s) for the health check. The value ranges from 1 to 50.\n"
          },
          "healthcheckUri": {
            "type": "string",
            "description": "Specifies the URI for health check. This parameter\nis valid when healthcheck_ protocol is HTTP. The value is a string of 1 to 80\ncharacters that must start with a slash (/) and can only contain letters, digits,\nand special characters, such as -/.%?#&.\n"
          },
          "healthyThreshold": {
            "type": "number",
            "description": "Specifies the threshold at which the health\ncheck result is success, that is, the number of consecutive successful health\nchecks when the health check result of the backend server changes from fail\nto success. The value ranges from 1 to 10.\n"
          },
          "listenerId": {
            "type": "string",
            "description": "Specifies the ID of the listener to which the health\ncheck belongs. Changing this creates a new elb health.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the elb health. If\nomitted, the `region` argument of the provider is used. Changing this creates a new elb health.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FElbHealthTimeouts:ElbHealthTimeouts"
          },
          "unhealthyThreshold": {
            "type": "number",
            "description": "Specifies the threshold at which the health\ncheck result is fail, that is, the number of consecutive failed health checks\nwhen the health check result of the backend server changes from success to fail.\nThe value ranges from 1 to 10.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/elbIpgroup:ElbIpgroup": {
      "description": "Manages an ELB IP Group resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst basic = new flexibleengine.ElbIpgroup(\"basic\", {\n    description: \"basic example\",\n    ipLists: [{\n        description: \"ECS01\",\n        ip: \"192.168.10.10\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nbasic = flexibleengine.ElbIpgroup(\"basic\",\n    description=\"basic example\",\n    ip_lists=[{\n        \"description\": \"ECS01\",\n        \"ip\": \"192.168.10.10\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var basic = new Flexibleengine.ElbIpgroup(\"basic\", new()\n    {\n        Description = \"basic example\",\n        IpLists = new[]\n        {\n            new Flexibleengine.Inputs.ElbIpgroupIpListArgs\n            {\n                Description = \"ECS01\",\n                Ip = \"192.168.10.10\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewElbIpgroup(ctx, \"basic\", &flexibleengine.ElbIpgroupArgs{\n\t\t\tDescription: pulumi.String(\"basic example\"),\n\t\t\tIpLists: flexibleengine.ElbIpgroupIpListArray{\n\t\t\t\t&flexibleengine.ElbIpgroupIpListArgs{\n\t\t\t\t\tDescription: pulumi.String(\"ECS01\"),\n\t\t\t\t\tIp:          pulumi.String(\"192.168.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ElbIpgroup;\nimport com.pulumi.flexibleengine.ElbIpgroupArgs;\nimport com.pulumi.flexibleengine.inputs.ElbIpgroupIpListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var basic = new ElbIpgroup(\"basic\", ElbIpgroupArgs.builder()\n            .description(\"basic example\")\n            .ipLists(ElbIpgroupIpListArgs.builder()\n                .description(\"ECS01\")\n                .ip(\"192.168.10.10\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  basic:\n    type: flexibleengine:ElbIpgroup\n    properties:\n      description: basic example\n      ipLists:\n        - description: ECS01\n          ip: 192.168.10.10\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nELB IP group can be imported using the IP group ID, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/elbIpgroup:ElbIpgroup group_1 5c20fdad-7288-11eb-b817-0255ac10158b\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "Human-readable description for the ip.\n"
        },
        "elbIpgroupId": {
          "type": "string",
          "description": "The uuid of the ip group.\n"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "ipLists": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FElbIpgroupIpList:ElbIpgroupIpList"
          },
          "description": "Specifies an array of one or more ip addresses. The ip_list object\nstructure is documented below.\n\n<a name=\"elb_ip_list\"></a>\nThe `ip_list` block supports:\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the ip group.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the ip group resource. If omitted, the\nprovider-level region will be used. Changing this creates a new ip group.\n"
        }
      },
      "type": "object",
      "required": [
        "elbIpgroupId",
        "enterpriseProjectId",
        "ipLists",
        "name",
        "region"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Human-readable description for the ip.\n"
        },
        "elbIpgroupId": {
          "type": "string",
          "description": "The uuid of the ip group.\n"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "ipLists": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FElbIpgroupIpList:ElbIpgroupIpList"
          },
          "description": "Specifies an array of one or more ip addresses. The ip_list object\nstructure is documented below.\n\n<a name=\"elb_ip_list\"></a>\nThe `ip_list` block supports:\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the ip group.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the ip group resource. If omitted, the\nprovider-level region will be used. Changing this creates a new ip group.\n"
        }
      },
      "requiredInputs": [
        "ipLists"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ElbIpgroup resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Human-readable description for the ip.\n"
          },
          "elbIpgroupId": {
            "type": "string",
            "description": "The uuid of the ip group.\n"
          },
          "enterpriseProjectId": {
            "type": "string"
          },
          "ipLists": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FElbIpgroupIpList:ElbIpgroupIpList"
            },
            "description": "Specifies an array of one or more ip addresses. The ip_list object\nstructure is documented below.\n\n<a name=\"elb_ip_list\"></a>\nThe `ip_list` block supports:\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the ip group.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the ip group resource. If omitted, the\nprovider-level region will be used. Changing this creates a new ip group.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/elbListener:ElbListener": {
      "description": "!> **Warning:** Classic load balancers are no longer provided, using elastic load balancers instead.\n\nManages a **classic** lb listener resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst elb = new flexibleengine.ElbLoadbalancer(\"elb\", {\n    description: \"test elb\",\n    type: \"External\",\n    vpcId: \"e346dc4a-d9a6-46f4-90df-10153626076e\",\n    bandwidth: 5,\n});\nconst listener = new flexibleengine.ElbListener(\"listener\", {\n    loadbalancerId: elb.elbLoadbalancerId,\n    description: \"great listener\",\n    protocol: \"TCP\",\n    backendProtocol: \"TCP\",\n    protocolPort: 12345,\n    backendPort: 8080,\n    lbAlgorithm: \"roundrobin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nelb = flexibleengine.ElbLoadbalancer(\"elb\",\n    description=\"test elb\",\n    type=\"External\",\n    vpc_id=\"e346dc4a-d9a6-46f4-90df-10153626076e\",\n    bandwidth=5)\nlistener = flexibleengine.ElbListener(\"listener\",\n    loadbalancer_id=elb.elb_loadbalancer_id,\n    description=\"great listener\",\n    protocol=\"TCP\",\n    backend_protocol=\"TCP\",\n    protocol_port=12345,\n    backend_port=8080,\n    lb_algorithm=\"roundrobin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var elb = new Flexibleengine.ElbLoadbalancer(\"elb\", new()\n    {\n        Description = \"test elb\",\n        Type = \"External\",\n        VpcId = \"e346dc4a-d9a6-46f4-90df-10153626076e\",\n        Bandwidth = 5,\n    });\n\n    var listener = new Flexibleengine.ElbListener(\"listener\", new()\n    {\n        LoadbalancerId = elb.ElbLoadbalancerId,\n        Description = \"great listener\",\n        Protocol = \"TCP\",\n        BackendProtocol = \"TCP\",\n        ProtocolPort = 12345,\n        BackendPort = 8080,\n        LbAlgorithm = \"roundrobin\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\telb, err := flexibleengine.NewElbLoadbalancer(ctx, \"elb\", &flexibleengine.ElbLoadbalancerArgs{\n\t\t\tDescription: pulumi.String(\"test elb\"),\n\t\t\tType:        pulumi.String(\"External\"),\n\t\t\tVpcId:       pulumi.String(\"e346dc4a-d9a6-46f4-90df-10153626076e\"),\n\t\t\tBandwidth:   pulumi.Float64(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewElbListener(ctx, \"listener\", &flexibleengine.ElbListenerArgs{\n\t\t\tLoadbalancerId:  elb.ElbLoadbalancerId,\n\t\t\tDescription:     pulumi.String(\"great listener\"),\n\t\t\tProtocol:        pulumi.String(\"TCP\"),\n\t\t\tBackendProtocol: pulumi.String(\"TCP\"),\n\t\t\tProtocolPort:    pulumi.Float64(12345),\n\t\t\tBackendPort:     pulumi.Float64(8080),\n\t\t\tLbAlgorithm:     pulumi.String(\"roundrobin\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ElbLoadbalancer;\nimport com.pulumi.flexibleengine.ElbLoadbalancerArgs;\nimport com.pulumi.flexibleengine.ElbListener;\nimport com.pulumi.flexibleengine.ElbListenerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var elb = new ElbLoadbalancer(\"elb\", ElbLoadbalancerArgs.builder()\n            .description(\"test elb\")\n            .type(\"External\")\n            .vpcId(\"e346dc4a-d9a6-46f4-90df-10153626076e\")\n            .bandwidth(5)\n            .build());\n\n        var listener = new ElbListener(\"listener\", ElbListenerArgs.builder()\n            .loadbalancerId(elb.elbLoadbalancerId())\n            .description(\"great listener\")\n            .protocol(\"TCP\")\n            .backendProtocol(\"TCP\")\n            .protocolPort(12345)\n            .backendPort(8080)\n            .lbAlgorithm(\"roundrobin\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  elb:\n    type: flexibleengine:ElbLoadbalancer\n    properties:\n      description: test elb\n      type: External\n      vpcId: e346dc4a-d9a6-46f4-90df-10153626076e\n      bandwidth: 5\n  listener:\n    type: flexibleengine:ElbListener\n    properties:\n      loadbalancerId: ${elb.elbLoadbalancerId}\n      description: great listener\n      protocol: TCP\n      backendProtocol: TCP\n      protocolPort: 12345\n      backendPort: 8080\n      lbAlgorithm: roundrobin\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "backendPort": {
          "type": "number",
          "description": "Specifies the backend port. The value ranges from 1 to 65535.\n"
        },
        "backendProtocol": {
          "type": "string",
          "description": "Specifies the backend protocol. If the value\nof protocol is UDP, the value of this parameter can only be UDP. The value can\nbe HTTP, TCP, or UDP. Changing this creates a new elb listener.\n"
        },
        "certificateId": {
          "type": "string",
          "description": "Specifies the ID of the SSL certificate used\nfor security authentication when HTTPS is used to make API calls. This parameter\nis mandatory if the value of protocol is HTTPS. The value can be obtained by\nviewing the details of the SSL certificate. Changing this creates a new elb listener.\n"
        },
        "cookieTimeout": {
          "type": "number",
          "description": "Specifies the cookie timeout period (minutes).\nThis parameter is valid when protocol is set to HTTP, session_sticky to true,\nand session_sticky_type to insert. This parameter is invalid when protocol is\nset to TCP or UDP. The value ranges from 1 to 1440. Changing this creates a new elb listener.\n"
        },
        "description": {
          "type": "string",
          "description": "Provides supplementary information about the listener.\nThe value is a string of 0 to 128 characters and cannot be <>.\n"
        },
        "elbListenerId": {
          "type": "string",
          "description": "Specifies the listener ID.\n"
        },
        "lbAlgorithm": {
          "type": "string",
          "description": "Specifies the load balancing algorithm for the\nlistener. The value can be round-robin, leastconn, or source.\n"
        },
        "loadbalancerId": {
          "type": "string",
          "description": "Specifies the ID of the load balancer to which\nthe listener belongs. Changing this creates a new elb listener.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the load balancer name. The name is a string\nof 1 to 64 characters that consist of letters, digits, underscores (_), and hyphens (-).\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the listening protocol used for layer 4\nor 7. The value can be HTTP, TCP, HTTPS, or UDP. Changing this creates a new elb listener.\n"
        },
        "protocolPort": {
          "type": "number",
          "description": "Specifies the listening port. The value ranges from 1 to 65535.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the elb listener. If\nomitted, the `region` argument of the provider is used. Changing this creates a new elb listener.\n"
        },
        "sessionSticky": {
          "type": "boolean",
          "description": "Specifies whether to enable sticky session.\nThe value can be true or false. The Sticky session is enabled when the value\nis true, and is disabled when the value is false. If the value of protocol is\nHTTP, HTTPS, or TCP, and the value of lb_algorithm is not round-robin, the value\nof this parameter can only be false. Changing this creates a new elb listener.\n"
        },
        "sessionStickyType": {
          "type": "string",
          "description": "Specifies the cookie processing method.\nThe value is insert. insert indicates that the cookie is inserted by the load\nbalancer. This parameter is valid when protocol is set to HTTP, and session_sticky\nto true. The default value is insert. This parameter is invalid when protocol\nis set to TCP or UDP, which means the parameter is empty. Changing this creates a new elb listener.\n"
        },
        "sslCiphers": {
          "type": "string",
          "description": "Specifies the cipher suite of an encryption protocol.\nThis parameter is valid only when the value of protocol is set to HTTPS. The\nvalue is Default, Extended, or Strict. The default value is Default. The value\ncan only be set to Extended if the value of ssl_protocols is set to TLSv1.2 TLSv1.1 TLSv1.\n"
        },
        "sslProtocols": {
          "type": "string",
          "description": "Specifies the SSL protocol standard supported\nby a tracker, which is used for enabling specified encryption protocols. This\nparameter is valid only when the value of protocol is set to HTTPS. The value\nis TLSv1.2 or TLSv1.2 TLSv1.1 TLSv1. The default value is TLSv1.2. Changing this creates a new elb listener.\n"
        },
        "tcpDraining": {
          "type": "boolean",
          "description": "Specifies whether to maintain the TCP connection\nto the backend ECS after the ECS is deleted. This parameter is valid when protocol\nis set to TCP. The value can be true or false.\n"
        },
        "tcpDrainingTimeout": {
          "type": "number",
          "description": "Specifies the timeout duration (minutes)\nfor the TCP connection to the backend ECS after the ECS is deleted. This parameter\nis valid when protocol is set to TCP, and tcp_draining to true. The value ranges from 0 to 60.\n"
        },
        "tcpTimeout": {
          "type": "number",
          "description": "Specifies the TCP timeout period (minutes). This\nparameter is valid when protocol is set to TCP. The value ranges from 1 to 5.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FElbListenerTimeouts:ElbListenerTimeouts"
        },
        "udpTimeout": {
          "type": "number",
          "description": "Specifies the UDP timeout duration (minutes). This\nparameter is valid when protocol is set to UDP. The value ranges from 1 to 1440.\n"
        }
      },
      "type": "object",
      "required": [
        "backendPort",
        "backendProtocol",
        "cookieTimeout",
        "elbListenerId",
        "lbAlgorithm",
        "loadbalancerId",
        "name",
        "protocol",
        "protocolPort",
        "region",
        "sslCiphers",
        "sslProtocols",
        "tcpTimeout"
      ],
      "inputProperties": {
        "backendPort": {
          "type": "number",
          "description": "Specifies the backend port. The value ranges from 1 to 65535.\n"
        },
        "backendProtocol": {
          "type": "string",
          "description": "Specifies the backend protocol. If the value\nof protocol is UDP, the value of this parameter can only be UDP. The value can\nbe HTTP, TCP, or UDP. Changing this creates a new elb listener.\n"
        },
        "certificateId": {
          "type": "string",
          "description": "Specifies the ID of the SSL certificate used\nfor security authentication when HTTPS is used to make API calls. This parameter\nis mandatory if the value of protocol is HTTPS. The value can be obtained by\nviewing the details of the SSL certificate. Changing this creates a new elb listener.\n"
        },
        "cookieTimeout": {
          "type": "number",
          "description": "Specifies the cookie timeout period (minutes).\nThis parameter is valid when protocol is set to HTTP, session_sticky to true,\nand session_sticky_type to insert. This parameter is invalid when protocol is\nset to TCP or UDP. The value ranges from 1 to 1440. Changing this creates a new elb listener.\n"
        },
        "description": {
          "type": "string",
          "description": "Provides supplementary information about the listener.\nThe value is a string of 0 to 128 characters and cannot be <>.\n"
        },
        "elbListenerId": {
          "type": "string",
          "description": "Specifies the listener ID.\n"
        },
        "lbAlgorithm": {
          "type": "string",
          "description": "Specifies the load balancing algorithm for the\nlistener. The value can be round-robin, leastconn, or source.\n"
        },
        "loadbalancerId": {
          "type": "string",
          "description": "Specifies the ID of the load balancer to which\nthe listener belongs. Changing this creates a new elb listener.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the load balancer name. The name is a string\nof 1 to 64 characters that consist of letters, digits, underscores (_), and hyphens (-).\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the listening protocol used for layer 4\nor 7. The value can be HTTP, TCP, HTTPS, or UDP. Changing this creates a new elb listener.\n"
        },
        "protocolPort": {
          "type": "number",
          "description": "Specifies the listening port. The value ranges from 1 to 65535.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the elb listener. If\nomitted, the `region` argument of the provider is used. Changing this creates a new elb listener.\n"
        },
        "sessionSticky": {
          "type": "boolean",
          "description": "Specifies whether to enable sticky session.\nThe value can be true or false. The Sticky session is enabled when the value\nis true, and is disabled when the value is false. If the value of protocol is\nHTTP, HTTPS, or TCP, and the value of lb_algorithm is not round-robin, the value\nof this parameter can only be false. Changing this creates a new elb listener.\n"
        },
        "sessionStickyType": {
          "type": "string",
          "description": "Specifies the cookie processing method.\nThe value is insert. insert indicates that the cookie is inserted by the load\nbalancer. This parameter is valid when protocol is set to HTTP, and session_sticky\nto true. The default value is insert. This parameter is invalid when protocol\nis set to TCP or UDP, which means the parameter is empty. Changing this creates a new elb listener.\n"
        },
        "sslCiphers": {
          "type": "string",
          "description": "Specifies the cipher suite of an encryption protocol.\nThis parameter is valid only when the value of protocol is set to HTTPS. The\nvalue is Default, Extended, or Strict. The default value is Default. The value\ncan only be set to Extended if the value of ssl_protocols is set to TLSv1.2 TLSv1.1 TLSv1.\n"
        },
        "sslProtocols": {
          "type": "string",
          "description": "Specifies the SSL protocol standard supported\nby a tracker, which is used for enabling specified encryption protocols. This\nparameter is valid only when the value of protocol is set to HTTPS. The value\nis TLSv1.2 or TLSv1.2 TLSv1.1 TLSv1. The default value is TLSv1.2. Changing this creates a new elb listener.\n"
        },
        "tcpDraining": {
          "type": "boolean",
          "description": "Specifies whether to maintain the TCP connection\nto the backend ECS after the ECS is deleted. This parameter is valid when protocol\nis set to TCP. The value can be true or false.\n"
        },
        "tcpDrainingTimeout": {
          "type": "number",
          "description": "Specifies the timeout duration (minutes)\nfor the TCP connection to the backend ECS after the ECS is deleted. This parameter\nis valid when protocol is set to TCP, and tcp_draining to true. The value ranges from 0 to 60.\n"
        },
        "tcpTimeout": {
          "type": "number",
          "description": "Specifies the TCP timeout period (minutes). This\nparameter is valid when protocol is set to TCP. The value ranges from 1 to 5.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FElbListenerTimeouts:ElbListenerTimeouts"
        },
        "udpTimeout": {
          "type": "number",
          "description": "Specifies the UDP timeout duration (minutes). This\nparameter is valid when protocol is set to UDP. The value ranges from 1 to 1440.\n"
        }
      },
      "requiredInputs": [
        "backendPort",
        "backendProtocol",
        "lbAlgorithm",
        "loadbalancerId",
        "protocol",
        "protocolPort"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ElbListener resources.\n",
        "properties": {
          "backendPort": {
            "type": "number",
            "description": "Specifies the backend port. The value ranges from 1 to 65535.\n"
          },
          "backendProtocol": {
            "type": "string",
            "description": "Specifies the backend protocol. If the value\nof protocol is UDP, the value of this parameter can only be UDP. The value can\nbe HTTP, TCP, or UDP. Changing this creates a new elb listener.\n"
          },
          "certificateId": {
            "type": "string",
            "description": "Specifies the ID of the SSL certificate used\nfor security authentication when HTTPS is used to make API calls. This parameter\nis mandatory if the value of protocol is HTTPS. The value can be obtained by\nviewing the details of the SSL certificate. Changing this creates a new elb listener.\n"
          },
          "cookieTimeout": {
            "type": "number",
            "description": "Specifies the cookie timeout period (minutes).\nThis parameter is valid when protocol is set to HTTP, session_sticky to true,\nand session_sticky_type to insert. This parameter is invalid when protocol is\nset to TCP or UDP. The value ranges from 1 to 1440. Changing this creates a new elb listener.\n"
          },
          "description": {
            "type": "string",
            "description": "Provides supplementary information about the listener.\nThe value is a string of 0 to 128 characters and cannot be <>.\n"
          },
          "elbListenerId": {
            "type": "string",
            "description": "Specifies the listener ID.\n"
          },
          "lbAlgorithm": {
            "type": "string",
            "description": "Specifies the load balancing algorithm for the\nlistener. The value can be round-robin, leastconn, or source.\n"
          },
          "loadbalancerId": {
            "type": "string",
            "description": "Specifies the ID of the load balancer to which\nthe listener belongs. Changing this creates a new elb listener.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the load balancer name. The name is a string\nof 1 to 64 characters that consist of letters, digits, underscores (_), and hyphens (-).\n"
          },
          "protocol": {
            "type": "string",
            "description": "Specifies the listening protocol used for layer 4\nor 7. The value can be HTTP, TCP, HTTPS, or UDP. Changing this creates a new elb listener.\n"
          },
          "protocolPort": {
            "type": "number",
            "description": "Specifies the listening port. The value ranges from 1 to 65535.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the elb listener. If\nomitted, the `region` argument of the provider is used. Changing this creates a new elb listener.\n"
          },
          "sessionSticky": {
            "type": "boolean",
            "description": "Specifies whether to enable sticky session.\nThe value can be true or false. The Sticky session is enabled when the value\nis true, and is disabled when the value is false. If the value of protocol is\nHTTP, HTTPS, or TCP, and the value of lb_algorithm is not round-robin, the value\nof this parameter can only be false. Changing this creates a new elb listener.\n"
          },
          "sessionStickyType": {
            "type": "string",
            "description": "Specifies the cookie processing method.\nThe value is insert. insert indicates that the cookie is inserted by the load\nbalancer. This parameter is valid when protocol is set to HTTP, and session_sticky\nto true. The default value is insert. This parameter is invalid when protocol\nis set to TCP or UDP, which means the parameter is empty. Changing this creates a new elb listener.\n"
          },
          "sslCiphers": {
            "type": "string",
            "description": "Specifies the cipher suite of an encryption protocol.\nThis parameter is valid only when the value of protocol is set to HTTPS. The\nvalue is Default, Extended, or Strict. The default value is Default. The value\ncan only be set to Extended if the value of ssl_protocols is set to TLSv1.2 TLSv1.1 TLSv1.\n"
          },
          "sslProtocols": {
            "type": "string",
            "description": "Specifies the SSL protocol standard supported\nby a tracker, which is used for enabling specified encryption protocols. This\nparameter is valid only when the value of protocol is set to HTTPS. The value\nis TLSv1.2 or TLSv1.2 TLSv1.1 TLSv1. The default value is TLSv1.2. Changing this creates a new elb listener.\n"
          },
          "tcpDraining": {
            "type": "boolean",
            "description": "Specifies whether to maintain the TCP connection\nto the backend ECS after the ECS is deleted. This parameter is valid when protocol\nis set to TCP. The value can be true or false.\n"
          },
          "tcpDrainingTimeout": {
            "type": "number",
            "description": "Specifies the timeout duration (minutes)\nfor the TCP connection to the backend ECS after the ECS is deleted. This parameter\nis valid when protocol is set to TCP, and tcp_draining to true. The value ranges from 0 to 60.\n"
          },
          "tcpTimeout": {
            "type": "number",
            "description": "Specifies the TCP timeout period (minutes). This\nparameter is valid when protocol is set to TCP. The value ranges from 1 to 5.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FElbListenerTimeouts:ElbListenerTimeouts"
          },
          "udpTimeout": {
            "type": "number",
            "description": "Specifies the UDP timeout duration (minutes). This\nparameter is valid when protocol is set to UDP. The value ranges from 1 to 1440.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/elbLoadbalancer:ElbLoadbalancer": {
      "description": "!> **Warning:** Classic load balancers are no longer provided, using elastic load balancers instead.\n\nManages a **classic** load balancer resource within FlexibleEngine.\n\n## Example Usage\n\n### External Load Balancer\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst elb = new flexibleengine.ElbLoadbalancer(\"elb\", {\n    type: \"External\",\n    description: \"external elb\",\n    vpcId: exampleVpc.vpcV1Id,\n    bandwidth: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nelb = flexibleengine.ElbLoadbalancer(\"elb\",\n    type=\"External\",\n    description=\"external elb\",\n    vpc_id=example_vpc.vpc_v1_id,\n    bandwidth=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var elb = new Flexibleengine.ElbLoadbalancer(\"elb\", new()\n    {\n        Type = \"External\",\n        Description = \"external elb\",\n        VpcId = exampleVpc.VpcV1Id,\n        Bandwidth = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewElbLoadbalancer(ctx, \"elb\", &flexibleengine.ElbLoadbalancerArgs{\n\t\t\tType:        pulumi.String(\"External\"),\n\t\t\tDescription: pulumi.String(\"external elb\"),\n\t\t\tVpcId:       exampleVpc.VpcV1Id,\n\t\t\tBandwidth:   pulumi.Float64(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.ElbLoadbalancer;\nimport com.pulumi.flexibleengine.ElbLoadbalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var elb = new ElbLoadbalancer(\"elb\", ElbLoadbalancerArgs.builder()\n            .type(\"External\")\n            .description(\"external elb\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .bandwidth(5)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  elb:\n    type: flexibleengine:ElbLoadbalancer\n    properties:\n      type: External\n      description: external elb\n      vpcId: ${exampleVpc.vpcV1Id}\n      bandwidth: 5\n```\n<!--End PulumiCodeChooser -->\n\n### Internal Load Balancer\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst elb = new flexibleengine.ElbLoadbalancer(\"elb\", {\n    type: \"Internal\",\n    description: \"internal elb\",\n    az: \"eu-west-0\",\n    vpcId: exampleVpc.vpcV1Id,\n    vipSubnetId: _var.subnet_id,\n    securityGroupId: _var.sec_group,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nelb = flexibleengine.ElbLoadbalancer(\"elb\",\n    type=\"Internal\",\n    description=\"internal elb\",\n    az=\"eu-west-0\",\n    vpc_id=example_vpc.vpc_v1_id,\n    vip_subnet_id=var[\"subnet_id\"],\n    security_group_id=var[\"sec_group\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var elb = new Flexibleengine.ElbLoadbalancer(\"elb\", new()\n    {\n        Type = \"Internal\",\n        Description = \"internal elb\",\n        Az = \"eu-west-0\",\n        VpcId = exampleVpc.VpcV1Id,\n        VipSubnetId = @var.Subnet_id,\n        SecurityGroupId = @var.Sec_group,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewElbLoadbalancer(ctx, \"elb\", &flexibleengine.ElbLoadbalancerArgs{\n\t\t\tType:            pulumi.String(\"Internal\"),\n\t\t\tDescription:     pulumi.String(\"internal elb\"),\n\t\t\tAz:              pulumi.String(\"eu-west-0\"),\n\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\tVipSubnetId:     pulumi.Any(_var.Subnet_id),\n\t\t\tSecurityGroupId: pulumi.Any(_var.Sec_group),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.ElbLoadbalancer;\nimport com.pulumi.flexibleengine.ElbLoadbalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var elb = new ElbLoadbalancer(\"elb\", ElbLoadbalancerArgs.builder()\n            .type(\"Internal\")\n            .description(\"internal elb\")\n            .az(\"eu-west-0\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .vipSubnetId(var_.subnet_id())\n            .securityGroupId(var_.sec_group())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  elb:\n    type: flexibleengine:ElbLoadbalancer\n    properties:\n      type: Internal\n      description: internal elb\n      az: eu-west-0\n      vpcId: ${exampleVpc.vpcV1Id}\n      vipSubnetId: ${var.subnet_id}\n      securityGroupId: ${var.sec_group}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "adminStateUp": {
          "type": "boolean"
        },
        "az": {
          "type": "string",
          "description": "Specifies the ID of the availability zone (AZ). This\nparameter is mandatory when type is set to Internal, and it is invalid\nwhen type is set to External. Changing this creates a new loadbalancer.\n"
        },
        "bandwidth": {
          "type": "number",
          "description": "Specifies the bandwidth (Mbit/s). This parameter\nis valid when type is set to External, and it is invalid when type\nis set to Internal. The value ranges from 1 to 300.\n"
        },
        "description": {
          "type": "string",
          "description": "Provides supplementary information about the\nlistener. The value is a string of 0 to 128 characters and cannot be <>.\n"
        },
        "elbLoadbalancerId": {
          "type": "string",
          "description": "Specifies the load balancer ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the load balancer name. The name is a string\nof 1 to 64 characters that consist of letters, digits, underscores (_), and hyphens (-).\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the loadbalancer. If\nomitted, the `region` argument of the provider is used. Changing this creates a new loadbalancer.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the security group ID. The\nvalue is a string of 1 to 200 characters that consists of uppercase and\nlowercase letters, digits, and hyphens (-). This parameter is mandatory\nwhen type is set to Internal, and it is invalid when type is set to External.\nChanging this creates a new loadbalancer.\n"
        },
        "tenantid": {
          "type": "string",
          "description": "Specifies the tenant ID. This parameter is mandatory\nonly when type is set to Internal. Changing this creates a new loadbalancer.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FElbLoadbalancerTimeouts:ElbLoadbalancerTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the load balancer type. The value can be\nInternal or External. Changing this creates a new loadbalancer.\n"
        },
        "vipAddress": {
          "type": "string",
          "description": "Specifies the IP address provided by ELB.\nWhen type is set to External, the value of this parameter is the elastic\nIP address. When type is set to Internal, the value of this parameter is\nthe private network IP address. You can select an existing elastic IP address\nand create a public network load balancer. When this parameter is configured,\nparameter `bandwidth` is invalid. Changing this creates a new loadbalancer.\n"
        },
        "vipSubnetId": {
          "type": "string",
          "description": "Specifies the ID of the private network\nto be added. This parameter is mandatory when type is set to Internal,\nand it is invalid when type is set to External. Changing this creates a new loadbalancer.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID. Changing this creates a new loadbalancer.\n"
        }
      },
      "type": "object",
      "required": [
        "elbLoadbalancerId",
        "name",
        "region",
        "securityGroupId",
        "tenantid",
        "type",
        "vipAddress",
        "vpcId"
      ],
      "inputProperties": {
        "adminStateUp": {
          "type": "boolean"
        },
        "az": {
          "type": "string",
          "description": "Specifies the ID of the availability zone (AZ). This\nparameter is mandatory when type is set to Internal, and it is invalid\nwhen type is set to External. Changing this creates a new loadbalancer.\n"
        },
        "bandwidth": {
          "type": "number",
          "description": "Specifies the bandwidth (Mbit/s). This parameter\nis valid when type is set to External, and it is invalid when type\nis set to Internal. The value ranges from 1 to 300.\n"
        },
        "description": {
          "type": "string",
          "description": "Provides supplementary information about the\nlistener. The value is a string of 0 to 128 characters and cannot be <>.\n"
        },
        "elbLoadbalancerId": {
          "type": "string",
          "description": "Specifies the load balancer ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the load balancer name. The name is a string\nof 1 to 64 characters that consist of letters, digits, underscores (_), and hyphens (-).\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the loadbalancer. If\nomitted, the `region` argument of the provider is used. Changing this creates a new loadbalancer.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the security group ID. The\nvalue is a string of 1 to 200 characters that consists of uppercase and\nlowercase letters, digits, and hyphens (-). This parameter is mandatory\nwhen type is set to Internal, and it is invalid when type is set to External.\nChanging this creates a new loadbalancer.\n"
        },
        "tenantid": {
          "type": "string",
          "description": "Specifies the tenant ID. This parameter is mandatory\nonly when type is set to Internal. Changing this creates a new loadbalancer.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FElbLoadbalancerTimeouts:ElbLoadbalancerTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the load balancer type. The value can be\nInternal or External. Changing this creates a new loadbalancer.\n"
        },
        "vipAddress": {
          "type": "string",
          "description": "Specifies the IP address provided by ELB.\nWhen type is set to External, the value of this parameter is the elastic\nIP address. When type is set to Internal, the value of this parameter is\nthe private network IP address. You can select an existing elastic IP address\nand create a public network load balancer. When this parameter is configured,\nparameter `bandwidth` is invalid. Changing this creates a new loadbalancer.\n"
        },
        "vipSubnetId": {
          "type": "string",
          "description": "Specifies the ID of the private network\nto be added. This parameter is mandatory when type is set to Internal,\nand it is invalid when type is set to External. Changing this creates a new loadbalancer.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID. Changing this creates a new loadbalancer.\n"
        }
      },
      "requiredInputs": [
        "type",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ElbLoadbalancer resources.\n",
        "properties": {
          "adminStateUp": {
            "type": "boolean"
          },
          "az": {
            "type": "string",
            "description": "Specifies the ID of the availability zone (AZ). This\nparameter is mandatory when type is set to Internal, and it is invalid\nwhen type is set to External. Changing this creates a new loadbalancer.\n"
          },
          "bandwidth": {
            "type": "number",
            "description": "Specifies the bandwidth (Mbit/s). This parameter\nis valid when type is set to External, and it is invalid when type\nis set to Internal. The value ranges from 1 to 300.\n"
          },
          "description": {
            "type": "string",
            "description": "Provides supplementary information about the\nlistener. The value is a string of 0 to 128 characters and cannot be <>.\n"
          },
          "elbLoadbalancerId": {
            "type": "string",
            "description": "Specifies the load balancer ID.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the load balancer name. The name is a string\nof 1 to 64 characters that consist of letters, digits, underscores (_), and hyphens (-).\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the loadbalancer. If\nomitted, the `region` argument of the provider is used. Changing this creates a new loadbalancer.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Specifies the security group ID. The\nvalue is a string of 1 to 200 characters that consists of uppercase and\nlowercase letters, digits, and hyphens (-). This parameter is mandatory\nwhen type is set to Internal, and it is invalid when type is set to External.\nChanging this creates a new loadbalancer.\n"
          },
          "tenantid": {
            "type": "string",
            "description": "Specifies the tenant ID. This parameter is mandatory\nonly when type is set to Internal. Changing this creates a new loadbalancer.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FElbLoadbalancerTimeouts:ElbLoadbalancerTimeouts"
          },
          "type": {
            "type": "string",
            "description": "Specifies the load balancer type. The value can be\nInternal or External. Changing this creates a new loadbalancer.\n"
          },
          "vipAddress": {
            "type": "string",
            "description": "Specifies the IP address provided by ELB.\nWhen type is set to External, the value of this parameter is the elastic\nIP address. When type is set to Internal, the value of this parameter is\nthe private network IP address. You can select an existing elastic IP address\nand create a public network load balancer. When this parameter is configured,\nparameter `bandwidth` is invalid. Changing this creates a new loadbalancer.\n"
          },
          "vipSubnetId": {
            "type": "string",
            "description": "Specifies the ID of the private network\nto be added. This parameter is mandatory when type is set to Internal,\nand it is invalid when type is set to External. Changing this creates a new loadbalancer.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC ID. Changing this creates a new loadbalancer.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/elbLogtank:ElbLogtank": {
      "description": "Manage an LB logtank resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst loadbalancerId = config.requireObject(\"loadbalancerId\");\nconst groupId = config.requireObject(\"groupId\");\nconst topicId = config.requireObject(\"topicId\");\nconst test = new flexibleengine.ElbLogtank(\"test\", {\n    loadbalancerId: loadbalancerId,\n    logGroupId: groupId,\n    logTopicId: topicId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nloadbalancer_id = config.require_object(\"loadbalancerId\")\ngroup_id = config.require_object(\"groupId\")\ntopic_id = config.require_object(\"topicId\")\ntest = flexibleengine.ElbLogtank(\"test\",\n    loadbalancer_id=loadbalancer_id,\n    log_group_id=group_id,\n    log_topic_id=topic_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var loadbalancerId = config.RequireObject<dynamic>(\"loadbalancerId\");\n    var groupId = config.RequireObject<dynamic>(\"groupId\");\n    var topicId = config.RequireObject<dynamic>(\"topicId\");\n    var test = new Flexibleengine.ElbLogtank(\"test\", new()\n    {\n        LoadbalancerId = loadbalancerId,\n        LogGroupId = groupId,\n        LogTopicId = topicId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tloadbalancerId := cfg.RequireObject(\"loadbalancerId\")\n\t\tgroupId := cfg.RequireObject(\"groupId\")\n\t\ttopicId := cfg.RequireObject(\"topicId\")\n\t\t_, err := flexibleengine.NewElbLogtank(ctx, \"test\", &flexibleengine.ElbLogtankArgs{\n\t\t\tLoadbalancerId: pulumi.Any(loadbalancerId),\n\t\t\tLogGroupId:     pulumi.Any(groupId),\n\t\t\tLogTopicId:     pulumi.Any(topicId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ElbLogtank;\nimport com.pulumi.flexibleengine.ElbLogtankArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var loadbalancerId = config.get(\"loadbalancerId\");\n        final var groupId = config.get(\"groupId\");\n        final var topicId = config.get(\"topicId\");\n        var test = new ElbLogtank(\"test\", ElbLogtankArgs.builder()\n            .loadbalancerId(loadbalancerId)\n            .logGroupId(groupId)\n            .logTopicId(topicId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  loadbalancerId:\n    type: dynamic\n  groupId:\n    type: dynamic\n  topicId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ElbLogtank\n    properties:\n      loadbalancerId: ${loadbalancerId}\n      logGroupId: ${groupId}\n      logTopicId: ${topicId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLB logtank can be imported using the logtank ID, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/elbLogtank:ElbLogtank test 2f148a75-acd3-4ce7-8f63-d5c9fadab3a0\n```\n\n",
      "properties": {
        "elbLogtankId": {
          "type": "string",
          "description": "The logtank ID.\n"
        },
        "loadbalancerId": {
          "type": "string",
          "description": "Specifies the ID of a loadbalancer. Changing this\ncreates a new logtank.\n"
        },
        "logGroupId": {
          "type": "string",
          "description": "Specifies the ID of a log group. It is provided by other service.\n"
        },
        "logTopicId": {
          "type": "string",
          "description": "Specifies the ID of the subscribe topic.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the logtank resource.\nIf omitted, the provider-level region will be used. Changing this creates a new logtank.\n"
        }
      },
      "type": "object",
      "required": [
        "elbLogtankId",
        "loadbalancerId",
        "logGroupId",
        "logTopicId",
        "region"
      ],
      "inputProperties": {
        "elbLogtankId": {
          "type": "string",
          "description": "The logtank ID.\n"
        },
        "loadbalancerId": {
          "type": "string",
          "description": "Specifies the ID of a loadbalancer. Changing this\ncreates a new logtank.\n"
        },
        "logGroupId": {
          "type": "string",
          "description": "Specifies the ID of a log group. It is provided by other service.\n"
        },
        "logTopicId": {
          "type": "string",
          "description": "Specifies the ID of the subscribe topic.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the logtank resource.\nIf omitted, the provider-level region will be used. Changing this creates a new logtank.\n"
        }
      },
      "requiredInputs": [
        "loadbalancerId",
        "logGroupId",
        "logTopicId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ElbLogtank resources.\n",
        "properties": {
          "elbLogtankId": {
            "type": "string",
            "description": "The logtank ID.\n"
          },
          "loadbalancerId": {
            "type": "string",
            "description": "Specifies the ID of a loadbalancer. Changing this\ncreates a new logtank.\n"
          },
          "logGroupId": {
            "type": "string",
            "description": "Specifies the ID of a log group. It is provided by other service.\n"
          },
          "logTopicId": {
            "type": "string",
            "description": "Specifies the ID of the subscribe topic.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the logtank resource.\nIf omitted, the provider-level region will be used. Changing this creates a new logtank.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/elbSecurityPolicy:ElbSecurityPolicy": {
      "description": "Manages an ELB security policy resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = new flexibleengine.ElbSecurityPolicy(\"test\", {\n    ciphers: [\n        \"ECDHE-RSA-AES256-GCM-SHA384\",\n        \"ECDHE-RSA-AES128-GCM-SHA256\",\n        \"ECDHE-ECDSA-AES128-SHA\",\n        \"TLS_AES_128_CCM_8_SHA256\",\n    ],\n    description: \"this is a security policy\",\n    protocols: [\n        \"TLSv1\",\n        \"TLSv1.1\",\n        \"TLSv1.2\",\n        \"TLSv1.3\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.ElbSecurityPolicy(\"test\",\n    ciphers=[\n        \"ECDHE-RSA-AES256-GCM-SHA384\",\n        \"ECDHE-RSA-AES128-GCM-SHA256\",\n        \"ECDHE-ECDSA-AES128-SHA\",\n        \"TLS_AES_128_CCM_8_SHA256\",\n    ],\n    description=\"this is a security policy\",\n    protocols=[\n        \"TLSv1\",\n        \"TLSv1.1\",\n        \"TLSv1.2\",\n        \"TLSv1.3\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Flexibleengine.ElbSecurityPolicy(\"test\", new()\n    {\n        Ciphers = new[]\n        {\n            \"ECDHE-RSA-AES256-GCM-SHA384\",\n            \"ECDHE-RSA-AES128-GCM-SHA256\",\n            \"ECDHE-ECDSA-AES128-SHA\",\n            \"TLS_AES_128_CCM_8_SHA256\",\n        },\n        Description = \"this is a security policy\",\n        Protocols = new[]\n        {\n            \"TLSv1\",\n            \"TLSv1.1\",\n            \"TLSv1.2\",\n            \"TLSv1.3\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewElbSecurityPolicy(ctx, \"test\", &flexibleengine.ElbSecurityPolicyArgs{\n\t\t\tCiphers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ECDHE-RSA-AES256-GCM-SHA384\"),\n\t\t\t\tpulumi.String(\"ECDHE-RSA-AES128-GCM-SHA256\"),\n\t\t\t\tpulumi.String(\"ECDHE-ECDSA-AES128-SHA\"),\n\t\t\t\tpulumi.String(\"TLS_AES_128_CCM_8_SHA256\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"this is a security policy\"),\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"TLSv1\"),\n\t\t\t\tpulumi.String(\"TLSv1.1\"),\n\t\t\t\tpulumi.String(\"TLSv1.2\"),\n\t\t\t\tpulumi.String(\"TLSv1.3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ElbSecurityPolicy;\nimport com.pulumi.flexibleengine.ElbSecurityPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ElbSecurityPolicy(\"test\", ElbSecurityPolicyArgs.builder()\n            .ciphers(            \n                \"ECDHE-RSA-AES256-GCM-SHA384\",\n                \"ECDHE-RSA-AES128-GCM-SHA256\",\n                \"ECDHE-ECDSA-AES128-SHA\",\n                \"TLS_AES_128_CCM_8_SHA256\")\n            .description(\"this is a security policy\")\n            .protocols(            \n                \"TLSv1\",\n                \"TLSv1.1\",\n                \"TLSv1.2\",\n                \"TLSv1.3\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: flexibleengine:ElbSecurityPolicy\n    properties:\n      ciphers:\n        - ECDHE-RSA-AES256-GCM-SHA384\n        - ECDHE-RSA-AES128-GCM-SHA256\n        - ECDHE-ECDSA-AES128-SHA\n        - TLS_AES_128_CCM_8_SHA256\n      description: this is a security policy\n      protocols:\n        - TLSv1\n        - TLSv1.1\n        - TLSv1.2\n        - TLSv1.3\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe elb security policies can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/elbSecurityPolicy:ElbSecurityPolicy test 0ce123456a00f2591fabc00385ff1234\n```\n\n",
      "properties": {
        "ciphers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the cipher suite list of the security policy.\nThe protocol and cipher suite must match. That is to say, there must be at least one cipher suite in\nciphers that matches the protocol. The following cipher suites are supported:\n**ECDHE-RSA-AES256-GCM-SHA384**, **ECDHE-RSA-AES128-GCM-SHA256**, **ECDHE-ECDSA-AES256-GCM-SHA384**,\n**ECDHE-ECDSA-AES128-GCM-SHA256**, **AES128-GCM-SHA256**, **AES256-GCM-SHA384**, **ECDHE-ECDSA-AES128-SHA256**,\n**ECDHE-RSA-AES128-SHA256**, **AES128-SHA256**, **AES256-SHA256**, **ECDHE-ECDSA-AES256-SHA384**,\n**ECDHE-RSA-AES256-SHA384**, **ECDHE-ECDSA-AES128-SHA**, **ECDHE-RSA-AES128-SHA**, **ECDHE-RSA-AES256-SHA**,\n**ECDHE-ECDSA-AES256-SHA**, **AES128-SHA**, **AES256-SHA**, **CAMELLIA128-SHA**, **DES-CBC3-SHA**,\n**CAMELLIA256-SHA**, **ECDHE-RSA-CHACHA20-POLY1305**, **ECDHE-ECDSA-CHACHA20-POLY1305**, **TLS_AES_128_GCM_SHA256**,\n**TLS_AES_256_GCM_SHA384**, **TLS_CHACHA20_POLY1305_SHA256**, **TLS_AES_128_CCM_SHA256**,\n**TLS_AES_128_CCM_8_SHA256**.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the ELB security policy.\nThe value can contain 0 to 255 characters.\n"
        },
        "elbSecurityPolicyId": {
          "type": "string",
          "description": "The listener id.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project ID to which the Enterprise\nrouter belongs.\n\nChanging this parameter will create a new resource.\n"
        },
        "listeners": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FElbSecurityPolicyListener:ElbSecurityPolicyListener"
          },
          "description": "The listener which the security policy associated with.\nThe listeners structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the ELB security policy name.\nThe name contains only Chinese characters, letters, digits, underscores (_), and hyphens (-),\nand cannot exceed 255 characters.\n"
        },
        "protocols": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the TSL protocol list which the security policy select.\nValue options: **TLSv1**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "ciphers",
        "description",
        "elbSecurityPolicyId",
        "enterpriseProjectId",
        "listeners",
        "name",
        "protocols",
        "region"
      ],
      "inputProperties": {
        "ciphers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the cipher suite list of the security policy.\nThe protocol and cipher suite must match. That is to say, there must be at least one cipher suite in\nciphers that matches the protocol. The following cipher suites are supported:\n**ECDHE-RSA-AES256-GCM-SHA384**, **ECDHE-RSA-AES128-GCM-SHA256**, **ECDHE-ECDSA-AES256-GCM-SHA384**,\n**ECDHE-ECDSA-AES128-GCM-SHA256**, **AES128-GCM-SHA256**, **AES256-GCM-SHA384**, **ECDHE-ECDSA-AES128-SHA256**,\n**ECDHE-RSA-AES128-SHA256**, **AES128-SHA256**, **AES256-SHA256**, **ECDHE-ECDSA-AES256-SHA384**,\n**ECDHE-RSA-AES256-SHA384**, **ECDHE-ECDSA-AES128-SHA**, **ECDHE-RSA-AES128-SHA**, **ECDHE-RSA-AES256-SHA**,\n**ECDHE-ECDSA-AES256-SHA**, **AES128-SHA**, **AES256-SHA**, **CAMELLIA128-SHA**, **DES-CBC3-SHA**,\n**CAMELLIA256-SHA**, **ECDHE-RSA-CHACHA20-POLY1305**, **ECDHE-ECDSA-CHACHA20-POLY1305**, **TLS_AES_128_GCM_SHA256**,\n**TLS_AES_256_GCM_SHA384**, **TLS_CHACHA20_POLY1305_SHA256**, **TLS_AES_128_CCM_SHA256**,\n**TLS_AES_128_CCM_8_SHA256**.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the ELB security policy.\nThe value can contain 0 to 255 characters.\n"
        },
        "elbSecurityPolicyId": {
          "type": "string",
          "description": "The listener id.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project ID to which the Enterprise\nrouter belongs.\n\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the ELB security policy name.\nThe name contains only Chinese characters, letters, digits, underscores (_), and hyphens (-),\nand cannot exceed 255 characters.\n"
        },
        "protocols": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the TSL protocol list which the security policy select.\nValue options: **TLSv1**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "ciphers",
        "protocols"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ElbSecurityPolicy resources.\n",
        "properties": {
          "ciphers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the cipher suite list of the security policy.\nThe protocol and cipher suite must match. That is to say, there must be at least one cipher suite in\nciphers that matches the protocol. The following cipher suites are supported:\n**ECDHE-RSA-AES256-GCM-SHA384**, **ECDHE-RSA-AES128-GCM-SHA256**, **ECDHE-ECDSA-AES256-GCM-SHA384**,\n**ECDHE-ECDSA-AES128-GCM-SHA256**, **AES128-GCM-SHA256**, **AES256-GCM-SHA384**, **ECDHE-ECDSA-AES128-SHA256**,\n**ECDHE-RSA-AES128-SHA256**, **AES128-SHA256**, **AES256-SHA256**, **ECDHE-ECDSA-AES256-SHA384**,\n**ECDHE-RSA-AES256-SHA384**, **ECDHE-ECDSA-AES128-SHA**, **ECDHE-RSA-AES128-SHA**, **ECDHE-RSA-AES256-SHA**,\n**ECDHE-ECDSA-AES256-SHA**, **AES128-SHA**, **AES256-SHA**, **CAMELLIA128-SHA**, **DES-CBC3-SHA**,\n**CAMELLIA256-SHA**, **ECDHE-RSA-CHACHA20-POLY1305**, **ECDHE-ECDSA-CHACHA20-POLY1305**, **TLS_AES_128_GCM_SHA256**,\n**TLS_AES_256_GCM_SHA384**, **TLS_CHACHA20_POLY1305_SHA256**, **TLS_AES_128_CCM_SHA256**,\n**TLS_AES_128_CCM_8_SHA256**.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the ELB security policy.\nThe value can contain 0 to 255 characters.\n"
          },
          "elbSecurityPolicyId": {
            "type": "string",
            "description": "The listener id.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project ID to which the Enterprise\nrouter belongs.\n\nChanging this parameter will create a new resource.\n"
          },
          "listeners": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FElbSecurityPolicyListener:ElbSecurityPolicyListener"
            },
            "description": "The listener which the security policy associated with.\nThe listeners structure is documented below.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the ELB security policy name.\nThe name contains only Chinese characters, letters, digits, underscores (_), and hyphens (-),\nand cannot exceed 255 characters.\n"
          },
          "protocols": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the TSL protocol list which the security policy select.\nValue options: **TLSv1**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/enterpriseProject:EnterpriseProject": {
      "description": "Use this resource to manage an enterprise project within FlexibleEngine.\n\n> Deleting enterprise projects is not support. If you destroy a resource of enterprise project,\n  the project is only disabled and removed from the state, but it remains in the cloud.\n  Please set `insecure = true` in provider block to ignore SSL certificate verification when you got an x509 error.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = new flexibleengine.EnterpriseProject(\"test\", {description: \"example project\"});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.EnterpriseProject(\"test\", description=\"example project\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Flexibleengine.EnterpriseProject(\"test\", new()\n    {\n        Description = \"example project\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewEnterpriseProject(ctx, \"test\", &flexibleengine.EnterpriseProjectArgs{\n\t\t\tDescription: pulumi.String(\"example project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.EnterpriseProject;\nimport com.pulumi.flexibleengine.EnterpriseProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new EnterpriseProject(\"test\", EnterpriseProjectArgs.builder()\n            .description(\"example project\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: flexibleengine:EnterpriseProject\n    properties:\n      description: example project\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nEnterprise projects can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/enterpriseProject:EnterpriseProject test 88f889c7-270e-4e77-8230-bf7db08d9b0e\n```\n\n",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "Indicates the UTC time when the enterprise project was created. Example: 2018-05-18T06:49:06Z\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the enterprise project.\n"
        },
        "enable": {
          "type": "boolean",
          "description": "Specifies whether to enable the enterprise project. Default to **true**.\n"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the enterprise project.\nThis parameter can contain 1 to 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.\nThe name must be unique in the domain and cannot include any form of the word \"default\" (\"deFaulT\", for instance).\n"
        },
        "skipDisableOnDestroy": {
          "type": "boolean",
          "description": "Specifies whether to skip disable the enterprise project on destroy.\nDefaults to **false**.\n"
        },
        "status": {
          "type": "number",
          "description": "Indicates the status of an enterprise project.\n+ 1 indicates Enabled.\n+ 2 indicates Disabled.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FEnterpriseProjectTimeouts:EnterpriseProjectTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Indicates the type of the enterprise project.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "Indicates the UTC time when the enterprise project was modified. Example: 2018-05-28T02:21:36Z\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "enterpriseProjectId",
        "name",
        "status",
        "type",
        "updatedAt"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the enterprise project.\n"
        },
        "enable": {
          "type": "boolean",
          "description": "Specifies whether to enable the enterprise project. Default to **true**.\n"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the enterprise project.\nThis parameter can contain 1 to 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.\nThe name must be unique in the domain and cannot include any form of the word \"default\" (\"deFaulT\", for instance).\n"
        },
        "skipDisableOnDestroy": {
          "type": "boolean",
          "description": "Specifies whether to skip disable the enterprise project on destroy.\nDefaults to **false**.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FEnterpriseProjectTimeouts:EnterpriseProjectTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Indicates the type of the enterprise project.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EnterpriseProject resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "Indicates the UTC time when the enterprise project was created. Example: 2018-05-18T06:49:06Z\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the enterprise project.\n"
          },
          "enable": {
            "type": "boolean",
            "description": "Specifies whether to enable the enterprise project. Default to **true**.\n"
          },
          "enterpriseProjectId": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the enterprise project.\nThis parameter can contain 1 to 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.\nThe name must be unique in the domain and cannot include any form of the word \"default\" (\"deFaulT\", for instance).\n"
          },
          "skipDisableOnDestroy": {
            "type": "boolean",
            "description": "Specifies whether to skip disable the enterprise project on destroy.\nDefaults to **false**.\n"
          },
          "status": {
            "type": "number",
            "description": "Indicates the status of an enterprise project.\n+ 1 indicates Enabled.\n+ 2 indicates Disabled.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FEnterpriseProjectTimeouts:EnterpriseProjectTimeouts"
          },
          "type": {
            "type": "string",
            "description": "Indicates the type of the enterprise project.\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "Indicates the UTC time when the enterprise project was modified. Example: 2018-05-28T02:21:36Z\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/fgsDependency:FgsDependency": {
      "description": "Manages a custom dependency package within FlexibleEngine FunctionGraph.\n\n## Example Usage\n\n## Import\n\nDependencies can be imported using the `id`, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/fgsDependency:FgsDependency test 795e722f-0c23-41b6-a189-dcd56f889cf6\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the dependency description.\nThe description can contain a maximum of 512 characters.\n"
        },
        "etag": {
          "type": "string",
          "description": "The unique ID of the dependency package.\n"
        },
        "fgsDependencyId": {
          "type": "string",
          "description": "The dependency ID in UUID format.\n"
        },
        "link": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Specifies the dependeny name.\nThe name can contain a maximum of 96 characters and must start with a letter and end with a letter or digit.\nOnly letters, digits, underscores (_), periods (.), and hyphens (-) are allowed.\n"
        },
        "owner": {
          "type": "string",
          "description": "The base64 encoded digest of the dependency after encryption by MD5.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create a custom dependency package.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "runtime": {
          "type": "string",
          "description": "Specifies the dependency package runtime.\nThe valid values are **Java8**, **Node.js6.10**, **Node.js8.10**, **Node.js10.16**, **Node.js12.13**, **Python2.7**,\n**Python3.6**, **Go1.8**, **Go1.x**, **C#(.NET Core 2.0)**, **C#(.NET Core 2.1)**, **C#(.NET Core 3.1)** and\n**PHP7.3**.\n"
        },
        "size": {
          "type": "number",
          "description": "The dependency package size in bytes.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "etag",
        "fgsDependencyId",
        "link",
        "name",
        "owner",
        "region",
        "runtime",
        "size"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies the dependency description.\nThe description can contain a maximum of 512 characters.\n"
        },
        "fgsDependencyId": {
          "type": "string",
          "description": "The dependency ID in UUID format.\n"
        },
        "link": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Specifies the dependeny name.\nThe name can contain a maximum of 96 characters and must start with a letter and end with a letter or digit.\nOnly letters, digits, underscores (_), periods (.), and hyphens (-) are allowed.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create a custom dependency package.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "runtime": {
          "type": "string",
          "description": "Specifies the dependency package runtime.\nThe valid values are **Java8**, **Node.js6.10**, **Node.js8.10**, **Node.js10.16**, **Node.js12.13**, **Python2.7**,\n**Python3.6**, **Go1.8**, **Go1.x**, **C#(.NET Core 2.0)**, **C#(.NET Core 2.1)**, **C#(.NET Core 3.1)** and\n**PHP7.3**.\n"
        }
      },
      "requiredInputs": [
        "link",
        "runtime"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FgsDependency resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies the dependency description.\nThe description can contain a maximum of 512 characters.\n"
          },
          "etag": {
            "type": "string",
            "description": "The unique ID of the dependency package.\n"
          },
          "fgsDependencyId": {
            "type": "string",
            "description": "The dependency ID in UUID format.\n"
          },
          "link": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Specifies the dependeny name.\nThe name can contain a maximum of 96 characters and must start with a letter and end with a letter or digit.\nOnly letters, digits, underscores (_), periods (.), and hyphens (-) are allowed.\n"
          },
          "owner": {
            "type": "string",
            "description": "The base64 encoded digest of the dependency after encryption by MD5.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create a custom dependency package.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          },
          "runtime": {
            "type": "string",
            "description": "Specifies the dependency package runtime.\nThe valid values are **Java8**, **Node.js6.10**, **Node.js8.10**, **Node.js10.16**, **Node.js12.13**, **Python2.7**,\n**Python3.6**, **Go1.8**, **Go1.x**, **C#(.NET Core 2.0)**, **C#(.NET Core 2.1)**, **C#(.NET Core 3.1)** and\n**PHP7.3**.\n"
          },
          "size": {
            "type": "number",
            "description": "The dependency package size in bytes.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/fgsFunction:FgsFunction": {
      "description": "Manages a Function resource within FlexibleEngine.\n\n## Example Usage\n\n### With base64 func code\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst f1 = new flexibleengine.FgsFunction(\"f1\", {\n    agency: \"test\",\n    app: \"default\",\n    codeType: \"inline\",\n    description: \"fuction test\",\n    funcCode: \"aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=\",\n    handler: \"test.handler\",\n    memorySize: 128,\n    runtime: \"Python2.7\",\n    timeout: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nf1 = flexibleengine.FgsFunction(\"f1\",\n    agency=\"test\",\n    app=\"default\",\n    code_type=\"inline\",\n    description=\"fuction test\",\n    func_code=\"aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=\",\n    handler=\"test.handler\",\n    memory_size=128,\n    runtime=\"Python2.7\",\n    timeout=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var f1 = new Flexibleengine.FgsFunction(\"f1\", new()\n    {\n        Agency = \"test\",\n        App = \"default\",\n        CodeType = \"inline\",\n        Description = \"fuction test\",\n        FuncCode = \"aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=\",\n        Handler = \"test.handler\",\n        MemorySize = 128,\n        Runtime = \"Python2.7\",\n        Timeout = 3,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewFgsFunction(ctx, \"f1\", &flexibleengine.FgsFunctionArgs{\n\t\t\tAgency:      pulumi.String(\"test\"),\n\t\t\tApp:         pulumi.String(\"default\"),\n\t\t\tCodeType:    pulumi.String(\"inline\"),\n\t\t\tDescription: pulumi.String(\"fuction test\"),\n\t\t\tFuncCode:    pulumi.String(\"aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=\"),\n\t\t\tHandler:     pulumi.String(\"test.handler\"),\n\t\t\tMemorySize:  pulumi.Float64(128),\n\t\t\tRuntime:     pulumi.String(\"Python2.7\"),\n\t\t\tTimeout:     pulumi.Float64(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FgsFunction;\nimport com.pulumi.flexibleengine.FgsFunctionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var f1 = new FgsFunction(\"f1\", FgsFunctionArgs.builder()\n            .agency(\"test\")\n            .app(\"default\")\n            .codeType(\"inline\")\n            .description(\"fuction test\")\n            .funcCode(\"aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=\")\n            .handler(\"test.handler\")\n            .memorySize(128)\n            .runtime(\"Python2.7\")\n            .timeout(3)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  f1:\n    type: flexibleengine:FgsFunction\n    properties:\n      agency: test\n      app: default\n      codeType: inline\n      description: fuction test\n      funcCode: aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=\n      handler: test.handler\n      memorySize: 128\n      runtime: Python2.7\n      timeout: 3\n```\n<!--End PulumiCodeChooser -->\n\n### With text code\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst f1 = new flexibleengine.FgsFunction(\"f1\", {\n    agency: \"test\",\n    app: \"default\",\n    codeType: \"inline\",\n    description: \"fuction test\",\n    funcCode: `# -*- coding:utf-8 -*-\nimport json\ndef handler (event, context):\n    return {\n        \"statusCode\": 200,\n        \"isBase64Encoded\": False,\n        \"body\": json.dumps(event),\n        \"headers\": {\n            \"Content-Type\": \"application/json\"\n        }\n    }\n\n`,\n    handler: \"test.handler\",\n    memorySize: 128,\n    runtime: \"Python2.7\",\n    timeout: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nf1 = flexibleengine.FgsFunction(\"f1\",\n    agency=\"test\",\n    app=\"default\",\n    code_type=\"inline\",\n    description=\"fuction test\",\n    func_code=\"\"\"# -*- coding:utf-8 -*-\nimport json\ndef handler (event, context):\n    return {\n        \"statusCode\": 200,\n        \"isBase64Encoded\": False,\n        \"body\": json.dumps(event),\n        \"headers\": {\n            \"Content-Type\": \"application/json\"\n        }\n    }\n\n\"\"\",\n    handler=\"test.handler\",\n    memory_size=128,\n    runtime=\"Python2.7\",\n    timeout=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var f1 = new Flexibleengine.FgsFunction(\"f1\", new()\n    {\n        Agency = \"test\",\n        App = \"default\",\n        CodeType = \"inline\",\n        Description = \"fuction test\",\n        FuncCode = @\"# -*- coding:utf-8 -*-\nimport json\ndef handler (event, context):\n    return {\n        \"\"statusCode\"\": 200,\n        \"\"isBase64Encoded\"\": False,\n        \"\"body\"\": json.dumps(event),\n        \"\"headers\"\": {\n            \"\"Content-Type\"\": \"\"application/json\"\"\n        }\n    }\n\n\",\n        Handler = \"test.handler\",\n        MemorySize = 128,\n        Runtime = \"Python2.7\",\n        Timeout = 3,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewFgsFunction(ctx, \"f1\", &flexibleengine.FgsFunctionArgs{\n\t\t\tAgency:      pulumi.String(\"test\"),\n\t\t\tApp:         pulumi.String(\"default\"),\n\t\t\tCodeType:    pulumi.String(\"inline\"),\n\t\t\tDescription: pulumi.String(\"fuction test\"),\n\t\t\tFuncCode: pulumi.String(`# -*- coding:utf-8 -*-\nimport json\ndef handler (event, context):\n    return {\n        \"statusCode\": 200,\n        \"isBase64Encoded\": False,\n        \"body\": json.dumps(event),\n        \"headers\": {\n            \"Content-Type\": \"application/json\"\n        }\n    }\n\n`),\n\t\t\tHandler:    pulumi.String(\"test.handler\"),\n\t\t\tMemorySize: pulumi.Float64(128),\n\t\t\tRuntime:    pulumi.String(\"Python2.7\"),\n\t\t\tTimeout:    pulumi.Float64(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FgsFunction;\nimport com.pulumi.flexibleengine.FgsFunctionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var f1 = new FgsFunction(\"f1\", FgsFunctionArgs.builder()\n            .agency(\"test\")\n            .app(\"default\")\n            .codeType(\"inline\")\n            .description(\"fuction test\")\n            .funcCode(\"\"\"\n# -*- coding:utf-8 -*-\nimport json\ndef handler (event, context):\n    return {\n        \"statusCode\": 200,\n        \"isBase64Encoded\": False,\n        \"body\": json.dumps(event),\n        \"headers\": {\n            \"Content-Type\": \"application/json\"\n        }\n    }\n\n            \"\"\")\n            .handler(\"test.handler\")\n            .memorySize(128)\n            .runtime(\"Python2.7\")\n            .timeout(3)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  f1:\n    type: flexibleengine:FgsFunction\n    properties:\n      agency: test\n      app: default\n      codeType: inline\n      description: fuction test\n      funcCode: |+\n        # -*- coding:utf-8 -*-\n        import json\n        def handler (event, context):\n            return {\n                \"statusCode\": 200,\n                \"isBase64Encoded\": False,\n                \"body\": json.dumps(event),\n                \"headers\": {\n                    \"Content-Type\": \"application/json\"\n                }\n            }\n\n      handler: test.handler\n      memorySize: 128\n      runtime: Python2.7\n      timeout: 3\n```\n<!--End PulumiCodeChooser -->\n\n### With agency, vpc, subnet and func_mounts\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.1.0/24\",\n    gatewayIp: \"192.168.1.1\",\n    vpcId: flexibleengine_vpc_v1.test.id,\n});\nconst testSfsFileSystemV2 = new flexibleengine.SfsFileSystemV2(\"testSfsFileSystemV2\", {\n    shareProto: \"NFS\",\n    size: 10,\n    description: \"test sfs for fgs\",\n});\nconst testIdentityAgencyV3 = new flexibleengine.IdentityAgencyV3(\"testIdentityAgencyV3\", {\n    description: \"test agency for fgs\",\n    delegatedServiceName: \"op_svc_cff\",\n    projectRoles: [{\n        project: \"eu-west-0\",\n        roles: [\n            \"VPC Administrator\",\n            \"SFS Administrator\",\n        ],\n    }],\n});\nconst testFgsFunction = new flexibleengine.FgsFunction(\"testFgsFunction\", {\n    \"package\": \"default\",\n    description: \"fuction test\",\n    handler: \"test.handler\",\n    memorySize: 128,\n    timeout: 3,\n    runtime: \"Python2.7\",\n    codeType: \"inline\",\n    funcCode: \"aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=\",\n    agency: testIdentityAgencyV3.name,\n    vpcId: flexibleengine_vpc_v1.test.id,\n    networkId: flexibleengine_vpc_subnet_v1.test.id,\n    funcMounts: [{\n        mountType: \"sfs\",\n        mountResource: testSfsFileSystemV2.sfsFileSystemV2Id,\n        mountSharePath: testSfsFileSystemV2.exportLocation,\n        localMountPath: \"/mnt\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.1.0/24\",\n    gateway_ip=\"192.168.1.1\",\n    vpc_id=flexibleengine_vpc_v1[\"test\"][\"id\"])\ntest_sfs_file_system_v2 = flexibleengine.SfsFileSystemV2(\"testSfsFileSystemV2\",\n    share_proto=\"NFS\",\n    size=10,\n    description=\"test sfs for fgs\")\ntest_identity_agency_v3 = flexibleengine.IdentityAgencyV3(\"testIdentityAgencyV3\",\n    description=\"test agency for fgs\",\n    delegated_service_name=\"op_svc_cff\",\n    project_roles=[{\n        \"project\": \"eu-west-0\",\n        \"roles\": [\n            \"VPC Administrator\",\n            \"SFS Administrator\",\n        ],\n    }])\ntest_fgs_function = flexibleengine.FgsFunction(\"testFgsFunction\",\n    package=\"default\",\n    description=\"fuction test\",\n    handler=\"test.handler\",\n    memory_size=128,\n    timeout=3,\n    runtime=\"Python2.7\",\n    code_type=\"inline\",\n    func_code=\"aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=\",\n    agency=test_identity_agency_v3.name,\n    vpc_id=flexibleengine_vpc_v1[\"test\"][\"id\"],\n    network_id=flexibleengine_vpc_subnet_v1[\"test\"][\"id\"],\n    func_mounts=[{\n        \"mount_type\": \"sfs\",\n        \"mount_resource\": test_sfs_file_system_v2.sfs_file_system_v2_id,\n        \"mount_share_path\": test_sfs_file_system_v2.export_location,\n        \"local_mount_path\": \"/mnt\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.1.0/24\",\n        GatewayIp = \"192.168.1.1\",\n        VpcId = flexibleengine_vpc_v1.Test.Id,\n    });\n\n    var testSfsFileSystemV2 = new Flexibleengine.SfsFileSystemV2(\"testSfsFileSystemV2\", new()\n    {\n        ShareProto = \"NFS\",\n        Size = 10,\n        Description = \"test sfs for fgs\",\n    });\n\n    var testIdentityAgencyV3 = new Flexibleengine.IdentityAgencyV3(\"testIdentityAgencyV3\", new()\n    {\n        Description = \"test agency for fgs\",\n        DelegatedServiceName = \"op_svc_cff\",\n        ProjectRoles = new[]\n        {\n            new Flexibleengine.Inputs.IdentityAgencyV3ProjectRoleArgs\n            {\n                Project = \"eu-west-0\",\n                Roles = new[]\n                {\n                    \"VPC Administrator\",\n                    \"SFS Administrator\",\n                },\n            },\n        },\n    });\n\n    var testFgsFunction = new Flexibleengine.FgsFunction(\"testFgsFunction\", new()\n    {\n        Package = \"default\",\n        Description = \"fuction test\",\n        Handler = \"test.handler\",\n        MemorySize = 128,\n        Timeout = 3,\n        Runtime = \"Python2.7\",\n        CodeType = \"inline\",\n        FuncCode = \"aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=\",\n        Agency = testIdentityAgencyV3.Name,\n        VpcId = flexibleengine_vpc_v1.Test.Id,\n        NetworkId = flexibleengine_vpc_subnet_v1.Test.Id,\n        FuncMounts = new[]\n        {\n            new Flexibleengine.Inputs.FgsFunctionFuncMountArgs\n            {\n                MountType = \"sfs\",\n                MountResource = testSfsFileSystemV2.SfsFileSystemV2Id,\n                MountSharePath = testSfsFileSystemV2.ExportLocation,\n                LocalMountPath = \"/mnt\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.1.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.1.1\"),\n\t\t\tVpcId:     pulumi.Any(flexibleengine_vpc_v1.Test.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestSfsFileSystemV2, err := flexibleengine.NewSfsFileSystemV2(ctx, \"testSfsFileSystemV2\", &flexibleengine.SfsFileSystemV2Args{\n\t\t\tShareProto:  pulumi.String(\"NFS\"),\n\t\t\tSize:        pulumi.Float64(10),\n\t\t\tDescription: pulumi.String(\"test sfs for fgs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestIdentityAgencyV3, err := flexibleengine.NewIdentityAgencyV3(ctx, \"testIdentityAgencyV3\", &flexibleengine.IdentityAgencyV3Args{\n\t\t\tDescription:          pulumi.String(\"test agency for fgs\"),\n\t\t\tDelegatedServiceName: pulumi.String(\"op_svc_cff\"),\n\t\t\tProjectRoles: flexibleengine.IdentityAgencyV3ProjectRoleArray{\n\t\t\t\t&flexibleengine.IdentityAgencyV3ProjectRoleArgs{\n\t\t\t\t\tProject: pulumi.String(\"eu-west-0\"),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"VPC Administrator\"),\n\t\t\t\t\t\tpulumi.String(\"SFS Administrator\"),\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 = flexibleengine.NewFgsFunction(ctx, \"testFgsFunction\", &flexibleengine.FgsFunctionArgs{\n\t\t\tPackage:     pulumi.String(\"default\"),\n\t\t\tDescription: pulumi.String(\"fuction test\"),\n\t\t\tHandler:     pulumi.String(\"test.handler\"),\n\t\t\tMemorySize:  pulumi.Float64(128),\n\t\t\tTimeout:     pulumi.Float64(3),\n\t\t\tRuntime:     pulumi.String(\"Python2.7\"),\n\t\t\tCodeType:    pulumi.String(\"inline\"),\n\t\t\tFuncCode:    pulumi.String(\"aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=\"),\n\t\t\tAgency:      testIdentityAgencyV3.Name,\n\t\t\tVpcId:       pulumi.Any(flexibleengine_vpc_v1.Test.Id),\n\t\t\tNetworkId:   pulumi.Any(flexibleengine_vpc_subnet_v1.Test.Id),\n\t\t\tFuncMounts: flexibleengine.FgsFunctionFuncMountArray{\n\t\t\t\t&flexibleengine.FgsFunctionFuncMountArgs{\n\t\t\t\t\tMountType:      pulumi.String(\"sfs\"),\n\t\t\t\t\tMountResource:  testSfsFileSystemV2.SfsFileSystemV2Id,\n\t\t\t\t\tMountSharePath: testSfsFileSystemV2.ExportLocation,\n\t\t\t\t\tLocalMountPath: pulumi.String(\"/mnt\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.SfsFileSystemV2;\nimport com.pulumi.flexibleengine.SfsFileSystemV2Args;\nimport com.pulumi.flexibleengine.IdentityAgencyV3;\nimport com.pulumi.flexibleengine.IdentityAgencyV3Args;\nimport com.pulumi.flexibleengine.inputs.IdentityAgencyV3ProjectRoleArgs;\nimport com.pulumi.flexibleengine.FgsFunction;\nimport com.pulumi.flexibleengine.FgsFunctionArgs;\nimport com.pulumi.flexibleengine.inputs.FgsFunctionFuncMountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.1.0/24\")\n            .gatewayIp(\"192.168.1.1\")\n            .vpcId(flexibleengine_vpc_v1.test().id())\n            .build());\n\n        var testSfsFileSystemV2 = new SfsFileSystemV2(\"testSfsFileSystemV2\", SfsFileSystemV2Args.builder()\n            .shareProto(\"NFS\")\n            .size(10)\n            .description(\"test sfs for fgs\")\n            .build());\n\n        var testIdentityAgencyV3 = new IdentityAgencyV3(\"testIdentityAgencyV3\", IdentityAgencyV3Args.builder()\n            .description(\"test agency for fgs\")\n            .delegatedServiceName(\"op_svc_cff\")\n            .projectRoles(IdentityAgencyV3ProjectRoleArgs.builder()\n                .project(\"eu-west-0\")\n                .roles(                \n                    \"VPC Administrator\",\n                    \"SFS Administrator\")\n                .build())\n            .build());\n\n        var testFgsFunction = new FgsFunction(\"testFgsFunction\", FgsFunctionArgs.builder()\n            .package_(\"default\")\n            .description(\"fuction test\")\n            .handler(\"test.handler\")\n            .memorySize(128)\n            .timeout(3)\n            .runtime(\"Python2.7\")\n            .codeType(\"inline\")\n            .funcCode(\"aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=\")\n            .agency(testIdentityAgencyV3.name())\n            .vpcId(flexibleengine_vpc_v1.test().id())\n            .networkId(flexibleengine_vpc_subnet_v1.test().id())\n            .funcMounts(FgsFunctionFuncMountArgs.builder()\n                .mountType(\"sfs\")\n                .mountResource(testSfsFileSystemV2.sfsFileSystemV2Id())\n                .mountSharePath(testSfsFileSystemV2.exportLocation())\n                .localMountPath(\"/mnt\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.1.0/24\n      gatewayIp: 192.168.1.1\n      vpcId: ${flexibleengine_vpc_v1.test.id}\n  testSfsFileSystemV2:\n    type: flexibleengine:SfsFileSystemV2\n    properties:\n      shareProto: NFS\n      size: 10\n      description: test sfs for fgs\n  testIdentityAgencyV3:\n    type: flexibleengine:IdentityAgencyV3\n    properties:\n      description: test agency for fgs\n      delegatedServiceName: op_svc_cff\n      projectRoles:\n        - project: eu-west-0\n          roles:\n            - VPC Administrator\n            - SFS Administrator\n  testFgsFunction:\n    type: flexibleengine:FgsFunction\n    properties:\n      package: default\n      description: fuction test\n      handler: test.handler\n      memorySize: 128\n      timeout: 3\n      runtime: Python2.7\n      codeType: inline\n      funcCode: aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=\n      agency: ${testIdentityAgencyV3.name}\n      vpcId: ${flexibleengine_vpc_v1.test.id}\n      networkId: ${flexibleengine_vpc_subnet_v1.test.id}\n      funcMounts:\n        - mountType: sfs\n          mountResource: ${testSfsFileSystemV2.sfsFileSystemV2Id}\n          mountSharePath: ${testSfsFileSystemV2.exportLocation}\n          localMountPath: /mnt\n```\n<!--End PulumiCodeChooser -->\n\n### With agency, user_data for environment variables and OBS for code storage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst codeUrl = config.requireObject(\"codeUrl\");\nconst agency = new flexibleengine.IdentityAgencyV3(\"agency\", {\n    description: \"Delegate OBS access to FGS\",\n    delegatedServiceName: \"op_svc_cff\",\n    domainRoles: [\"OBS OperateAccess\"],\n});\nconst _function = new flexibleengine.FgsFunction(\"function\", {\n    app: \"default\",\n    description: \"test function\",\n    handler: \"index.handler\",\n    agency: agency.name,\n    memorySize: 128,\n    timeout: 3,\n    runtime: \"Node.js6.10\",\n    codeType: \"obs\",\n    codeUrl: codeUrl,\n    userData: JSON.stringify({\n        environmentVariable1: \"someValue\",\n        environmentVariable2: \"5\",\n    }),\n    encryptedUserData: JSON.stringify({\n        secret_key: \"xxxxxxx\",\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncode_url = config.require_object(\"codeUrl\")\nagency = flexibleengine.IdentityAgencyV3(\"agency\",\n    description=\"Delegate OBS access to FGS\",\n    delegated_service_name=\"op_svc_cff\",\n    domain_roles=[\"OBS OperateAccess\"])\nfunction = flexibleengine.FgsFunction(\"function\",\n    app=\"default\",\n    description=\"test function\",\n    handler=\"index.handler\",\n    agency=agency.name,\n    memory_size=128,\n    timeout=3,\n    runtime=\"Node.js6.10\",\n    code_type=\"obs\",\n    code_url=code_url,\n    user_data=json.dumps({\n        \"environmentVariable1\": \"someValue\",\n        \"environmentVariable2\": \"5\",\n    }),\n    encrypted_user_data=json.dumps({\n        \"secret_key\": \"xxxxxxx\",\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var codeUrl = config.RequireObject<dynamic>(\"codeUrl\");\n    var agency = new Flexibleengine.IdentityAgencyV3(\"agency\", new()\n    {\n        Description = \"Delegate OBS access to FGS\",\n        DelegatedServiceName = \"op_svc_cff\",\n        DomainRoles = new[]\n        {\n            \"OBS OperateAccess\",\n        },\n    });\n\n    var function = new Flexibleengine.FgsFunction(\"function\", new()\n    {\n        App = \"default\",\n        Description = \"test function\",\n        Handler = \"index.handler\",\n        Agency = agency.Name,\n        MemorySize = 128,\n        Timeout = 3,\n        Runtime = \"Node.js6.10\",\n        CodeType = \"obs\",\n        CodeUrl = codeUrl,\n        UserData = JsonSerializer.Serialize(new Dictionary<string, object?>\n        {\n            [\"environmentVariable1\"] = \"someValue\",\n            [\"environmentVariable2\"] = \"5\",\n        }),\n        EncryptedUserData = JsonSerializer.Serialize(new Dictionary<string, object?>\n        {\n            [\"secret_key\"] = \"xxxxxxx\",\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tcodeUrl := cfg.RequireObject(\"codeUrl\")\n\t\tagency, err := flexibleengine.NewIdentityAgencyV3(ctx, \"agency\", &flexibleengine.IdentityAgencyV3Args{\n\t\t\tDescription:          pulumi.String(\"Delegate OBS access to FGS\"),\n\t\t\tDelegatedServiceName: pulumi.String(\"op_svc_cff\"),\n\t\t\tDomainRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OBS OperateAccess\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"environmentVariable1\": \"someValue\",\n\t\t\t\"environmentVariable2\": \"5\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"secret_key\": \"xxxxxxx\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = flexibleengine.NewFgsFunction(ctx, \"function\", &flexibleengine.FgsFunctionArgs{\n\t\t\tApp:               pulumi.String(\"default\"),\n\t\t\tDescription:       pulumi.String(\"test function\"),\n\t\t\tHandler:           pulumi.String(\"index.handler\"),\n\t\t\tAgency:            agency.Name,\n\t\t\tMemorySize:        pulumi.Float64(128),\n\t\t\tTimeout:           pulumi.Float64(3),\n\t\t\tRuntime:           pulumi.String(\"Node.js6.10\"),\n\t\t\tCodeType:          pulumi.String(\"obs\"),\n\t\t\tCodeUrl:           pulumi.Any(codeUrl),\n\t\t\tUserData:          pulumi.String(json0),\n\t\t\tEncryptedUserData: pulumi.String(json1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.IdentityAgencyV3;\nimport com.pulumi.flexibleengine.IdentityAgencyV3Args;\nimport com.pulumi.flexibleengine.FgsFunction;\nimport com.pulumi.flexibleengine.FgsFunctionArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var codeUrl = config.get(\"codeUrl\");\n        var agency = new IdentityAgencyV3(\"agency\", IdentityAgencyV3Args.builder()\n            .description(\"Delegate OBS access to FGS\")\n            .delegatedServiceName(\"op_svc_cff\")\n            .domainRoles(\"OBS OperateAccess\")\n            .build());\n\n        var function = new FgsFunction(\"function\", FgsFunctionArgs.builder()\n            .app(\"default\")\n            .description(\"test function\")\n            .handler(\"index.handler\")\n            .agency(agency.name())\n            .memorySize(128)\n            .timeout(3)\n            .runtime(\"Node.js6.10\")\n            .codeType(\"obs\")\n            .codeUrl(codeUrl)\n            .userData(serializeJson(\n                jsonObject(\n                    jsonProperty(\"environmentVariable1\", \"someValue\"),\n                    jsonProperty(\"environmentVariable2\", \"5\")\n                )))\n            .encryptedUserData(serializeJson(\n                jsonObject(\n                    jsonProperty(\"secret_key\", \"xxxxxxx\")\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  codeUrl:\n    type: dynamic\nresources:\n  agency:\n    type: flexibleengine:IdentityAgencyV3\n    properties:\n      description: Delegate OBS access to FGS\n      delegatedServiceName: op_svc_cff\n      domainRoles:\n        - OBS OperateAccess\n  function:\n    type: flexibleengine:FgsFunction\n    properties:\n      app: default\n      description: test function\n      handler: index.handler\n      agency: ${agency.name}\n      memorySize: 128\n      timeout: 3\n      runtime: Node.js6.10\n      codeType: obs\n      codeUrl: ${codeUrl}\n      userData:\n        fn::toJSON:\n          environmentVariable1: someValue\n          environmentVariable2: '5'\n      encryptedUserData:\n        fn::toJSON:\n          secret_key: xxxxxxx\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFunctions can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/fgsFunction:FgsFunction my-func 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n",
      "properties": {
        "agency": {
          "type": "string",
          "description": "Specifies the agency. This parameter is mandatory if the function needs to access other\ncloud services.\n"
        },
        "app": {
          "type": "string",
          "description": "Specifies the group to which the function belongs.\n"
        },
        "appAgency": {
          "type": "string",
          "description": "Specifies An execution agency enables you to obtain a token or an AK/SK for\naccessing other cloud services.\n"
        },
        "codeFilename": {
          "type": "string",
          "description": "Specifies the name of a function file, This field is mandatory only when coe_type\nis set to jar or zip.\n"
        },
        "codeType": {
          "type": "string",
          "description": "Specifies the function code type, which can be inline: inline code, zip: ZIP file,\njar: JAR file or java functions, obs: function code stored in an OBS bucket.\n"
        },
        "codeUrl": {
          "type": "string",
          "description": "Specifies the code url. This parameter is mandatory when code_type is set to obs.\n"
        },
        "customImage": {
          "$ref": "#/types/flexibleengine:index%2FFgsFunctionCustomImage:FgsFunctionCustomImage"
        },
        "dependLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the ID list of the dependencies.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the function.\n"
        },
        "dnsList": {
          "type": "string"
        },
        "encryptedUserData": {
          "type": "string",
          "description": "Specifies the key/value information defined to be encrypted for the\nfunction. The format is the same as `user_data`.\n",
          "secret": true
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the function. Changing\nthis creates a new function.\n"
        },
        "fgsFunctionId": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "flexibleengineUrn": {
          "type": "string",
          "description": "Uniform Resource Name.\n"
        },
        "funcCode": {
          "type": "string",
          "description": "Specifies the function code. When code_type is set to inline, zip, or jar, this\nparameter is mandatory, and the code can be encoded using Base64 or just with the text code.\n"
        },
        "funcMounts": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FFgsFunctionFuncMount:FgsFunctionFuncMount"
          },
          "description": "Specifies the file system list. The func_mounts object\nstructure is documented below.\n\n<a name=\"fgs_arg_func_mounts\"></a>\nThe `func_mounts` block supports:\n"
        },
        "functiongraphVersion": {
          "type": "string"
        },
        "handler": {
          "type": "string",
          "description": "Specifies the entry point of the function.\n"
        },
        "initializerHandler": {
          "type": "string",
          "description": "Specifies the initializer of the function.\n"
        },
        "initializerTimeout": {
          "type": "number",
          "description": "Specifies the maximum duration the function can be initialized. Value range:\n1s to 300s.\n"
        },
        "logGroupId": {
          "type": "string"
        },
        "logGroupName": {
          "type": "string"
        },
        "logStreamId": {
          "type": "string"
        },
        "logStreamName": {
          "type": "string"
        },
        "maxInstanceNum": {
          "type": "string"
        },
        "memorySize": {
          "type": "number",
          "description": "Specifies the memory size(MB) allocated to the function.\n"
        },
        "mountUserGroupId": {
          "type": "number",
          "description": "Specifies the user group ID, a non-0 integer from –1 to 65534. Default to -1.\n"
        },
        "mountUserId": {
          "type": "number",
          "description": "Specifies the user ID, a non-0 integer from –1 to 65534. Default to -1.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the function.\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the network ID of subnet.\n\n> **NOTE:** An agency with VPC management permissions must be specified for the function.\n"
        },
        "package": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the Function resource. If omitted, the\nprovider-level region will be used. Changing this creates a new Function resource.\n"
        },
        "runtime": {
          "type": "string",
          "description": "Specifies the environment for executing the function. Changing this creates a\nnew Function resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the timeout interval of the function, ranges from 3s to 900s.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FFgsFunctionTimeouts:FgsFunctionTimeouts"
        },
        "userData": {
          "type": "string"
        },
        "version": {
          "type": "string",
          "description": "The version of the function.\n"
        },
        "versions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FFgsFunctionVersion:FgsFunctionVersion"
          },
          "description": "The versions management of the function.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of VPC.\n"
        },
        "xrole": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        }
      },
      "type": "object",
      "required": [
        "appAgency",
        "codeFilename",
        "codeType",
        "dependLists",
        "dnsList",
        "enterpriseProjectId",
        "fgsFunctionId",
        "flexibleengineUrn",
        "functiongraphVersion",
        "handler",
        "initializerHandler",
        "initializerTimeout",
        "logGroupId",
        "logGroupName",
        "logStreamId",
        "logStreamName",
        "maxInstanceNum",
        "memorySize",
        "mountUserGroupId",
        "mountUserId",
        "name",
        "region",
        "runtime",
        "timeout",
        "version"
      ],
      "inputProperties": {
        "agency": {
          "type": "string",
          "description": "Specifies the agency. This parameter is mandatory if the function needs to access other\ncloud services.\n"
        },
        "app": {
          "type": "string",
          "description": "Specifies the group to which the function belongs.\n"
        },
        "appAgency": {
          "type": "string",
          "description": "Specifies An execution agency enables you to obtain a token or an AK/SK for\naccessing other cloud services.\n"
        },
        "codeFilename": {
          "type": "string",
          "description": "Specifies the name of a function file, This field is mandatory only when coe_type\nis set to jar or zip.\n"
        },
        "codeType": {
          "type": "string",
          "description": "Specifies the function code type, which can be inline: inline code, zip: ZIP file,\njar: JAR file or java functions, obs: function code stored in an OBS bucket.\n"
        },
        "codeUrl": {
          "type": "string",
          "description": "Specifies the code url. This parameter is mandatory when code_type is set to obs.\n"
        },
        "customImage": {
          "$ref": "#/types/flexibleengine:index%2FFgsFunctionCustomImage:FgsFunctionCustomImage"
        },
        "dependLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the ID list of the dependencies.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the function.\n"
        },
        "dnsList": {
          "type": "string"
        },
        "encryptedUserData": {
          "type": "string",
          "description": "Specifies the key/value information defined to be encrypted for the\nfunction. The format is the same as `user_data`.\n",
          "secret": true
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the function. Changing\nthis creates a new function.\n"
        },
        "fgsFunctionId": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "funcCode": {
          "type": "string",
          "description": "Specifies the function code. When code_type is set to inline, zip, or jar, this\nparameter is mandatory, and the code can be encoded using Base64 or just with the text code.\n"
        },
        "funcMounts": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FFgsFunctionFuncMount:FgsFunctionFuncMount"
          },
          "description": "Specifies the file system list. The func_mounts object\nstructure is documented below.\n\n<a name=\"fgs_arg_func_mounts\"></a>\nThe `func_mounts` block supports:\n"
        },
        "functiongraphVersion": {
          "type": "string"
        },
        "handler": {
          "type": "string",
          "description": "Specifies the entry point of the function.\n"
        },
        "initializerHandler": {
          "type": "string",
          "description": "Specifies the initializer of the function.\n"
        },
        "initializerTimeout": {
          "type": "number",
          "description": "Specifies the maximum duration the function can be initialized. Value range:\n1s to 300s.\n"
        },
        "logGroupId": {
          "type": "string"
        },
        "logGroupName": {
          "type": "string"
        },
        "logStreamId": {
          "type": "string"
        },
        "logStreamName": {
          "type": "string"
        },
        "maxInstanceNum": {
          "type": "string"
        },
        "memorySize": {
          "type": "number",
          "description": "Specifies the memory size(MB) allocated to the function.\n"
        },
        "mountUserGroupId": {
          "type": "number",
          "description": "Specifies the user group ID, a non-0 integer from –1 to 65534. Default to -1.\n"
        },
        "mountUserId": {
          "type": "number",
          "description": "Specifies the user ID, a non-0 integer from –1 to 65534. Default to -1.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the function.\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the network ID of subnet.\n\n> **NOTE:** An agency with VPC management permissions must be specified for the function.\n"
        },
        "package": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the Function resource. If omitted, the\nprovider-level region will be used. Changing this creates a new Function resource.\n"
        },
        "runtime": {
          "type": "string",
          "description": "Specifies the environment for executing the function. Changing this creates a\nnew Function resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the timeout interval of the function, ranges from 3s to 900s.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FFgsFunctionTimeouts:FgsFunctionTimeouts"
        },
        "userData": {
          "type": "string"
        },
        "versions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FFgsFunctionVersion:FgsFunctionVersion"
          },
          "description": "The versions management of the function.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of VPC.\n"
        },
        "xrole": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        }
      },
      "requiredInputs": [
        "memorySize",
        "runtime",
        "timeout"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FgsFunction resources.\n",
        "properties": {
          "agency": {
            "type": "string",
            "description": "Specifies the agency. This parameter is mandatory if the function needs to access other\ncloud services.\n"
          },
          "app": {
            "type": "string",
            "description": "Specifies the group to which the function belongs.\n"
          },
          "appAgency": {
            "type": "string",
            "description": "Specifies An execution agency enables you to obtain a token or an AK/SK for\naccessing other cloud services.\n"
          },
          "codeFilename": {
            "type": "string",
            "description": "Specifies the name of a function file, This field is mandatory only when coe_type\nis set to jar or zip.\n"
          },
          "codeType": {
            "type": "string",
            "description": "Specifies the function code type, which can be inline: inline code, zip: ZIP file,\njar: JAR file or java functions, obs: function code stored in an OBS bucket.\n"
          },
          "codeUrl": {
            "type": "string",
            "description": "Specifies the code url. This parameter is mandatory when code_type is set to obs.\n"
          },
          "customImage": {
            "$ref": "#/types/flexibleengine:index%2FFgsFunctionCustomImage:FgsFunctionCustomImage"
          },
          "dependLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the ID list of the dependencies.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the function.\n"
          },
          "dnsList": {
            "type": "string"
          },
          "encryptedUserData": {
            "type": "string",
            "description": "Specifies the key/value information defined to be encrypted for the\nfunction. The format is the same as `user_data`.\n",
            "secret": true
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id of the function. Changing\nthis creates a new function.\n"
          },
          "fgsFunctionId": {
            "type": "string",
            "description": "Specifies a resource ID in UUID format.\n"
          },
          "flexibleengineUrn": {
            "type": "string",
            "description": "Uniform Resource Name.\n"
          },
          "funcCode": {
            "type": "string",
            "description": "Specifies the function code. When code_type is set to inline, zip, or jar, this\nparameter is mandatory, and the code can be encoded using Base64 or just with the text code.\n"
          },
          "funcMounts": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FFgsFunctionFuncMount:FgsFunctionFuncMount"
            },
            "description": "Specifies the file system list. The func_mounts object\nstructure is documented below.\n\n<a name=\"fgs_arg_func_mounts\"></a>\nThe `func_mounts` block supports:\n"
          },
          "functiongraphVersion": {
            "type": "string"
          },
          "handler": {
            "type": "string",
            "description": "Specifies the entry point of the function.\n"
          },
          "initializerHandler": {
            "type": "string",
            "description": "Specifies the initializer of the function.\n"
          },
          "initializerTimeout": {
            "type": "number",
            "description": "Specifies the maximum duration the function can be initialized. Value range:\n1s to 300s.\n"
          },
          "logGroupId": {
            "type": "string"
          },
          "logGroupName": {
            "type": "string"
          },
          "logStreamId": {
            "type": "string"
          },
          "logStreamName": {
            "type": "string"
          },
          "maxInstanceNum": {
            "type": "string"
          },
          "memorySize": {
            "type": "number",
            "description": "Specifies the memory size(MB) allocated to the function.\n"
          },
          "mountUserGroupId": {
            "type": "number",
            "description": "Specifies the user group ID, a non-0 integer from –1 to 65534. Default to -1.\n"
          },
          "mountUserId": {
            "type": "number",
            "description": "Specifies the user ID, a non-0 integer from –1 to 65534. Default to -1.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the function.\n"
          },
          "networkId": {
            "type": "string",
            "description": "Specifies the network ID of subnet.\n\n> **NOTE:** An agency with VPC management permissions must be specified for the function.\n"
          },
          "package": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the Function resource. If omitted, the\nprovider-level region will be used. Changing this creates a new Function resource.\n"
          },
          "runtime": {
            "type": "string",
            "description": "Specifies the environment for executing the function. Changing this creates a\nnew Function resource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "timeout": {
            "type": "number",
            "description": "Specifies the timeout interval of the function, ranges from 3s to 900s.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FFgsFunctionTimeouts:FgsFunctionTimeouts"
          },
          "userData": {
            "type": "string"
          },
          "version": {
            "type": "string",
            "description": "The version of the function.\n"
          },
          "versions": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FFgsFunctionVersion:FgsFunctionVersion"
            },
            "description": "The versions management of the function.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of VPC.\n"
          },
          "xrole": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/fgsTrigger:FgsTrigger": {
      "description": "Manages a trigger resource within FlexibleEngine FunctionGraph.\n\n## Example Usage\n\n### Create a Timing Trigger with rate schedule type\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst functionUrn = config.requireObject(\"functionUrn\");\nconst triggerName = config.requireObject(\"triggerName\");\nconst test = new flexibleengine.FgsTrigger(\"test\", {\n    functionUrn: functionUrn,\n    type: \"TIMER\",\n    timer: {\n        name: triggerName,\n        scheduleType: \"Rate\",\n        schedule: \"1d\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nfunction_urn = config.require_object(\"functionUrn\")\ntrigger_name = config.require_object(\"triggerName\")\ntest = flexibleengine.FgsTrigger(\"test\",\n    function_urn=function_urn,\n    type=\"TIMER\",\n    timer={\n        \"name\": trigger_name,\n        \"schedule_type\": \"Rate\",\n        \"schedule\": \"1d\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var functionUrn = config.RequireObject<dynamic>(\"functionUrn\");\n    var triggerName = config.RequireObject<dynamic>(\"triggerName\");\n    var test = new Flexibleengine.FgsTrigger(\"test\", new()\n    {\n        FunctionUrn = functionUrn,\n        Type = \"TIMER\",\n        Timer = new Flexibleengine.Inputs.FgsTriggerTimerArgs\n        {\n            Name = triggerName,\n            ScheduleType = \"Rate\",\n            Schedule = \"1d\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tfunctionUrn := cfg.RequireObject(\"functionUrn\")\n\t\ttriggerName := cfg.RequireObject(\"triggerName\")\n\t\t_, err := flexibleengine.NewFgsTrigger(ctx, \"test\", &flexibleengine.FgsTriggerArgs{\n\t\t\tFunctionUrn: pulumi.Any(functionUrn),\n\t\t\tType:        pulumi.String(\"TIMER\"),\n\t\t\tTimer: &flexibleengine.FgsTriggerTimerArgs{\n\t\t\t\tName:         pulumi.Any(triggerName),\n\t\t\t\tScheduleType: pulumi.String(\"Rate\"),\n\t\t\t\tSchedule:     pulumi.String(\"1d\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FgsTrigger;\nimport com.pulumi.flexibleengine.FgsTriggerArgs;\nimport com.pulumi.flexibleengine.inputs.FgsTriggerTimerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var functionUrn = config.get(\"functionUrn\");\n        final var triggerName = config.get(\"triggerName\");\n        var test = new FgsTrigger(\"test\", FgsTriggerArgs.builder()\n            .functionUrn(functionUrn)\n            .type(\"TIMER\")\n            .timer(FgsTriggerTimerArgs.builder()\n                .name(triggerName)\n                .scheduleType(\"Rate\")\n                .schedule(\"1d\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  functionUrn:\n    type: dynamic\n  triggerName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:FgsTrigger\n    properties:\n      functionUrn: ${functionUrn}\n      type: TIMER\n      timer:\n        name: ${triggerName}\n        scheduleType: Rate\n        schedule: 1d\n```\n<!--End PulumiCodeChooser -->\n\n### Create a Timing Trigger with cron schedule type\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst functionUrn = config.requireObject(\"functionUrn\");\nconst triggerName = config.requireObject(\"triggerName\");\nconst test = new flexibleengine.FgsTrigger(\"test\", {\n    functionUrn: functionUrn,\n    type: \"TIMER\",\n    timer: {\n        name: triggerName,\n        scheduleType: \"Cron\",\n        schedule: \"@every 1h30m\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nfunction_urn = config.require_object(\"functionUrn\")\ntrigger_name = config.require_object(\"triggerName\")\ntest = flexibleengine.FgsTrigger(\"test\",\n    function_urn=function_urn,\n    type=\"TIMER\",\n    timer={\n        \"name\": trigger_name,\n        \"schedule_type\": \"Cron\",\n        \"schedule\": \"@every 1h30m\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var functionUrn = config.RequireObject<dynamic>(\"functionUrn\");\n    var triggerName = config.RequireObject<dynamic>(\"triggerName\");\n    var test = new Flexibleengine.FgsTrigger(\"test\", new()\n    {\n        FunctionUrn = functionUrn,\n        Type = \"TIMER\",\n        Timer = new Flexibleengine.Inputs.FgsTriggerTimerArgs\n        {\n            Name = triggerName,\n            ScheduleType = \"Cron\",\n            Schedule = \"@every 1h30m\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tfunctionUrn := cfg.RequireObject(\"functionUrn\")\n\t\ttriggerName := cfg.RequireObject(\"triggerName\")\n\t\t_, err := flexibleengine.NewFgsTrigger(ctx, \"test\", &flexibleengine.FgsTriggerArgs{\n\t\t\tFunctionUrn: pulumi.Any(functionUrn),\n\t\t\tType:        pulumi.String(\"TIMER\"),\n\t\t\tTimer: &flexibleengine.FgsTriggerTimerArgs{\n\t\t\t\tName:         pulumi.Any(triggerName),\n\t\t\t\tScheduleType: pulumi.String(\"Cron\"),\n\t\t\t\tSchedule:     pulumi.String(\"@every 1h30m\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FgsTrigger;\nimport com.pulumi.flexibleengine.FgsTriggerArgs;\nimport com.pulumi.flexibleengine.inputs.FgsTriggerTimerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var functionUrn = config.get(\"functionUrn\");\n        final var triggerName = config.get(\"triggerName\");\n        var test = new FgsTrigger(\"test\", FgsTriggerArgs.builder()\n            .functionUrn(functionUrn)\n            .type(\"TIMER\")\n            .timer(FgsTriggerTimerArgs.builder()\n                .name(triggerName)\n                .scheduleType(\"Cron\")\n                .schedule(\"@every 1h30m\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  functionUrn:\n    type: dynamic\n  triggerName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:FgsTrigger\n    properties:\n      functionUrn: ${functionUrn}\n      type: TIMER\n      timer:\n        name: ${triggerName}\n        scheduleType: Cron\n        schedule: '@every 1h30m'\n```\n<!--End PulumiCodeChooser -->\n\n### Create an OBS trigger\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst functionUrn = config.requireObject(\"functionUrn\");\nconst bucketName = config.requireObject(\"bucketName\");\nconst triggerName = config.requireObject(\"triggerName\");\nconst test = new flexibleengine.FgsTrigger(\"test\", {\n    functionUrn: functionUrn,\n    type: \"OBS\",\n    status: \"ACTIVE\",\n    obs: {\n        bucketName: bucketName,\n        eventNotificationName: triggerName,\n        suffix: \".json\",\n        events: [\"ObjectCreated\"],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nfunction_urn = config.require_object(\"functionUrn\")\nbucket_name = config.require_object(\"bucketName\")\ntrigger_name = config.require_object(\"triggerName\")\ntest = flexibleengine.FgsTrigger(\"test\",\n    function_urn=function_urn,\n    type=\"OBS\",\n    status=\"ACTIVE\",\n    obs={\n        \"bucket_name\": bucket_name,\n        \"event_notification_name\": trigger_name,\n        \"suffix\": \".json\",\n        \"events\": [\"ObjectCreated\"],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var functionUrn = config.RequireObject<dynamic>(\"functionUrn\");\n    var bucketName = config.RequireObject<dynamic>(\"bucketName\");\n    var triggerName = config.RequireObject<dynamic>(\"triggerName\");\n    var test = new Flexibleengine.FgsTrigger(\"test\", new()\n    {\n        FunctionUrn = functionUrn,\n        Type = \"OBS\",\n        Status = \"ACTIVE\",\n        Obs = new Flexibleengine.Inputs.FgsTriggerObsArgs\n        {\n            BucketName = bucketName,\n            EventNotificationName = triggerName,\n            Suffix = \".json\",\n            Events = new[]\n            {\n                \"ObjectCreated\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tfunctionUrn := cfg.RequireObject(\"functionUrn\")\n\t\tbucketName := cfg.RequireObject(\"bucketName\")\n\t\ttriggerName := cfg.RequireObject(\"triggerName\")\n\t\t_, err := flexibleengine.NewFgsTrigger(ctx, \"test\", &flexibleengine.FgsTriggerArgs{\n\t\t\tFunctionUrn: pulumi.Any(functionUrn),\n\t\t\tType:        pulumi.String(\"OBS\"),\n\t\t\tStatus:      pulumi.String(\"ACTIVE\"),\n\t\t\tObs: &flexibleengine.FgsTriggerObsArgs{\n\t\t\t\tBucketName:            pulumi.Any(bucketName),\n\t\t\t\tEventNotificationName: pulumi.Any(triggerName),\n\t\t\t\tSuffix:                pulumi.String(\".json\"),\n\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ObjectCreated\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FgsTrigger;\nimport com.pulumi.flexibleengine.FgsTriggerArgs;\nimport com.pulumi.flexibleengine.inputs.FgsTriggerObsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var functionUrn = config.get(\"functionUrn\");\n        final var bucketName = config.get(\"bucketName\");\n        final var triggerName = config.get(\"triggerName\");\n        var test = new FgsTrigger(\"test\", FgsTriggerArgs.builder()\n            .functionUrn(functionUrn)\n            .type(\"OBS\")\n            .status(\"ACTIVE\")\n            .obs(FgsTriggerObsArgs.builder()\n                .bucketName(bucketName)\n                .eventNotificationName(triggerName)\n                .suffix(\".json\")\n                .events(\"ObjectCreated\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  functionUrn:\n    type: dynamic\n  bucketName:\n    type: dynamic\n  triggerName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:FgsTrigger\n    properties:\n      functionUrn: ${functionUrn}\n      type: OBS\n      status: ACTIVE\n      obs:\n        bucketName: ${bucketName}\n        eventNotificationName: ${triggerName}\n        suffix: .json\n        events:\n          - ObjectCreated\n```\n<!--End PulumiCodeChooser -->\n\n### Create an SMN trigger\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst functionUrn = config.requireObject(\"functionUrn\");\nconst topicUrn = config.requireObject(\"topicUrn\");\nconst test = new flexibleengine.FgsTrigger(\"test\", {\n    functionUrn: functionUrn,\n    type: \"SMN\",\n    status: \"ACTIVE\",\n    smn: {\n        topicUrn: topicUrn,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nfunction_urn = config.require_object(\"functionUrn\")\ntopic_urn = config.require_object(\"topicUrn\")\ntest = flexibleengine.FgsTrigger(\"test\",\n    function_urn=function_urn,\n    type=\"SMN\",\n    status=\"ACTIVE\",\n    smn={\n        \"topic_urn\": topic_urn,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var functionUrn = config.RequireObject<dynamic>(\"functionUrn\");\n    var topicUrn = config.RequireObject<dynamic>(\"topicUrn\");\n    var test = new Flexibleengine.FgsTrigger(\"test\", new()\n    {\n        FunctionUrn = functionUrn,\n        Type = \"SMN\",\n        Status = \"ACTIVE\",\n        Smn = new Flexibleengine.Inputs.FgsTriggerSmnArgs\n        {\n            TopicUrn = topicUrn,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tfunctionUrn := cfg.RequireObject(\"functionUrn\")\n\t\ttopicUrn := cfg.RequireObject(\"topicUrn\")\n\t\t_, err := flexibleengine.NewFgsTrigger(ctx, \"test\", &flexibleengine.FgsTriggerArgs{\n\t\t\tFunctionUrn: pulumi.Any(functionUrn),\n\t\t\tType:        pulumi.String(\"SMN\"),\n\t\t\tStatus:      pulumi.String(\"ACTIVE\"),\n\t\t\tSmn: &flexibleengine.FgsTriggerSmnArgs{\n\t\t\t\tTopicUrn: pulumi.Any(topicUrn),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FgsTrigger;\nimport com.pulumi.flexibleengine.FgsTriggerArgs;\nimport com.pulumi.flexibleengine.inputs.FgsTriggerSmnArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var functionUrn = config.get(\"functionUrn\");\n        final var topicUrn = config.get(\"topicUrn\");\n        var test = new FgsTrigger(\"test\", FgsTriggerArgs.builder()\n            .functionUrn(functionUrn)\n            .type(\"SMN\")\n            .status(\"ACTIVE\")\n            .smn(FgsTriggerSmnArgs.builder()\n                .topicUrn(topicUrn)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  functionUrn:\n    type: dynamic\n  topicUrn:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:FgsTrigger\n    properties:\n      functionUrn: ${functionUrn}\n      type: SMN\n      status: ACTIVE\n      smn:\n        topicUrn: ${topicUrn}\n```\n<!--End PulumiCodeChooser -->\n\n### Create a DIS trigger\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst functionUrn = config.requireObject(\"functionUrn\");\nconst streamName = config.requireObject(\"streamName\");\nconst test = new flexibleengine.FgsTrigger(\"test\", {\n    functionUrn: functionUrn,\n    type: \"DIS\",\n    status: \"ACTIVE\",\n    dis: {\n        streamName: streamName,\n        startingPosition: \"TRIM_HORIZON\",\n        maxFetchBytes: 2097152,\n        pullPeriod: 30000,\n        serialEnable: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nfunction_urn = config.require_object(\"functionUrn\")\nstream_name = config.require_object(\"streamName\")\ntest = flexibleengine.FgsTrigger(\"test\",\n    function_urn=function_urn,\n    type=\"DIS\",\n    status=\"ACTIVE\",\n    dis={\n        \"stream_name\": stream_name,\n        \"starting_position\": \"TRIM_HORIZON\",\n        \"max_fetch_bytes\": 2097152,\n        \"pull_period\": 30000,\n        \"serial_enable\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var functionUrn = config.RequireObject<dynamic>(\"functionUrn\");\n    var streamName = config.RequireObject<dynamic>(\"streamName\");\n    var test = new Flexibleengine.FgsTrigger(\"test\", new()\n    {\n        FunctionUrn = functionUrn,\n        Type = \"DIS\",\n        Status = \"ACTIVE\",\n        Dis = new Flexibleengine.Inputs.FgsTriggerDisArgs\n        {\n            StreamName = streamName,\n            StartingPosition = \"TRIM_HORIZON\",\n            MaxFetchBytes = 2097152,\n            PullPeriod = 30000,\n            SerialEnable = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tfunctionUrn := cfg.RequireObject(\"functionUrn\")\n\t\tstreamName := cfg.RequireObject(\"streamName\")\n\t\t_, err := flexibleengine.NewFgsTrigger(ctx, \"test\", &flexibleengine.FgsTriggerArgs{\n\t\t\tFunctionUrn: pulumi.Any(functionUrn),\n\t\t\tType:        pulumi.String(\"DIS\"),\n\t\t\tStatus:      pulumi.String(\"ACTIVE\"),\n\t\t\tDis: &flexibleengine.FgsTriggerDisArgs{\n\t\t\t\tStreamName:       pulumi.Any(streamName),\n\t\t\t\tStartingPosition: pulumi.String(\"TRIM_HORIZON\"),\n\t\t\t\tMaxFetchBytes:    pulumi.Float64(2097152),\n\t\t\t\tPullPeriod:       pulumi.Float64(30000),\n\t\t\t\tSerialEnable:     pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FgsTrigger;\nimport com.pulumi.flexibleengine.FgsTriggerArgs;\nimport com.pulumi.flexibleengine.inputs.FgsTriggerDisArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var functionUrn = config.get(\"functionUrn\");\n        final var streamName = config.get(\"streamName\");\n        var test = new FgsTrigger(\"test\", FgsTriggerArgs.builder()\n            .functionUrn(functionUrn)\n            .type(\"DIS\")\n            .status(\"ACTIVE\")\n            .dis(FgsTriggerDisArgs.builder()\n                .streamName(streamName)\n                .startingPosition(\"TRIM_HORIZON\")\n                .maxFetchBytes(2097152)\n                .pullPeriod(30000)\n                .serialEnable(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  functionUrn:\n    type: dynamic\n  streamName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:FgsTrigger\n    properties:\n      functionUrn: ${functionUrn}\n      type: DIS\n      status: ACTIVE\n      dis:\n        streamName: ${streamName}\n        startingPosition: TRIM_HORIZON\n        maxFetchBytes: 2.097152e+06\n        pullPeriod: 30000\n        serialEnable: true\n```\n<!--End PulumiCodeChooser -->\n\n### Create a Shared APIG trigger\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst functionUrn = config.requireObject(\"functionUrn\");\nconst groupId = config.requireObject(\"groupId\");\nconst apiName = config.requireObject(\"apiName\");\nconst test = new flexibleengine.FgsTrigger(\"test\", {\n    functionUrn: functionUrn,\n    type: \"APIG\",\n    status: \"ACTIVE\",\n    apig: {\n        groupId: groupId,\n        apiName: apiName,\n        envName: \"RELEASE\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nfunction_urn = config.require_object(\"functionUrn\")\ngroup_id = config.require_object(\"groupId\")\napi_name = config.require_object(\"apiName\")\ntest = flexibleengine.FgsTrigger(\"test\",\n    function_urn=function_urn,\n    type=\"APIG\",\n    status=\"ACTIVE\",\n    apig={\n        \"group_id\": group_id,\n        \"api_name\": api_name,\n        \"env_name\": \"RELEASE\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var functionUrn = config.RequireObject<dynamic>(\"functionUrn\");\n    var groupId = config.RequireObject<dynamic>(\"groupId\");\n    var apiName = config.RequireObject<dynamic>(\"apiName\");\n    var test = new Flexibleengine.FgsTrigger(\"test\", new()\n    {\n        FunctionUrn = functionUrn,\n        Type = \"APIG\",\n        Status = \"ACTIVE\",\n        Apig = new Flexibleengine.Inputs.FgsTriggerApigArgs\n        {\n            GroupId = groupId,\n            ApiName = apiName,\n            EnvName = \"RELEASE\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tfunctionUrn := cfg.RequireObject(\"functionUrn\")\n\t\tgroupId := cfg.RequireObject(\"groupId\")\n\t\tapiName := cfg.RequireObject(\"apiName\")\n\t\t_, err := flexibleengine.NewFgsTrigger(ctx, \"test\", &flexibleengine.FgsTriggerArgs{\n\t\t\tFunctionUrn: pulumi.Any(functionUrn),\n\t\t\tType:        pulumi.String(\"APIG\"),\n\t\t\tStatus:      pulumi.String(\"ACTIVE\"),\n\t\t\tApig: &flexibleengine.FgsTriggerApigArgs{\n\t\t\t\tGroupId: pulumi.Any(groupId),\n\t\t\t\tApiName: pulumi.Any(apiName),\n\t\t\t\tEnvName: pulumi.String(\"RELEASE\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FgsTrigger;\nimport com.pulumi.flexibleengine.FgsTriggerArgs;\nimport com.pulumi.flexibleengine.inputs.FgsTriggerApigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var functionUrn = config.get(\"functionUrn\");\n        final var groupId = config.get(\"groupId\");\n        final var apiName = config.get(\"apiName\");\n        var test = new FgsTrigger(\"test\", FgsTriggerArgs.builder()\n            .functionUrn(functionUrn)\n            .type(\"APIG\")\n            .status(\"ACTIVE\")\n            .apig(FgsTriggerApigArgs.builder()\n                .groupId(groupId)\n                .apiName(apiName)\n                .envName(\"RELEASE\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  functionUrn:\n    type: dynamic\n  groupId:\n    type: dynamic\n  apiName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:FgsTrigger\n    properties:\n      functionUrn: ${functionUrn}\n      type: APIG\n      status: ACTIVE\n      apig:\n        groupId: ${groupId}\n        apiName: ${apiName}\n        envName: RELEASE\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "apig": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerApig:FgsTriggerApig",
          "description": "Specifies the configuration of the shared APIG trigger.\nChanging this will create a new trigger resource.\nThe apig object structure is documented below.\n\n<a name=\"fgs_trigger_timer\"></a>\nThe `timer` block supports:\n"
        },
        "dis": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerDis:FgsTriggerDis",
          "description": "Specifies the configuration of the DIS trigger.\nChanging this will create a new trigger resource.\nThe dis object structure is documented below.\n\n> **NOTE:** Specify an agency with DIS access permissions for the function version before you can create a DIS\ntrigger.\n"
        },
        "fgsTriggerId": {
          "type": "string",
          "description": "resource ID in UUID format.\n"
        },
        "functionUrn": {
          "type": "string",
          "description": "Specifies the Uniform Resource Name (URN) of the function.\nChanging this will create a new trigger resource.\n"
        },
        "kafka": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerKafka:FgsTriggerKafka"
        },
        "lts": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerLts:FgsTriggerLts"
        },
        "obs": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerObs:FgsTriggerObs",
          "description": "Specifies the configuration of the OBS trigger.\nChanging this will create a new trigger resource.\nThe obs object structure is documented below.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the trigger resource.\nIf omitted, the provider-level region will be used.\nChanging this will create a new trigger resource.\n"
        },
        "smn": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerSmn:FgsTriggerSmn",
          "description": "Specifies the configuration of the SMN trigger.\nChanging this will create a new trigger resource.\nThe smn object structure is documented below.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies whether trigger is enabled. The valid values are **ACTIVE** and **DISABLED**.\n\n> **NOTE:** Currently, SMN triggers do not support `status`, and OBS triggers do not support updating `status`.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerTimeouts:FgsTriggerTimeouts"
        },
        "timer": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerTimer:FgsTriggerTimer",
          "description": "Specifies the configuration of the timing trigger.\nChanging this will create a new trigger resource.\nThe timer object structure is documented below.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the function.\nThe valid values currently only support **TIMER**, **OBS**, **SMN**, **DIS**, and **APIG**.\nChanging this will create a new trigger resource.\n"
        }
      },
      "type": "object",
      "required": [
        "fgsTriggerId",
        "functionUrn",
        "region",
        "status",
        "type"
      ],
      "inputProperties": {
        "apig": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerApig:FgsTriggerApig",
          "description": "Specifies the configuration of the shared APIG trigger.\nChanging this will create a new trigger resource.\nThe apig object structure is documented below.\n\n<a name=\"fgs_trigger_timer\"></a>\nThe `timer` block supports:\n"
        },
        "dis": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerDis:FgsTriggerDis",
          "description": "Specifies the configuration of the DIS trigger.\nChanging this will create a new trigger resource.\nThe dis object structure is documented below.\n\n> **NOTE:** Specify an agency with DIS access permissions for the function version before you can create a DIS\ntrigger.\n"
        },
        "fgsTriggerId": {
          "type": "string",
          "description": "resource ID in UUID format.\n"
        },
        "functionUrn": {
          "type": "string",
          "description": "Specifies the Uniform Resource Name (URN) of the function.\nChanging this will create a new trigger resource.\n"
        },
        "kafka": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerKafka:FgsTriggerKafka"
        },
        "lts": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerLts:FgsTriggerLts"
        },
        "obs": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerObs:FgsTriggerObs",
          "description": "Specifies the configuration of the OBS trigger.\nChanging this will create a new trigger resource.\nThe obs object structure is documented below.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the trigger resource.\nIf omitted, the provider-level region will be used.\nChanging this will create a new trigger resource.\n"
        },
        "smn": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerSmn:FgsTriggerSmn",
          "description": "Specifies the configuration of the SMN trigger.\nChanging this will create a new trigger resource.\nThe smn object structure is documented below.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies whether trigger is enabled. The valid values are **ACTIVE** and **DISABLED**.\n\n> **NOTE:** Currently, SMN triggers do not support `status`, and OBS triggers do not support updating `status`.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerTimeouts:FgsTriggerTimeouts"
        },
        "timer": {
          "$ref": "#/types/flexibleengine:index%2FFgsTriggerTimer:FgsTriggerTimer",
          "description": "Specifies the configuration of the timing trigger.\nChanging this will create a new trigger resource.\nThe timer object structure is documented below.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the function.\nThe valid values currently only support **TIMER**, **OBS**, **SMN**, **DIS**, and **APIG**.\nChanging this will create a new trigger resource.\n"
        }
      },
      "requiredInputs": [
        "functionUrn",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FgsTrigger resources.\n",
        "properties": {
          "apig": {
            "$ref": "#/types/flexibleengine:index%2FFgsTriggerApig:FgsTriggerApig",
            "description": "Specifies the configuration of the shared APIG trigger.\nChanging this will create a new trigger resource.\nThe apig object structure is documented below.\n\n<a name=\"fgs_trigger_timer\"></a>\nThe `timer` block supports:\n"
          },
          "dis": {
            "$ref": "#/types/flexibleengine:index%2FFgsTriggerDis:FgsTriggerDis",
            "description": "Specifies the configuration of the DIS trigger.\nChanging this will create a new trigger resource.\nThe dis object structure is documented below.\n\n> **NOTE:** Specify an agency with DIS access permissions for the function version before you can create a DIS\ntrigger.\n"
          },
          "fgsTriggerId": {
            "type": "string",
            "description": "resource ID in UUID format.\n"
          },
          "functionUrn": {
            "type": "string",
            "description": "Specifies the Uniform Resource Name (URN) of the function.\nChanging this will create a new trigger resource.\n"
          },
          "kafka": {
            "$ref": "#/types/flexibleengine:index%2FFgsTriggerKafka:FgsTriggerKafka"
          },
          "lts": {
            "$ref": "#/types/flexibleengine:index%2FFgsTriggerLts:FgsTriggerLts"
          },
          "obs": {
            "$ref": "#/types/flexibleengine:index%2FFgsTriggerObs:FgsTriggerObs",
            "description": "Specifies the configuration of the OBS trigger.\nChanging this will create a new trigger resource.\nThe obs object structure is documented below.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the trigger resource.\nIf omitted, the provider-level region will be used.\nChanging this will create a new trigger resource.\n"
          },
          "smn": {
            "$ref": "#/types/flexibleengine:index%2FFgsTriggerSmn:FgsTriggerSmn",
            "description": "Specifies the configuration of the SMN trigger.\nChanging this will create a new trigger resource.\nThe smn object structure is documented below.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies whether trigger is enabled. The valid values are **ACTIVE** and **DISABLED**.\n\n> **NOTE:** Currently, SMN triggers do not support `status`, and OBS triggers do not support updating `status`.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FFgsTriggerTimeouts:FgsTriggerTimeouts"
          },
          "timer": {
            "$ref": "#/types/flexibleengine:index%2FFgsTriggerTimer:FgsTriggerTimer",
            "description": "Specifies the configuration of the timing trigger.\nChanging this will create a new trigger resource.\nThe timer object structure is documented below.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the type of the function.\nThe valid values currently only support **TIMER**, **OBS**, **SMN**, **DIS**, and **APIG**.\nChanging this will create a new trigger resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/fwFirewallGroupV2:FwFirewallGroupV2": {
      "description": "Manages a v2 firewall group resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst rule1 = new flexibleengine.FwRuleV2(\"rule1\", {\n    description: \"drop TELNET traffic\",\n    action: \"deny\",\n    protocol: \"tcp\",\n    destinationPort: \"23\",\n    enabled: true,\n});\nconst rule2 = new flexibleengine.FwRuleV2(\"rule2\", {\n    description: \"drop NTP traffic\",\n    action: \"deny\",\n    protocol: \"udp\",\n    destinationPort: \"123\",\n    enabled: false,\n});\nconst policy1 = new flexibleengine.FwPolicyV2(\"policy1\", {rules: [\n    rule1.fwRuleV2Id,\n    rule2.fwRuleV2Id,\n]});\nconst firewallGroup1 = new flexibleengine.FwFirewallGroupV2(\"firewallGroup1\", {ingressPolicyId: policy1.fwPolicyV2Id});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nrule1 = flexibleengine.FwRuleV2(\"rule1\",\n    description=\"drop TELNET traffic\",\n    action=\"deny\",\n    protocol=\"tcp\",\n    destination_port=\"23\",\n    enabled=True)\nrule2 = flexibleengine.FwRuleV2(\"rule2\",\n    description=\"drop NTP traffic\",\n    action=\"deny\",\n    protocol=\"udp\",\n    destination_port=\"123\",\n    enabled=False)\npolicy1 = flexibleengine.FwPolicyV2(\"policy1\", rules=[\n    rule1.fw_rule_v2_id,\n    rule2.fw_rule_v2_id,\n])\nfirewall_group1 = flexibleengine.FwFirewallGroupV2(\"firewallGroup1\", ingress_policy_id=policy1.fw_policy_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule1 = new Flexibleengine.FwRuleV2(\"rule1\", new()\n    {\n        Description = \"drop TELNET traffic\",\n        Action = \"deny\",\n        Protocol = \"tcp\",\n        DestinationPort = \"23\",\n        Enabled = true,\n    });\n\n    var rule2 = new Flexibleengine.FwRuleV2(\"rule2\", new()\n    {\n        Description = \"drop NTP traffic\",\n        Action = \"deny\",\n        Protocol = \"udp\",\n        DestinationPort = \"123\",\n        Enabled = false,\n    });\n\n    var policy1 = new Flexibleengine.FwPolicyV2(\"policy1\", new()\n    {\n        Rules = new[]\n        {\n            rule1.FwRuleV2Id,\n            rule2.FwRuleV2Id,\n        },\n    });\n\n    var firewallGroup1 = new Flexibleengine.FwFirewallGroupV2(\"firewallGroup1\", new()\n    {\n        IngressPolicyId = policy1.FwPolicyV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trule1, err := flexibleengine.NewFwRuleV2(ctx, \"rule1\", &flexibleengine.FwRuleV2Args{\n\t\t\tDescription:     pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction:          pulumi.String(\"deny\"),\n\t\t\tProtocol:        pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := flexibleengine.NewFwRuleV2(ctx, \"rule2\", &flexibleengine.FwRuleV2Args{\n\t\t\tDescription:     pulumi.String(\"drop NTP traffic\"),\n\t\t\tAction:          pulumi.String(\"deny\"),\n\t\t\tProtocol:        pulumi.String(\"udp\"),\n\t\t\tDestinationPort: pulumi.String(\"123\"),\n\t\t\tEnabled:         pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy1, err := flexibleengine.NewFwPolicyV2(ctx, \"policy1\", &flexibleengine.FwPolicyV2Args{\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule1.FwRuleV2Id,\n\t\t\t\trule2.FwRuleV2Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewFwFirewallGroupV2(ctx, \"firewallGroup1\", &flexibleengine.FwFirewallGroupV2Args{\n\t\t\tIngressPolicyId: policy1.FwPolicyV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FwRuleV2;\nimport com.pulumi.flexibleengine.FwRuleV2Args;\nimport com.pulumi.flexibleengine.FwPolicyV2;\nimport com.pulumi.flexibleengine.FwPolicyV2Args;\nimport com.pulumi.flexibleengine.FwFirewallGroupV2;\nimport com.pulumi.flexibleengine.FwFirewallGroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rule1 = new FwRuleV2(\"rule1\", FwRuleV2Args.builder()\n            .description(\"drop TELNET traffic\")\n            .action(\"deny\")\n            .protocol(\"tcp\")\n            .destinationPort(\"23\")\n            .enabled(\"true\")\n            .build());\n\n        var rule2 = new FwRuleV2(\"rule2\", FwRuleV2Args.builder()\n            .description(\"drop NTP traffic\")\n            .action(\"deny\")\n            .protocol(\"udp\")\n            .destinationPort(\"123\")\n            .enabled(\"false\")\n            .build());\n\n        var policy1 = new FwPolicyV2(\"policy1\", FwPolicyV2Args.builder()\n            .rules(            \n                rule1.fwRuleV2Id(),\n                rule2.fwRuleV2Id())\n            .build());\n\n        var firewallGroup1 = new FwFirewallGroupV2(\"firewallGroup1\", FwFirewallGroupV2Args.builder()\n            .ingressPolicyId(policy1.fwPolicyV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule1:\n    type: flexibleengine:FwRuleV2\n    properties:\n      description: drop TELNET traffic\n      action: deny\n      protocol: tcp\n      destinationPort: '23'\n      enabled: 'true'\n  rule2:\n    type: flexibleengine:FwRuleV2\n    properties:\n      description: drop NTP traffic\n      action: deny\n      protocol: udp\n      destinationPort: '123'\n      enabled: 'false'\n  policy1:\n    type: flexibleengine:FwPolicyV2\n    properties:\n      rules:\n        - ${rule1.fwRuleV2Id}\n        - ${rule2.fwRuleV2Id}\n  firewallGroup1:\n    type: flexibleengine:FwFirewallGroupV2\n    properties:\n      ingressPolicyId: ${policy1.fwPolicyV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFirewall Groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/fwFirewallGroupV2:FwFirewallGroupV2 firewall_group_1 c9e39fb2-ce20-46c8-a964-25f3898c7a97\n```\n\n",
      "properties": {
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "description": {
          "type": "string",
          "description": "A description for the firewall group. Changing this\nupdates the `description` of an existing firewall group.\n"
        },
        "egressPolicyId": {
          "type": "string",
          "description": "The egress policy resource id for the firewall group. Changing\nthis updates the `egress_policy_id` of an existing firewall group.\n"
        },
        "fwFirewallGroupV2Id": {
          "type": "string",
          "description": "The ID of the firewall group.\n"
        },
        "ingressPolicyId": {
          "type": "string",
          "description": "The ingress policy resource id for the firewall group. Changing\nthis updates the `ingress_policy_id` of an existing firewall group.\n"
        },
        "name": {
          "type": "string",
          "description": "A name for the firewall group. Changing this\nupdates the `name` of an existing firewall group.\n"
        },
        "ports": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The ports associated with this firewall group instance.\nMust be a list of strings. Changing this updates the associated routers of an existing firewall group.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FFwFirewallGroupV2Timeouts:FwFirewallGroupV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "deprecationMessage": "Deprecated"
        }
      },
      "type": "object",
      "required": [
        "fwFirewallGroupV2Id",
        "name",
        "ports",
        "region",
        "tenantId"
      ],
      "inputProperties": {
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "description": {
          "type": "string",
          "description": "A description for the firewall group. Changing this\nupdates the `description` of an existing firewall group.\n"
        },
        "egressPolicyId": {
          "type": "string",
          "description": "The egress policy resource id for the firewall group. Changing\nthis updates the `egress_policy_id` of an existing firewall group.\n"
        },
        "fwFirewallGroupV2Id": {
          "type": "string",
          "description": "The ID of the firewall group.\n"
        },
        "ingressPolicyId": {
          "type": "string",
          "description": "The ingress policy resource id for the firewall group. Changing\nthis updates the `ingress_policy_id` of an existing firewall group.\n"
        },
        "name": {
          "type": "string",
          "description": "A name for the firewall group. Changing this\nupdates the `name` of an existing firewall group.\n"
        },
        "ports": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The ports associated with this firewall group instance.\nMust be a list of strings. Changing this updates the associated routers of an existing firewall group.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FFwFirewallGroupV2Timeouts:FwFirewallGroupV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "deprecationMessage": "Deprecated"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FwFirewallGroupV2 resources.\n",
        "properties": {
          "adminStateUp": {
            "type": "boolean",
            "deprecationMessage": "Deprecated"
          },
          "description": {
            "type": "string",
            "description": "A description for the firewall group. Changing this\nupdates the `description` of an existing firewall group.\n"
          },
          "egressPolicyId": {
            "type": "string",
            "description": "The egress policy resource id for the firewall group. Changing\nthis updates the `egress_policy_id` of an existing firewall group.\n"
          },
          "fwFirewallGroupV2Id": {
            "type": "string",
            "description": "The ID of the firewall group.\n"
          },
          "ingressPolicyId": {
            "type": "string",
            "description": "The ingress policy resource id for the firewall group. Changing\nthis updates the `ingress_policy_id` of an existing firewall group.\n"
          },
          "name": {
            "type": "string",
            "description": "A name for the firewall group. Changing this\nupdates the `name` of an existing firewall group.\n"
          },
          "ports": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The ports associated with this firewall group instance.\nMust be a list of strings. Changing this updates the associated routers of an existing firewall group.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
          },
          "tenantId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FFwFirewallGroupV2Timeouts:FwFirewallGroupV2Timeouts"
          },
          "valueSpecs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "deprecationMessage": "Deprecated"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/fwPolicyV2:FwPolicyV2": {
      "description": "Manages a v2 firewall policy resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst rule1 = new flexibleengine.FwRuleV2(\"rule1\", {\n    description: \"drop TELNET traffic\",\n    action: \"deny\",\n    protocol: \"tcp\",\n    destinationPort: \"23\",\n    enabled: true,\n});\nconst rule2 = new flexibleengine.FwRuleV2(\"rule2\", {\n    description: \"drop NTP traffic\",\n    action: \"deny\",\n    protocol: \"udp\",\n    destinationPort: \"123\",\n    enabled: false,\n});\nconst policy1 = new flexibleengine.FwPolicyV2(\"policy1\", {rules: [\n    rule1.fwRuleV2Id,\n    rule2.fwRuleV2Id,\n]});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nrule1 = flexibleengine.FwRuleV2(\"rule1\",\n    description=\"drop TELNET traffic\",\n    action=\"deny\",\n    protocol=\"tcp\",\n    destination_port=\"23\",\n    enabled=True)\nrule2 = flexibleengine.FwRuleV2(\"rule2\",\n    description=\"drop NTP traffic\",\n    action=\"deny\",\n    protocol=\"udp\",\n    destination_port=\"123\",\n    enabled=False)\npolicy1 = flexibleengine.FwPolicyV2(\"policy1\", rules=[\n    rule1.fw_rule_v2_id,\n    rule2.fw_rule_v2_id,\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule1 = new Flexibleengine.FwRuleV2(\"rule1\", new()\n    {\n        Description = \"drop TELNET traffic\",\n        Action = \"deny\",\n        Protocol = \"tcp\",\n        DestinationPort = \"23\",\n        Enabled = true,\n    });\n\n    var rule2 = new Flexibleengine.FwRuleV2(\"rule2\", new()\n    {\n        Description = \"drop NTP traffic\",\n        Action = \"deny\",\n        Protocol = \"udp\",\n        DestinationPort = \"123\",\n        Enabled = false,\n    });\n\n    var policy1 = new Flexibleengine.FwPolicyV2(\"policy1\", new()\n    {\n        Rules = new[]\n        {\n            rule1.FwRuleV2Id,\n            rule2.FwRuleV2Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trule1, err := flexibleengine.NewFwRuleV2(ctx, \"rule1\", &flexibleengine.FwRuleV2Args{\n\t\t\tDescription:     pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction:          pulumi.String(\"deny\"),\n\t\t\tProtocol:        pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := flexibleengine.NewFwRuleV2(ctx, \"rule2\", &flexibleengine.FwRuleV2Args{\n\t\t\tDescription:     pulumi.String(\"drop NTP traffic\"),\n\t\t\tAction:          pulumi.String(\"deny\"),\n\t\t\tProtocol:        pulumi.String(\"udp\"),\n\t\t\tDestinationPort: pulumi.String(\"123\"),\n\t\t\tEnabled:         pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewFwPolicyV2(ctx, \"policy1\", &flexibleengine.FwPolicyV2Args{\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule1.FwRuleV2Id,\n\t\t\t\trule2.FwRuleV2Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FwRuleV2;\nimport com.pulumi.flexibleengine.FwRuleV2Args;\nimport com.pulumi.flexibleengine.FwPolicyV2;\nimport com.pulumi.flexibleengine.FwPolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rule1 = new FwRuleV2(\"rule1\", FwRuleV2Args.builder()\n            .description(\"drop TELNET traffic\")\n            .action(\"deny\")\n            .protocol(\"tcp\")\n            .destinationPort(\"23\")\n            .enabled(\"true\")\n            .build());\n\n        var rule2 = new FwRuleV2(\"rule2\", FwRuleV2Args.builder()\n            .description(\"drop NTP traffic\")\n            .action(\"deny\")\n            .protocol(\"udp\")\n            .destinationPort(\"123\")\n            .enabled(\"false\")\n            .build());\n\n        var policy1 = new FwPolicyV2(\"policy1\", FwPolicyV2Args.builder()\n            .rules(            \n                rule1.fwRuleV2Id(),\n                rule2.fwRuleV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule1:\n    type: flexibleengine:FwRuleV2\n    properties:\n      description: drop TELNET traffic\n      action: deny\n      protocol: tcp\n      destinationPort: '23'\n      enabled: 'true'\n  rule2:\n    type: flexibleengine:FwRuleV2\n    properties:\n      description: drop NTP traffic\n      action: deny\n      protocol: udp\n      destinationPort: '123'\n      enabled: 'false'\n  policy1:\n    type: flexibleengine:FwPolicyV2\n    properties:\n      rules:\n        - ${rule1.fwRuleV2Id}\n        - ${rule2.fwRuleV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFirewall Policies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/fwPolicyV2:FwPolicyV2 policy_1 07f422e6-c596-474b-8b94-fe2c12506ce0\n```\n\n",
      "properties": {
        "audited": {
          "type": "boolean",
          "description": "Audit status of the firewall policy\n(must be \"true\" or \"false\" if provided - defaults to \"false\").\nThis status is set to \"false\" whenever the firewall policy or any of its\nrules are changed. Changing this updates the `audited` status of an existing\nfirewall policy.\n"
        },
        "description": {
          "type": "string",
          "description": "A description for the firewall policy. Changing\nthis updates the `description` of an existing firewall policy.\n"
        },
        "fwPolicyV2Id": {
          "type": "string",
          "description": "The ID of the policy.\n"
        },
        "name": {
          "type": "string",
          "description": "A name for the firewall policy. Changing this\nupdates the `name` of an existing firewall policy.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "rules": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more firewall rules that comprise\nthe policy. Changing this results in adding/removing rules from the\nexisting firewall policy.\n"
        },
        "shared": {
          "type": "boolean",
          "description": "Sharing status of the firewall policy (must be \"true\"\nor \"false\" if provided). If this is \"true\" the policy is visible to, and\ncan be used in, firewalls in other tenants. Changing this updates the\n`shared` status of an existing firewall policy. Only administrative users\ncan specify if the policy should be shared.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FFwPolicyV2Timeouts:FwPolicyV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "deprecationMessage": "Deprecated"
        }
      },
      "type": "object",
      "required": [
        "fwPolicyV2Id",
        "name",
        "region",
        "tenantId"
      ],
      "inputProperties": {
        "audited": {
          "type": "boolean",
          "description": "Audit status of the firewall policy\n(must be \"true\" or \"false\" if provided - defaults to \"false\").\nThis status is set to \"false\" whenever the firewall policy or any of its\nrules are changed. Changing this updates the `audited` status of an existing\nfirewall policy.\n"
        },
        "description": {
          "type": "string",
          "description": "A description for the firewall policy. Changing\nthis updates the `description` of an existing firewall policy.\n"
        },
        "fwPolicyV2Id": {
          "type": "string",
          "description": "The ID of the policy.\n"
        },
        "name": {
          "type": "string",
          "description": "A name for the firewall policy. Changing this\nupdates the `name` of an existing firewall policy.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "rules": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more firewall rules that comprise\nthe policy. Changing this results in adding/removing rules from the\nexisting firewall policy.\n"
        },
        "shared": {
          "type": "boolean",
          "description": "Sharing status of the firewall policy (must be \"true\"\nor \"false\" if provided). If this is \"true\" the policy is visible to, and\ncan be used in, firewalls in other tenants. Changing this updates the\n`shared` status of an existing firewall policy. Only administrative users\ncan specify if the policy should be shared.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FFwPolicyV2Timeouts:FwPolicyV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "deprecationMessage": "Deprecated"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FwPolicyV2 resources.\n",
        "properties": {
          "audited": {
            "type": "boolean",
            "description": "Audit status of the firewall policy\n(must be \"true\" or \"false\" if provided - defaults to \"false\").\nThis status is set to \"false\" whenever the firewall policy or any of its\nrules are changed. Changing this updates the `audited` status of an existing\nfirewall policy.\n"
          },
          "description": {
            "type": "string",
            "description": "A description for the firewall policy. Changing\nthis updates the `description` of an existing firewall policy.\n"
          },
          "fwPolicyV2Id": {
            "type": "string",
            "description": "The ID of the policy.\n"
          },
          "name": {
            "type": "string",
            "description": "A name for the firewall policy. Changing this\nupdates the `name` of an existing firewall policy.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of one or more firewall rules that comprise\nthe policy. Changing this results in adding/removing rules from the\nexisting firewall policy.\n"
          },
          "shared": {
            "type": "boolean",
            "description": "Sharing status of the firewall policy (must be \"true\"\nor \"false\" if provided). If this is \"true\" the policy is visible to, and\ncan be used in, firewalls in other tenants. Changing this updates the\n`shared` status of an existing firewall policy. Only administrative users\ncan specify if the policy should be shared.\n"
          },
          "tenantId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FFwPolicyV2Timeouts:FwPolicyV2Timeouts"
          },
          "valueSpecs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "deprecationMessage": "Deprecated"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/fwRuleV2:FwRuleV2": {
      "description": "Manages a v2 firewall rule resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst rule1 = new flexibleengine.FwRuleV2(\"rule1\", {\n    action: \"deny\",\n    description: \"drop TELNET traffic\",\n    destinationPort: \"23\",\n    enabled: true,\n    protocol: \"tcp\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nrule1 = flexibleengine.FwRuleV2(\"rule1\",\n    action=\"deny\",\n    description=\"drop TELNET traffic\",\n    destination_port=\"23\",\n    enabled=True,\n    protocol=\"tcp\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule1 = new Flexibleengine.FwRuleV2(\"rule1\", new()\n    {\n        Action = \"deny\",\n        Description = \"drop TELNET traffic\",\n        DestinationPort = \"23\",\n        Enabled = true,\n        Protocol = \"tcp\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewFwRuleV2(ctx, \"rule1\", &flexibleengine.FwRuleV2Args{\n\t\t\tAction:          pulumi.String(\"deny\"),\n\t\t\tDescription:     pulumi.String(\"drop TELNET traffic\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled:         pulumi.Bool(true),\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\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FwRuleV2;\nimport com.pulumi.flexibleengine.FwRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rule1 = new FwRuleV2(\"rule1\", FwRuleV2Args.builder()\n            .action(\"deny\")\n            .description(\"drop TELNET traffic\")\n            .destinationPort(\"23\")\n            .enabled(\"true\")\n            .protocol(\"tcp\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule1:\n    type: flexibleengine:FwRuleV2\n    properties:\n      action: deny\n      description: drop TELNET traffic\n      destinationPort: '23'\n      enabled: 'true'\n      protocol: tcp\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFirewall Rules can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/fwRuleV2:FwRuleV2 rule_1 8dbc0c28-e49c-463f-b712-5c5d1bbac327\n```\n\n",
      "properties": {
        "action": {
          "type": "string",
          "description": "Action to be taken ( must be \"allow\" or \"deny\") when the\nfirewall rule matches. Changing this updates the `action` of an existing\nfirewall rule.\n"
        },
        "description": {
          "type": "string",
          "description": "A description for the firewall rule. Changing this\nupdates the `description` of an existing firewall rule.\n"
        },
        "destinationIpAddress": {
          "type": "string",
          "description": "The destination IP address on which the\nfirewall rule operates. Changing this updates the `destination_ip_address`\nof an existing firewall rule.\n"
        },
        "destinationPort": {
          "type": "string",
          "description": "The destination port on which the firewall\nrule operates. Changing this updates the `destination_port` of an existing\nfirewall rule.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Enabled status for the firewall rule (must be \"true\"\nor \"false\" if provided - defaults to \"true\"). Changing this updates the\n`enabled` status of an existing firewall rule.\n"
        },
        "fwRuleV2Id": {
          "type": "string",
          "description": "The ID of the rule.\n"
        },
        "ipVersion": {
          "type": "number",
          "description": "IP version, either 4 (default) or 6. Changing this\nupdates the `ip_version` of an existing firewall rule.\n"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the firewall rule. Changing this\nupdates the `name` of an existing firewall rule.\n"
        },
        "protocol": {
          "type": "string",
          "description": "The protocol type on which the firewall rule operates.\nValid values are: `tcp`, `udp`, `icmp`, and `any`. Changing this updates the\n`protocol` of an existing firewall rule.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the v2 networking client.\nA Compute client is needed to create a firewall rule. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nfirewall rule.\n"
        },
        "sourceIpAddress": {
          "type": "string",
          "description": "The source IP address on which the firewall\nrule operates. Changing this updates the `source_ip_address` of an existing\nfirewall rule.\n"
        },
        "sourcePort": {
          "type": "string",
          "description": "The source port on which the firewall\nrule operates. Changing this updates the `source_port` of an existing\nfirewall rule.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "deprecationMessage": "Deprecated"
        }
      },
      "type": "object",
      "required": [
        "action",
        "fwRuleV2Id",
        "name",
        "protocol",
        "region"
      ],
      "inputProperties": {
        "action": {
          "type": "string",
          "description": "Action to be taken ( must be \"allow\" or \"deny\") when the\nfirewall rule matches. Changing this updates the `action` of an existing\nfirewall rule.\n"
        },
        "description": {
          "type": "string",
          "description": "A description for the firewall rule. Changing this\nupdates the `description` of an existing firewall rule.\n"
        },
        "destinationIpAddress": {
          "type": "string",
          "description": "The destination IP address on which the\nfirewall rule operates. Changing this updates the `destination_ip_address`\nof an existing firewall rule.\n"
        },
        "destinationPort": {
          "type": "string",
          "description": "The destination port on which the firewall\nrule operates. Changing this updates the `destination_port` of an existing\nfirewall rule.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Enabled status for the firewall rule (must be \"true\"\nor \"false\" if provided - defaults to \"true\"). Changing this updates the\n`enabled` status of an existing firewall rule.\n"
        },
        "fwRuleV2Id": {
          "type": "string",
          "description": "The ID of the rule.\n"
        },
        "ipVersion": {
          "type": "number",
          "description": "IP version, either 4 (default) or 6. Changing this\nupdates the `ip_version` of an existing firewall rule.\n"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the firewall rule. Changing this\nupdates the `name` of an existing firewall rule.\n"
        },
        "protocol": {
          "type": "string",
          "description": "The protocol type on which the firewall rule operates.\nValid values are: `tcp`, `udp`, `icmp`, and `any`. Changing this updates the\n`protocol` of an existing firewall rule.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the v2 networking client.\nA Compute client is needed to create a firewall rule. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nfirewall rule.\n"
        },
        "sourceIpAddress": {
          "type": "string",
          "description": "The source IP address on which the firewall\nrule operates. Changing this updates the `source_ip_address` of an existing\nfirewall rule.\n"
        },
        "sourcePort": {
          "type": "string",
          "description": "The source port on which the firewall\nrule operates. Changing this updates the `source_port` of an existing\nfirewall rule.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "deprecationMessage": "Deprecated"
        }
      },
      "requiredInputs": [
        "action",
        "protocol"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FwRuleV2 resources.\n",
        "properties": {
          "action": {
            "type": "string",
            "description": "Action to be taken ( must be \"allow\" or \"deny\") when the\nfirewall rule matches. Changing this updates the `action` of an existing\nfirewall rule.\n"
          },
          "description": {
            "type": "string",
            "description": "A description for the firewall rule. Changing this\nupdates the `description` of an existing firewall rule.\n"
          },
          "destinationIpAddress": {
            "type": "string",
            "description": "The destination IP address on which the\nfirewall rule operates. Changing this updates the `destination_ip_address`\nof an existing firewall rule.\n"
          },
          "destinationPort": {
            "type": "string",
            "description": "The destination port on which the firewall\nrule operates. Changing this updates the `destination_port` of an existing\nfirewall rule.\n"
          },
          "enabled": {
            "type": "boolean",
            "description": "Enabled status for the firewall rule (must be \"true\"\nor \"false\" if provided - defaults to \"true\"). Changing this updates the\n`enabled` status of an existing firewall rule.\n"
          },
          "fwRuleV2Id": {
            "type": "string",
            "description": "The ID of the rule.\n"
          },
          "ipVersion": {
            "type": "number",
            "description": "IP version, either 4 (default) or 6. Changing this\nupdates the `ip_version` of an existing firewall rule.\n"
          },
          "name": {
            "type": "string",
            "description": "A unique name for the firewall rule. Changing this\nupdates the `name` of an existing firewall rule.\n"
          },
          "protocol": {
            "type": "string",
            "description": "The protocol type on which the firewall rule operates.\nValid values are: `tcp`, `udp`, `icmp`, and `any`. Changing this updates the\n`protocol` of an existing firewall rule.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the v2 networking client.\nA Compute client is needed to create a firewall rule. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nfirewall rule.\n"
          },
          "sourceIpAddress": {
            "type": "string",
            "description": "The source IP address on which the firewall\nrule operates. Changing this updates the `source_ip_address` of an existing\nfirewall rule.\n"
          },
          "sourcePort": {
            "type": "string",
            "description": "The source port on which the firewall\nrule operates. Changing this updates the `source_port` of an existing\nfirewall rule.\n"
          },
          "tenantId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "valueSpecs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "deprecationMessage": "Deprecated"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/gaussdbCassandraInstance:GaussdbCassandraInstance": {
      "description": "GaussDB for Cassandra instance management within FlexibleEngine.\n\n## Example Usage\n\n### create a gaussdb for cassandra instance with tags\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst instance1 = new flexibleengine.GaussdbCassandraInstance(\"instance1\", {\n    password: _var.password,\n    flavor: \"geminidb.cassandra.xlarge.4\",\n    volumeSize: 100,\n    vpcId: _var.vpc_id,\n    subnetId: _var.subnet_id,\n    securityGroupId: _var.secgroup_id,\n    availabilityZone: _var.availability_zone,\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ninstance1 = flexibleengine.GaussdbCassandraInstance(\"instance1\",\n    password=var[\"password\"],\n    flavor=\"geminidb.cassandra.xlarge.4\",\n    volume_size=100,\n    vpc_id=var[\"vpc_id\"],\n    subnet_id=var[\"subnet_id\"],\n    security_group_id=var[\"secgroup_id\"],\n    availability_zone=var[\"availability_zone\"],\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Flexibleengine.GaussdbCassandraInstance(\"instance1\", new()\n    {\n        Password = @var.Password,\n        Flavor = \"geminidb.cassandra.xlarge.4\",\n        VolumeSize = 100,\n        VpcId = @var.Vpc_id,\n        SubnetId = @var.Subnet_id,\n        SecurityGroupId = @var.Secgroup_id,\n        AvailabilityZone = @var.Availability_zone,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewGaussdbCassandraInstance(ctx, \"instance1\", &flexibleengine.GaussdbCassandraInstanceArgs{\n\t\t\tPassword:         pulumi.Any(_var.Password),\n\t\t\tFlavor:           pulumi.String(\"geminidb.cassandra.xlarge.4\"),\n\t\t\tVolumeSize:       pulumi.Float64(100),\n\t\t\tVpcId:            pulumi.Any(_var.Vpc_id),\n\t\t\tSubnetId:         pulumi.Any(_var.Subnet_id),\n\t\t\tSecurityGroupId:  pulumi.Any(_var.Secgroup_id),\n\t\t\tAvailabilityZone: pulumi.Any(_var.Availability_zone),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.GaussdbCassandraInstance;\nimport com.pulumi.flexibleengine.GaussdbCassandraInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new GaussdbCassandraInstance(\"instance1\", GaussdbCassandraInstanceArgs.builder()\n            .password(var_.password())\n            .flavor(\"geminidb.cassandra.xlarge.4\")\n            .volumeSize(100)\n            .vpcId(var_.vpc_id())\n            .subnetId(var_.subnet_id())\n            .securityGroupId(var_.secgroup_id())\n            .availabilityZone(var_.availability_zone())\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: flexibleengine:GaussdbCassandraInstance\n    properties:\n      password: ${var.password}\n      flavor: geminidb.cassandra.xlarge.4\n      volumeSize: 100\n      vpcId: ${var.vpc_id}\n      subnetId: ${var.subnet_id}\n      securityGroupId: ${var.secgroup_id}\n      availabilityZone: ${var.availability_zone}\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### create a gaussdb cassandra instance with backup strategy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst instance1 = new flexibleengine.GaussdbCassandraInstance(\"instance1\", {\n    password: _var.password,\n    flavor: \"geminidb.cassandra.xlarge.4\",\n    volumeSize: 100,\n    vpcId: _var.vpc_id,\n    subnetId: _var.subnet_id,\n    securityGroupId: _var.secgroup_id,\n    availabilityZone: _var.availability_zone,\n    backupStrategy: {\n        startTime: \"03:00-04:00\",\n        keepDays: 14,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ninstance1 = flexibleengine.GaussdbCassandraInstance(\"instance1\",\n    password=var[\"password\"],\n    flavor=\"geminidb.cassandra.xlarge.4\",\n    volume_size=100,\n    vpc_id=var[\"vpc_id\"],\n    subnet_id=var[\"subnet_id\"],\n    security_group_id=var[\"secgroup_id\"],\n    availability_zone=var[\"availability_zone\"],\n    backup_strategy={\n        \"start_time\": \"03:00-04:00\",\n        \"keep_days\": 14,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Flexibleengine.GaussdbCassandraInstance(\"instance1\", new()\n    {\n        Password = @var.Password,\n        Flavor = \"geminidb.cassandra.xlarge.4\",\n        VolumeSize = 100,\n        VpcId = @var.Vpc_id,\n        SubnetId = @var.Subnet_id,\n        SecurityGroupId = @var.Secgroup_id,\n        AvailabilityZone = @var.Availability_zone,\n        BackupStrategy = new Flexibleengine.Inputs.GaussdbCassandraInstanceBackupStrategyArgs\n        {\n            StartTime = \"03:00-04:00\",\n            KeepDays = 14,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewGaussdbCassandraInstance(ctx, \"instance1\", &flexibleengine.GaussdbCassandraInstanceArgs{\n\t\t\tPassword:         pulumi.Any(_var.Password),\n\t\t\tFlavor:           pulumi.String(\"geminidb.cassandra.xlarge.4\"),\n\t\t\tVolumeSize:       pulumi.Float64(100),\n\t\t\tVpcId:            pulumi.Any(_var.Vpc_id),\n\t\t\tSubnetId:         pulumi.Any(_var.Subnet_id),\n\t\t\tSecurityGroupId:  pulumi.Any(_var.Secgroup_id),\n\t\t\tAvailabilityZone: pulumi.Any(_var.Availability_zone),\n\t\t\tBackupStrategy: &flexibleengine.GaussdbCassandraInstanceBackupStrategyArgs{\n\t\t\t\tStartTime: pulumi.String(\"03:00-04:00\"),\n\t\t\t\tKeepDays:  pulumi.Float64(14),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.GaussdbCassandraInstance;\nimport com.pulumi.flexibleengine.GaussdbCassandraInstanceArgs;\nimport com.pulumi.flexibleengine.inputs.GaussdbCassandraInstanceBackupStrategyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new GaussdbCassandraInstance(\"instance1\", GaussdbCassandraInstanceArgs.builder()\n            .password(var_.password())\n            .flavor(\"geminidb.cassandra.xlarge.4\")\n            .volumeSize(100)\n            .vpcId(var_.vpc_id())\n            .subnetId(var_.subnet_id())\n            .securityGroupId(var_.secgroup_id())\n            .availabilityZone(var_.availability_zone())\n            .backupStrategy(GaussdbCassandraInstanceBackupStrategyArgs.builder()\n                .startTime(\"03:00-04:00\")\n                .keepDays(14)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: flexibleengine:GaussdbCassandraInstance\n    properties:\n      password: ${var.password}\n      flavor: geminidb.cassandra.xlarge.4\n      volumeSize: 100\n      vpcId: ${var.vpc_id}\n      subnetId: ${var.subnet_id}\n      securityGroupId: ${var.secgroup_id}\n      availabilityZone: ${var.availability_zone}\n      backupStrategy:\n        startTime: 03:00-04:00\n        keepDays: 14\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nGaussDB Cassandra instance can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/gaussdbCassandraInstance:GaussdbCassandraInstance instance_1 2e045d8b-b226-4aa2-91b9-7e76357655c06\n```\n\n",
      "properties": {
        "autoRenew": {
          "type": "string"
        },
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the AZ name. For a three-AZ deployment instance,\nuse commas (,) to separate the AZs, for example, `cn-north-4a,cn-north-4b,cn-north-4c`.\nChanging this parameter will create a new resource.\n"
        },
        "backupStrategy": {
          "$ref": "#/types/flexibleengine:index%2FGaussdbCassandraInstanceBackupStrategy:GaussdbCassandraInstanceBackupStrategy",
          "description": "Specifies the advanced backup policy. The backup_strategy\nobject structure is documented below.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "configurationId": {
          "type": "string",
          "description": "Specifies the Parameter Template ID.\n"
        },
        "datastore": {
          "$ref": "#/types/flexibleengine:index%2FGaussdbCassandraInstanceDatastore:GaussdbCassandraInstanceDatastore",
          "description": "Specifies the database information. The datastore\nobject structure is documented below. Changing this parameter will create a new resource.\n"
        },
        "dbUserName": {
          "type": "string",
          "description": "Indicates the default username.\n"
        },
        "dedicatedResourceId": {
          "type": "string"
        },
        "dedicatedResourceName": {
          "type": "string"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the instance specifications. For details,\nsee [DB Instance Specifications](https://docs.prod-cloud-ocb.orange-business.com/usermanual/nosql/nosql_05_0017.html)\n"
        },
        "forceImport": {
          "type": "boolean",
          "description": "If specified, try to import the instance instead of creating if the name already\nexisted.\n"
        },
        "gaussdbCassandraInstanceId": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "lbIpAddress": {
          "type": "string",
          "description": "Indicates the LB IP address of the db.\n"
        },
        "lbPort": {
          "type": "string",
          "description": "Indicates the LB port of the db.\n"
        },
        "mode": {
          "type": "string",
          "description": "Indicates the instance type.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the instance name, which can be the same as an existing instance name. The value\nmust be 4 to 64 characters in length and start with a letter. It is case-sensitive and can contain only letters,\ndigits, hyphens (-), and underscores (_).\n"
        },
        "nodeNum": {
          "type": "number",
          "description": "Specifies the number of nodes, ranges from 3 to 12. Defaults to 3.\n"
        },
        "nodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FGaussdbCassandraInstanceNode:GaussdbCassandraInstanceNode"
          },
          "description": "Indicates the instance nodes information. The nodes object structure is documented below.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the database password. The value must be 8 to 32 characters in length,\nincluding uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are advised to\nenter a strong password to improve security, preventing security risks such as brute force cracking.\n",
          "secret": true
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "port": {
          "type": "number",
          "description": "Indicates the database port.\n"
        },
        "privateIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the IP address list of the db.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the Cassandra instance resource. If omitted, the\nprovider-level region will be used. Changing this creates a new Cassandra instance resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the security group ID. Required if the selected subnet doesn't\nenable network ACL.\n"
        },
        "ssl": {
          "type": "boolean",
          "description": "Specifies whether to enable or disable SSL. Defaults to false. Changing this\nparameter will create a new resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the network ID of a subnet. Changing this parameter will create a\nnew resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the instance.\n\n<a name=\"gaussdb_datastore\"></a>\nThe `datastore` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FGaussdbCassandraInstanceTimeouts:GaussdbCassandraInstanceTimeouts"
        },
        "volumeSize": {
          "type": "number",
          "description": "Specifies the storage space in GB. The value must be a multiple of 10. For a GaussDB\nCassandra DB instance, the minimum storage space is 100 GB, and the maximum storage space is related to the instance\nperformance specifications. For details,\nsee [DB Instance Specifications](https://docs.prod-cloud-ocb.orange-business.com/usermanual/nosql/nosql_05_0017.html)\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "configurationId",
        "dbUserName",
        "dedicatedResourceId",
        "dedicatedResourceName",
        "flavor",
        "gaussdbCassandraInstanceId",
        "lbIpAddress",
        "lbPort",
        "mode",
        "name",
        "nodes",
        "password",
        "port",
        "privateIps",
        "region",
        "status",
        "subnetId",
        "volumeSize",
        "vpcId"
      ],
      "inputProperties": {
        "autoRenew": {
          "type": "string"
        },
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the AZ name. For a three-AZ deployment instance,\nuse commas (,) to separate the AZs, for example, `cn-north-4a,cn-north-4b,cn-north-4c`.\nChanging this parameter will create a new resource.\n"
        },
        "backupStrategy": {
          "$ref": "#/types/flexibleengine:index%2FGaussdbCassandraInstanceBackupStrategy:GaussdbCassandraInstanceBackupStrategy",
          "description": "Specifies the advanced backup policy. The backup_strategy\nobject structure is documented below.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "configurationId": {
          "type": "string",
          "description": "Specifies the Parameter Template ID.\n"
        },
        "datastore": {
          "$ref": "#/types/flexibleengine:index%2FGaussdbCassandraInstanceDatastore:GaussdbCassandraInstanceDatastore",
          "description": "Specifies the database information. The datastore\nobject structure is documented below. Changing this parameter will create a new resource.\n"
        },
        "dedicatedResourceId": {
          "type": "string"
        },
        "dedicatedResourceName": {
          "type": "string"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the instance specifications. For details,\nsee [DB Instance Specifications](https://docs.prod-cloud-ocb.orange-business.com/usermanual/nosql/nosql_05_0017.html)\n"
        },
        "forceImport": {
          "type": "boolean",
          "description": "If specified, try to import the instance instead of creating if the name already\nexisted.\n"
        },
        "gaussdbCassandraInstanceId": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the instance name, which can be the same as an existing instance name. The value\nmust be 4 to 64 characters in length and start with a letter. It is case-sensitive and can contain only letters,\ndigits, hyphens (-), and underscores (_).\n"
        },
        "nodeNum": {
          "type": "number",
          "description": "Specifies the number of nodes, ranges from 3 to 12. Defaults to 3.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the database password. The value must be 8 to 32 characters in length,\nincluding uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are advised to\nenter a strong password to improve security, preventing security risks such as brute force cracking.\n",
          "secret": true
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the Cassandra instance resource. If omitted, the\nprovider-level region will be used. Changing this creates a new Cassandra instance resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the security group ID. Required if the selected subnet doesn't\nenable network ACL.\n"
        },
        "ssl": {
          "type": "boolean",
          "description": "Specifies whether to enable or disable SSL. Defaults to false. Changing this\nparameter will create a new resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the network ID of a subnet. Changing this parameter will create a\nnew resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the instance.\n\n<a name=\"gaussdb_datastore\"></a>\nThe `datastore` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FGaussdbCassandraInstanceTimeouts:GaussdbCassandraInstanceTimeouts"
        },
        "volumeSize": {
          "type": "number",
          "description": "Specifies the storage space in GB. The value must be a multiple of 10. For a GaussDB\nCassandra DB instance, the minimum storage space is 100 GB, and the maximum storage space is related to the instance\nperformance specifications. For details,\nsee [DB Instance Specifications](https://docs.prod-cloud-ocb.orange-business.com/usermanual/nosql/nosql_05_0017.html)\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID. Changing this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "availabilityZone",
        "flavor",
        "password",
        "subnetId",
        "volumeSize",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GaussdbCassandraInstance resources.\n",
        "properties": {
          "autoRenew": {
            "type": "string"
          },
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the AZ name. For a three-AZ deployment instance,\nuse commas (,) to separate the AZs, for example, `cn-north-4a,cn-north-4b,cn-north-4c`.\nChanging this parameter will create a new resource.\n"
          },
          "backupStrategy": {
            "$ref": "#/types/flexibleengine:index%2FGaussdbCassandraInstanceBackupStrategy:GaussdbCassandraInstanceBackupStrategy",
            "description": "Specifies the advanced backup policy. The backup_strategy\nobject structure is documented below.\n"
          },
          "chargingMode": {
            "type": "string"
          },
          "configurationId": {
            "type": "string",
            "description": "Specifies the Parameter Template ID.\n"
          },
          "datastore": {
            "$ref": "#/types/flexibleengine:index%2FGaussdbCassandraInstanceDatastore:GaussdbCassandraInstanceDatastore",
            "description": "Specifies the database information. The datastore\nobject structure is documented below. Changing this parameter will create a new resource.\n"
          },
          "dbUserName": {
            "type": "string",
            "description": "Indicates the default username.\n"
          },
          "dedicatedResourceId": {
            "type": "string"
          },
          "dedicatedResourceName": {
            "type": "string"
          },
          "enterpriseProjectId": {
            "type": "string"
          },
          "flavor": {
            "type": "string",
            "description": "Specifies the instance specifications. For details,\nsee [DB Instance Specifications](https://docs.prod-cloud-ocb.orange-business.com/usermanual/nosql/nosql_05_0017.html)\n"
          },
          "forceImport": {
            "type": "boolean",
            "description": "If specified, try to import the instance instead of creating if the name already\nexisted.\n"
          },
          "gaussdbCassandraInstanceId": {
            "type": "string",
            "description": "Indicates the node ID.\n"
          },
          "lbIpAddress": {
            "type": "string",
            "description": "Indicates the LB IP address of the db.\n"
          },
          "lbPort": {
            "type": "string",
            "description": "Indicates the LB port of the db.\n"
          },
          "mode": {
            "type": "string",
            "description": "Indicates the instance type.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the instance name, which can be the same as an existing instance name. The value\nmust be 4 to 64 characters in length and start with a letter. It is case-sensitive and can contain only letters,\ndigits, hyphens (-), and underscores (_).\n"
          },
          "nodeNum": {
            "type": "number",
            "description": "Specifies the number of nodes, ranges from 3 to 12. Defaults to 3.\n"
          },
          "nodes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FGaussdbCassandraInstanceNode:GaussdbCassandraInstanceNode"
            },
            "description": "Indicates the instance nodes information. The nodes object structure is documented below.\n"
          },
          "password": {
            "type": "string",
            "description": "Specifies the database password. The value must be 8 to 32 characters in length,\nincluding uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are advised to\nenter a strong password to improve security, preventing security risks such as brute force cracking.\n",
            "secret": true
          },
          "period": {
            "type": "number"
          },
          "periodUnit": {
            "type": "string"
          },
          "port": {
            "type": "number",
            "description": "Indicates the database port.\n"
          },
          "privateIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Indicates the IP address list of the db.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the Cassandra instance resource. If omitted, the\nprovider-level region will be used. Changing this creates a new Cassandra instance resource.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Specifies the security group ID. Required if the selected subnet doesn't\nenable network ACL.\n"
          },
          "ssl": {
            "type": "boolean",
            "description": "Specifies whether to enable or disable SSL. Defaults to false. Changing this\nparameter will create a new resource.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the node status.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the network ID of a subnet. Changing this parameter will create a\nnew resource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the instance.\n\n<a name=\"gaussdb_datastore\"></a>\nThe `datastore` block supports:\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FGaussdbCassandraInstanceTimeouts:GaussdbCassandraInstanceTimeouts"
          },
          "volumeSize": {
            "type": "number",
            "description": "Specifies the storage space in GB. The value must be a multiple of 10. For a GaussDB\nCassandra DB instance, the minimum storage space is 100 GB, and the maximum storage space is related to the instance\nperformance specifications. For details,\nsee [DB Instance Specifications](https://docs.prod-cloud-ocb.orange-business.com/usermanual/nosql/nosql_05_0017.html)\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC ID. Changing this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/gaussdbInfluxInstance:GaussdbInfluxInstance": {
      "description": "GaussDB for influx instance management within FlexibleEngine.\n\n## Example Usage\n\n### create a gaussdb for influx instance with tags\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst instance1 = new flexibleengine.GaussdbInfluxInstance(\"instance1\", {\n    password: _var.password,\n    flavor: \"geminidb.influxdb.large.4\",\n    volumeSize: 100,\n    vpcId: _var.vpc_id,\n    subnetId: _var.subnet_id,\n    securityGroupId: _var.secgroup_id,\n    availabilityZone: _var.availability_zone,\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ninstance1 = flexibleengine.GaussdbInfluxInstance(\"instance1\",\n    password=var[\"password\"],\n    flavor=\"geminidb.influxdb.large.4\",\n    volume_size=100,\n    vpc_id=var[\"vpc_id\"],\n    subnet_id=var[\"subnet_id\"],\n    security_group_id=var[\"secgroup_id\"],\n    availability_zone=var[\"availability_zone\"],\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Flexibleengine.GaussdbInfluxInstance(\"instance1\", new()\n    {\n        Password = @var.Password,\n        Flavor = \"geminidb.influxdb.large.4\",\n        VolumeSize = 100,\n        VpcId = @var.Vpc_id,\n        SubnetId = @var.Subnet_id,\n        SecurityGroupId = @var.Secgroup_id,\n        AvailabilityZone = @var.Availability_zone,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewGaussdbInfluxInstance(ctx, \"instance1\", &flexibleengine.GaussdbInfluxInstanceArgs{\n\t\t\tPassword:         pulumi.Any(_var.Password),\n\t\t\tFlavor:           pulumi.String(\"geminidb.influxdb.large.4\"),\n\t\t\tVolumeSize:       pulumi.Float64(100),\n\t\t\tVpcId:            pulumi.Any(_var.Vpc_id),\n\t\t\tSubnetId:         pulumi.Any(_var.Subnet_id),\n\t\t\tSecurityGroupId:  pulumi.Any(_var.Secgroup_id),\n\t\t\tAvailabilityZone: pulumi.Any(_var.Availability_zone),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.GaussdbInfluxInstance;\nimport com.pulumi.flexibleengine.GaussdbInfluxInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new GaussdbInfluxInstance(\"instance1\", GaussdbInfluxInstanceArgs.builder()\n            .password(var_.password())\n            .flavor(\"geminidb.influxdb.large.4\")\n            .volumeSize(100)\n            .vpcId(var_.vpc_id())\n            .subnetId(var_.subnet_id())\n            .securityGroupId(var_.secgroup_id())\n            .availabilityZone(var_.availability_zone())\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: flexibleengine:GaussdbInfluxInstance\n    properties:\n      password: ${var.password}\n      flavor: geminidb.influxdb.large.4\n      volumeSize: 100\n      vpcId: ${var.vpc_id}\n      subnetId: ${var.subnet_id}\n      securityGroupId: ${var.secgroup_id}\n      availabilityZone: ${var.availability_zone}\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### create a gaussdb influx instance with backup strategy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst instance1 = new flexibleengine.GaussdbInfluxInstance(\"instance1\", {\n    password: _var.password,\n    flavor: \"geminidb.influxdb.large.4\",\n    volumeSize: 100,\n    vpcId: _var.vpc_id,\n    subnetId: _var.subnet_id,\n    securityGroupId: _var.secgroup_id,\n    availabilityZone: _var.availability_zone,\n    backupStrategy: {\n        startTime: \"03:00-04:00\",\n        keepDays: 14,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ninstance1 = flexibleengine.GaussdbInfluxInstance(\"instance1\",\n    password=var[\"password\"],\n    flavor=\"geminidb.influxdb.large.4\",\n    volume_size=100,\n    vpc_id=var[\"vpc_id\"],\n    subnet_id=var[\"subnet_id\"],\n    security_group_id=var[\"secgroup_id\"],\n    availability_zone=var[\"availability_zone\"],\n    backup_strategy={\n        \"start_time\": \"03:00-04:00\",\n        \"keep_days\": 14,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Flexibleengine.GaussdbInfluxInstance(\"instance1\", new()\n    {\n        Password = @var.Password,\n        Flavor = \"geminidb.influxdb.large.4\",\n        VolumeSize = 100,\n        VpcId = @var.Vpc_id,\n        SubnetId = @var.Subnet_id,\n        SecurityGroupId = @var.Secgroup_id,\n        AvailabilityZone = @var.Availability_zone,\n        BackupStrategy = new Flexibleengine.Inputs.GaussdbInfluxInstanceBackupStrategyArgs\n        {\n            StartTime = \"03:00-04:00\",\n            KeepDays = 14,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewGaussdbInfluxInstance(ctx, \"instance1\", &flexibleengine.GaussdbInfluxInstanceArgs{\n\t\t\tPassword:         pulumi.Any(_var.Password),\n\t\t\tFlavor:           pulumi.String(\"geminidb.influxdb.large.4\"),\n\t\t\tVolumeSize:       pulumi.Float64(100),\n\t\t\tVpcId:            pulumi.Any(_var.Vpc_id),\n\t\t\tSubnetId:         pulumi.Any(_var.Subnet_id),\n\t\t\tSecurityGroupId:  pulumi.Any(_var.Secgroup_id),\n\t\t\tAvailabilityZone: pulumi.Any(_var.Availability_zone),\n\t\t\tBackupStrategy: &flexibleengine.GaussdbInfluxInstanceBackupStrategyArgs{\n\t\t\t\tStartTime: pulumi.String(\"03:00-04:00\"),\n\t\t\t\tKeepDays:  pulumi.Float64(14),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.GaussdbInfluxInstance;\nimport com.pulumi.flexibleengine.GaussdbInfluxInstanceArgs;\nimport com.pulumi.flexibleengine.inputs.GaussdbInfluxInstanceBackupStrategyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new GaussdbInfluxInstance(\"instance1\", GaussdbInfluxInstanceArgs.builder()\n            .password(var_.password())\n            .flavor(\"geminidb.influxdb.large.4\")\n            .volumeSize(100)\n            .vpcId(var_.vpc_id())\n            .subnetId(var_.subnet_id())\n            .securityGroupId(var_.secgroup_id())\n            .availabilityZone(var_.availability_zone())\n            .backupStrategy(GaussdbInfluxInstanceBackupStrategyArgs.builder()\n                .startTime(\"03:00-04:00\")\n                .keepDays(14)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: flexibleengine:GaussdbInfluxInstance\n    properties:\n      password: ${var.password}\n      flavor: geminidb.influxdb.large.4\n      volumeSize: 100\n      vpcId: ${var.vpc_id}\n      subnetId: ${var.subnet_id}\n      securityGroupId: ${var.secgroup_id}\n      availabilityZone: ${var.availability_zone}\n      backupStrategy:\n        startTime: 03:00-04:00\n        keepDays: 14\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nGaussDB influx instance can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/gaussdbInfluxInstance:GaussdbInfluxInstance instance_1 2e045d8b-b226-4aa2-91b9-7e76357655c06\n```\n\n",
      "properties": {
        "autoRenew": {
          "type": "string"
        },
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the AZ name. For a three-AZ deployment instance,\nuse commas (,) to separate the AZs, for example, `cn-north-4a,cn-north-4b,cn-north-4c`.\nChanging this parameter will create a new resource.\n"
        },
        "backupStrategy": {
          "$ref": "#/types/flexibleengine:index%2FGaussdbInfluxInstanceBackupStrategy:GaussdbInfluxInstanceBackupStrategy",
          "description": "Specifies the advanced backup policy. The backup_strategy\nobject structure is documented below.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "configurationId": {
          "type": "string",
          "description": "Specifies the Parameter Template ID.\n"
        },
        "datastore": {
          "$ref": "#/types/flexibleengine:index%2FGaussdbInfluxInstanceDatastore:GaussdbInfluxInstanceDatastore",
          "description": "Specifies the database information. The datastore\nobject structure is documented below. Changing this parameter will create a new resource.\n"
        },
        "dbUserName": {
          "type": "string",
          "description": "Indicates the default username.\n"
        },
        "dedicatedResourceId": {
          "type": "string"
        },
        "dedicatedResourceName": {
          "type": "string"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the instance specifications. For details,\nsee [DB Instance Specifications](https://docs.prod-cloud-ocb.orange-business.com/usermanual/nosql/nosql_05_0045.html)\nChanging this parameter will create a new resource.\n"
        },
        "forceImport": {
          "type": "boolean",
          "description": "If specified, try to import the instance instead of creating if the name already\nexisted.\n"
        },
        "gaussdbInfluxInstanceId": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "lbIpAddress": {
          "type": "string",
          "description": "Indicates the LB IP address of the db.\n"
        },
        "lbPort": {
          "type": "string",
          "description": "Indicates the LB port of the db.\n"
        },
        "mode": {
          "type": "string",
          "description": "Indicates the instance type.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the instance name, which can be the same as an existing instance name. The\nvalue must be **4** to **64** characters in length and start with a letter. It is case-sensitive and can contain only\nletters, digits, hyphens (-), and underscores (_).\n"
        },
        "nodeNum": {
          "type": "number",
          "description": "Specifies the number of nodes, ranges from **3** to **16**. Defaults to **3**.\n"
        },
        "nodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FGaussdbInfluxInstanceNode:GaussdbInfluxInstanceNode"
          },
          "description": "Indicates the instance nodes information. The nodes object structure is documented below.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the database password. The value must be **8** to **32** characters in\nlength, including uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are\nadvised to enter a strong password to improve security, preventing security risks such as brute force cracking.\n",
          "secret": true
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "port": {
          "type": "number",
          "description": "Indicates the database port.\n"
        },
        "privateIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the IP address list of the db.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the influx instance resource. If omitted, the\nprovider-level region will be used. Changing this creates a new influx instance resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the security group ID. Required if the selected subnet doesn't\nenable network ACL.\n"
        },
        "ssl": {
          "type": "boolean",
          "description": "Specifies whether to enable or disable SSL. Defaults to **false**. Changing this\nparameter will create a new resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the network ID of a subnet. Changing this parameter will create\na new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the instance.\n\n<a name=\"gaussdb_datastore\"></a>\nThe `datastore` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FGaussdbInfluxInstanceTimeouts:GaussdbInfluxInstanceTimeouts"
        },
        "volumeSize": {
          "type": "number",
          "description": "Specifies the storage space in GB. The value must be a multiple of **10**. For a\nGaussDB influx instance, the minimum storage space is **100** GB, and the maximum storage space is related to the\ninstance performance specifications. For details,\nsee [DB Instance Specifications](https://docs.prod-cloud-ocb.orange-business.com/usermanual/nosql/nosql_05_0045.html)\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "configurationId",
        "dbUserName",
        "dedicatedResourceId",
        "dedicatedResourceName",
        "flavor",
        "gaussdbInfluxInstanceId",
        "lbIpAddress",
        "lbPort",
        "mode",
        "name",
        "nodes",
        "password",
        "port",
        "privateIps",
        "region",
        "status",
        "subnetId",
        "volumeSize",
        "vpcId"
      ],
      "inputProperties": {
        "autoRenew": {
          "type": "string"
        },
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the AZ name. For a three-AZ deployment instance,\nuse commas (,) to separate the AZs, for example, `cn-north-4a,cn-north-4b,cn-north-4c`.\nChanging this parameter will create a new resource.\n"
        },
        "backupStrategy": {
          "$ref": "#/types/flexibleengine:index%2FGaussdbInfluxInstanceBackupStrategy:GaussdbInfluxInstanceBackupStrategy",
          "description": "Specifies the advanced backup policy. The backup_strategy\nobject structure is documented below.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "configurationId": {
          "type": "string",
          "description": "Specifies the Parameter Template ID.\n"
        },
        "datastore": {
          "$ref": "#/types/flexibleengine:index%2FGaussdbInfluxInstanceDatastore:GaussdbInfluxInstanceDatastore",
          "description": "Specifies the database information. The datastore\nobject structure is documented below. Changing this parameter will create a new resource.\n"
        },
        "dedicatedResourceId": {
          "type": "string"
        },
        "dedicatedResourceName": {
          "type": "string"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the instance specifications. For details,\nsee [DB Instance Specifications](https://docs.prod-cloud-ocb.orange-business.com/usermanual/nosql/nosql_05_0045.html)\nChanging this parameter will create a new resource.\n"
        },
        "forceImport": {
          "type": "boolean",
          "description": "If specified, try to import the instance instead of creating if the name already\nexisted.\n"
        },
        "gaussdbInfluxInstanceId": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the instance name, which can be the same as an existing instance name. The\nvalue must be **4** to **64** characters in length and start with a letter. It is case-sensitive and can contain only\nletters, digits, hyphens (-), and underscores (_).\n"
        },
        "nodeNum": {
          "type": "number",
          "description": "Specifies the number of nodes, ranges from **3** to **16**. Defaults to **3**.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the database password. The value must be **8** to **32** characters in\nlength, including uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are\nadvised to enter a strong password to improve security, preventing security risks such as brute force cracking.\n",
          "secret": true
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the influx instance resource. If omitted, the\nprovider-level region will be used. Changing this creates a new influx instance resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the security group ID. Required if the selected subnet doesn't\nenable network ACL.\n"
        },
        "ssl": {
          "type": "boolean",
          "description": "Specifies whether to enable or disable SSL. Defaults to **false**. Changing this\nparameter will create a new resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the network ID of a subnet. Changing this parameter will create\na new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the instance.\n\n<a name=\"gaussdb_datastore\"></a>\nThe `datastore` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FGaussdbInfluxInstanceTimeouts:GaussdbInfluxInstanceTimeouts"
        },
        "volumeSize": {
          "type": "number",
          "description": "Specifies the storage space in GB. The value must be a multiple of **10**. For a\nGaussDB influx instance, the minimum storage space is **100** GB, and the maximum storage space is related to the\ninstance performance specifications. For details,\nsee [DB Instance Specifications](https://docs.prod-cloud-ocb.orange-business.com/usermanual/nosql/nosql_05_0045.html)\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID. Changing this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "availabilityZone",
        "flavor",
        "password",
        "subnetId",
        "volumeSize",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GaussdbInfluxInstance resources.\n",
        "properties": {
          "autoRenew": {
            "type": "string"
          },
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the AZ name. For a three-AZ deployment instance,\nuse commas (,) to separate the AZs, for example, `cn-north-4a,cn-north-4b,cn-north-4c`.\nChanging this parameter will create a new resource.\n"
          },
          "backupStrategy": {
            "$ref": "#/types/flexibleengine:index%2FGaussdbInfluxInstanceBackupStrategy:GaussdbInfluxInstanceBackupStrategy",
            "description": "Specifies the advanced backup policy. The backup_strategy\nobject structure is documented below.\n"
          },
          "chargingMode": {
            "type": "string"
          },
          "configurationId": {
            "type": "string",
            "description": "Specifies the Parameter Template ID.\n"
          },
          "datastore": {
            "$ref": "#/types/flexibleengine:index%2FGaussdbInfluxInstanceDatastore:GaussdbInfluxInstanceDatastore",
            "description": "Specifies the database information. The datastore\nobject structure is documented below. Changing this parameter will create a new resource.\n"
          },
          "dbUserName": {
            "type": "string",
            "description": "Indicates the default username.\n"
          },
          "dedicatedResourceId": {
            "type": "string"
          },
          "dedicatedResourceName": {
            "type": "string"
          },
          "enterpriseProjectId": {
            "type": "string"
          },
          "flavor": {
            "type": "string",
            "description": "Specifies the instance specifications. For details,\nsee [DB Instance Specifications](https://docs.prod-cloud-ocb.orange-business.com/usermanual/nosql/nosql_05_0045.html)\nChanging this parameter will create a new resource.\n"
          },
          "forceImport": {
            "type": "boolean",
            "description": "If specified, try to import the instance instead of creating if the name already\nexisted.\n"
          },
          "gaussdbInfluxInstanceId": {
            "type": "string",
            "description": "Indicates the node ID.\n"
          },
          "lbIpAddress": {
            "type": "string",
            "description": "Indicates the LB IP address of the db.\n"
          },
          "lbPort": {
            "type": "string",
            "description": "Indicates the LB port of the db.\n"
          },
          "mode": {
            "type": "string",
            "description": "Indicates the instance type.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the instance name, which can be the same as an existing instance name. The\nvalue must be **4** to **64** characters in length and start with a letter. It is case-sensitive and can contain only\nletters, digits, hyphens (-), and underscores (_).\n"
          },
          "nodeNum": {
            "type": "number",
            "description": "Specifies the number of nodes, ranges from **3** to **16**. Defaults to **3**.\n"
          },
          "nodes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FGaussdbInfluxInstanceNode:GaussdbInfluxInstanceNode"
            },
            "description": "Indicates the instance nodes information. The nodes object structure is documented below.\n"
          },
          "password": {
            "type": "string",
            "description": "Specifies the database password. The value must be **8** to **32** characters in\nlength, including uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are\nadvised to enter a strong password to improve security, preventing security risks such as brute force cracking.\n",
            "secret": true
          },
          "period": {
            "type": "number"
          },
          "periodUnit": {
            "type": "string"
          },
          "port": {
            "type": "number",
            "description": "Indicates the database port.\n"
          },
          "privateIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Indicates the IP address list of the db.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the influx instance resource. If omitted, the\nprovider-level region will be used. Changing this creates a new influx instance resource.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Specifies the security group ID. Required if the selected subnet doesn't\nenable network ACL.\n"
          },
          "ssl": {
            "type": "boolean",
            "description": "Specifies whether to enable or disable SSL. Defaults to **false**. Changing this\nparameter will create a new resource.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the node status.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the network ID of a subnet. Changing this parameter will create\na new resource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the instance.\n\n<a name=\"gaussdb_datastore\"></a>\nThe `datastore` block supports:\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FGaussdbInfluxInstanceTimeouts:GaussdbInfluxInstanceTimeouts"
          },
          "volumeSize": {
            "type": "number",
            "description": "Specifies the storage space in GB. The value must be a multiple of **10**. For a\nGaussDB influx instance, the minimum storage space is **100** GB, and the maximum storage space is related to the\ninstance performance specifications. For details,\nsee [DB Instance Specifications](https://docs.prod-cloud-ocb.orange-business.com/usermanual/nosql/nosql_05_0045.html)\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC ID. Changing this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/identityAcl:IdentityAcl": {
      "description": "Manages an ACL resource within FlexibleEngine IAM service. The ACL allowing user access only from specified IP address\nranges and IPv4 CIDR blocks. The ACL take effect for IAM users under the Domain account rather than the account itself.\n\nNote: You *must* have admin privileges in your FlexibleEngine cloud to use this resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst acl = new flexibleengine.IdentityAcl(\"acl\", {\n    ipCidrs: [{\n        cidr: \"159.138.39.192/32\",\n        description: \"This is a test ip address\",\n    }],\n    ipRanges: [{\n        description: \"This is a test ip range\",\n        range: \"0.0.0.0-255.255.255.0\",\n    }],\n    type: \"console\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nacl = flexibleengine.IdentityAcl(\"acl\",\n    ip_cidrs=[{\n        \"cidr\": \"159.138.39.192/32\",\n        \"description\": \"This is a test ip address\",\n    }],\n    ip_ranges=[{\n        \"description\": \"This is a test ip range\",\n        \"range\": \"0.0.0.0-255.255.255.0\",\n    }],\n    type=\"console\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var acl = new Flexibleengine.IdentityAcl(\"acl\", new()\n    {\n        IpCidrs = new[]\n        {\n            new Flexibleengine.Inputs.IdentityAclIpCidrArgs\n            {\n                Cidr = \"159.138.39.192/32\",\n                Description = \"This is a test ip address\",\n            },\n        },\n        IpRanges = new[]\n        {\n            new Flexibleengine.Inputs.IdentityAclIpRangeArgs\n            {\n                Description = \"This is a test ip range\",\n                Range = \"0.0.0.0-255.255.255.0\",\n            },\n        },\n        Type = \"console\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewIdentityAcl(ctx, \"acl\", &flexibleengine.IdentityAclArgs{\n\t\t\tIpCidrs: flexibleengine.IdentityAclIpCidrArray{\n\t\t\t\t&flexibleengine.IdentityAclIpCidrArgs{\n\t\t\t\t\tCidr:        pulumi.String(\"159.138.39.192/32\"),\n\t\t\t\t\tDescription: pulumi.String(\"This is a test ip address\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIpRanges: flexibleengine.IdentityAclIpRangeArray{\n\t\t\t\t&flexibleengine.IdentityAclIpRangeArgs{\n\t\t\t\t\tDescription: pulumi.String(\"This is a test ip range\"),\n\t\t\t\t\tRange:       pulumi.String(\"0.0.0.0-255.255.255.0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tType: pulumi.String(\"console\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.IdentityAcl;\nimport com.pulumi.flexibleengine.IdentityAclArgs;\nimport com.pulumi.flexibleengine.inputs.IdentityAclIpCidrArgs;\nimport com.pulumi.flexibleengine.inputs.IdentityAclIpRangeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var acl = new IdentityAcl(\"acl\", IdentityAclArgs.builder()\n            .ipCidrs(IdentityAclIpCidrArgs.builder()\n                .cidr(\"159.138.39.192/32\")\n                .description(\"This is a test ip address\")\n                .build())\n            .ipRanges(IdentityAclIpRangeArgs.builder()\n                .description(\"This is a test ip range\")\n                .range(\"0.0.0.0-255.255.255.0\")\n                .build())\n            .type(\"console\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  acl:\n    type: flexibleengine:IdentityAcl\n    properties:\n      ipCidrs:\n        - cidr: 159.138.39.192/32\n          description: This is a test ip address\n      ipRanges:\n        - description: This is a test ip range\n          range: 0.0.0.0-255.255.255.0\n      type: console\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "identityAclId": {
          "type": "string",
          "description": "The ID of identity acl.\n"
        },
        "ipCidrs": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FIdentityAclIpCidr:IdentityAclIpCidr"
          },
          "description": "Specifies the IPv4 CIDR blocks from which console access or api access is allowed.\nThe `ip_cidrs` cannot repeat. The structure is documented below.\n"
        },
        "ipRanges": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FIdentityAclIpRange:IdentityAclIpRange"
          },
          "description": "Specifies the IP address ranges from which console access or api access is allowed.\nThe `ip_ranges` cannot repeat. The structure is documented below.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the ACL is created through the Console or API. valid value is\n'console'. Changing this parameter will create a new ACL.\n"
        }
      },
      "type": "object",
      "required": [
        "identityAclId",
        "type"
      ],
      "inputProperties": {
        "identityAclId": {
          "type": "string",
          "description": "The ID of identity acl.\n"
        },
        "ipCidrs": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FIdentityAclIpCidr:IdentityAclIpCidr"
          },
          "description": "Specifies the IPv4 CIDR blocks from which console access or api access is allowed.\nThe `ip_cidrs` cannot repeat. The structure is documented below.\n"
        },
        "ipRanges": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FIdentityAclIpRange:IdentityAclIpRange"
          },
          "description": "Specifies the IP address ranges from which console access or api access is allowed.\nThe `ip_ranges` cannot repeat. The structure is documented below.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the ACL is created through the Console or API. valid value is\n'console'. Changing this parameter will create a new ACL.\n"
        }
      },
      "requiredInputs": [
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityAcl resources.\n",
        "properties": {
          "identityAclId": {
            "type": "string",
            "description": "The ID of identity acl.\n"
          },
          "ipCidrs": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FIdentityAclIpCidr:IdentityAclIpCidr"
            },
            "description": "Specifies the IPv4 CIDR blocks from which console access or api access is allowed.\nThe `ip_cidrs` cannot repeat. The structure is documented below.\n"
          },
          "ipRanges": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FIdentityAclIpRange:IdentityAclIpRange"
            },
            "description": "Specifies the IP address ranges from which console access or api access is allowed.\nThe `ip_ranges` cannot repeat. The structure is documented below.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the ACL is created through the Console or API. valid value is\n'console'. Changing this parameter will create a new ACL.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/identityAgencyV3:IdentityAgencyV3": {
      "description": "Manages an agency resource within FlexibleEngine.\n\n## Example Usage\n\n### Delegate another account to perform operations on your resources\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst agency = new flexibleengine.IdentityAgencyV3(\"agency\", {\n    delegatedDomainName: \"***\",\n    description: \"this is a domain test agency\",\n    domainRoles: [\"Anti-DDoS Administrator\"],\n    projectRoles: [{\n        project: \"eu-west-0\",\n        roles: [\"KMS Administrator\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nagency = flexibleengine.IdentityAgencyV3(\"agency\",\n    delegated_domain_name=\"***\",\n    description=\"this is a domain test agency\",\n    domain_roles=[\"Anti-DDoS Administrator\"],\n    project_roles=[{\n        \"project\": \"eu-west-0\",\n        \"roles\": [\"KMS Administrator\"],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var agency = new Flexibleengine.IdentityAgencyV3(\"agency\", new()\n    {\n        DelegatedDomainName = \"***\",\n        Description = \"this is a domain test agency\",\n        DomainRoles = new[]\n        {\n            \"Anti-DDoS Administrator\",\n        },\n        ProjectRoles = new[]\n        {\n            new Flexibleengine.Inputs.IdentityAgencyV3ProjectRoleArgs\n            {\n                Project = \"eu-west-0\",\n                Roles = new[]\n                {\n                    \"KMS Administrator\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewIdentityAgencyV3(ctx, \"agency\", &flexibleengine.IdentityAgencyV3Args{\n\t\t\tDelegatedDomainName: pulumi.String(\"***\"),\n\t\t\tDescription:         pulumi.String(\"this is a domain test agency\"),\n\t\t\tDomainRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Anti-DDoS Administrator\"),\n\t\t\t},\n\t\t\tProjectRoles: flexibleengine.IdentityAgencyV3ProjectRoleArray{\n\t\t\t\t&flexibleengine.IdentityAgencyV3ProjectRoleArgs{\n\t\t\t\t\tProject: pulumi.String(\"eu-west-0\"),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"KMS Administrator\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.IdentityAgencyV3;\nimport com.pulumi.flexibleengine.IdentityAgencyV3Args;\nimport com.pulumi.flexibleengine.inputs.IdentityAgencyV3ProjectRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var agency = new IdentityAgencyV3(\"agency\", IdentityAgencyV3Args.builder()\n            .delegatedDomainName(\"***\")\n            .description(\"this is a domain test agency\")\n            .domainRoles(\"Anti-DDoS Administrator\")\n            .projectRoles(IdentityAgencyV3ProjectRoleArgs.builder()\n                .project(\"eu-west-0\")\n                .roles(\"KMS Administrator\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  agency:\n    type: flexibleengine:IdentityAgencyV3\n    properties:\n      delegatedDomainName: '***'\n      description: this is a domain test agency\n      domainRoles:\n        - Anti-DDoS Administrator\n      projectRoles:\n        - project: eu-west-0\n          roles:\n            - KMS Administrator\n```\n<!--End PulumiCodeChooser -->\n\n### Delegate a cloud service to access your resources in other cloud services\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst agency = new flexibleengine.IdentityAgencyV3(\"agency\", {\n    delegatedServiceName: \"op_svc_evs\",\n    description: \"this is a service test agency\",\n    domainRoles: [\"OBS OperateAccess\"],\n    projectRoles: [{\n        project: \"eu-west-0\",\n        roles: [\"Tenant Administrator\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nagency = flexibleengine.IdentityAgencyV3(\"agency\",\n    delegated_service_name=\"op_svc_evs\",\n    description=\"this is a service test agency\",\n    domain_roles=[\"OBS OperateAccess\"],\n    project_roles=[{\n        \"project\": \"eu-west-0\",\n        \"roles\": [\"Tenant Administrator\"],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var agency = new Flexibleengine.IdentityAgencyV3(\"agency\", new()\n    {\n        DelegatedServiceName = \"op_svc_evs\",\n        Description = \"this is a service test agency\",\n        DomainRoles = new[]\n        {\n            \"OBS OperateAccess\",\n        },\n        ProjectRoles = new[]\n        {\n            new Flexibleengine.Inputs.IdentityAgencyV3ProjectRoleArgs\n            {\n                Project = \"eu-west-0\",\n                Roles = new[]\n                {\n                    \"Tenant Administrator\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewIdentityAgencyV3(ctx, \"agency\", &flexibleengine.IdentityAgencyV3Args{\n\t\t\tDelegatedServiceName: pulumi.String(\"op_svc_evs\"),\n\t\t\tDescription:          pulumi.String(\"this is a service test agency\"),\n\t\t\tDomainRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OBS OperateAccess\"),\n\t\t\t},\n\t\t\tProjectRoles: flexibleengine.IdentityAgencyV3ProjectRoleArray{\n\t\t\t\t&flexibleengine.IdentityAgencyV3ProjectRoleArgs{\n\t\t\t\t\tProject: pulumi.String(\"eu-west-0\"),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Tenant Administrator\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.IdentityAgencyV3;\nimport com.pulumi.flexibleengine.IdentityAgencyV3Args;\nimport com.pulumi.flexibleengine.inputs.IdentityAgencyV3ProjectRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var agency = new IdentityAgencyV3(\"agency\", IdentityAgencyV3Args.builder()\n            .delegatedServiceName(\"op_svc_evs\")\n            .description(\"this is a service test agency\")\n            .domainRoles(\"OBS OperateAccess\")\n            .projectRoles(IdentityAgencyV3ProjectRoleArgs.builder()\n                .project(\"eu-west-0\")\n                .roles(\"Tenant Administrator\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  agency:\n    type: flexibleengine:IdentityAgencyV3\n    properties:\n      delegatedServiceName: op_svc_evs\n      description: this is a service test agency\n      domainRoles:\n        - OBS OperateAccess\n      projectRoles:\n        - project: eu-west-0\n          roles:\n            - Tenant Administrator\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAgencies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/identityAgencyV3:IdentityAgencyV3 agency 0b97661f9900f23f4fc2c00971ea4dc0\n```\n\n",
      "properties": {
        "createTime": {
          "type": "string",
          "description": "The time when the agency was created.\n"
        },
        "delegatedDomainName": {
          "type": "string",
          "description": "Specifies the name of delegated user domain.\nThis parameter and `delegated_service_name` are alternative.\n"
        },
        "delegatedServiceName": {
          "type": "string",
          "description": "Specifies the name of delegated cloud service.\nThis parameter and `delegated_domain_name` are alternative.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the supplementary information about the agency.\nThe value is a string of 0 to 255 characters.\n"
        },
        "domainRoles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of one or more role names which stand for the permissions to\nbe granted to agency on domain.\n\n<a name=\"identity_project_role\"></a>\nThe `project_role` block supports:\n"
        },
        "duration": {
          "type": "string",
          "description": "Specifies the validity period of an agency.\nThe valid value are *ONEDAY* and *FOREVER*, defaults to *FOREVER*.\n"
        },
        "expireTime": {
          "type": "string",
          "description": "The expiration time of agency.\n"
        },
        "identityAgencyV3Id": {
          "type": "string",
          "description": "The agency ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of agency. The name is a string of 1 to 64 characters.\nChanging this will create a new agency.\n"
        },
        "projectRoles": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FIdentityAgencyV3ProjectRole:IdentityAgencyV3ProjectRole"
          },
          "description": "Specifies an array of one or more roles and projects which are used to grant\npermissions to agency on project. The project_role object structure is documented below.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FIdentityAgencyV3Timeouts:IdentityAgencyV3Timeouts"
        }
      },
      "type": "object",
      "required": [
        "createTime",
        "description",
        "expireTime",
        "identityAgencyV3Id",
        "name"
      ],
      "inputProperties": {
        "delegatedDomainName": {
          "type": "string",
          "description": "Specifies the name of delegated user domain.\nThis parameter and `delegated_service_name` are alternative.\n"
        },
        "delegatedServiceName": {
          "type": "string",
          "description": "Specifies the name of delegated cloud service.\nThis parameter and `delegated_domain_name` are alternative.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the supplementary information about the agency.\nThe value is a string of 0 to 255 characters.\n"
        },
        "domainRoles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of one or more role names which stand for the permissions to\nbe granted to agency on domain.\n\n<a name=\"identity_project_role\"></a>\nThe `project_role` block supports:\n"
        },
        "duration": {
          "type": "string",
          "description": "Specifies the validity period of an agency.\nThe valid value are *ONEDAY* and *FOREVER*, defaults to *FOREVER*.\n"
        },
        "identityAgencyV3Id": {
          "type": "string",
          "description": "The agency ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of agency. The name is a string of 1 to 64 characters.\nChanging this will create a new agency.\n"
        },
        "projectRoles": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FIdentityAgencyV3ProjectRole:IdentityAgencyV3ProjectRole"
          },
          "description": "Specifies an array of one or more roles and projects which are used to grant\npermissions to agency on project. The project_role object structure is documented below.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FIdentityAgencyV3Timeouts:IdentityAgencyV3Timeouts"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityAgencyV3 resources.\n",
        "properties": {
          "createTime": {
            "type": "string",
            "description": "The time when the agency was created.\n"
          },
          "delegatedDomainName": {
            "type": "string",
            "description": "Specifies the name of delegated user domain.\nThis parameter and `delegated_service_name` are alternative.\n"
          },
          "delegatedServiceName": {
            "type": "string",
            "description": "Specifies the name of delegated cloud service.\nThis parameter and `delegated_domain_name` are alternative.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the supplementary information about the agency.\nThe value is a string of 0 to 255 characters.\n"
          },
          "domainRoles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies an array of one or more role names which stand for the permissions to\nbe granted to agency on domain.\n\n<a name=\"identity_project_role\"></a>\nThe `project_role` block supports:\n"
          },
          "duration": {
            "type": "string",
            "description": "Specifies the validity period of an agency.\nThe valid value are *ONEDAY* and *FOREVER*, defaults to *FOREVER*.\n"
          },
          "expireTime": {
            "type": "string",
            "description": "The expiration time of agency.\n"
          },
          "identityAgencyV3Id": {
            "type": "string",
            "description": "The agency ID.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of agency. The name is a string of 1 to 64 characters.\nChanging this will create a new agency.\n"
          },
          "projectRoles": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FIdentityAgencyV3ProjectRole:IdentityAgencyV3ProjectRole"
            },
            "description": "Specifies an array of one or more roles and projects which are used to grant\npermissions to agency on project. The project_role object structure is documented below.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FIdentityAgencyV3Timeouts:IdentityAgencyV3Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/identityGroupMembershipV3:IdentityGroupMembershipV3": {
      "description": "Manages a User Group Membership resource within FlexibleEngine IAM service.\n\n> You *must* have admin privileges in your FlexibleEngine cloud to use this resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst group1 = new flexibleengine.IdentityGroupV3(\"group1\", {description: \"This is a test group\"});\nconst user1 = new flexibleengine.IdentityUserV3(\"user1\", {\n    enabled: true,\n    password: \"password12345!\",\n});\nconst user2 = new flexibleengine.IdentityUserV3(\"user2\", {\n    enabled: true,\n    password: \"password12345!\",\n});\nconst membership1 = new flexibleengine.IdentityGroupMembershipV3(\"membership1\", {\n    group: group1.identityGroupV3Id,\n    users: [\n        user1.identityUserV3Id,\n        user2.identityUserV3Id,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ngroup1 = flexibleengine.IdentityGroupV3(\"group1\", description=\"This is a test group\")\nuser1 = flexibleengine.IdentityUserV3(\"user1\",\n    enabled=True,\n    password=\"password12345!\")\nuser2 = flexibleengine.IdentityUserV3(\"user2\",\n    enabled=True,\n    password=\"password12345!\")\nmembership1 = flexibleengine.IdentityGroupMembershipV3(\"membership1\",\n    group=group1.identity_group_v3_id,\n    users=[\n        user1.identity_user_v3_id,\n        user2.identity_user_v3_id,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var group1 = new Flexibleengine.IdentityGroupV3(\"group1\", new()\n    {\n        Description = \"This is a test group\",\n    });\n\n    var user1 = new Flexibleengine.IdentityUserV3(\"user1\", new()\n    {\n        Enabled = true,\n        Password = \"password12345!\",\n    });\n\n    var user2 = new Flexibleengine.IdentityUserV3(\"user2\", new()\n    {\n        Enabled = true,\n        Password = \"password12345!\",\n    });\n\n    var membership1 = new Flexibleengine.IdentityGroupMembershipV3(\"membership1\", new()\n    {\n        Group = group1.IdentityGroupV3Id,\n        Users = new[]\n        {\n            user1.IdentityUserV3Id,\n            user2.IdentityUserV3Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgroup1, err := flexibleengine.NewIdentityGroupV3(ctx, \"group1\", &flexibleengine.IdentityGroupV3Args{\n\t\t\tDescription: pulumi.String(\"This is a test group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser1, err := flexibleengine.NewIdentityUserV3(ctx, \"user1\", &flexibleengine.IdentityUserV3Args{\n\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\tPassword: pulumi.String(\"password12345!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser2, err := flexibleengine.NewIdentityUserV3(ctx, \"user2\", &flexibleengine.IdentityUserV3Args{\n\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\tPassword: pulumi.String(\"password12345!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewIdentityGroupMembershipV3(ctx, \"membership1\", &flexibleengine.IdentityGroupMembershipV3Args{\n\t\t\tGroup: group1.IdentityGroupV3Id,\n\t\t\tUsers: pulumi.StringArray{\n\t\t\t\tuser1.IdentityUserV3Id,\n\t\t\t\tuser2.IdentityUserV3Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.IdentityGroupV3;\nimport com.pulumi.flexibleengine.IdentityGroupV3Args;\nimport com.pulumi.flexibleengine.IdentityUserV3;\nimport com.pulumi.flexibleengine.IdentityUserV3Args;\nimport com.pulumi.flexibleengine.IdentityGroupMembershipV3;\nimport com.pulumi.flexibleengine.IdentityGroupMembershipV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var group1 = new IdentityGroupV3(\"group1\", IdentityGroupV3Args.builder()\n            .description(\"This is a test group\")\n            .build());\n\n        var user1 = new IdentityUserV3(\"user1\", IdentityUserV3Args.builder()\n            .enabled(true)\n            .password(\"password12345!\")\n            .build());\n\n        var user2 = new IdentityUserV3(\"user2\", IdentityUserV3Args.builder()\n            .enabled(true)\n            .password(\"password12345!\")\n            .build());\n\n        var membership1 = new IdentityGroupMembershipV3(\"membership1\", IdentityGroupMembershipV3Args.builder()\n            .group(group1.identityGroupV3Id())\n            .users(            \n                user1.identityUserV3Id(),\n                user2.identityUserV3Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: flexibleengine:IdentityGroupV3\n    properties:\n      description: This is a test group\n  user1:\n    type: flexibleengine:IdentityUserV3\n    properties:\n      enabled: true\n      password: password12345!\n  user2:\n    type: flexibleengine:IdentityUserV3\n    properties:\n      enabled: true\n      password: password12345!\n  membership1:\n    type: flexibleengine:IdentityGroupMembershipV3\n    properties:\n      group: ${group1.identityGroupV3Id}\n      users:\n        - ${user1.identityUserV3Id}\n        - ${user2.identityUserV3Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nIAM group membership can be imported using the group membership ID, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/identityGroupMembershipV3:IdentityGroupMembershipV3 membership_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\n",
      "properties": {
        "group": {
          "type": "string",
          "description": "The group ID of this membership. Changing this will create a new resource.\n"
        },
        "identityGroupMembershipV3Id": {
          "type": "string"
        },
        "users": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A List of user IDs to associate to the group.\n"
        }
      },
      "type": "object",
      "required": [
        "group",
        "identityGroupMembershipV3Id",
        "users"
      ],
      "inputProperties": {
        "group": {
          "type": "string",
          "description": "The group ID of this membership. Changing this will create a new resource.\n"
        },
        "identityGroupMembershipV3Id": {
          "type": "string"
        },
        "users": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A List of user IDs to associate to the group.\n"
        }
      },
      "requiredInputs": [
        "group",
        "users"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityGroupMembershipV3 resources.\n",
        "properties": {
          "group": {
            "type": "string",
            "description": "The group ID of this membership. Changing this will create a new resource.\n"
          },
          "identityGroupMembershipV3Id": {
            "type": "string"
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A List of user IDs to associate to the group.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/identityGroupRoleAssignment:IdentityGroupRoleAssignment": {
      "description": "Manages an IAM user group role assignment within FlexibleEngine IAM Service.\nThis is an alternative to `flexibleengine.IdentityRoleAssignmentV3`\n\n> **NOTE:** 1. You *must* have admin privileges to use this resource.\n  <br/>2. When the resource is created, the permissions will take effect after 15 to 30 minutes.\n\n## Example Usage\n\n### Assign role with project\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst projectId = config.requireObject(\"projectId\");\nconst testIdentityRoleV3 = flexibleengine.getIdentityRoleV3({\n    name: \"rds_adm\",\n});\nconst testIdentityGroupV3 = new flexibleengine.IdentityGroupV3(\"testIdentityGroupV3\", {});\nconst testIdentityGroupRoleAssignment = new flexibleengine.IdentityGroupRoleAssignment(\"testIdentityGroupRoleAssignment\", {\n    groupId: testIdentityGroupV3.identityGroupV3Id,\n    roleId: testIdentityRoleV3.then(testIdentityRoleV3 => testIdentityRoleV3.id),\n    projectId: projectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nproject_id = config.require_object(\"projectId\")\ntest_identity_role_v3 = flexibleengine.get_identity_role_v3(name=\"rds_adm\")\ntest_identity_group_v3 = flexibleengine.IdentityGroupV3(\"testIdentityGroupV3\")\ntest_identity_group_role_assignment = flexibleengine.IdentityGroupRoleAssignment(\"testIdentityGroupRoleAssignment\",\n    group_id=test_identity_group_v3.identity_group_v3_id,\n    role_id=test_identity_role_v3.id,\n    project_id=project_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var projectId = config.RequireObject<dynamic>(\"projectId\");\n    var testIdentityRoleV3 = Flexibleengine.GetIdentityRoleV3.Invoke(new()\n    {\n        Name = \"rds_adm\",\n    });\n\n    var testIdentityGroupV3 = new Flexibleengine.IdentityGroupV3(\"testIdentityGroupV3\");\n\n    var testIdentityGroupRoleAssignment = new Flexibleengine.IdentityGroupRoleAssignment(\"testIdentityGroupRoleAssignment\", new()\n    {\n        GroupId = testIdentityGroupV3.IdentityGroupV3Id,\n        RoleId = testIdentityRoleV3.Apply(getIdentityRoleV3Result => getIdentityRoleV3Result.Id),\n        ProjectId = projectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tprojectId := cfg.RequireObject(\"projectId\")\n\t\ttestIdentityRoleV3, err := flexibleengine.LookupIdentityRoleV3(ctx, &flexibleengine.LookupIdentityRoleV3Args{\n\t\t\tName: \"rds_adm\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestIdentityGroupV3, err := flexibleengine.NewIdentityGroupV3(ctx, \"testIdentityGroupV3\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewIdentityGroupRoleAssignment(ctx, \"testIdentityGroupRoleAssignment\", &flexibleengine.IdentityGroupRoleAssignmentArgs{\n\t\t\tGroupId:   testIdentityGroupV3.IdentityGroupV3Id,\n\t\t\tRoleId:    pulumi.String(testIdentityRoleV3.Id),\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetIdentityRoleV3Args;\nimport com.pulumi.flexibleengine.IdentityGroupV3;\nimport com.pulumi.flexibleengine.IdentityGroupRoleAssignment;\nimport com.pulumi.flexibleengine.IdentityGroupRoleAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var projectId = config.get(\"projectId\");\n        final var testIdentityRoleV3 = FlexibleengineFunctions.getIdentityRoleV3(GetIdentityRoleV3Args.builder()\n            .name(\"rds_adm\")\n            .build());\n\n        var testIdentityGroupV3 = new IdentityGroupV3(\"testIdentityGroupV3\");\n\n        var testIdentityGroupRoleAssignment = new IdentityGroupRoleAssignment(\"testIdentityGroupRoleAssignment\", IdentityGroupRoleAssignmentArgs.builder()\n            .groupId(testIdentityGroupV3.identityGroupV3Id())\n            .roleId(testIdentityRoleV3.applyValue(getIdentityRoleV3Result -> getIdentityRoleV3Result.id()))\n            .projectId(projectId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  projectId:\n    type: dynamic\nresources:\n  testIdentityGroupV3:\n    type: flexibleengine:IdentityGroupV3\n  testIdentityGroupRoleAssignment:\n    type: flexibleengine:IdentityGroupRoleAssignment\n    properties:\n      groupId: ${testIdentityGroupV3.identityGroupV3Id}\n      roleId: ${testIdentityRoleV3.id}\n      projectId: ${projectId}\nvariables:\n  testIdentityRoleV3:\n    fn::invoke:\n      function: flexibleengine:getIdentityRoleV3\n      arguments:\n        name: rds_adm\n```\n<!--End PulumiCodeChooser -->\n\n### Assign role with all projects\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst testIdentityRoleV3 = flexibleengine.getIdentityRoleV3({\n    name: \"rds_adm\",\n});\nconst testIdentityGroupV3 = new flexibleengine.IdentityGroupV3(\"testIdentityGroupV3\", {});\nconst all = new flexibleengine.IdentityGroupRoleAssignment(\"all\", {\n    groupId: testIdentityGroupV3.identityGroupV3Id,\n    roleId: testIdentityRoleV3.then(testIdentityRoleV3 => testIdentityRoleV3.id),\n    projectId: \"all\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest_identity_role_v3 = flexibleengine.get_identity_role_v3(name=\"rds_adm\")\ntest_identity_group_v3 = flexibleengine.IdentityGroupV3(\"testIdentityGroupV3\")\nall = flexibleengine.IdentityGroupRoleAssignment(\"all\",\n    group_id=test_identity_group_v3.identity_group_v3_id,\n    role_id=test_identity_role_v3.id,\n    project_id=\"all\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var testIdentityRoleV3 = Flexibleengine.GetIdentityRoleV3.Invoke(new()\n    {\n        Name = \"rds_adm\",\n    });\n\n    var testIdentityGroupV3 = new Flexibleengine.IdentityGroupV3(\"testIdentityGroupV3\");\n\n    var all = new Flexibleengine.IdentityGroupRoleAssignment(\"all\", new()\n    {\n        GroupId = testIdentityGroupV3.IdentityGroupV3Id,\n        RoleId = testIdentityRoleV3.Apply(getIdentityRoleV3Result => getIdentityRoleV3Result.Id),\n        ProjectId = \"all\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestIdentityRoleV3, err := flexibleengine.LookupIdentityRoleV3(ctx, &flexibleengine.LookupIdentityRoleV3Args{\n\t\t\tName: \"rds_adm\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestIdentityGroupV3, err := flexibleengine.NewIdentityGroupV3(ctx, \"testIdentityGroupV3\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewIdentityGroupRoleAssignment(ctx, \"all\", &flexibleengine.IdentityGroupRoleAssignmentArgs{\n\t\t\tGroupId:   testIdentityGroupV3.IdentityGroupV3Id,\n\t\t\tRoleId:    pulumi.String(testIdentityRoleV3.Id),\n\t\t\tProjectId: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetIdentityRoleV3Args;\nimport com.pulumi.flexibleengine.IdentityGroupV3;\nimport com.pulumi.flexibleengine.IdentityGroupRoleAssignment;\nimport com.pulumi.flexibleengine.IdentityGroupRoleAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var testIdentityRoleV3 = FlexibleengineFunctions.getIdentityRoleV3(GetIdentityRoleV3Args.builder()\n            .name(\"rds_adm\")\n            .build());\n\n        var testIdentityGroupV3 = new IdentityGroupV3(\"testIdentityGroupV3\");\n\n        var all = new IdentityGroupRoleAssignment(\"all\", IdentityGroupRoleAssignmentArgs.builder()\n            .groupId(testIdentityGroupV3.identityGroupV3Id())\n            .roleId(testIdentityRoleV3.applyValue(getIdentityRoleV3Result -> getIdentityRoleV3Result.id()))\n            .projectId(\"all\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testIdentityGroupV3:\n    type: flexibleengine:IdentityGroupV3\n  all:\n    type: flexibleengine:IdentityGroupRoleAssignment\n    properties:\n      groupId: ${testIdentityGroupV3.identityGroupV3Id}\n      roleId: ${testIdentityRoleV3.id}\n      projectId: all\nvariables:\n  testIdentityRoleV3:\n    fn::invoke:\n      function: flexibleengine:getIdentityRoleV3\n      arguments:\n        name: rds_adm\n```\n<!--End PulumiCodeChooser -->\n\n### Assign role with domain\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst domainId = config.requireObject(\"domainId\");\nconst testIdentityRoleV3 = flexibleengine.getIdentityRoleV3({\n    name: \"obs_adm\",\n});\nconst testIdentityGroupV3 = new flexibleengine.IdentityGroupV3(\"testIdentityGroupV3\", {});\nconst testIdentityGroupRoleAssignment = new flexibleengine.IdentityGroupRoleAssignment(\"testIdentityGroupRoleAssignment\", {\n    groupId: testIdentityGroupV3.identityGroupV3Id,\n    roleId: testIdentityRoleV3.then(testIdentityRoleV3 => testIdentityRoleV3.id),\n    domainId: domainId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ndomain_id = config.require_object(\"domainId\")\ntest_identity_role_v3 = flexibleengine.get_identity_role_v3(name=\"obs_adm\")\ntest_identity_group_v3 = flexibleengine.IdentityGroupV3(\"testIdentityGroupV3\")\ntest_identity_group_role_assignment = flexibleengine.IdentityGroupRoleAssignment(\"testIdentityGroupRoleAssignment\",\n    group_id=test_identity_group_v3.identity_group_v3_id,\n    role_id=test_identity_role_v3.id,\n    domain_id=domain_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var domainId = config.RequireObject<dynamic>(\"domainId\");\n    var testIdentityRoleV3 = Flexibleengine.GetIdentityRoleV3.Invoke(new()\n    {\n        Name = \"obs_adm\",\n    });\n\n    var testIdentityGroupV3 = new Flexibleengine.IdentityGroupV3(\"testIdentityGroupV3\");\n\n    var testIdentityGroupRoleAssignment = new Flexibleengine.IdentityGroupRoleAssignment(\"testIdentityGroupRoleAssignment\", new()\n    {\n        GroupId = testIdentityGroupV3.IdentityGroupV3Id,\n        RoleId = testIdentityRoleV3.Apply(getIdentityRoleV3Result => getIdentityRoleV3Result.Id),\n        DomainId = domainId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainId := cfg.RequireObject(\"domainId\")\n\t\ttestIdentityRoleV3, err := flexibleengine.LookupIdentityRoleV3(ctx, &flexibleengine.LookupIdentityRoleV3Args{\n\t\t\tName: \"obs_adm\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestIdentityGroupV3, err := flexibleengine.NewIdentityGroupV3(ctx, \"testIdentityGroupV3\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewIdentityGroupRoleAssignment(ctx, \"testIdentityGroupRoleAssignment\", &flexibleengine.IdentityGroupRoleAssignmentArgs{\n\t\t\tGroupId:  testIdentityGroupV3.IdentityGroupV3Id,\n\t\t\tRoleId:   pulumi.String(testIdentityRoleV3.Id),\n\t\t\tDomainId: pulumi.Any(domainId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetIdentityRoleV3Args;\nimport com.pulumi.flexibleengine.IdentityGroupV3;\nimport com.pulumi.flexibleengine.IdentityGroupRoleAssignment;\nimport com.pulumi.flexibleengine.IdentityGroupRoleAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainId = config.get(\"domainId\");\n        final var testIdentityRoleV3 = FlexibleengineFunctions.getIdentityRoleV3(GetIdentityRoleV3Args.builder()\n            .name(\"obs_adm\")\n            .build());\n\n        var testIdentityGroupV3 = new IdentityGroupV3(\"testIdentityGroupV3\");\n\n        var testIdentityGroupRoleAssignment = new IdentityGroupRoleAssignment(\"testIdentityGroupRoleAssignment\", IdentityGroupRoleAssignmentArgs.builder()\n            .groupId(testIdentityGroupV3.identityGroupV3Id())\n            .roleId(testIdentityRoleV3.applyValue(getIdentityRoleV3Result -> getIdentityRoleV3Result.id()))\n            .domainId(domainId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainId:\n    type: dynamic\nresources:\n  testIdentityGroupV3:\n    type: flexibleengine:IdentityGroupV3\n  testIdentityGroupRoleAssignment:\n    type: flexibleengine:IdentityGroupRoleAssignment\n    properties:\n      groupId: ${testIdentityGroupV3.identityGroupV3Id}\n      roleId: ${testIdentityRoleV3.id}\n      domainId: ${domainId}\nvariables:\n  testIdentityRoleV3:\n    fn::invoke:\n      function: flexibleengine:getIdentityRoleV3\n      arguments:\n        name: obs_adm\n```\n<!--End PulumiCodeChooser -->\n\n### Assign role with enterprise project\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst enterpriseProjectId = config.requireObject(\"enterpriseProjectId\");\nconst testIdentityRoleV3 = flexibleengine.getIdentityRoleV3({\n    name: \"rds_adm\",\n});\nconst testIdentityGroupV3 = new flexibleengine.IdentityGroupV3(\"testIdentityGroupV3\", {});\nconst testIdentityGroupRoleAssignment = new flexibleengine.IdentityGroupRoleAssignment(\"testIdentityGroupRoleAssignment\", {\n    groupId: testIdentityGroupV3.identityGroupV3Id,\n    roleId: testIdentityRoleV3.then(testIdentityRoleV3 => testIdentityRoleV3.id),\n    enterpriseProjectId: enterpriseProjectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nenterprise_project_id = config.require_object(\"enterpriseProjectId\")\ntest_identity_role_v3 = flexibleengine.get_identity_role_v3(name=\"rds_adm\")\ntest_identity_group_v3 = flexibleengine.IdentityGroupV3(\"testIdentityGroupV3\")\ntest_identity_group_role_assignment = flexibleengine.IdentityGroupRoleAssignment(\"testIdentityGroupRoleAssignment\",\n    group_id=test_identity_group_v3.identity_group_v3_id,\n    role_id=test_identity_role_v3.id,\n    enterprise_project_id=enterprise_project_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var enterpriseProjectId = config.RequireObject<dynamic>(\"enterpriseProjectId\");\n    var testIdentityRoleV3 = Flexibleengine.GetIdentityRoleV3.Invoke(new()\n    {\n        Name = \"rds_adm\",\n    });\n\n    var testIdentityGroupV3 = new Flexibleengine.IdentityGroupV3(\"testIdentityGroupV3\");\n\n    var testIdentityGroupRoleAssignment = new Flexibleengine.IdentityGroupRoleAssignment(\"testIdentityGroupRoleAssignment\", new()\n    {\n        GroupId = testIdentityGroupV3.IdentityGroupV3Id,\n        RoleId = testIdentityRoleV3.Apply(getIdentityRoleV3Result => getIdentityRoleV3Result.Id),\n        EnterpriseProjectId = enterpriseProjectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tenterpriseProjectId := cfg.RequireObject(\"enterpriseProjectId\")\n\t\ttestIdentityRoleV3, err := flexibleengine.LookupIdentityRoleV3(ctx, &flexibleengine.LookupIdentityRoleV3Args{\n\t\t\tName: \"rds_adm\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestIdentityGroupV3, err := flexibleengine.NewIdentityGroupV3(ctx, \"testIdentityGroupV3\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewIdentityGroupRoleAssignment(ctx, \"testIdentityGroupRoleAssignment\", &flexibleengine.IdentityGroupRoleAssignmentArgs{\n\t\t\tGroupId:             testIdentityGroupV3.IdentityGroupV3Id,\n\t\t\tRoleId:              pulumi.String(testIdentityRoleV3.Id),\n\t\t\tEnterpriseProjectId: pulumi.Any(enterpriseProjectId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetIdentityRoleV3Args;\nimport com.pulumi.flexibleengine.IdentityGroupV3;\nimport com.pulumi.flexibleengine.IdentityGroupRoleAssignment;\nimport com.pulumi.flexibleengine.IdentityGroupRoleAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var enterpriseProjectId = config.get(\"enterpriseProjectId\");\n        final var testIdentityRoleV3 = FlexibleengineFunctions.getIdentityRoleV3(GetIdentityRoleV3Args.builder()\n            .name(\"rds_adm\")\n            .build());\n\n        var testIdentityGroupV3 = new IdentityGroupV3(\"testIdentityGroupV3\");\n\n        var testIdentityGroupRoleAssignment = new IdentityGroupRoleAssignment(\"testIdentityGroupRoleAssignment\", IdentityGroupRoleAssignmentArgs.builder()\n            .groupId(testIdentityGroupV3.identityGroupV3Id())\n            .roleId(testIdentityRoleV3.applyValue(getIdentityRoleV3Result -> getIdentityRoleV3Result.id()))\n            .enterpriseProjectId(enterpriseProjectId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  enterpriseProjectId:\n    type: dynamic\nresources:\n  testIdentityGroupV3:\n    type: flexibleengine:IdentityGroupV3\n  testIdentityGroupRoleAssignment:\n    type: flexibleengine:IdentityGroupRoleAssignment\n    properties:\n      groupId: ${testIdentityGroupV3.identityGroupV3Id}\n      roleId: ${testIdentityRoleV3.id}\n      enterpriseProjectId: ${enterpriseProjectId}\nvariables:\n  testIdentityRoleV3:\n    fn::invoke:\n      function: flexibleengine:getIdentityRoleV3\n      arguments:\n        name: rds_adm\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe role assignments can be imported using the `group_id`, `role_id` and  `domain_id`, `project_id`,\n\n  `enterprise_project_id`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/identityGroupRoleAssignment:IdentityGroupRoleAssignment test <group_id>/<role_id>/<domain_id>\n```\n\nor\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/identityGroupRoleAssignment:IdentityGroupRoleAssignment test <group_id>/<role_id>/<project_id>\n```\n\nor\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/identityGroupRoleAssignment:IdentityGroupRoleAssignment test <group_id>/<role_id>/all\n```\n\nor\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/identityGroupRoleAssignment:IdentityGroupRoleAssignment test <group_id>/<role_id>/<enterprise_project_id>\n```\n\n",
      "properties": {
        "domainId": {
          "type": "string",
          "description": "Specifies the domain to assign the role in.\nChanging this parameter will create a new resource.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project to assign the role in.\nChanging this parameter will create a new resource.\n\n> Exactly one of `domain_id`, `project_id` or `enterprise_project_id` must be specified.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the group to assign the role to.\nChanging this parameter will create a new resource.\n"
        },
        "identityGroupRoleAssignmentId": {
          "type": "string",
          "description": "The resource ID. When assign in domain, the format is `<group_id>/<role_id>/<domain_id>`;\nwhen assign in project, the format is `<group_id>/<role_id>/<project_id>`;\nwhen assign in enterprise project, the format is `<group_id>/<role_id>/<enterprise_project_id>`;\n"
        },
        "projectId": {
          "type": "string",
          "description": "Specifies the project to assign the role in.\nIf `project_id` is set to **all**, it means that the specified user group will be able to use all projects,\nincluding existing and future projects.\n\nChanging this parameter will create a new resource.\n"
        },
        "roleId": {
          "type": "string",
          "description": "Specifies the role to assign.\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "groupId",
        "identityGroupRoleAssignmentId",
        "roleId"
      ],
      "inputProperties": {
        "domainId": {
          "type": "string",
          "description": "Specifies the domain to assign the role in.\nChanging this parameter will create a new resource.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project to assign the role in.\nChanging this parameter will create a new resource.\n\n> Exactly one of `domain_id`, `project_id` or `enterprise_project_id` must be specified.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the group to assign the role to.\nChanging this parameter will create a new resource.\n"
        },
        "identityGroupRoleAssignmentId": {
          "type": "string",
          "description": "The resource ID. When assign in domain, the format is `<group_id>/<role_id>/<domain_id>`;\nwhen assign in project, the format is `<group_id>/<role_id>/<project_id>`;\nwhen assign in enterprise project, the format is `<group_id>/<role_id>/<enterprise_project_id>`;\n"
        },
        "projectId": {
          "type": "string",
          "description": "Specifies the project to assign the role in.\nIf `project_id` is set to **all**, it means that the specified user group will be able to use all projects,\nincluding existing and future projects.\n\nChanging this parameter will create a new resource.\n"
        },
        "roleId": {
          "type": "string",
          "description": "Specifies the role to assign.\nChanging this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "groupId",
        "roleId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityGroupRoleAssignment resources.\n",
        "properties": {
          "domainId": {
            "type": "string",
            "description": "Specifies the domain to assign the role in.\nChanging this parameter will create a new resource.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project to assign the role in.\nChanging this parameter will create a new resource.\n\n> Exactly one of `domain_id`, `project_id` or `enterprise_project_id` must be specified.\n"
          },
          "groupId": {
            "type": "string",
            "description": "Specifies the group to assign the role to.\nChanging this parameter will create a new resource.\n"
          },
          "identityGroupRoleAssignmentId": {
            "type": "string",
            "description": "The resource ID. When assign in domain, the format is `<group_id>/<role_id>/<domain_id>`;\nwhen assign in project, the format is `<group_id>/<role_id>/<project_id>`;\nwhen assign in enterprise project, the format is `<group_id>/<role_id>/<enterprise_project_id>`;\n"
          },
          "projectId": {
            "type": "string",
            "description": "Specifies the project to assign the role in.\nIf `project_id` is set to **all**, it means that the specified user group will be able to use all projects,\nincluding existing and future projects.\n\nChanging this parameter will create a new resource.\n"
          },
          "roleId": {
            "type": "string",
            "description": "Specifies the role to assign.\nChanging this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/identityGroupV3:IdentityGroupV3": {
      "description": "Manages a User Group resource within FlexibleEngine IAM service.\n\n> You *must* have admin privileges in your FlexibleEngine cloud to use this resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst group1 = new flexibleengine.IdentityGroupV3(\"group1\", {description: \"This is a test group\"});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ngroup1 = flexibleengine.IdentityGroupV3(\"group1\", description=\"This is a test group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var group1 = new Flexibleengine.IdentityGroupV3(\"group1\", new()\n    {\n        Description = \"This is a test group\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewIdentityGroupV3(ctx, \"group1\", &flexibleengine.IdentityGroupV3Args{\n\t\t\tDescription: pulumi.String(\"This is a test group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.IdentityGroupV3;\nimport com.pulumi.flexibleengine.IdentityGroupV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var group1 = new IdentityGroupV3(\"group1\", IdentityGroupV3Args.builder()\n            .description(\"This is a test group\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: flexibleengine:IdentityGroupV3\n    properties:\n      description: This is a test group\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nGroups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/identityGroupV3:IdentityGroupV3 group_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "A description of the group.\n"
        },
        "domainId": {
          "type": "string",
          "description": "The domain this group belongs to.\n"
        },
        "identityGroupV3Id": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of the group. The length is less than or equal to 64 bytes.\n"
        }
      },
      "type": "object",
      "required": [
        "domainId",
        "identityGroupV3Id",
        "name"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "A description of the group.\n"
        },
        "domainId": {
          "type": "string",
          "description": "The domain this group belongs to.\n"
        },
        "identityGroupV3Id": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of the group. The length is less than or equal to 64 bytes.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityGroupV3 resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "A description of the group.\n"
          },
          "domainId": {
            "type": "string",
            "description": "The domain this group belongs to.\n"
          },
          "identityGroupV3Id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "The name of the group. The length is less than or equal to 64 bytes.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/identityProjectV3:IdentityProjectV3": {
      "description": "Manages a Project resource within FlexibleEngine IAM service.\n\n> You *must* have admin privileges in your FlexibleEngine cloud to use this resource.\n\n!> Project deletion is not supported by FlexibleEngine API\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst project1 = new flexibleengine.IdentityProjectV3(\"project1\", {description: \"A ACC test project\"});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nproject1 = flexibleengine.IdentityProjectV3(\"project1\", description=\"A ACC test project\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var project1 = new Flexibleengine.IdentityProjectV3(\"project1\", new()\n    {\n        Description = \"A ACC test project\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewIdentityProjectV3(ctx, \"project1\", &flexibleengine.IdentityProjectV3Args{\n\t\t\tDescription: pulumi.String(\"A ACC test project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.IdentityProjectV3;\nimport com.pulumi.flexibleengine.IdentityProjectV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var project1 = new IdentityProjectV3(\"project1\", IdentityProjectV3Args.builder()\n            .description(\"A ACC test project\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project1:\n    type: flexibleengine:IdentityProjectV3\n    properties:\n      description: A ACC test project\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nProjects can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/identityProjectV3:IdentityProjectV3 project_1 <ID>\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "A description of the project.\n"
        },
        "domainId": {
          "type": "string",
          "description": "The domain this project belongs to.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Enabling status of this project.\n"
        },
        "identityProjectV3Id": {
          "type": "string",
          "description": "A resource ID in UUID format.\n"
        },
        "isDomain": {
          "type": "boolean"
        },
        "name": {
          "type": "string",
          "description": "The name of the project. The length is less than or equal\nto 64 bytes. Name mut be prefixed with a valid region name (eg. eu-west-0_project_1).\n"
        },
        "parentId": {
          "type": "string",
          "description": "The parent of this project.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FIdentityProjectV3Timeouts:IdentityProjectV3Timeouts"
        }
      },
      "type": "object",
      "required": [
        "domainId",
        "enabled",
        "identityProjectV3Id",
        "isDomain",
        "name",
        "parentId"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "A description of the project.\n"
        },
        "identityProjectV3Id": {
          "type": "string",
          "description": "A resource ID in UUID format.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the project. The length is less than or equal\nto 64 bytes. Name mut be prefixed with a valid region name (eg. eu-west-0_project_1).\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FIdentityProjectV3Timeouts:IdentityProjectV3Timeouts"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityProjectV3 resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "A description of the project.\n"
          },
          "domainId": {
            "type": "string",
            "description": "The domain this project belongs to.\n"
          },
          "enabled": {
            "type": "boolean",
            "description": "Enabling status of this project.\n"
          },
          "identityProjectV3Id": {
            "type": "string",
            "description": "A resource ID in UUID format.\n"
          },
          "isDomain": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "description": "The name of the project. The length is less than or equal\nto 64 bytes. Name mut be prefixed with a valid region name (eg. eu-west-0_project_1).\n"
          },
          "parentId": {
            "type": "string",
            "description": "The parent of this project.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FIdentityProjectV3Timeouts:IdentityProjectV3Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/identityProvider:IdentityProvider": {
      "description": "Manages the identity providers within FlexibleEngine IAM service.\n\n> **NOTE:** You can create up to 10 identity providers.\n\n## Example Usage\n\n### Create a SAML protocol provider\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst provider1 = new flexibleengine.IdentityProvider(\"provider1\", {protocol: \"saml\"});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nprovider1 = flexibleengine.IdentityProvider(\"provider1\", protocol=\"saml\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var provider1 = new Flexibleengine.IdentityProvider(\"provider1\", new()\n    {\n        Protocol = \"saml\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewIdentityProvider(ctx, \"provider1\", &flexibleengine.IdentityProviderArgs{\n\t\t\tProtocol: pulumi.String(\"saml\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.IdentityProvider;\nimport com.pulumi.flexibleengine.IdentityProviderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var provider1 = new IdentityProvider(\"provider1\", IdentityProviderArgs.builder()\n            .protocol(\"saml\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  provider1:\n    type: flexibleengine:IdentityProvider\n    properties:\n      protocol: saml\n```\n<!--End PulumiCodeChooser -->\n\n### Create a OpenID Connect protocol provider\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst provider2 = new flexibleengine.IdentityProvider(\"provider2\", {\n    protocol: \"oidc\",\n    openidConnectConfig: {\n        accessType: \"program_console\",\n        providerUrl: \"https://accounts.example.com\",\n        clientId: \"your_client_id\",\n        authorizationEndpoint: \"https://accounts.example.com/o/oauth2/v2/auth\",\n        scopes: [\"openid\"],\n        signingKey: JSON.stringify({\n            keys: [{\n                alg: \"RS256\",\n                e: \"AQAB\",\n                kid: \"...\",\n                kty: \"RSA\",\n                n: \"...\",\n                use: \"sig\",\n            }],\n        }),\n    },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_flexibleengine as flexibleengine\n\nprovider2 = flexibleengine.IdentityProvider(\"provider2\",\n    protocol=\"oidc\",\n    openid_connect_config={\n        \"access_type\": \"program_console\",\n        \"provider_url\": \"https://accounts.example.com\",\n        \"client_id\": \"your_client_id\",\n        \"authorization_endpoint\": \"https://accounts.example.com/o/oauth2/v2/auth\",\n        \"scopes\": [\"openid\"],\n        \"signing_key\": json.dumps({\n            \"keys\": [{\n                \"alg\": \"RS256\",\n                \"e\": \"AQAB\",\n                \"kid\": \"...\",\n                \"kty\": \"RSA\",\n                \"n\": \"...\",\n                \"use\": \"sig\",\n            }],\n        }),\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var provider2 = new Flexibleengine.IdentityProvider(\"provider2\", new()\n    {\n        Protocol = \"oidc\",\n        OpenidConnectConfig = new Flexibleengine.Inputs.IdentityProviderOpenidConnectConfigArgs\n        {\n            AccessType = \"program_console\",\n            ProviderUrl = \"https://accounts.example.com\",\n            ClientId = \"your_client_id\",\n            AuthorizationEndpoint = \"https://accounts.example.com/o/oauth2/v2/auth\",\n            Scopes = new[]\n            {\n                \"openid\",\n            },\n            SigningKey = JsonSerializer.Serialize(new Dictionary<string, object?>\n            {\n                [\"keys\"] = new[]\n                {\n                    new Dictionary<string, object?>\n                    {\n                        [\"alg\"] = \"RS256\",\n                        [\"e\"] = \"AQAB\",\n                        [\"kid\"] = \"...\",\n                        [\"kty\"] = \"RSA\",\n                        [\"n\"] = \"...\",\n                        [\"use\"] = \"sig\",\n                    },\n                },\n            }),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"keys\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"alg\": \"RS256\",\n\t\t\t\t\t\"e\":   \"AQAB\",\n\t\t\t\t\t\"kid\": \"...\",\n\t\t\t\t\t\"kty\": \"RSA\",\n\t\t\t\t\t\"n\":   \"...\",\n\t\t\t\t\t\"use\": \"sig\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = flexibleengine.NewIdentityProvider(ctx, \"provider2\", &flexibleengine.IdentityProviderArgs{\n\t\t\tProtocol: pulumi.String(\"oidc\"),\n\t\t\tOpenidConnectConfig: &flexibleengine.IdentityProviderOpenidConnectConfigArgs{\n\t\t\t\tAccessType:            pulumi.String(\"program_console\"),\n\t\t\t\tProviderUrl:           pulumi.String(\"https://accounts.example.com\"),\n\t\t\t\tClientId:              pulumi.String(\"your_client_id\"),\n\t\t\t\tAuthorizationEndpoint: pulumi.String(\"https://accounts.example.com/o/oauth2/v2/auth\"),\n\t\t\t\tScopes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\t},\n\t\t\t\tSigningKey: pulumi.String(json0),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.IdentityProvider;\nimport com.pulumi.flexibleengine.IdentityProviderArgs;\nimport com.pulumi.flexibleengine.inputs.IdentityProviderOpenidConnectConfigArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var provider2 = new IdentityProvider(\"provider2\", IdentityProviderArgs.builder()\n            .protocol(\"oidc\")\n            .openidConnectConfig(IdentityProviderOpenidConnectConfigArgs.builder()\n                .accessType(\"program_console\")\n                .providerUrl(\"https://accounts.example.com\")\n                .clientId(\"your_client_id\")\n                .authorizationEndpoint(\"https://accounts.example.com/o/oauth2/v2/auth\")\n                .scopes(\"openid\")\n                .signingKey(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"keys\", jsonArray(jsonObject(\n                            jsonProperty(\"alg\", \"RS256\"),\n                            jsonProperty(\"e\", \"AQAB\"),\n                            jsonProperty(\"kid\", \"...\"),\n                            jsonProperty(\"kty\", \"RSA\"),\n                            jsonProperty(\"n\", \"...\"),\n                            jsonProperty(\"use\", \"sig\")\n                        )))\n                    )))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  provider2:\n    type: flexibleengine:IdentityProvider\n    properties:\n      protocol: oidc\n      openidConnectConfig:\n        accessType: program_console\n        providerUrl: https://accounts.example.com\n        clientId: your_client_id\n        authorizationEndpoint: https://accounts.example.com/o/oauth2/v2/auth\n        scopes:\n          - openid\n        signingKey:\n          fn::toJSON:\n            keys:\n              - alg: RS256\n                e: AQAB\n                kid: '...'\n                kty: RSA\n                n: '...'\n                use: sig\n```\n<!--End PulumiCodeChooser -->\n\n<!--markdownlint-disable MD033-->\n\n## Import\n\nIdentity provider can be imported using the `name`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/identityProvider:IdentityProvider provider_1 example_com_provider_saml\n```\n\n",
      "properties": {
        "conversionRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FIdentityProviderConversionRule:IdentityProviderConversionRule"
          },
          "description": "The identity conversion rules of the identity provider.\nThe conversion_rules object structure is documented below.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the identity provider.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies the status for the identity provider. Defaults to **true**.\n"
        },
        "identityProviderId": {
          "type": "string",
          "description": "The resource ID which equals to the name.\n"
        },
        "loginLink": {
          "type": "string",
          "description": "The login link of the identity provider.\n"
        },
        "metadata": {
          "type": "string",
          "description": "Specifies the metadata of the IDP(Identity Provider) server.\nTo obtain the metadata file of your enterprise IDP, contact the enterprise administrator.\nThis field is used to import a metadata file to IAM to implement federated identity authentication.\nThis field is required only if the protocol is set to *saml*.\nThe maximum length is 30,000 characters and it stores in the state with SHA1 algorithm.\n\n> **NOTE:**\nThe metadata file specifies API addresses and certificate information in compliance with the SAML 2.0 standard.\nIt is usually stored in a file. In the TF script, you can import the metafile through the **file** function,\nfor example:\n<br/>`metadata = file(\"/usr/local/data/files/metadata.txt\")`\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the identity provider to be registered.\nThe maximum length is 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.\nThe name is unique, it is recommended to include domain name information.\nChanging this creates a new resource.\n"
        },
        "openidConnectConfig": {
          "$ref": "#/types/flexibleengine:index%2FIdentityProviderOpenidConnectConfig:IdentityProviderOpenidConnectConfig",
          "description": "Specifies the description of the identity provider.\nThis field is required only if the protocol is set to *oidc*.\nThe openid_connect_config object structure is documented below.\n\n<a name=\"IAM_openid_connect_config\"></a>\nThe `openid_connect_config` block supports:\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol of the identity provider.\nValid values are *saml* and *oidc*.\nChanging this creates a new resource.\n"
        },
        "ssoType": {
          "type": "string",
          "description": "The single sign-on type of the identity provider.\n"
        }
      },
      "type": "object",
      "required": [
        "conversionRules",
        "identityProviderId",
        "loginLink",
        "name",
        "protocol",
        "ssoType"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the identity provider.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies the status for the identity provider. Defaults to **true**.\n"
        },
        "identityProviderId": {
          "type": "string",
          "description": "The resource ID which equals to the name.\n"
        },
        "metadata": {
          "type": "string",
          "description": "Specifies the metadata of the IDP(Identity Provider) server.\nTo obtain the metadata file of your enterprise IDP, contact the enterprise administrator.\nThis field is used to import a metadata file to IAM to implement federated identity authentication.\nThis field is required only if the protocol is set to *saml*.\nThe maximum length is 30,000 characters and it stores in the state with SHA1 algorithm.\n\n> **NOTE:**\nThe metadata file specifies API addresses and certificate information in compliance with the SAML 2.0 standard.\nIt is usually stored in a file. In the TF script, you can import the metafile through the **file** function,\nfor example:\n<br/>`metadata = file(\"/usr/local/data/files/metadata.txt\")`\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the identity provider to be registered.\nThe maximum length is 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.\nThe name is unique, it is recommended to include domain name information.\nChanging this creates a new resource.\n"
        },
        "openidConnectConfig": {
          "$ref": "#/types/flexibleengine:index%2FIdentityProviderOpenidConnectConfig:IdentityProviderOpenidConnectConfig",
          "description": "Specifies the description of the identity provider.\nThis field is required only if the protocol is set to *oidc*.\nThe openid_connect_config object structure is documented below.\n\n<a name=\"IAM_openid_connect_config\"></a>\nThe `openid_connect_config` block supports:\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol of the identity provider.\nValid values are *saml* and *oidc*.\nChanging this creates a new resource.\n"
        }
      },
      "requiredInputs": [
        "protocol"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityProvider resources.\n",
        "properties": {
          "conversionRules": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FIdentityProviderConversionRule:IdentityProviderConversionRule"
            },
            "description": "The identity conversion rules of the identity provider.\nThe conversion_rules object structure is documented below.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the identity provider.\n"
          },
          "enabled": {
            "type": "boolean",
            "description": "Specifies the status for the identity provider. Defaults to **true**.\n"
          },
          "identityProviderId": {
            "type": "string",
            "description": "The resource ID which equals to the name.\n"
          },
          "loginLink": {
            "type": "string",
            "description": "The login link of the identity provider.\n"
          },
          "metadata": {
            "type": "string",
            "description": "Specifies the metadata of the IDP(Identity Provider) server.\nTo obtain the metadata file of your enterprise IDP, contact the enterprise administrator.\nThis field is used to import a metadata file to IAM to implement federated identity authentication.\nThis field is required only if the protocol is set to *saml*.\nThe maximum length is 30,000 characters and it stores in the state with SHA1 algorithm.\n\n> **NOTE:**\nThe metadata file specifies API addresses and certificate information in compliance with the SAML 2.0 standard.\nIt is usually stored in a file. In the TF script, you can import the metafile through the **file** function,\nfor example:\n<br/>`metadata = file(\"/usr/local/data/files/metadata.txt\")`\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the identity provider to be registered.\nThe maximum length is 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.\nThe name is unique, it is recommended to include domain name information.\nChanging this creates a new resource.\n"
          },
          "openidConnectConfig": {
            "$ref": "#/types/flexibleengine:index%2FIdentityProviderOpenidConnectConfig:IdentityProviderOpenidConnectConfig",
            "description": "Specifies the description of the identity provider.\nThis field is required only if the protocol is set to *oidc*.\nThe openid_connect_config object structure is documented below.\n\n<a name=\"IAM_openid_connect_config\"></a>\nThe `openid_connect_config` block supports:\n"
          },
          "protocol": {
            "type": "string",
            "description": "Specifies the protocol of the identity provider.\nValid values are *saml* and *oidc*.\nChanging this creates a new resource.\n"
          },
          "ssoType": {
            "type": "string",
            "description": "The single sign-on type of the identity provider.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/identityProviderConversion:IdentityProviderConversion": {
      "description": "Manage the conversion rules of identity provider within FlexibleEngine IAM service.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst providerId = config.requireObject(\"providerId\");\nconst conversion = new flexibleengine.IdentityProviderConversion(\"conversion\", {\n    providerId: providerId,\n    conversionRules: [\n        {\n            locals: [{\n                username: \"Tom\",\n            }],\n            remotes: [{\n                attribute: \"Tom\",\n            }],\n        },\n        {\n            locals: [{\n                username: \"FederationUser\",\n            }],\n            remotes: [{\n                attribute: \"username\",\n                condition: \"any_one_of\",\n                values: [\n                    \"Tom\",\n                    \"Jerry\",\n                ],\n            }],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nprovider_id = config.require_object(\"providerId\")\nconversion = flexibleengine.IdentityProviderConversion(\"conversion\",\n    provider_id=provider_id,\n    conversion_rules=[\n        {\n            \"locals\": [{\n                \"username\": \"Tom\",\n            }],\n            \"remotes\": [{\n                \"attribute\": \"Tom\",\n            }],\n        },\n        {\n            \"locals\": [{\n                \"username\": \"FederationUser\",\n            }],\n            \"remotes\": [{\n                \"attribute\": \"username\",\n                \"condition\": \"any_one_of\",\n                \"values\": [\n                    \"Tom\",\n                    \"Jerry\",\n                ],\n            }],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var providerId = config.RequireObject<dynamic>(\"providerId\");\n    var conversion = new Flexibleengine.IdentityProviderConversion(\"conversion\", new()\n    {\n        ProviderId = providerId,\n        ConversionRules = new[]\n        {\n            new Flexibleengine.Inputs.IdentityProviderConversionConversionRuleArgs\n            {\n                Locals = new[]\n                {\n                    new Flexibleengine.Inputs.IdentityProviderConversionConversionRuleLocalArgs\n                    {\n                        Username = \"Tom\",\n                    },\n                },\n                Remotes = new[]\n                {\n                    new Flexibleengine.Inputs.IdentityProviderConversionConversionRuleRemoteArgs\n                    {\n                        Attribute = \"Tom\",\n                    },\n                },\n            },\n            new Flexibleengine.Inputs.IdentityProviderConversionConversionRuleArgs\n            {\n                Locals = new[]\n                {\n                    new Flexibleengine.Inputs.IdentityProviderConversionConversionRuleLocalArgs\n                    {\n                        Username = \"FederationUser\",\n                    },\n                },\n                Remotes = new[]\n                {\n                    new Flexibleengine.Inputs.IdentityProviderConversionConversionRuleRemoteArgs\n                    {\n                        Attribute = \"username\",\n                        Condition = \"any_one_of\",\n                        Values = new[]\n                        {\n                            \"Tom\",\n                            \"Jerry\",\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tproviderId := cfg.RequireObject(\"providerId\")\n\t\t_, err := flexibleengine.NewIdentityProviderConversion(ctx, \"conversion\", &flexibleengine.IdentityProviderConversionArgs{\n\t\t\tProviderId: pulumi.Any(providerId),\n\t\t\tConversionRules: flexibleengine.IdentityProviderConversionConversionRuleArray{\n\t\t\t\t&flexibleengine.IdentityProviderConversionConversionRuleArgs{\n\t\t\t\t\tLocals: flexibleengine.IdentityProviderConversionConversionRuleLocalArray{\n\t\t\t\t\t\t&flexibleengine.IdentityProviderConversionConversionRuleLocalArgs{\n\t\t\t\t\t\t\tUsername: pulumi.String(\"Tom\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRemotes: flexibleengine.IdentityProviderConversionConversionRuleRemoteArray{\n\t\t\t\t\t\t&flexibleengine.IdentityProviderConversionConversionRuleRemoteArgs{\n\t\t\t\t\t\t\tAttribute: pulumi.String(\"Tom\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&flexibleengine.IdentityProviderConversionConversionRuleArgs{\n\t\t\t\t\tLocals: flexibleengine.IdentityProviderConversionConversionRuleLocalArray{\n\t\t\t\t\t\t&flexibleengine.IdentityProviderConversionConversionRuleLocalArgs{\n\t\t\t\t\t\t\tUsername: pulumi.String(\"FederationUser\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRemotes: flexibleengine.IdentityProviderConversionConversionRuleRemoteArray{\n\t\t\t\t\t\t&flexibleengine.IdentityProviderConversionConversionRuleRemoteArgs{\n\t\t\t\t\t\t\tAttribute: pulumi.String(\"username\"),\n\t\t\t\t\t\t\tCondition: pulumi.String(\"any_one_of\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"Tom\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"Jerry\"),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.IdentityProviderConversion;\nimport com.pulumi.flexibleengine.IdentityProviderConversionArgs;\nimport com.pulumi.flexibleengine.inputs.IdentityProviderConversionConversionRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var providerId = config.get(\"providerId\");\n        var conversion = new IdentityProviderConversion(\"conversion\", IdentityProviderConversionArgs.builder()\n            .providerId(providerId)\n            .conversionRules(            \n                IdentityProviderConversionConversionRuleArgs.builder()\n                    .locals(IdentityProviderConversionConversionRuleLocalArgs.builder()\n                        .username(\"Tom\")\n                        .build())\n                    .remotes(IdentityProviderConversionConversionRuleRemoteArgs.builder()\n                        .attribute(\"Tom\")\n                        .build())\n                    .build(),\n                IdentityProviderConversionConversionRuleArgs.builder()\n                    .locals(IdentityProviderConversionConversionRuleLocalArgs.builder()\n                        .username(\"FederationUser\")\n                        .build())\n                    .remotes(IdentityProviderConversionConversionRuleRemoteArgs.builder()\n                        .attribute(\"username\")\n                        .condition(\"any_one_of\")\n                        .values(                        \n                            \"Tom\",\n                            \"Jerry\")\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  providerId:\n    type: dynamic\nresources:\n  conversion:\n    type: flexibleengine:IdentityProviderConversion\n    properties:\n      providerId: ${providerId}\n      conversionRules:\n        - locals:\n            - username: Tom\n          remotes:\n            - attribute: Tom\n        - locals:\n            - username: FederationUser\n          remotes:\n            - attribute: username\n              condition: any_one_of\n              values:\n                - Tom\n                - Jerry\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nIdentity provider conversion rules are imported using the `provider_id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/identityProviderConversion:IdentityProviderConversion conversion example_com_provider_oidc\n```\n\n",
      "properties": {
        "conversionRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FIdentityProviderConversionConversionRule:IdentityProviderConversionConversionRule"
          },
          "description": "Specifies the identity conversion rules of the identity provider.\nYou can use identity conversion rules to map the identities of existing users to FlexibleEngine and manage their access\nto cloud resources.\nThe conversion_rules object structure is documented below.\n\n<a name=\"IAM_conversion_rules\"></a>\nThe `conversion_rules` block supports:\n"
        },
        "identityProviderConversionId": {
          "type": "string",
          "description": "The ID of conversion rules.\n"
        },
        "providerId": {
          "type": "string",
          "description": "The ID or name of the identity provider used to manage the conversion rules.\n"
        }
      },
      "type": "object",
      "required": [
        "conversionRules",
        "identityProviderConversionId",
        "providerId"
      ],
      "inputProperties": {
        "conversionRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FIdentityProviderConversionConversionRule:IdentityProviderConversionConversionRule"
          },
          "description": "Specifies the identity conversion rules of the identity provider.\nYou can use identity conversion rules to map the identities of existing users to FlexibleEngine and manage their access\nto cloud resources.\nThe conversion_rules object structure is documented below.\n\n<a name=\"IAM_conversion_rules\"></a>\nThe `conversion_rules` block supports:\n"
        },
        "identityProviderConversionId": {
          "type": "string",
          "description": "The ID of conversion rules.\n"
        },
        "providerId": {
          "type": "string",
          "description": "The ID or name of the identity provider used to manage the conversion rules.\n"
        }
      },
      "requiredInputs": [
        "conversionRules",
        "providerId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityProviderConversion resources.\n",
        "properties": {
          "conversionRules": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FIdentityProviderConversionConversionRule:IdentityProviderConversionConversionRule"
            },
            "description": "Specifies the identity conversion rules of the identity provider.\nYou can use identity conversion rules to map the identities of existing users to FlexibleEngine and manage their access\nto cloud resources.\nThe conversion_rules object structure is documented below.\n\n<a name=\"IAM_conversion_rules\"></a>\nThe `conversion_rules` block supports:\n"
          },
          "identityProviderConversionId": {
            "type": "string",
            "description": "The ID of conversion rules.\n"
          },
          "providerId": {
            "type": "string",
            "description": "The ID or name of the identity provider used to manage the conversion rules.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/identityRoleAssignmentV3:IdentityRoleAssignmentV3": {
      "description": "Manages a V3 Role assignment within group on FlexibleEngine IAM Service.\n\n> You *must* have admin privileges in your FlexibleEngine cloud to use this resource.\n\n!> **Warning:** It has been deprecated, please use `flexibleengine.IdentityGroupRoleAssignment` instead.\n\n## Example Usage\n\n### Assign Role On Project Level\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst project1 = flexibleengine.getIdentityProjectV3({\n    name: \"eu-west-0_project_1\",\n});\nconst role1 = flexibleengine.getIdentityRoleV3({\n    name: \"system_all_1\",\n});\nconst group1 = new flexibleengine.IdentityGroupV3(\"group1\", {});\nconst roleAssignment1 = new flexibleengine.IdentityRoleAssignmentV3(\"roleAssignment1\", {\n    groupId: group1.identityGroupV3Id,\n    projectId: project1.then(project1 => project1.id),\n    roleId: role1.then(role1 => role1.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nproject1 = flexibleengine.get_identity_project_v3(name=\"eu-west-0_project_1\")\nrole1 = flexibleengine.get_identity_role_v3(name=\"system_all_1\")\ngroup1 = flexibleengine.IdentityGroupV3(\"group1\")\nrole_assignment1 = flexibleengine.IdentityRoleAssignmentV3(\"roleAssignment1\",\n    group_id=group1.identity_group_v3_id,\n    project_id=project1.id,\n    role_id=role1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var project1 = Flexibleengine.GetIdentityProjectV3.Invoke(new()\n    {\n        Name = \"eu-west-0_project_1\",\n    });\n\n    var role1 = Flexibleengine.GetIdentityRoleV3.Invoke(new()\n    {\n        Name = \"system_all_1\",\n    });\n\n    var group1 = new Flexibleengine.IdentityGroupV3(\"group1\");\n\n    var roleAssignment1 = new Flexibleengine.IdentityRoleAssignmentV3(\"roleAssignment1\", new()\n    {\n        GroupId = group1.IdentityGroupV3Id,\n        ProjectId = project1.Apply(getIdentityProjectV3Result => getIdentityProjectV3Result.Id),\n        RoleId = role1.Apply(getIdentityRoleV3Result => getIdentityRoleV3Result.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := flexibleengine.LookupIdentityProjectV3(ctx, &flexibleengine.LookupIdentityProjectV3Args{\n\t\t\tName: pulumi.StringRef(\"eu-west-0_project_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole1, err := flexibleengine.LookupIdentityRoleV3(ctx, &flexibleengine.LookupIdentityRoleV3Args{\n\t\t\tName: \"system_all_1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup1, err := flexibleengine.NewIdentityGroupV3(ctx, \"group1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewIdentityRoleAssignmentV3(ctx, \"roleAssignment1\", &flexibleengine.IdentityRoleAssignmentV3Args{\n\t\t\tGroupId:   group1.IdentityGroupV3Id,\n\t\t\tProjectId: pulumi.String(project1.Id),\n\t\t\tRoleId:    pulumi.String(role1.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetIdentityProjectV3Args;\nimport com.pulumi.flexibleengine.inputs.GetIdentityRoleV3Args;\nimport com.pulumi.flexibleengine.IdentityGroupV3;\nimport com.pulumi.flexibleengine.IdentityRoleAssignmentV3;\nimport com.pulumi.flexibleengine.IdentityRoleAssignmentV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var project1 = FlexibleengineFunctions.getIdentityProjectV3(GetIdentityProjectV3Args.builder()\n            .name(\"eu-west-0_project_1\")\n            .build());\n\n        final var role1 = FlexibleengineFunctions.getIdentityRoleV3(GetIdentityRoleV3Args.builder()\n            .name(\"system_all_1\")\n            .build());\n\n        var group1 = new IdentityGroupV3(\"group1\");\n\n        var roleAssignment1 = new IdentityRoleAssignmentV3(\"roleAssignment1\", IdentityRoleAssignmentV3Args.builder()\n            .groupId(group1.identityGroupV3Id())\n            .projectId(project1.applyValue(getIdentityProjectV3Result -> getIdentityProjectV3Result.id()))\n            .roleId(role1.applyValue(getIdentityRoleV3Result -> getIdentityRoleV3Result.id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: flexibleengine:IdentityGroupV3\n  roleAssignment1:\n    type: flexibleengine:IdentityRoleAssignmentV3\n    properties:\n      groupId: ${group1.identityGroupV3Id}\n      projectId: ${project1.id}\n      roleId: ${role1.id}\nvariables:\n  project1:\n    fn::invoke:\n      function: flexibleengine:getIdentityProjectV3\n      arguments:\n        name: eu-west-0_project_1\n  role1:\n    fn::invoke:\n      function: flexibleengine:getIdentityRoleV3\n      arguments:\n        name: system_all_1\n```\n<!--End PulumiCodeChooser -->\n\n\n### Assign Role On Domain Level\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst domainId = config.get(\"domainId\") || \"01aafcf63744d988ebef2b1e04c5c34\";\nconst group1 = new flexibleengine.IdentityGroupV3(\"group1\", {});\nconst role1 = flexibleengine.getIdentityRoleV3({\n    name: \"secu_admin\",\n});\nconst roleAssignment1 = new flexibleengine.IdentityRoleAssignmentV3(\"roleAssignment1\", {\n    groupId: group1.identityGroupV3Id,\n    domainId: domainId,\n    roleId: role1.then(role1 => role1.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ndomain_id = config.get(\"domainId\")\nif domain_id is None:\n    domain_id = \"01aafcf63744d988ebef2b1e04c5c34\"\ngroup1 = flexibleengine.IdentityGroupV3(\"group1\")\nrole1 = flexibleengine.get_identity_role_v3(name=\"secu_admin\")\nrole_assignment1 = flexibleengine.IdentityRoleAssignmentV3(\"roleAssignment1\",\n    group_id=group1.identity_group_v3_id,\n    domain_id=domain_id,\n    role_id=role1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var domainId = config.Get(\"domainId\") ?? \"01aafcf63744d988ebef2b1e04c5c34\";\n    var group1 = new Flexibleengine.IdentityGroupV3(\"group1\");\n\n    var role1 = Flexibleengine.GetIdentityRoleV3.Invoke(new()\n    {\n        Name = \"secu_admin\",\n    });\n\n    var roleAssignment1 = new Flexibleengine.IdentityRoleAssignmentV3(\"roleAssignment1\", new()\n    {\n        GroupId = group1.IdentityGroupV3Id,\n        DomainId = domainId,\n        RoleId = role1.Apply(getIdentityRoleV3Result => getIdentityRoleV3Result.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainId := \"01aafcf63744d988ebef2b1e04c5c34\"\n\t\tif param := cfg.Get(\"domainId\"); param != \"\" {\n\t\t\tdomainId = param\n\t\t}\n\t\tgroup1, err := flexibleengine.NewIdentityGroupV3(ctx, \"group1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole1, err := flexibleengine.LookupIdentityRoleV3(ctx, &flexibleengine.LookupIdentityRoleV3Args{\n\t\t\tName: \"secu_admin\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewIdentityRoleAssignmentV3(ctx, \"roleAssignment1\", &flexibleengine.IdentityRoleAssignmentV3Args{\n\t\t\tGroupId:  group1.IdentityGroupV3Id,\n\t\t\tDomainId: pulumi.String(domainId),\n\t\t\tRoleId:   pulumi.String(role1.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.IdentityGroupV3;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetIdentityRoleV3Args;\nimport com.pulumi.flexibleengine.IdentityRoleAssignmentV3;\nimport com.pulumi.flexibleengine.IdentityRoleAssignmentV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainId = config.get(\"domainId\").orElse(\"01aafcf63744d988ebef2b1e04c5c34\");\n        var group1 = new IdentityGroupV3(\"group1\");\n\n        final var role1 = FlexibleengineFunctions.getIdentityRoleV3(GetIdentityRoleV3Args.builder()\n            .name(\"secu_admin\")\n            .build());\n\n        var roleAssignment1 = new IdentityRoleAssignmentV3(\"roleAssignment1\", IdentityRoleAssignmentV3Args.builder()\n            .groupId(group1.identityGroupV3Id())\n            .domainId(domainId)\n            .roleId(role1.applyValue(getIdentityRoleV3Result -> getIdentityRoleV3Result.id()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainId:\n    type: string\n    default: 01aafcf63744d988ebef2b1e04c5c34\nresources:\n  group1:\n    type: flexibleengine:IdentityGroupV3\n  roleAssignment1:\n    type: flexibleengine:IdentityRoleAssignmentV3\n    properties:\n      groupId: ${group1.identityGroupV3Id}\n      domainId: ${domainId}\n      roleId: ${role1.id}\nvariables:\n  role1:\n    fn::invoke:\n      function: flexibleengine:getIdentityRoleV3\n      arguments:\n        name: secu_admin\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nIAM role assignment can be imported using the role assignment ID, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/identityRoleAssignmentV3:IdentityRoleAssignmentV3 assignment_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\n",
      "properties": {
        "domainId": {
          "type": "string",
          "description": "The domain to assign the role in.\nIt is **Required** if `project_id` is empty. Changing this will create a new resource.\n"
        },
        "groupId": {
          "type": "string",
          "description": "The group to assign the role in. Changing this will create a new resource.\n"
        },
        "identityRoleAssignmentV3Id": {
          "type": "string"
        },
        "projectId": {
          "type": "string",
          "description": "The project to assign the role in.\nIt is **Required** if `domain_id` is empty. Changing this will create a new resource.\n"
        },
        "roleId": {
          "type": "string",
          "description": "The role to assign. Changing this will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "groupId",
        "identityRoleAssignmentV3Id",
        "roleId"
      ],
      "inputProperties": {
        "domainId": {
          "type": "string",
          "description": "The domain to assign the role in.\nIt is **Required** if `project_id` is empty. Changing this will create a new resource.\n"
        },
        "groupId": {
          "type": "string",
          "description": "The group to assign the role in. Changing this will create a new resource.\n"
        },
        "identityRoleAssignmentV3Id": {
          "type": "string"
        },
        "projectId": {
          "type": "string",
          "description": "The project to assign the role in.\nIt is **Required** if `domain_id` is empty. Changing this will create a new resource.\n"
        },
        "roleId": {
          "type": "string",
          "description": "The role to assign. Changing this will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "groupId",
        "roleId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityRoleAssignmentV3 resources.\n",
        "properties": {
          "domainId": {
            "type": "string",
            "description": "The domain to assign the role in.\nIt is **Required** if `project_id` is empty. Changing this will create a new resource.\n"
          },
          "groupId": {
            "type": "string",
            "description": "The group to assign the role in. Changing this will create a new resource.\n"
          },
          "identityRoleAssignmentV3Id": {
            "type": "string"
          },
          "projectId": {
            "type": "string",
            "description": "The project to assign the role in.\nIt is **Required** if `domain_id` is empty. Changing this will create a new resource.\n"
          },
          "roleId": {
            "type": "string",
            "description": "The role to assign. Changing this will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/identityRoleV3:IdentityRoleV3": {
      "description": "custom role management in FlexibleEngine\n\n## Example Usage\n\n### Role\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst role = new flexibleengine.IdentityRoleV3(\"role\", {\n    description: \"created by terraform\",\n    policy: `{\n  \"Version\": \"1.1\",\n  \"Statement\": [\n    {\n      \"Action\": [\n        \"obs:bucket:GetBucketAcl\"\n      ],\n      \"Effect\": \"Allow\",\n      \"Resource\": [\n        \"obs:*:*:bucket:*\"\n      ],\n      \"Condition\": {\n        \"StringStartWith\": {\n          \"g:ProjectName\": [\n            \"eu-west-0\"\n          ]\n        }\n      }\n    }\n  ]\n}\n\n`,\n    type: \"AX\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nrole = flexibleengine.IdentityRoleV3(\"role\",\n    description=\"created by terraform\",\n    policy=\"\"\"{\n  \"Version\": \"1.1\",\n  \"Statement\": [\n    {\n      \"Action\": [\n        \"obs:bucket:GetBucketAcl\"\n      ],\n      \"Effect\": \"Allow\",\n      \"Resource\": [\n        \"obs:*:*:bucket:*\"\n      ],\n      \"Condition\": {\n        \"StringStartWith\": {\n          \"g:ProjectName\": [\n            \"eu-west-0\"\n          ]\n        }\n      }\n    }\n  ]\n}\n\n\"\"\",\n    type=\"AX\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var role = new Flexibleengine.IdentityRoleV3(\"role\", new()\n    {\n        Description = \"created by terraform\",\n        Policy = @\"{\n  \"\"Version\"\": \"\"1.1\"\",\n  \"\"Statement\"\": [\n    {\n      \"\"Action\"\": [\n        \"\"obs:bucket:GetBucketAcl\"\"\n      ],\n      \"\"Effect\"\": \"\"Allow\"\",\n      \"\"Resource\"\": [\n        \"\"obs:*:*:bucket:*\"\"\n      ],\n      \"\"Condition\"\": {\n        \"\"StringStartWith\"\": {\n          \"\"g:ProjectName\"\": [\n            \"\"eu-west-0\"\"\n          ]\n        }\n      }\n    }\n  ]\n}\n\n\",\n        Type = \"AX\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewIdentityRoleV3(ctx, \"role\", &flexibleengine.IdentityRoleV3Args{\n\t\t\tDescription: pulumi.String(\"created by terraform\"),\n\t\t\tPolicy: pulumi.String(`{\n  \"Version\": \"1.1\",\n  \"Statement\": [\n    {\n      \"Action\": [\n        \"obs:bucket:GetBucketAcl\"\n      ],\n      \"Effect\": \"Allow\",\n      \"Resource\": [\n        \"obs:*:*:bucket:*\"\n      ],\n      \"Condition\": {\n        \"StringStartWith\": {\n          \"g:ProjectName\": [\n            \"eu-west-0\"\n          ]\n        }\n      }\n    }\n  ]\n}\n\n`),\n\t\t\tType: pulumi.String(\"AX\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.IdentityRoleV3;\nimport com.pulumi.flexibleengine.IdentityRoleV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var role = new IdentityRoleV3(\"role\", IdentityRoleV3Args.builder()\n            .description(\"created by terraform\")\n            .policy(\"\"\"\n{\n  \"Version\": \"1.1\",\n  \"Statement\": [\n    {\n      \"Action\": [\n        \"obs:bucket:GetBucketAcl\"\n      ],\n      \"Effect\": \"Allow\",\n      \"Resource\": [\n        \"obs:*:*:bucket:*\"\n      ],\n      \"Condition\": {\n        \"StringStartWith\": {\n          \"g:ProjectName\": [\n            \"eu-west-0\"\n          ]\n        }\n      }\n    }\n  ]\n}\n\n            \"\"\")\n            .type(\"AX\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  role:\n    type: flexibleengine:IdentityRoleV3\n    properties:\n      description: created by terraform\n      policy: |+\n        {\n          \"Version\": \"1.1\",\n          \"Statement\": [\n            {\n              \"Action\": [\n                \"obs:bucket:GetBucketAcl\"\n              ],\n              \"Effect\": \"Allow\",\n              \"Resource\": [\n                \"obs:*:*:bucket:*\"\n              ],\n              \"Condition\": {\n                \"StringStartWith\": {\n                  \"g:ProjectName\": [\n                    \"eu-west-0\"\n                  ]\n                }\n              }\n            }\n          ]\n        }\n\n      type: AX\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRole can be imported using their `id`:\n\n```sh\n$ pulumi import flexibleengine:index/identityRoleV3:IdentityRoleV3 default <id>\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "Description of the custom policy.\n"
        },
        "domainId": {
          "type": "string",
          "description": "The account id.\n"
        },
        "identityRoleV3Id": {
          "type": "string",
          "description": "The role id.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the custom policy.\n"
        },
        "policy": {
          "type": "string",
          "description": "Document of the custom policy.\n\n- - -\n"
        },
        "references": {
          "type": "number",
          "description": "The number of references.\n"
        },
        "type": {
          "type": "string",
          "description": "Display mode. Valid options are AX: Account level and XA: Project level.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "domainId",
        "identityRoleV3Id",
        "name",
        "policy",
        "references",
        "type"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the custom policy.\n"
        },
        "identityRoleV3Id": {
          "type": "string",
          "description": "The role id.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the custom policy.\n"
        },
        "policy": {
          "type": "string",
          "description": "Document of the custom policy.\n\n- - -\n"
        },
        "type": {
          "type": "string",
          "description": "Display mode. Valid options are AX: Account level and XA: Project level.\n"
        }
      },
      "requiredInputs": [
        "description",
        "policy",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityRoleV3 resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the custom policy.\n"
          },
          "domainId": {
            "type": "string",
            "description": "The account id.\n"
          },
          "identityRoleV3Id": {
            "type": "string",
            "description": "The role id.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the custom policy.\n"
          },
          "policy": {
            "type": "string",
            "description": "Document of the custom policy.\n\n- - -\n"
          },
          "references": {
            "type": "number",
            "description": "The number of references.\n"
          },
          "type": {
            "type": "string",
            "description": "Display mode. Valid options are AX: Account level and XA: Project level.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/identityUserV3:IdentityUserV3": {
      "description": "Manages a User resource within FlexibleEngine IAM service.\n\n> You *must* have admin privileges in your FlexibleEngine cloud to use this resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst user1 = new flexibleengine.IdentityUserV3(\"user1\", {\n    description: \"A user\",\n    password: \"password123!\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nuser1 = flexibleengine.IdentityUserV3(\"user1\",\n    description=\"A user\",\n    password=\"password123!\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var user1 = new Flexibleengine.IdentityUserV3(\"user1\", new()\n    {\n        Description = \"A user\",\n        Password = \"password123!\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewIdentityUserV3(ctx, \"user1\", &flexibleengine.IdentityUserV3Args{\n\t\t\tDescription: pulumi.String(\"A user\"),\n\t\t\tPassword:    pulumi.String(\"password123!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.IdentityUserV3;\nimport com.pulumi.flexibleengine.IdentityUserV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user1 = new IdentityUserV3(\"user1\", IdentityUserV3Args.builder()\n            .description(\"A user\")\n            .password(\"password123!\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user1:\n    type: flexibleengine:IdentityUserV3\n    properties:\n      description: A user\n      password: password123!\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nUsers can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/identityUserV3:IdentityUserV3 user_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\nBut due to the security reason, `password` can not be imported, you can ignore it as below.\n\nhcl\n\nresource \"flexibleengine_identity_user_v3\" \"user_1\" {\n\n  ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      \"password\",\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "countryCode": {
          "type": "string",
          "description": "Specifies the country code. The country code of the Chinese mainland is 0086.\nThis parameter must be used together with `phone`.\n"
        },
        "createTime": {
          "type": "string",
          "description": "The time when the IAM user was created.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the user.\n"
        },
        "email": {
          "type": "string",
          "description": "Specifies the email address with a maximum of 255 characters.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies whether the user is enabled or disabled.\nValid values are `true` and `false`.\n"
        },
        "identityUserV3Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "lastLogin": {
          "type": "string",
          "description": "The tiem when the IAM user last login.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the user. The user name consists of\n5 to 32 characters. It can contain only uppercase letters, lowercase letters,\ndigits, spaces, and special characters (-_) and cannot start with a digit.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the password for the user with 6 to 32 characters.\nIt must contain at least two of the following character types: uppercase letters, lowercase letters,\ndigits, and special characters.\n",
          "secret": true
        },
        "passwordStrength": {
          "type": "string",
          "description": "Indicates the password strength.\n"
        },
        "phone": {
          "type": "string",
          "description": "Specifies the mobile number with a maximum of 32 digits.\nThis parameter must be used together with `country_code`.\n"
        }
      },
      "type": "object",
      "required": [
        "createTime",
        "identityUserV3Id",
        "lastLogin",
        "name",
        "passwordStrength"
      ],
      "inputProperties": {
        "countryCode": {
          "type": "string",
          "description": "Specifies the country code. The country code of the Chinese mainland is 0086.\nThis parameter must be used together with `phone`.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the user.\n"
        },
        "email": {
          "type": "string",
          "description": "Specifies the email address with a maximum of 255 characters.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Specifies whether the user is enabled or disabled.\nValid values are `true` and `false`.\n"
        },
        "identityUserV3Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the user. The user name consists of\n5 to 32 characters. It can contain only uppercase letters, lowercase letters,\ndigits, spaces, and special characters (-_) and cannot start with a digit.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the password for the user with 6 to 32 characters.\nIt must contain at least two of the following character types: uppercase letters, lowercase letters,\ndigits, and special characters.\n",
          "secret": true
        },
        "phone": {
          "type": "string",
          "description": "Specifies the mobile number with a maximum of 32 digits.\nThis parameter must be used together with `country_code`.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityUserV3 resources.\n",
        "properties": {
          "countryCode": {
            "type": "string",
            "description": "Specifies the country code. The country code of the Chinese mainland is 0086.\nThis parameter must be used together with `phone`.\n"
          },
          "createTime": {
            "type": "string",
            "description": "The time when the IAM user was created.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the user.\n"
          },
          "email": {
            "type": "string",
            "description": "Specifies the email address with a maximum of 255 characters.\n"
          },
          "enabled": {
            "type": "boolean",
            "description": "Specifies whether the user is enabled or disabled.\nValid values are `true` and `false`.\n"
          },
          "identityUserV3Id": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "lastLogin": {
            "type": "string",
            "description": "The tiem when the IAM user last login.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the user. The user name consists of\n5 to 32 characters. It can contain only uppercase letters, lowercase letters,\ndigits, spaces, and special characters (-_) and cannot start with a digit.\n"
          },
          "password": {
            "type": "string",
            "description": "Specifies the password for the user with 6 to 32 characters.\nIt must contain at least two of the following character types: uppercase letters, lowercase letters,\ndigits, and special characters.\n",
            "secret": true
          },
          "passwordStrength": {
            "type": "string",
            "description": "Indicates the password strength.\n"
          },
          "phone": {
            "type": "string",
            "description": "Specifies the mobile number with a maximum of 32 digits.\nThis parameter must be used together with `country_code`.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/imagesImage:ImagesImage": {
      "description": "Manages an Image resource within FlexibleEngine IMS.\n\n## Example Usage\n\n### Creating an image from OBS bucket\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst imsTestFile = new flexibleengine.ImagesImage(\"imsTestFile\", {\n    description: \"Create an image from the OBS bucket.\",\n    imageUrl: \"ims-image:centos70.qcow2\",\n    minDisk: 40,\n    tags: {\n        foo: \"bar1\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nims_test_file = flexibleengine.ImagesImage(\"imsTestFile\",\n    description=\"Create an image from the OBS bucket.\",\n    image_url=\"ims-image:centos70.qcow2\",\n    min_disk=40,\n    tags={\n        \"foo\": \"bar1\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var imsTestFile = new Flexibleengine.ImagesImage(\"imsTestFile\", new()\n    {\n        Description = \"Create an image from the OBS bucket.\",\n        ImageUrl = \"ims-image:centos70.qcow2\",\n        MinDisk = 40,\n        Tags = \n        {\n            { \"foo\", \"bar1\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewImagesImage(ctx, \"imsTestFile\", &flexibleengine.ImagesImageArgs{\n\t\t\tDescription: pulumi.String(\"Create an image from the OBS bucket.\"),\n\t\t\tImageUrl:    pulumi.String(\"ims-image:centos70.qcow2\"),\n\t\t\tMinDisk:     pulumi.Float64(40),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar1\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ImagesImage;\nimport com.pulumi.flexibleengine.ImagesImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var imsTestFile = new ImagesImage(\"imsTestFile\", ImagesImageArgs.builder()\n            .description(\"Create an image from the OBS bucket.\")\n            .imageUrl(\"ims-image:centos70.qcow2\")\n            .minDisk(40)\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar1\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  imsTestFile:\n    type: flexibleengine:ImagesImage\n    properties:\n      description: Create an image from the OBS bucket.\n      imageUrl: ims-image:centos70.qcow2\n      minDisk: 40\n      tags:\n        foo: bar1\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### Creating a whole image from an existing ECS\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vaultId = config.requireObject(\"vaultId\");\nconst instanceId = config.requireObject(\"instanceId\");\nconst test = new flexibleengine.ImagesImage(\"test\", {\n    instanceId: instanceId,\n    vaultId: vaultId,\n    tags: {\n        foo: \"bar2\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvault_id = config.require_object(\"vaultId\")\ninstance_id = config.require_object(\"instanceId\")\ntest = flexibleengine.ImagesImage(\"test\",\n    instance_id=instance_id,\n    vault_id=vault_id,\n    tags={\n        \"foo\": \"bar2\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vaultId = config.RequireObject<dynamic>(\"vaultId\");\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = new Flexibleengine.ImagesImage(\"test\", new()\n    {\n        InstanceId = instanceId,\n        VaultId = vaultId,\n        Tags = \n        {\n            { \"foo\", \"bar2\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvaultId := cfg.RequireObject(\"vaultId\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := flexibleengine.NewImagesImage(ctx, \"test\", &flexibleengine.ImagesImageArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tVaultId:    pulumi.Any(vaultId),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar2\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ImagesImage;\nimport com.pulumi.flexibleengine.ImagesImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vaultId = config.get(\"vaultId\");\n        final var instanceId = config.get(\"instanceId\");\n        var test = new ImagesImage(\"test\", ImagesImageArgs.builder()\n            .instanceId(instanceId)\n            .vaultId(vaultId)\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar2\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vaultId:\n    type: dynamic\n  instanceId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ImagesImage\n    properties:\n      instanceId: ${instanceId}\n      vaultId: ${vaultId}\n      tags:\n        foo: bar2\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### Creating a whole image from CBR backup\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst backupId = config.requireObject(\"backupId\");\nconst test = new flexibleengine.ImagesImage(\"test\", {\n    backupId: backupId,\n    tags: {\n        foo: \"bar1\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nbackup_id = config.require_object(\"backupId\")\ntest = flexibleengine.ImagesImage(\"test\",\n    backup_id=backup_id,\n    tags={\n        \"foo\": \"bar1\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var backupId = config.RequireObject<dynamic>(\"backupId\");\n    var test = new Flexibleengine.ImagesImage(\"test\", new()\n    {\n        BackupId = backupId,\n        Tags = \n        {\n            { \"foo\", \"bar1\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbackupId := cfg.RequireObject(\"backupId\")\n\t\t_, err := flexibleengine.NewImagesImage(ctx, \"test\", &flexibleengine.ImagesImageArgs{\n\t\t\tBackupId: pulumi.Any(backupId),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar1\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ImagesImage;\nimport com.pulumi.flexibleengine.ImagesImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var backupId = config.get(\"backupId\");\n        var test = new ImagesImage(\"test\", ImagesImageArgs.builder()\n            .backupId(backupId)\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar1\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  backupId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ImagesImage\n    properties:\n      backupId: ${backupId}\n      tags:\n        foo: bar1\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nImages can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/imagesImage:ImagesImage my_image <id>\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response. The missing attributes include: `vault_id`. It is generally recommended running `pulumi preview` after\n\nimporting the image. You can then decide if changes should be applied to the image, or the resource\n\ndefinition should be updated to align with the image. Also you can ignore changes as below.\n\nbash\n\nresource \"flexibleengine_images_image\" \"test\" {\n\n  ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      vault_id,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "backupId": {
          "type": "string",
          "description": "The ID of the CBR backup that needs to be converted into an image. This\nparameter is mandatory when you create a private whole image from a CBR backup.\n"
        },
        "checksum": {
          "type": "string",
          "description": "The checksum of the data associated with the image.\n"
        },
        "cmkId": {
          "type": "string",
          "description": "The master key used for encrypting an image.\n"
        },
        "dataOrigin": {
          "type": "string",
          "description": "The image resource. The pattern can be 'instance,*instance_id*', 'file,*image_url*'\nor 'server_backup,*backup_id*'.\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the image.\n"
        },
        "diskFormat": {
          "type": "string",
          "description": "The image file format. The value can be `vhd`, `zvhd`, `raw`, `zvhd2`, or `qcow2`.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "The enterprise project id of the image. Changing this creates a\nnew image.\n"
        },
        "imageSize": {
          "type": "string",
          "description": "The size(bytes) of the image file format.\n"
        },
        "imageUrl": {
          "type": "string",
          "description": "The URL of the external image file in the OBS bucket. This parameter is\nmandatory when you create a private image from an external file uploaded to an OBS bucket. The format is *OBS bucket\nname:Image file name*.\n"
        },
        "imagesImageId": {
          "type": "string",
          "description": "A unique ID assigned by IMS.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "The ID of the ECS that needs to be converted into an image. This\nparameter is mandatory when you create a private image or a private whole image from an ECS.\nIf the value of `vault_id` is not empty, then a whole image will be created.\n"
        },
        "isConfig": {
          "type": "boolean",
          "description": "If automatic configuration is required, set the value to true. Otherwise, set\nthe value to false.\n"
        },
        "maxRam": {
          "type": "number",
          "description": "The maximum memory of the image in the unit of MB.\n"
        },
        "minDisk": {
          "type": "number",
          "description": "The minimum size of the system disk in the unit of GB. This parameter is\nmandatory when you create a private image from an external file uploaded to an OBS bucket. The value ranges from 1 GB\nto 1024 GB.\n"
        },
        "minRam": {
          "type": "number",
          "description": "The minimum memory of the image in the unit of MB. The default value is 0,\nindicating that the memory is not restricted.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the image.\n"
        },
        "osVersion": {
          "type": "string",
          "description": "The OS version. This parameter is valid when you create a private image\nfrom an external file uploaded to an OBS bucket.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the image.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The tags of the image.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FImagesImageTimeouts:ImagesImageTimeouts"
        },
        "type": {
          "type": "string",
          "description": "The image type. Must be one of `ECS`, `FusionCompute`, `BMS`, or `Ironic`.\n"
        },
        "vaultId": {
          "type": "string",
          "description": "The ID of the vault to which an ECS is to be added or has been added.\nThis parameter is mandatory when you create a private whole image from an ECS.\n"
        },
        "visibility": {
          "type": "string",
          "description": "Whether the image is visible to other tenants.\n"
        }
      },
      "type": "object",
      "required": [
        "backupId",
        "checksum",
        "dataOrigin",
        "diskFormat",
        "enterpriseProjectId",
        "imageSize",
        "imagesImageId",
        "instanceId",
        "maxRam",
        "minRam",
        "name",
        "osVersion",
        "status",
        "visibility"
      ],
      "inputProperties": {
        "backupId": {
          "type": "string",
          "description": "The ID of the CBR backup that needs to be converted into an image. This\nparameter is mandatory when you create a private whole image from a CBR backup.\n"
        },
        "cmkId": {
          "type": "string",
          "description": "The master key used for encrypting an image.\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the image.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "The enterprise project id of the image. Changing this creates a\nnew image.\n"
        },
        "imageUrl": {
          "type": "string",
          "description": "The URL of the external image file in the OBS bucket. This parameter is\nmandatory when you create a private image from an external file uploaded to an OBS bucket. The format is *OBS bucket\nname:Image file name*.\n"
        },
        "imagesImageId": {
          "type": "string",
          "description": "A unique ID assigned by IMS.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "The ID of the ECS that needs to be converted into an image. This\nparameter is mandatory when you create a private image or a private whole image from an ECS.\nIf the value of `vault_id` is not empty, then a whole image will be created.\n"
        },
        "isConfig": {
          "type": "boolean",
          "description": "If automatic configuration is required, set the value to true. Otherwise, set\nthe value to false.\n"
        },
        "maxRam": {
          "type": "number",
          "description": "The maximum memory of the image in the unit of MB.\n"
        },
        "minDisk": {
          "type": "number",
          "description": "The minimum size of the system disk in the unit of GB. This parameter is\nmandatory when you create a private image from an external file uploaded to an OBS bucket. The value ranges from 1 GB\nto 1024 GB.\n"
        },
        "minRam": {
          "type": "number",
          "description": "The minimum memory of the image in the unit of MB. The default value is 0,\nindicating that the memory is not restricted.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the image.\n"
        },
        "osVersion": {
          "type": "string",
          "description": "The OS version. This parameter is valid when you create a private image\nfrom an external file uploaded to an OBS bucket.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The tags of the image.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FImagesImageTimeouts:ImagesImageTimeouts"
        },
        "type": {
          "type": "string",
          "description": "The image type. Must be one of `ECS`, `FusionCompute`, `BMS`, or `Ironic`.\n"
        },
        "vaultId": {
          "type": "string",
          "description": "The ID of the vault to which an ECS is to be added or has been added.\nThis parameter is mandatory when you create a private whole image from an ECS.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ImagesImage resources.\n",
        "properties": {
          "backupId": {
            "type": "string",
            "description": "The ID of the CBR backup that needs to be converted into an image. This\nparameter is mandatory when you create a private whole image from a CBR backup.\n"
          },
          "checksum": {
            "type": "string",
            "description": "The checksum of the data associated with the image.\n"
          },
          "cmkId": {
            "type": "string",
            "description": "The master key used for encrypting an image.\n"
          },
          "dataOrigin": {
            "type": "string",
            "description": "The image resource. The pattern can be 'instance,*instance_id*', 'file,*image_url*'\nor 'server_backup,*backup_id*'.\n"
          },
          "description": {
            "type": "string",
            "description": "A description of the image.\n"
          },
          "diskFormat": {
            "type": "string",
            "description": "The image file format. The value can be `vhd`, `zvhd`, `raw`, `zvhd2`, or `qcow2`.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "The enterprise project id of the image. Changing this creates a\nnew image.\n"
          },
          "imageSize": {
            "type": "string",
            "description": "The size(bytes) of the image file format.\n"
          },
          "imageUrl": {
            "type": "string",
            "description": "The URL of the external image file in the OBS bucket. This parameter is\nmandatory when you create a private image from an external file uploaded to an OBS bucket. The format is *OBS bucket\nname:Image file name*.\n"
          },
          "imagesImageId": {
            "type": "string",
            "description": "A unique ID assigned by IMS.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "The ID of the ECS that needs to be converted into an image. This\nparameter is mandatory when you create a private image or a private whole image from an ECS.\nIf the value of `vault_id` is not empty, then a whole image will be created.\n"
          },
          "isConfig": {
            "type": "boolean",
            "description": "If automatic configuration is required, set the value to true. Otherwise, set\nthe value to false.\n"
          },
          "maxRam": {
            "type": "number",
            "description": "The maximum memory of the image in the unit of MB.\n"
          },
          "minDisk": {
            "type": "number",
            "description": "The minimum size of the system disk in the unit of GB. This parameter is\nmandatory when you create a private image from an external file uploaded to an OBS bucket. The value ranges from 1 GB\nto 1024 GB.\n"
          },
          "minRam": {
            "type": "number",
            "description": "The minimum memory of the image in the unit of MB. The default value is 0,\nindicating that the memory is not restricted.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the image.\n"
          },
          "osVersion": {
            "type": "string",
            "description": "The OS version. This parameter is valid when you create a private image\nfrom an external file uploaded to an OBS bucket.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the image.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The tags of the image.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FImagesImageTimeouts:ImagesImageTimeouts"
          },
          "type": {
            "type": "string",
            "description": "The image type. Must be one of `ECS`, `FusionCompute`, `BMS`, or `Ironic`.\n"
          },
          "vaultId": {
            "type": "string",
            "description": "The ID of the vault to which an ECS is to be added or has been added.\nThis parameter is mandatory when you create a private whole image from an ECS.\n"
          },
          "visibility": {
            "type": "string",
            "description": "Whether the image is visible to other tenants.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/imagesImageCopy:ImagesImageCopy": {
      "description": "Use this resource to copy IMS images from one region to another within FlexibleEngine.\n\n## Example Usage\n\n### Copy image within region\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst sourceImageId = config.requireObject(\"sourceImageId\");\nconst name = config.requireObject(\"name\");\nconst kmsKeyId = config.requireObject(\"kmsKeyId\");\nconst test = new flexibleengine.ImagesImageCopy(\"test\", {\n    sourceImageId: sourceImageId,\n    kmsKeyId: kmsKeyId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nsource_image_id = config.require_object(\"sourceImageId\")\nname = config.require_object(\"name\")\nkms_key_id = config.require_object(\"kmsKeyId\")\ntest = flexibleengine.ImagesImageCopy(\"test\",\n    source_image_id=source_image_id,\n    kms_key_id=kms_key_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var sourceImageId = config.RequireObject<dynamic>(\"sourceImageId\");\n    var name = config.RequireObject<dynamic>(\"name\");\n    var kmsKeyId = config.RequireObject<dynamic>(\"kmsKeyId\");\n    var test = new Flexibleengine.ImagesImageCopy(\"test\", new()\n    {\n        SourceImageId = sourceImageId,\n        KmsKeyId = kmsKeyId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsourceImageId := cfg.RequireObject(\"sourceImageId\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tkmsKeyId := cfg.RequireObject(\"kmsKeyId\")\n\t\t_, err := flexibleengine.NewImagesImageCopy(ctx, \"test\", &flexibleengine.ImagesImageCopyArgs{\n\t\t\tSourceImageId: pulumi.Any(sourceImageId),\n\t\t\tKmsKeyId:      pulumi.Any(kmsKeyId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ImagesImageCopy;\nimport com.pulumi.flexibleengine.ImagesImageCopyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sourceImageId = config.get(\"sourceImageId\");\n        final var name = config.get(\"name\");\n        final var kmsKeyId = config.get(\"kmsKeyId\");\n        var test = new ImagesImageCopy(\"test\", ImagesImageCopyArgs.builder()\n            .sourceImageId(sourceImageId)\n            .kmsKeyId(kmsKeyId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sourceImageId:\n    type: dynamic\n  name:\n    type: dynamic\n  kmsKeyId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ImagesImageCopy\n    properties:\n      sourceImageId: ${sourceImageId}\n      kmsKeyId: ${kmsKeyId}\n```\n<!--End PulumiCodeChooser -->\n\n### Copy image cross region\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst sourceImageId = config.requireObject(\"sourceImageId\");\nconst name = config.requireObject(\"name\");\nconst targetRegion = config.requireObject(\"targetRegion\");\nconst agencyName = config.requireObject(\"agencyName\");\nconst test = new flexibleengine.ImagesImageCopy(\"test\", {\n    sourceImageId: sourceImageId,\n    targetRegion: targetRegion,\n    agencyName: agencyName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nsource_image_id = config.require_object(\"sourceImageId\")\nname = config.require_object(\"name\")\ntarget_region = config.require_object(\"targetRegion\")\nagency_name = config.require_object(\"agencyName\")\ntest = flexibleengine.ImagesImageCopy(\"test\",\n    source_image_id=source_image_id,\n    target_region=target_region,\n    agency_name=agency_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var sourceImageId = config.RequireObject<dynamic>(\"sourceImageId\");\n    var name = config.RequireObject<dynamic>(\"name\");\n    var targetRegion = config.RequireObject<dynamic>(\"targetRegion\");\n    var agencyName = config.RequireObject<dynamic>(\"agencyName\");\n    var test = new Flexibleengine.ImagesImageCopy(\"test\", new()\n    {\n        SourceImageId = sourceImageId,\n        TargetRegion = targetRegion,\n        AgencyName = agencyName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsourceImageId := cfg.RequireObject(\"sourceImageId\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\ttargetRegion := cfg.RequireObject(\"targetRegion\")\n\t\tagencyName := cfg.RequireObject(\"agencyName\")\n\t\t_, err := flexibleengine.NewImagesImageCopy(ctx, \"test\", &flexibleengine.ImagesImageCopyArgs{\n\t\t\tSourceImageId: pulumi.Any(sourceImageId),\n\t\t\tTargetRegion:  pulumi.Any(targetRegion),\n\t\t\tAgencyName:    pulumi.Any(agencyName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ImagesImageCopy;\nimport com.pulumi.flexibleengine.ImagesImageCopyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sourceImageId = config.get(\"sourceImageId\");\n        final var name = config.get(\"name\");\n        final var targetRegion = config.get(\"targetRegion\");\n        final var agencyName = config.get(\"agencyName\");\n        var test = new ImagesImageCopy(\"test\", ImagesImageCopyArgs.builder()\n            .sourceImageId(sourceImageId)\n            .targetRegion(targetRegion)\n            .agencyName(agencyName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sourceImageId:\n    type: dynamic\n  name:\n    type: dynamic\n  targetRegion:\n    type: dynamic\n  agencyName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ImagesImageCopy\n    properties:\n      sourceImageId: ${sourceImageId}\n      targetRegion: ${targetRegion}\n      agencyName: ${agencyName}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "agencyName": {
          "type": "string",
          "description": "Specifies the agency name. It is required in the cross-region scene.\nChanging this parameter will create a new resource.\n"
        },
        "checksum": {
          "type": "string",
          "description": "Indicates the checksum of the data associated with the image.\n"
        },
        "dataOrigin": {
          "type": "string",
          "description": "Indicates the image resource.\nThe pattern can be 'instance,**instance_id**' or 'file,**image_url**'.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the copy image.\n"
        },
        "diskFormat": {
          "type": "string",
          "description": "Indicates the image file format.\nThe value can be `vhd`, `zvhd`, `raw`, `zvhd2`, or `qcow2`.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the image.\nOnly copying scene within a region is supported. Changing this parameter will create a new resource.\n"
        },
        "imageSize": {
          "type": "string",
          "description": "Indicates the size(bytes) of the image file format.\n"
        },
        "imagesImageCopyId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Indicates the ID of the ECS that needs to be converted into an image.\n"
        },
        "kmsKeyId": {
          "type": "string",
          "description": "Specifies the master key used for encrypting an image.\nOnly copying scene within a region is supported. Changing this parameter will create a new resource.\n"
        },
        "maxRam": {
          "type": "number"
        },
        "minRam": {
          "type": "number"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the copy image. The name can contain `1` to `128` characters,\nonly Chinese and English letters, digits, underscore (_), hyphens (-), dots (.) and space are\nallowed, but it cannot start or end with a space.\n"
        },
        "osVersion": {
          "type": "string",
          "description": "Indicates the OS version.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region to which the source image belongs.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "sourceImageId": {
          "type": "string",
          "description": "Specifies the ID of the copied image.\nChanging this parameter will create a new resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the status of the image.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the copy image.\n"
        },
        "targetRegion": {
          "type": "string",
          "description": "Specifies the target region name.\nIf specified, it means cross-region replication. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FImagesImageCopyTimeouts:ImagesImageCopyTimeouts"
        },
        "vaultId": {
          "type": "string",
          "description": "Specifies the ID of the vault. It is used in the cross-region scene,\nand it is mandatory if you are replicating a full-ECS image.\nChanging this parameter will create a new resource.\n"
        },
        "visibility": {
          "type": "string",
          "description": "Indicates whether the image is visible to other tenants.\n"
        }
      },
      "type": "object",
      "required": [
        "agencyName",
        "checksum",
        "dataOrigin",
        "diskFormat",
        "enterpriseProjectId",
        "imageSize",
        "imagesImageCopyId",
        "instanceId",
        "kmsKeyId",
        "maxRam",
        "minRam",
        "name",
        "osVersion",
        "region",
        "sourceImageId",
        "status",
        "targetRegion",
        "vaultId",
        "visibility"
      ],
      "inputProperties": {
        "agencyName": {
          "type": "string",
          "description": "Specifies the agency name. It is required in the cross-region scene.\nChanging this parameter will create a new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the copy image.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the image.\nOnly copying scene within a region is supported. Changing this parameter will create a new resource.\n"
        },
        "imagesImageCopyId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "kmsKeyId": {
          "type": "string",
          "description": "Specifies the master key used for encrypting an image.\nOnly copying scene within a region is supported. Changing this parameter will create a new resource.\n"
        },
        "maxRam": {
          "type": "number"
        },
        "minRam": {
          "type": "number"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the copy image. The name can contain `1` to `128` characters,\nonly Chinese and English letters, digits, underscore (_), hyphens (-), dots (.) and space are\nallowed, but it cannot start or end with a space.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region to which the source image belongs.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "sourceImageId": {
          "type": "string",
          "description": "Specifies the ID of the copied image.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the copy image.\n"
        },
        "targetRegion": {
          "type": "string",
          "description": "Specifies the target region name.\nIf specified, it means cross-region replication. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FImagesImageCopyTimeouts:ImagesImageCopyTimeouts"
        },
        "vaultId": {
          "type": "string",
          "description": "Specifies the ID of the vault. It is used in the cross-region scene,\nand it is mandatory if you are replicating a full-ECS image.\nChanging this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "sourceImageId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ImagesImageCopy resources.\n",
        "properties": {
          "agencyName": {
            "type": "string",
            "description": "Specifies the agency name. It is required in the cross-region scene.\nChanging this parameter will create a new resource.\n"
          },
          "checksum": {
            "type": "string",
            "description": "Indicates the checksum of the data associated with the image.\n"
          },
          "dataOrigin": {
            "type": "string",
            "description": "Indicates the image resource.\nThe pattern can be 'instance,**instance_id**' or 'file,**image_url**'.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the copy image.\n"
          },
          "diskFormat": {
            "type": "string",
            "description": "Indicates the image file format.\nThe value can be `vhd`, `zvhd`, `raw`, `zvhd2`, or `qcow2`.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id of the image.\nOnly copying scene within a region is supported. Changing this parameter will create a new resource.\n"
          },
          "imageSize": {
            "type": "string",
            "description": "Indicates the size(bytes) of the image file format.\n"
          },
          "imagesImageCopyId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Indicates the ID of the ECS that needs to be converted into an image.\n"
          },
          "kmsKeyId": {
            "type": "string",
            "description": "Specifies the master key used for encrypting an image.\nOnly copying scene within a region is supported. Changing this parameter will create a new resource.\n"
          },
          "maxRam": {
            "type": "number"
          },
          "minRam": {
            "type": "number"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the copy image. The name can contain `1` to `128` characters,\nonly Chinese and English letters, digits, underscore (_), hyphens (-), dots (.) and space are\nallowed, but it cannot start or end with a space.\n"
          },
          "osVersion": {
            "type": "string",
            "description": "Indicates the OS version.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region to which the source image belongs.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "sourceImageId": {
            "type": "string",
            "description": "Specifies the ID of the copied image.\nChanging this parameter will create a new resource.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the status of the image.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the key/value pairs to associate with the copy image.\n"
          },
          "targetRegion": {
            "type": "string",
            "description": "Specifies the target region name.\nIf specified, it means cross-region replication. Changing this parameter will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FImagesImageCopyTimeouts:ImagesImageCopyTimeouts"
          },
          "vaultId": {
            "type": "string",
            "description": "Specifies the ID of the vault. It is used in the cross-region scene,\nand it is mandatory if you are replicating a full-ECS image.\nChanging this parameter will create a new resource.\n"
          },
          "visibility": {
            "type": "string",
            "description": "Indicates whether the image is visible to other tenants.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/imagesImageShare:ImagesImageShare": {
      "description": "Use this resource to share an IMS image to other users (by porject) within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst sourceImageId = config.requireObject(\"sourceImageId\");\nconst targetProjectIds = config.requireObject(\"targetProjectIds\");\nconst test = new flexibleengine.ImagesImageShare(\"test\", {\n    sourceImageId: sourceImageId,\n    targetProjectIds: targetProjectIds,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nsource_image_id = config.require_object(\"sourceImageId\")\ntarget_project_ids = config.require_object(\"targetProjectIds\")\ntest = flexibleengine.ImagesImageShare(\"test\",\n    source_image_id=source_image_id,\n    target_project_ids=target_project_ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var sourceImageId = config.RequireObject<dynamic>(\"sourceImageId\");\n    var targetProjectIds = config.RequireObject<dynamic>(\"targetProjectIds\");\n    var test = new Flexibleengine.ImagesImageShare(\"test\", new()\n    {\n        SourceImageId = sourceImageId,\n        TargetProjectIds = targetProjectIds,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsourceImageId := cfg.RequireObject(\"sourceImageId\")\n\t\ttargetProjectIds := cfg.RequireObject(\"targetProjectIds\")\n\t\t_, err := flexibleengine.NewImagesImageShare(ctx, \"test\", &flexibleengine.ImagesImageShareArgs{\n\t\t\tSourceImageId:    pulumi.Any(sourceImageId),\n\t\t\tTargetProjectIds: pulumi.Any(targetProjectIds),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ImagesImageShare;\nimport com.pulumi.flexibleengine.ImagesImageShareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sourceImageId = config.get(\"sourceImageId\");\n        final var targetProjectIds = config.get(\"targetProjectIds\");\n        var test = new ImagesImageShare(\"test\", ImagesImageShareArgs.builder()\n            .sourceImageId(sourceImageId)\n            .targetProjectIds(targetProjectIds)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sourceImageId:\n    type: dynamic\n  targetProjectIds:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ImagesImageShare\n    properties:\n      sourceImageId: ${sourceImageId}\n      targetProjectIds: ${targetProjectIds}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "imagesImageShareId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "sourceImageId": {
          "type": "string",
          "description": "Specifies the ID of the source image.\n\nChanging this parameter will create a new resource.\n"
        },
        "targetProjectIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the IDs of the target projects.\n\n> Cannot share an image with yourself.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FImagesImageShareTimeouts:ImagesImageShareTimeouts"
        }
      },
      "type": "object",
      "required": [
        "imagesImageShareId",
        "region",
        "sourceImageId",
        "targetProjectIds"
      ],
      "inputProperties": {
        "imagesImageShareId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "sourceImageId": {
          "type": "string",
          "description": "Specifies the ID of the source image.\n\nChanging this parameter will create a new resource.\n"
        },
        "targetProjectIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the IDs of the target projects.\n\n> Cannot share an image with yourself.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FImagesImageShareTimeouts:ImagesImageShareTimeouts"
        }
      },
      "requiredInputs": [
        "sourceImageId",
        "targetProjectIds"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ImagesImageShare resources.\n",
        "properties": {
          "imagesImageShareId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "sourceImageId": {
            "type": "string",
            "description": "Specifies the ID of the source image.\n\nChanging this parameter will create a new resource.\n"
          },
          "targetProjectIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the IDs of the target projects.\n\n> Cannot share an image with yourself.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FImagesImageShareTimeouts:ImagesImageShareTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/imagesImageShareAccepter:ImagesImageShareAccepter": {
      "description": "Use this resource to accept an IMS image share from other users within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst imageId = config.requireObject(\"imageId\");\nconst test = new flexibleengine.ImagesImageShareAccepter(\"test\", {imageId: imageId});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nimage_id = config.require_object(\"imageId\")\ntest = flexibleengine.ImagesImageShareAccepter(\"test\", image_id=image_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var test = new Flexibleengine.ImagesImageShareAccepter(\"test\", new()\n    {\n        ImageId = imageId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\t_, err := flexibleengine.NewImagesImageShareAccepter(ctx, \"test\", &flexibleengine.ImagesImageShareAccepterArgs{\n\t\t\tImageId: pulumi.Any(imageId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ImagesImageShareAccepter;\nimport com.pulumi.flexibleengine.ImagesImageShareAccepterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var imageId = config.get(\"imageId\");\n        var test = new ImagesImageShareAccepter(\"test\", ImagesImageShareAccepterArgs.builder()\n            .imageId(imageId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  imageId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ImagesImageShareAccepter\n    properties:\n      imageId: ${imageId}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "imageId": {
          "type": "string",
          "description": "Specifies the ID of the image.\n\nChanging this parameter will create a new resource.\n"
        },
        "imagesImageShareAccepterId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FImagesImageShareAccepterTimeouts:ImagesImageShareAccepterTimeouts"
        },
        "vaultId": {
          "type": "string",
          "description": "Specifies the ID of a vault. This parameter is mandatory if you want\nto accept a shared full-ECS image created from a CBR backup.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "imageId",
        "imagesImageShareAccepterId",
        "region",
        "vaultId"
      ],
      "inputProperties": {
        "imageId": {
          "type": "string",
          "description": "Specifies the ID of the image.\n\nChanging this parameter will create a new resource.\n"
        },
        "imagesImageShareAccepterId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FImagesImageShareAccepterTimeouts:ImagesImageShareAccepterTimeouts"
        },
        "vaultId": {
          "type": "string",
          "description": "Specifies the ID of a vault. This parameter is mandatory if you want\nto accept a shared full-ECS image created from a CBR backup.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "imageId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ImagesImageShareAccepter resources.\n",
        "properties": {
          "imageId": {
            "type": "string",
            "description": "Specifies the ID of the image.\n\nChanging this parameter will create a new resource.\n"
          },
          "imagesImageShareAccepterId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FImagesImageShareAccepterTimeouts:ImagesImageShareAccepterTimeouts"
          },
          "vaultId": {
            "type": "string",
            "description": "Specifies the ID of a vault. This parameter is mandatory if you want\nto accept a shared full-ECS image created from a CBR backup.\n\nChanging this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/imagesImageV2:ImagesImageV2": {
      "description": "Manages a V2 Image resource within FlexibleEngine Glance.\n\n!> **WARNING:** It has been deprecated, please use `flexibleengine.ImagesImage` instead.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst rancheros = new flexibleengine.ImagesImageV2(\"rancheros\", {\n    containerFormat: \"bare\",\n    diskFormat: \"qcow2\",\n    imageSourceUrl: \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nrancheros = flexibleengine.ImagesImageV2(\"rancheros\",\n    container_format=\"bare\",\n    disk_format=\"qcow2\",\n    image_source_url=\"https://releases.rancher.com/os/latest/rancheros-openstack.img\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rancheros = new Flexibleengine.ImagesImageV2(\"rancheros\", new()\n    {\n        ContainerFormat = \"bare\",\n        DiskFormat = \"qcow2\",\n        ImageSourceUrl = \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewImagesImageV2(ctx, \"rancheros\", &flexibleengine.ImagesImageV2Args{\n\t\t\tContainerFormat: pulumi.String(\"bare\"),\n\t\t\tDiskFormat:      pulumi.String(\"qcow2\"),\n\t\t\tImageSourceUrl:  pulumi.String(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ImagesImageV2;\nimport com.pulumi.flexibleengine.ImagesImageV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rancheros = new ImagesImageV2(\"rancheros\", ImagesImageV2Args.builder()\n            .containerFormat(\"bare\")\n            .diskFormat(\"qcow2\")\n            .imageSourceUrl(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rancheros:\n    type: flexibleengine:ImagesImageV2\n    properties:\n      containerFormat: bare\n      diskFormat: qcow2\n      imageSourceUrl: https://releases.rancher.com/os/latest/rancheros-openstack.img\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nImages can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/imagesImageV2:ImagesImageV2 rancheros 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\n",
      "properties": {
        "checksum": {
          "type": "string",
          "description": "The checksum of the data associated with the image.\n"
        },
        "containerFormat": {
          "type": "string",
          "description": "The container format. Must be one of\n\"ami\", \"ari\", \"aki\", \"bare\", \"ovf\". Changing this creates a new Image.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The date the image was created.\n"
        },
        "diskFormat": {
          "type": "string",
          "description": "The disk format. Must be one of\n\"ami\", \"ari\", \"aki\", \"vhd\", \"vmdk\", \"raw\", \"qcow2\", \"vdi\", \"iso\". Changing this creates a new Image.\n"
        },
        "file": {
          "type": "string",
          "description": "the trailing path after the glance endpoint that represent the location of the image or the path\nto retrieve it.\n"
        },
        "imageCachePath": {
          "type": "string"
        },
        "imageSourceUrl": {
          "type": "string",
          "description": "This is the url of the raw image that will\nbe downloaded in the `image_cache_path` before being uploaded to Glance.\nGlance is able to download image from internet but the `gophercloud` library does not yet provide a way to do so.\nConflicts with `local_file_path`. Changing this creates a new Image.\n"
        },
        "imagesImageV2Id": {
          "type": "string",
          "description": "A unique ID assigned by Glance.\n"
        },
        "localFilePath": {
          "type": "string",
          "description": "This is the filepath of the raw image file\nthat will be uploaded to Glance. Conflicts with `image_source_url`. Changing this creates a new Image.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The metadata associated with the image.\nImage metadata allow for meaningfully define the image properties and tags.\n"
        },
        "minDiskGb": {
          "type": "number",
          "description": "Amount of disk space (in GB) required to boot image.\nDefaults to 0. Changing this creates a new Image.\n"
        },
        "minRamMb": {
          "type": "number",
          "description": "Amount of ram (in MB) required to boot image.\nDefauts to 0. Changing this creates a new Image.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the image.\n"
        },
        "owner": {
          "type": "string",
          "description": "The id of the flexibleengine user who owns the image.\n"
        },
        "protected": {
          "type": "boolean",
          "description": "If true, image will not be deletable.\nDefaults to **false**. Changing this creates a new Image.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "schema": {
          "type": "string",
          "description": "The path to the JSON-schema that represent the image or image\n"
        },
        "sizeBytes": {
          "type": "number",
          "description": "The size in bytes of the data associated with the image.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the image. It can be \"queued\", \"active\" or \"saving\".\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The tags of the image. It must be a list of strings.\nAt this time, it is not possible to delete all tags of an image.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FImagesImageV2Timeouts:ImagesImageV2Timeouts"
        },
        "updatedAt": {
          "type": "string",
          "description": "The date the image was last updated.\n"
        },
        "visibility": {
          "type": "string",
          "description": "The visibility of the image. Must be one of\n\"public\", \"private\", \"community\", or \"shared\". The ability to set the\nvisibility depends upon the configuration of the FlexibleEngine cloud.\n\nNote: The `properties` attribute handling in the gophercloud library is currently buggy\nand needs to be fixed before being implemented in this resource.\n"
        }
      },
      "type": "object",
      "required": [
        "checksum",
        "containerFormat",
        "createdAt",
        "diskFormat",
        "file",
        "imagesImageV2Id",
        "metadata",
        "name",
        "owner",
        "region",
        "schema",
        "sizeBytes",
        "status",
        "updatedAt"
      ],
      "inputProperties": {
        "containerFormat": {
          "type": "string",
          "description": "The container format. Must be one of\n\"ami\", \"ari\", \"aki\", \"bare\", \"ovf\". Changing this creates a new Image.\n"
        },
        "diskFormat": {
          "type": "string",
          "description": "The disk format. Must be one of\n\"ami\", \"ari\", \"aki\", \"vhd\", \"vmdk\", \"raw\", \"qcow2\", \"vdi\", \"iso\". Changing this creates a new Image.\n"
        },
        "imageCachePath": {
          "type": "string"
        },
        "imageSourceUrl": {
          "type": "string",
          "description": "This is the url of the raw image that will\nbe downloaded in the `image_cache_path` before being uploaded to Glance.\nGlance is able to download image from internet but the `gophercloud` library does not yet provide a way to do so.\nConflicts with `local_file_path`. Changing this creates a new Image.\n"
        },
        "imagesImageV2Id": {
          "type": "string",
          "description": "A unique ID assigned by Glance.\n"
        },
        "localFilePath": {
          "type": "string",
          "description": "This is the filepath of the raw image file\nthat will be uploaded to Glance. Conflicts with `image_source_url`. Changing this creates a new Image.\n"
        },
        "minDiskGb": {
          "type": "number",
          "description": "Amount of disk space (in GB) required to boot image.\nDefaults to 0. Changing this creates a new Image.\n"
        },
        "minRamMb": {
          "type": "number",
          "description": "Amount of ram (in MB) required to boot image.\nDefauts to 0. Changing this creates a new Image.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the image.\n"
        },
        "protected": {
          "type": "boolean",
          "description": "If true, image will not be deletable.\nDefaults to **false**. Changing this creates a new Image.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The tags of the image. It must be a list of strings.\nAt this time, it is not possible to delete all tags of an image.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FImagesImageV2Timeouts:ImagesImageV2Timeouts"
        },
        "visibility": {
          "type": "string",
          "description": "The visibility of the image. Must be one of\n\"public\", \"private\", \"community\", or \"shared\". The ability to set the\nvisibility depends upon the configuration of the FlexibleEngine cloud.\n\nNote: The `properties` attribute handling in the gophercloud library is currently buggy\nand needs to be fixed before being implemented in this resource.\n"
        }
      },
      "requiredInputs": [
        "containerFormat",
        "diskFormat"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ImagesImageV2 resources.\n",
        "properties": {
          "checksum": {
            "type": "string",
            "description": "The checksum of the data associated with the image.\n"
          },
          "containerFormat": {
            "type": "string",
            "description": "The container format. Must be one of\n\"ami\", \"ari\", \"aki\", \"bare\", \"ovf\". Changing this creates a new Image.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The date the image was created.\n"
          },
          "diskFormat": {
            "type": "string",
            "description": "The disk format. Must be one of\n\"ami\", \"ari\", \"aki\", \"vhd\", \"vmdk\", \"raw\", \"qcow2\", \"vdi\", \"iso\". Changing this creates a new Image.\n"
          },
          "file": {
            "type": "string",
            "description": "the trailing path after the glance endpoint that represent the location of the image or the path\nto retrieve it.\n"
          },
          "imageCachePath": {
            "type": "string"
          },
          "imageSourceUrl": {
            "type": "string",
            "description": "This is the url of the raw image that will\nbe downloaded in the `image_cache_path` before being uploaded to Glance.\nGlance is able to download image from internet but the `gophercloud` library does not yet provide a way to do so.\nConflicts with `local_file_path`. Changing this creates a new Image.\n"
          },
          "imagesImageV2Id": {
            "type": "string",
            "description": "A unique ID assigned by Glance.\n"
          },
          "localFilePath": {
            "type": "string",
            "description": "This is the filepath of the raw image file\nthat will be uploaded to Glance. Conflicts with `image_source_url`. Changing this creates a new Image.\n"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The metadata associated with the image.\nImage metadata allow for meaningfully define the image properties and tags.\n"
          },
          "minDiskGb": {
            "type": "number",
            "description": "Amount of disk space (in GB) required to boot image.\nDefaults to 0. Changing this creates a new Image.\n"
          },
          "minRamMb": {
            "type": "number",
            "description": "Amount of ram (in MB) required to boot image.\nDefauts to 0. Changing this creates a new Image.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the image.\n"
          },
          "owner": {
            "type": "string",
            "description": "The id of the flexibleengine user who owns the image.\n"
          },
          "protected": {
            "type": "boolean",
            "description": "If true, image will not be deletable.\nDefaults to **false**. Changing this creates a new Image.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
          },
          "schema": {
            "type": "string",
            "description": "The path to the JSON-schema that represent the image or image\n"
          },
          "sizeBytes": {
            "type": "number",
            "description": "The size in bytes of the data associated with the image.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the image. It can be \"queued\", \"active\" or \"saving\".\n"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The tags of the image. It must be a list of strings.\nAt this time, it is not possible to delete all tags of an image.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FImagesImageV2Timeouts:ImagesImageV2Timeouts"
          },
          "updatedAt": {
            "type": "string",
            "description": "The date the image was last updated.\n"
          },
          "visibility": {
            "type": "string",
            "description": "The visibility of the image. Must be one of\n\"public\", \"private\", \"community\", or \"shared\". The ability to set the\nvisibility depends upon the configuration of the FlexibleEngine cloud.\n\nNote: The `properties` attribute handling in the gophercloud library is currently buggy\nand needs to be fixed before being implemented in this resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/kmsGrant:KmsGrant": {
      "description": "Users can create authorizations for other IAM users or accounts,\ngranting them permission to use their own master key (CMK),\nand a maximum of 100 authorizations can be created under one master key.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst keyId = config.requireObject(\"keyId\");\nconst userId = config.requireObject(\"userId\");\nconst test = new flexibleengine.KmsGrant(\"test\", {\n    keyId: keyId,\n    type: \"user\",\n    granteePrincipal: userId,\n    operations: [\n        \"create-datakey\",\n        \"encrypt-datakey\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nkey_id = config.require_object(\"keyId\")\nuser_id = config.require_object(\"userId\")\ntest = flexibleengine.KmsGrant(\"test\",\n    key_id=key_id,\n    type=\"user\",\n    grantee_principal=user_id,\n    operations=[\n        \"create-datakey\",\n        \"encrypt-datakey\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var keyId = config.RequireObject<dynamic>(\"keyId\");\n    var userId = config.RequireObject<dynamic>(\"userId\");\n    var test = new Flexibleengine.KmsGrant(\"test\", new()\n    {\n        KeyId = keyId,\n        Type = \"user\",\n        GranteePrincipal = userId,\n        Operations = new[]\n        {\n            \"create-datakey\",\n            \"encrypt-datakey\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tkeyId := cfg.RequireObject(\"keyId\")\n\t\tuserId := cfg.RequireObject(\"userId\")\n\t\t_, err := flexibleengine.NewKmsGrant(ctx, \"test\", &flexibleengine.KmsGrantArgs{\n\t\t\tKeyId:            pulumi.Any(keyId),\n\t\t\tType:             pulumi.String(\"user\"),\n\t\t\tGranteePrincipal: pulumi.Any(userId),\n\t\t\tOperations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"create-datakey\"),\n\t\t\t\tpulumi.String(\"encrypt-datakey\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.KmsGrant;\nimport com.pulumi.flexibleengine.KmsGrantArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var keyId = config.get(\"keyId\");\n        final var userId = config.get(\"userId\");\n        var test = new KmsGrant(\"test\", KmsGrantArgs.builder()\n            .keyId(keyId)\n            .type(\"user\")\n            .granteePrincipal(userId)\n            .operations(            \n                \"create-datakey\",\n                \"encrypt-datakey\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  keyId:\n    type: dynamic\n  userId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:KmsGrant\n    properties:\n      keyId: ${keyId}\n      type: user\n      granteePrincipal: ${userId}\n      operations:\n        - create-datakey\n        - encrypt-datakey\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe kms grant can be imported using\n\n`key_id`, `grant_id`, separated by slashes, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/kmsGrant:KmsGrant test <key_id>/<grant_id>\n```\n\n",
      "properties": {
        "creator": {
          "type": "string",
          "description": "The ID of the creator.\n"
        },
        "granteePrincipal": {
          "type": "string",
          "description": "The ID of the authorized user or account.  \n\nChanging this parameter will create a new resource.\n"
        },
        "keyId": {
          "type": "string",
          "description": "Key ID.\n\nChanging this parameter will create a new resource.\n"
        },
        "kmsGrantId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Grant name.  \nIt must be 1 to 255 characters long, start with a letter, and contain only letters (case-sensitive),\ndigits, hyphens (-), underscores (_), and slash(/).\n\nChanging this parameter will create a new resource.\n"
        },
        "operations": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of granted operations.\nThe options are: **create-datakey**, **create-datakey-without-plaintext**, **encrypt-datakey**,\n**decrypt-datakey**, **describe-key**, **create-grant**, **retire-grant**, **encrypt-data**, **decrypt-data**\nA value containing only **create-grant** is invalid.\n\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Authorization type.\nThe options are: **user**, **domain**. The default value is **user**.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "creator",
        "granteePrincipal",
        "keyId",
        "kmsGrantId",
        "name",
        "operations",
        "region"
      ],
      "inputProperties": {
        "granteePrincipal": {
          "type": "string",
          "description": "The ID of the authorized user or account.  \n\nChanging this parameter will create a new resource.\n"
        },
        "keyId": {
          "type": "string",
          "description": "Key ID.\n\nChanging this parameter will create a new resource.\n"
        },
        "kmsGrantId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Grant name.  \nIt must be 1 to 255 characters long, start with a letter, and contain only letters (case-sensitive),\ndigits, hyphens (-), underscores (_), and slash(/).\n\nChanging this parameter will create a new resource.\n"
        },
        "operations": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of granted operations.\nThe options are: **create-datakey**, **create-datakey-without-plaintext**, **encrypt-datakey**,\n**decrypt-datakey**, **describe-key**, **create-grant**, **retire-grant**, **encrypt-data**, **decrypt-data**\nA value containing only **create-grant** is invalid.\n\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "type": {
          "type": "string",
          "description": "Authorization type.\nThe options are: **user**, **domain**. The default value is **user**.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "granteePrincipal",
        "keyId",
        "operations"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering KmsGrant resources.\n",
        "properties": {
          "creator": {
            "type": "string",
            "description": "The ID of the creator.\n"
          },
          "granteePrincipal": {
            "type": "string",
            "description": "The ID of the authorized user or account.  \n\nChanging this parameter will create a new resource.\n"
          },
          "keyId": {
            "type": "string",
            "description": "Key ID.\n\nChanging this parameter will create a new resource.\n"
          },
          "kmsGrantId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "name": {
            "type": "string",
            "description": "Grant name.  \nIt must be 1 to 255 characters long, start with a letter, and contain only letters (case-sensitive),\ndigits, hyphens (-), underscores (_), and slash(/).\n\nChanging this parameter will create a new resource.\n"
          },
          "operations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of granted operations.\nThe options are: **create-datakey**, **create-datakey-without-plaintext**, **encrypt-datakey**,\n**decrypt-datakey**, **describe-key**, **create-grant**, **retire-grant**, **encrypt-data**, **decrypt-data**\nA value containing only **create-grant** is invalid.\n\nChanging this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "type": {
            "type": "string",
            "description": "Authorization type.\nThe options are: **user**, **domain**. The default value is **user**.\n\nChanging this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/kmsKeyV1:KmsKeyV1": {
      "description": "Manages a V1 key resource within KMS.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst key1 = new flexibleengine.KmsKeyV1(\"key1\", {\n    isEnabled: true,\n    keyAlias: \"key_1\",\n    keyDescription: \"first test key\",\n    pendingDays: \"7\",\n    realm: \"cn-north-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nkey1 = flexibleengine.KmsKeyV1(\"key1\",\n    is_enabled=True,\n    key_alias=\"key_1\",\n    key_description=\"first test key\",\n    pending_days=\"7\",\n    realm=\"cn-north-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var key1 = new Flexibleengine.KmsKeyV1(\"key1\", new()\n    {\n        IsEnabled = true,\n        KeyAlias = \"key_1\",\n        KeyDescription = \"first test key\",\n        PendingDays = \"7\",\n        Realm = \"cn-north-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewKmsKeyV1(ctx, \"key1\", &flexibleengine.KmsKeyV1Args{\n\t\t\tIsEnabled:      pulumi.Bool(true),\n\t\t\tKeyAlias:       pulumi.String(\"key_1\"),\n\t\t\tKeyDescription: pulumi.String(\"first test key\"),\n\t\t\tPendingDays:    pulumi.String(\"7\"),\n\t\t\tRealm:          pulumi.String(\"cn-north-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.KmsKeyV1;\nimport com.pulumi.flexibleengine.KmsKeyV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var key1 = new KmsKeyV1(\"key1\", KmsKeyV1Args.builder()\n            .isEnabled(true)\n            .keyAlias(\"key_1\")\n            .keyDescription(\"first test key\")\n            .pendingDays(\"7\")\n            .realm(\"cn-north-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  key1:\n    type: flexibleengine:KmsKeyV1\n    properties:\n      isEnabled: true\n      keyAlias: key_1\n      keyDescription: first test key\n      pendingDays: '7'\n      realm: cn-north-1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nKMS Keys can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/kmsKeyV1:KmsKeyV1 key_1 7056d636-ac60-4663-8a6c-82d3c32c1c64\n```\n\n",
      "properties": {
        "creationDate": {
          "type": "string",
          "description": "Creation time (time stamp) of a key.\n"
        },
        "defaultKeyFlag": {
          "type": "string",
          "description": "Identification of a Master Key. The value 1 indicates a Default\nMaster Key, and the value 0 indicates a key.\n"
        },
        "domainId": {
          "type": "string",
          "description": "ID of a user domain for the key.\n"
        },
        "isEnabled": {
          "type": "boolean",
          "description": "Specifies whether the key is enabled. Defaults to true.\n"
        },
        "keyAlias": {
          "type": "string",
          "description": "Specifies the name of a KMS key.\n"
        },
        "keyDescription": {
          "type": "string",
          "description": "Specifies the description of a KMS key.\n"
        },
        "kmsKeyV1Id": {
          "type": "string",
          "description": "The globally unique identifier for the key.\n"
        },
        "origin": {
          "type": "string",
          "description": "Origin of a key. The default value is kms.\n"
        },
        "pendingDays": {
          "type": "string",
          "description": "Specifies the duration in days after which the key is deleted\nafter destruction of the resource, must be between 7 and 1096 days. Defaults to 7.\nIt only will be used when delete a key.\n"
        },
        "realm": {
          "type": "string",
          "description": "Region where a key resides. Changing this creates a new key.\n"
        },
        "rotationEnabled": {
          "type": "boolean",
          "description": "Specifies whether the key rotation is enabled. Defaults to false.\n"
        },
        "rotationInterval": {
          "type": "number",
          "description": "Specifies the key rotation interval. The valid value is range from 30 to 365,\ndefaults to 365.\n"
        },
        "rotationNumber": {
          "type": "number",
          "description": "The total number of key rotations.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FKmsKeyV1Timeouts:KmsKeyV1Timeouts"
        }
      },
      "type": "object",
      "required": [
        "creationDate",
        "defaultKeyFlag",
        "domainId",
        "keyAlias",
        "kmsKeyV1Id",
        "origin",
        "realm",
        "rotationInterval",
        "rotationNumber"
      ],
      "inputProperties": {
        "isEnabled": {
          "type": "boolean",
          "description": "Specifies whether the key is enabled. Defaults to true.\n"
        },
        "keyAlias": {
          "type": "string",
          "description": "Specifies the name of a KMS key.\n"
        },
        "keyDescription": {
          "type": "string",
          "description": "Specifies the description of a KMS key.\n"
        },
        "kmsKeyV1Id": {
          "type": "string",
          "description": "The globally unique identifier for the key.\n"
        },
        "pendingDays": {
          "type": "string",
          "description": "Specifies the duration in days after which the key is deleted\nafter destruction of the resource, must be between 7 and 1096 days. Defaults to 7.\nIt only will be used when delete a key.\n"
        },
        "realm": {
          "type": "string",
          "description": "Region where a key resides. Changing this creates a new key.\n"
        },
        "rotationEnabled": {
          "type": "boolean",
          "description": "Specifies whether the key rotation is enabled. Defaults to false.\n"
        },
        "rotationInterval": {
          "type": "number",
          "description": "Specifies the key rotation interval. The valid value is range from 30 to 365,\ndefaults to 365.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FKmsKeyV1Timeouts:KmsKeyV1Timeouts"
        }
      },
      "requiredInputs": [
        "keyAlias"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering KmsKeyV1 resources.\n",
        "properties": {
          "creationDate": {
            "type": "string",
            "description": "Creation time (time stamp) of a key.\n"
          },
          "defaultKeyFlag": {
            "type": "string",
            "description": "Identification of a Master Key. The value 1 indicates a Default\nMaster Key, and the value 0 indicates a key.\n"
          },
          "domainId": {
            "type": "string",
            "description": "ID of a user domain for the key.\n"
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Specifies whether the key is enabled. Defaults to true.\n"
          },
          "keyAlias": {
            "type": "string",
            "description": "Specifies the name of a KMS key.\n"
          },
          "keyDescription": {
            "type": "string",
            "description": "Specifies the description of a KMS key.\n"
          },
          "kmsKeyV1Id": {
            "type": "string",
            "description": "The globally unique identifier for the key.\n"
          },
          "origin": {
            "type": "string",
            "description": "Origin of a key. The default value is kms.\n"
          },
          "pendingDays": {
            "type": "string",
            "description": "Specifies the duration in days after which the key is deleted\nafter destruction of the resource, must be between 7 and 1096 days. Defaults to 7.\nIt only will be used when delete a key.\n"
          },
          "realm": {
            "type": "string",
            "description": "Region where a key resides. Changing this creates a new key.\n"
          },
          "rotationEnabled": {
            "type": "boolean",
            "description": "Specifies whether the key rotation is enabled. Defaults to false.\n"
          },
          "rotationInterval": {
            "type": "number",
            "description": "Specifies the key rotation interval. The valid value is range from 30 to 365,\ndefaults to 365.\n"
          },
          "rotationNumber": {
            "type": "number",
            "description": "The total number of key rotations.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FKmsKeyV1Timeouts:KmsKeyV1Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbCertificateV2:LbCertificateV2": {
      "description": "Manages an **enhanced** load balancer certificate resource within FlexibleEngine.\n\n!> **Warning:** It has been deprecated, using `flexibleengine.ElbCertificate` instead.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst certificate1 = new flexibleengine.LbCertificateV2(\"certificate1\", {\n    certificate: `-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n\n`,\n    description: \"terraform test certificate\",\n    domain: \"www.elb.com\",\n    privateKey: `-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ncertificate1 = flexibleengine.LbCertificateV2(\"certificate1\",\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n\n\"\"\",\n    description=\"terraform test certificate\",\n    domain=\"www.elb.com\",\n    private_key=\"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var certificate1 = new Flexibleengine.LbCertificateV2(\"certificate1\", new()\n    {\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n\n\",\n        Description = \"terraform test certificate\",\n        Domain = \"www.elb.com\",\n        PrivateKey = @\"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewLbCertificateV2(ctx, \"certificate1\", &flexibleengine.LbCertificateV2Args{\n\t\t\tCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n\n`),\n\t\t\tDescription: pulumi.String(\"terraform test certificate\"),\n\t\t\tDomain:      pulumi.String(\"www.elb.com\"),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LbCertificateV2;\nimport com.pulumi.flexibleengine.LbCertificateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var certificate1 = new LbCertificateV2(\"certificate1\", LbCertificateV2Args.builder()\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n\n            \"\"\")\n            .description(\"terraform test certificate\")\n            .domain(\"www.elb.com\")\n            .privateKey(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  certificate1:\n    type: flexibleengine:LbCertificateV2\n    properties:\n      certificate: |+\n        -----BEGIN CERTIFICATE-----\n        MIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\n        BAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\n        CQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\n        b20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\n        eDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\n        CwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\n        IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n        2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\n        iE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n        3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\n        Q8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\n        mf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\n        AQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\n        FoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\n        AQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n        83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\n        r4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\n        c8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\n        i34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\n        i1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n        -----END CERTIFICATE-----\n\n      description: terraform test certificate\n      domain: www.elb.com\n      privateKey: |+\n        -----BEGIN RSA PRIVATE KEY-----\n        MIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\n        qEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\n        UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\n        MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\n        M3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n        13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\n        DRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\n        Nwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\n        iMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\n        rh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n        1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\n        yDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\n        RoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\n        vABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\n        Uk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\n        aKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\n        Hdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n        75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\n        uvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\n        Up7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n        79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\n        yHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n        2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\n        ep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\n        nEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n        -----END RSA PRIVATE KEY-----\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "certificate": {
          "type": "string",
          "description": "The public encrypted key of the Certificate, PEM format.\n"
        },
        "createTime": {
          "type": "string",
          "description": "Indicates the creation time.\n"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the Certificate.\n"
        },
        "domain": {
          "type": "string",
          "description": "The domain of the Certificate.\n"
        },
        "lbCertificateV2Id": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the Certificate. Does not have to be unique.\n"
        },
        "privateKey": {
          "type": "string",
          "description": "The private encrypted key of the Certificate, PEM format.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create an LB certificate. If omitted, the\n`region` argument of the provider is used. Changing this creates a new LB certificate.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbCertificateV2Timeouts:LbCertificateV2Timeouts"
        },
        "updateTime": {
          "type": "string",
          "description": "Indicates the update time.\n"
        }
      },
      "type": "object",
      "required": [
        "certificate",
        "createTime",
        "lbCertificateV2Id",
        "name",
        "privateKey",
        "region",
        "updateTime"
      ],
      "inputProperties": {
        "certificate": {
          "type": "string",
          "description": "The public encrypted key of the Certificate, PEM format.\n"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the Certificate.\n"
        },
        "domain": {
          "type": "string",
          "description": "The domain of the Certificate.\n"
        },
        "lbCertificateV2Id": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the Certificate. Does not have to be unique.\n"
        },
        "privateKey": {
          "type": "string",
          "description": "The private encrypted key of the Certificate, PEM format.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create an LB certificate. If omitted, the\n`region` argument of the provider is used. Changing this creates a new LB certificate.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbCertificateV2Timeouts:LbCertificateV2Timeouts"
        }
      },
      "requiredInputs": [
        "certificate",
        "privateKey"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbCertificateV2 resources.\n",
        "properties": {
          "certificate": {
            "type": "string",
            "description": "The public encrypted key of the Certificate, PEM format.\n"
          },
          "createTime": {
            "type": "string",
            "description": "Indicates the creation time.\n"
          },
          "description": {
            "type": "string",
            "description": "Human-readable description for the Certificate.\n"
          },
          "domain": {
            "type": "string",
            "description": "The domain of the Certificate.\n"
          },
          "lbCertificateV2Id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for the Certificate. Does not have to be unique.\n"
          },
          "privateKey": {
            "type": "string",
            "description": "The private encrypted key of the Certificate, PEM format.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create an LB certificate. If omitted, the\n`region` argument of the provider is used. Changing this creates a new LB certificate.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FLbCertificateV2Timeouts:LbCertificateV2Timeouts"
          },
          "updateTime": {
            "type": "string",
            "description": "Indicates the update time.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbL7policyV2:LbL7policyV2": {
      "description": "Manages an **enhanced** load balancer L7 Policy resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst loadbalancer1 = new flexibleengine.LbLoadbalancerV2(\"loadbalancer1\", {vipSubnetId: flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id});\nconst listener1 = new flexibleengine.LbListenerV2(\"listener1\", {\n    protocol: \"HTTP\",\n    protocolPort: 8080,\n    loadbalancerId: loadbalancer1.lbLoadbalancerV2Id,\n});\nconst pool1 = new flexibleengine.LbPoolV2(\"pool1\", {\n    protocol: \"HTTP\",\n    lbMethod: \"ROUND_ROBIN\",\n    loadbalancerId: loadbalancer1.lbLoadbalancerV2Id,\n});\nconst l7policy1 = new flexibleengine.LbL7policyV2(\"l7policy1\", {\n    action: \"REDIRECT_TO_POOL\",\n    description: \"test l7 policy\",\n    position: 1,\n    listenerId: listener1.lbListenerV2Id,\n    redirectPoolId: pool1.lbPoolV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nloadbalancer1 = flexibleengine.LbLoadbalancerV2(\"loadbalancer1\", vip_subnet_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"ipv4_subnet_id\"])\nlistener1 = flexibleengine.LbListenerV2(\"listener1\",\n    protocol=\"HTTP\",\n    protocol_port=8080,\n    loadbalancer_id=loadbalancer1.lb_loadbalancer_v2_id)\npool1 = flexibleengine.LbPoolV2(\"pool1\",\n    protocol=\"HTTP\",\n    lb_method=\"ROUND_ROBIN\",\n    loadbalancer_id=loadbalancer1.lb_loadbalancer_v2_id)\nl7policy1 = flexibleengine.LbL7policyV2(\"l7policy1\",\n    action=\"REDIRECT_TO_POOL\",\n    description=\"test l7 policy\",\n    position=1,\n    listener_id=listener1.lb_listener_v2_id,\n    redirect_pool_id=pool1.lb_pool_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var loadbalancer1 = new Flexibleengine.LbLoadbalancerV2(\"loadbalancer1\", new()\n    {\n        VipSubnetId = flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id,\n    });\n\n    var listener1 = new Flexibleengine.LbListenerV2(\"listener1\", new()\n    {\n        Protocol = \"HTTP\",\n        ProtocolPort = 8080,\n        LoadbalancerId = loadbalancer1.LbLoadbalancerV2Id,\n    });\n\n    var pool1 = new Flexibleengine.LbPoolV2(\"pool1\", new()\n    {\n        Protocol = \"HTTP\",\n        LbMethod = \"ROUND_ROBIN\",\n        LoadbalancerId = loadbalancer1.LbLoadbalancerV2Id,\n    });\n\n    var l7policy1 = new Flexibleengine.LbL7policyV2(\"l7policy1\", new()\n    {\n        Action = \"REDIRECT_TO_POOL\",\n        Description = \"test l7 policy\",\n        Position = 1,\n        ListenerId = listener1.LbListenerV2Id,\n        RedirectPoolId = pool1.LbPoolV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tloadbalancer1, err := flexibleengine.NewLbLoadbalancerV2(ctx, \"loadbalancer1\", &flexibleengine.LbLoadbalancerV2Args{\n\t\t\tVipSubnetId: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlistener1, err := flexibleengine.NewLbListenerV2(ctx, \"listener1\", &flexibleengine.LbListenerV2Args{\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort:   pulumi.Float64(8080),\n\t\t\tLoadbalancerId: loadbalancer1.LbLoadbalancerV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool1, err := flexibleengine.NewLbPoolV2(ctx, \"pool1\", &flexibleengine.LbPoolV2Args{\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tLbMethod:       pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tLoadbalancerId: loadbalancer1.LbLoadbalancerV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewLbL7policyV2(ctx, \"l7policy1\", &flexibleengine.LbL7policyV2Args{\n\t\t\tAction:         pulumi.String(\"REDIRECT_TO_POOL\"),\n\t\t\tDescription:    pulumi.String(\"test l7 policy\"),\n\t\t\tPosition:       pulumi.Float64(1),\n\t\t\tListenerId:     listener1.LbListenerV2Id,\n\t\t\tRedirectPoolId: pool1.LbPoolV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LbLoadbalancerV2;\nimport com.pulumi.flexibleengine.LbLoadbalancerV2Args;\nimport com.pulumi.flexibleengine.LbListenerV2;\nimport com.pulumi.flexibleengine.LbListenerV2Args;\nimport com.pulumi.flexibleengine.LbPoolV2;\nimport com.pulumi.flexibleengine.LbPoolV2Args;\nimport com.pulumi.flexibleengine.LbL7policyV2;\nimport com.pulumi.flexibleengine.LbL7policyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var loadbalancer1 = new LbLoadbalancerV2(\"loadbalancer1\", LbLoadbalancerV2Args.builder()\n            .vipSubnetId(flexibleengine_vpc_subnet_v1.example_subnet().ipv4_subnet_id())\n            .build());\n\n        var listener1 = new LbListenerV2(\"listener1\", LbListenerV2Args.builder()\n            .protocol(\"HTTP\")\n            .protocolPort(8080)\n            .loadbalancerId(loadbalancer1.lbLoadbalancerV2Id())\n            .build());\n\n        var pool1 = new LbPoolV2(\"pool1\", LbPoolV2Args.builder()\n            .protocol(\"HTTP\")\n            .lbMethod(\"ROUND_ROBIN\")\n            .loadbalancerId(loadbalancer1.lbLoadbalancerV2Id())\n            .build());\n\n        var l7policy1 = new LbL7policyV2(\"l7policy1\", LbL7policyV2Args.builder()\n            .action(\"REDIRECT_TO_POOL\")\n            .description(\"test l7 policy\")\n            .position(1)\n            .listenerId(listener1.lbListenerV2Id())\n            .redirectPoolId(pool1.lbPoolV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  loadbalancer1:\n    type: flexibleengine:LbLoadbalancerV2\n    properties:\n      vipSubnetId: ${flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id}\n  listener1:\n    type: flexibleengine:LbListenerV2\n    properties:\n      protocol: HTTP\n      protocolPort: 8080\n      loadbalancerId: ${loadbalancer1.lbLoadbalancerV2Id}\n  pool1:\n    type: flexibleengine:LbPoolV2\n    properties:\n      protocol: HTTP\n      lbMethod: ROUND_ROBIN\n      loadbalancerId: ${loadbalancer1.lbLoadbalancerV2Id}\n  l7policy1:\n    type: flexibleengine:LbL7policyV2\n    properties:\n      action: REDIRECT_TO_POOL\n      description: test l7 policy\n      position: 1\n      listenerId: ${listener1.lbListenerV2Id}\n      redirectPoolId: ${pool1.lbPoolV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLoad Balancer L7 Policy can be imported using the L7 Policy ID, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/lbL7policyV2:LbL7policyV2 l7policy_1 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74\n```\n\n",
      "properties": {
        "action": {
          "type": "string",
          "description": "The L7 Policy action - can either be REDIRECT_TO_POOL,\nor REDIRECT_TO_LISTENER. Changing this creates a new L7 Policy.\n"
        },
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the L7 Policy.\n"
        },
        "lbL7policyV2Id": {
          "type": "string",
          "description": "The unique ID for the L7 policy.\n"
        },
        "listenerId": {
          "type": "string",
          "description": "The Listener on which the L7 Policy will be associated with.\nChanging this creates a new L7 Policy.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the L7 Policy. Does not have to be unique.\n"
        },
        "position": {
          "type": "number",
          "description": "The position of this policy on the listener. Positions start at 1.\nChanging this creates a new L7 Policy.\n"
        },
        "redirectListenerId": {
          "type": "string",
          "description": "Requests matching this policy will be redirected to\nthe listener with this ID. Only valid if action is REDIRECT_TO_LISTENER.\n"
        },
        "redirectPoolId": {
          "type": "string",
          "description": "Requests matching this policy will be redirected to\nthe pool with this ID. Only valid if action is REDIRECT_TO_POOL.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create an . If omitted, the\n`region` argument of the provider is used. Changing this creates a new L7 Policy.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbL7policyV2Timeouts:LbL7policyV2Timeouts"
        }
      },
      "type": "object",
      "required": [
        "action",
        "lbL7policyV2Id",
        "listenerId",
        "name",
        "position",
        "region",
        "tenantId"
      ],
      "inputProperties": {
        "action": {
          "type": "string",
          "description": "The L7 Policy action - can either be REDIRECT_TO_POOL,\nor REDIRECT_TO_LISTENER. Changing this creates a new L7 Policy.\n"
        },
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the L7 Policy.\n"
        },
        "lbL7policyV2Id": {
          "type": "string",
          "description": "The unique ID for the L7 policy.\n"
        },
        "listenerId": {
          "type": "string",
          "description": "The Listener on which the L7 Policy will be associated with.\nChanging this creates a new L7 Policy.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the L7 Policy. Does not have to be unique.\n"
        },
        "position": {
          "type": "number",
          "description": "The position of this policy on the listener. Positions start at 1.\nChanging this creates a new L7 Policy.\n"
        },
        "redirectListenerId": {
          "type": "string",
          "description": "Requests matching this policy will be redirected to\nthe listener with this ID. Only valid if action is REDIRECT_TO_LISTENER.\n"
        },
        "redirectPoolId": {
          "type": "string",
          "description": "Requests matching this policy will be redirected to\nthe pool with this ID. Only valid if action is REDIRECT_TO_POOL.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create an . If omitted, the\n`region` argument of the provider is used. Changing this creates a new L7 Policy.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbL7policyV2Timeouts:LbL7policyV2Timeouts"
        }
      },
      "requiredInputs": [
        "action",
        "listenerId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbL7policyV2 resources.\n",
        "properties": {
          "action": {
            "type": "string",
            "description": "The L7 Policy action - can either be REDIRECT_TO_POOL,\nor REDIRECT_TO_LISTENER. Changing this creates a new L7 Policy.\n"
          },
          "adminStateUp": {
            "type": "boolean",
            "deprecationMessage": "Deprecated"
          },
          "description": {
            "type": "string",
            "description": "Human-readable description for the L7 Policy.\n"
          },
          "lbL7policyV2Id": {
            "type": "string",
            "description": "The unique ID for the L7 policy.\n"
          },
          "listenerId": {
            "type": "string",
            "description": "The Listener on which the L7 Policy will be associated with.\nChanging this creates a new L7 Policy.\n"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for the L7 Policy. Does not have to be unique.\n"
          },
          "position": {
            "type": "number",
            "description": "The position of this policy on the listener. Positions start at 1.\nChanging this creates a new L7 Policy.\n"
          },
          "redirectListenerId": {
            "type": "string",
            "description": "Requests matching this policy will be redirected to\nthe listener with this ID. Only valid if action is REDIRECT_TO_LISTENER.\n"
          },
          "redirectPoolId": {
            "type": "string",
            "description": "Requests matching this policy will be redirected to\nthe pool with this ID. Only valid if action is REDIRECT_TO_POOL.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create an . If omitted, the\n`region` argument of the provider is used. Changing this creates a new L7 Policy.\n"
          },
          "tenantId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FLbL7policyV2Timeouts:LbL7policyV2Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbL7ruleV2:LbL7ruleV2": {
      "description": "Manages an **enhanced** load balancer L7 Rule resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst loadbalancer1 = new flexibleengine.LbLoadbalancerV2(\"loadbalancer1\", {vipSubnetId: flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id});\nconst listener1 = new flexibleengine.LbListenerV2(\"listener1\", {\n    protocol: \"HTTP\",\n    protocolPort: 8080,\n    loadbalancerId: loadbalancer1.lbLoadbalancerV2Id,\n});\nconst pool1 = new flexibleengine.LbPoolV2(\"pool1\", {\n    protocol: \"HTTP\",\n    lbMethod: \"ROUND_ROBIN\",\n    loadbalancerId: loadbalancer1.lbLoadbalancerV2Id,\n});\nconst l7policy1 = new flexibleengine.LbL7policyV2(\"l7policy1\", {\n    action: \"REDIRECT_TO_POOL\",\n    description: \"test l7 policy\",\n    position: 1,\n    listenerId: listener1.lbListenerV2Id,\n    redirectPoolId: pool1.lbPoolV2Id,\n});\nconst l7rule1 = new flexibleengine.LbL7ruleV2(\"l7rule1\", {\n    l7policyId: l7policy1.lbL7policyV2Id,\n    type: \"PATH\",\n    compareType: \"EQUAL_TO\",\n    value: \"/api\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nloadbalancer1 = flexibleengine.LbLoadbalancerV2(\"loadbalancer1\", vip_subnet_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"ipv4_subnet_id\"])\nlistener1 = flexibleengine.LbListenerV2(\"listener1\",\n    protocol=\"HTTP\",\n    protocol_port=8080,\n    loadbalancer_id=loadbalancer1.lb_loadbalancer_v2_id)\npool1 = flexibleengine.LbPoolV2(\"pool1\",\n    protocol=\"HTTP\",\n    lb_method=\"ROUND_ROBIN\",\n    loadbalancer_id=loadbalancer1.lb_loadbalancer_v2_id)\nl7policy1 = flexibleengine.LbL7policyV2(\"l7policy1\",\n    action=\"REDIRECT_TO_POOL\",\n    description=\"test l7 policy\",\n    position=1,\n    listener_id=listener1.lb_listener_v2_id,\n    redirect_pool_id=pool1.lb_pool_v2_id)\nl7rule1 = flexibleengine.LbL7ruleV2(\"l7rule1\",\n    l7policy_id=l7policy1.lb_l7policy_v2_id,\n    type=\"PATH\",\n    compare_type=\"EQUAL_TO\",\n    value=\"/api\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var loadbalancer1 = new Flexibleengine.LbLoadbalancerV2(\"loadbalancer1\", new()\n    {\n        VipSubnetId = flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id,\n    });\n\n    var listener1 = new Flexibleengine.LbListenerV2(\"listener1\", new()\n    {\n        Protocol = \"HTTP\",\n        ProtocolPort = 8080,\n        LoadbalancerId = loadbalancer1.LbLoadbalancerV2Id,\n    });\n\n    var pool1 = new Flexibleengine.LbPoolV2(\"pool1\", new()\n    {\n        Protocol = \"HTTP\",\n        LbMethod = \"ROUND_ROBIN\",\n        LoadbalancerId = loadbalancer1.LbLoadbalancerV2Id,\n    });\n\n    var l7policy1 = new Flexibleengine.LbL7policyV2(\"l7policy1\", new()\n    {\n        Action = \"REDIRECT_TO_POOL\",\n        Description = \"test l7 policy\",\n        Position = 1,\n        ListenerId = listener1.LbListenerV2Id,\n        RedirectPoolId = pool1.LbPoolV2Id,\n    });\n\n    var l7rule1 = new Flexibleengine.LbL7ruleV2(\"l7rule1\", new()\n    {\n        L7policyId = l7policy1.LbL7policyV2Id,\n        Type = \"PATH\",\n        CompareType = \"EQUAL_TO\",\n        Value = \"/api\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tloadbalancer1, err := flexibleengine.NewLbLoadbalancerV2(ctx, \"loadbalancer1\", &flexibleengine.LbLoadbalancerV2Args{\n\t\t\tVipSubnetId: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlistener1, err := flexibleengine.NewLbListenerV2(ctx, \"listener1\", &flexibleengine.LbListenerV2Args{\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort:   pulumi.Float64(8080),\n\t\t\tLoadbalancerId: loadbalancer1.LbLoadbalancerV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool1, err := flexibleengine.NewLbPoolV2(ctx, \"pool1\", &flexibleengine.LbPoolV2Args{\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tLbMethod:       pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tLoadbalancerId: loadbalancer1.LbLoadbalancerV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tl7policy1, err := flexibleengine.NewLbL7policyV2(ctx, \"l7policy1\", &flexibleengine.LbL7policyV2Args{\n\t\t\tAction:         pulumi.String(\"REDIRECT_TO_POOL\"),\n\t\t\tDescription:    pulumi.String(\"test l7 policy\"),\n\t\t\tPosition:       pulumi.Float64(1),\n\t\t\tListenerId:     listener1.LbListenerV2Id,\n\t\t\tRedirectPoolId: pool1.LbPoolV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewLbL7ruleV2(ctx, \"l7rule1\", &flexibleengine.LbL7ruleV2Args{\n\t\t\tL7policyId:  l7policy1.LbL7policyV2Id,\n\t\t\tType:        pulumi.String(\"PATH\"),\n\t\t\tCompareType: pulumi.String(\"EQUAL_TO\"),\n\t\t\tValue:       pulumi.String(\"/api\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LbLoadbalancerV2;\nimport com.pulumi.flexibleengine.LbLoadbalancerV2Args;\nimport com.pulumi.flexibleengine.LbListenerV2;\nimport com.pulumi.flexibleengine.LbListenerV2Args;\nimport com.pulumi.flexibleengine.LbPoolV2;\nimport com.pulumi.flexibleengine.LbPoolV2Args;\nimport com.pulumi.flexibleengine.LbL7policyV2;\nimport com.pulumi.flexibleengine.LbL7policyV2Args;\nimport com.pulumi.flexibleengine.LbL7ruleV2;\nimport com.pulumi.flexibleengine.LbL7ruleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var loadbalancer1 = new LbLoadbalancerV2(\"loadbalancer1\", LbLoadbalancerV2Args.builder()\n            .vipSubnetId(flexibleengine_vpc_subnet_v1.example_subnet().ipv4_subnet_id())\n            .build());\n\n        var listener1 = new LbListenerV2(\"listener1\", LbListenerV2Args.builder()\n            .protocol(\"HTTP\")\n            .protocolPort(8080)\n            .loadbalancerId(loadbalancer1.lbLoadbalancerV2Id())\n            .build());\n\n        var pool1 = new LbPoolV2(\"pool1\", LbPoolV2Args.builder()\n            .protocol(\"HTTP\")\n            .lbMethod(\"ROUND_ROBIN\")\n            .loadbalancerId(loadbalancer1.lbLoadbalancerV2Id())\n            .build());\n\n        var l7policy1 = new LbL7policyV2(\"l7policy1\", LbL7policyV2Args.builder()\n            .action(\"REDIRECT_TO_POOL\")\n            .description(\"test l7 policy\")\n            .position(1)\n            .listenerId(listener1.lbListenerV2Id())\n            .redirectPoolId(pool1.lbPoolV2Id())\n            .build());\n\n        var l7rule1 = new LbL7ruleV2(\"l7rule1\", LbL7ruleV2Args.builder()\n            .l7policyId(l7policy1.lbL7policyV2Id())\n            .type(\"PATH\")\n            .compareType(\"EQUAL_TO\")\n            .value(\"/api\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  loadbalancer1:\n    type: flexibleengine:LbLoadbalancerV2\n    properties:\n      vipSubnetId: ${flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id}\n  listener1:\n    type: flexibleengine:LbListenerV2\n    properties:\n      protocol: HTTP\n      protocolPort: 8080\n      loadbalancerId: ${loadbalancer1.lbLoadbalancerV2Id}\n  pool1:\n    type: flexibleengine:LbPoolV2\n    properties:\n      protocol: HTTP\n      lbMethod: ROUND_ROBIN\n      loadbalancerId: ${loadbalancer1.lbLoadbalancerV2Id}\n  l7policy1:\n    type: flexibleengine:LbL7policyV2\n    properties:\n      action: REDIRECT_TO_POOL\n      description: test l7 policy\n      position: 1\n      listenerId: ${listener1.lbListenerV2Id}\n      redirectPoolId: ${pool1.lbPoolV2Id}\n  l7rule1:\n    type: flexibleengine:LbL7ruleV2\n    properties:\n      l7policyId: ${l7policy1.lbL7policyV2Id}\n      type: PATH\n      compareType: EQUAL_TO\n      value: /api\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLoad Balancer L7 Rule can be imported using the L7 Policy ID and L7 Rule ID\n\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/lbL7ruleV2:LbL7ruleV2 l7rule_1 e0bd694a-abbe-450e-b329-0931fd1cc5eb/4086b0c9-b18c-4d1c-b6b8-4c56c3ad2a9e\n```\n\n",
      "properties": {
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "compareType": {
          "type": "string",
          "description": "The comparison type for the L7 rule - can either be\nSTARTS_WITH, EQUAL_TO or REGEX\n"
        },
        "key": {
          "type": "string",
          "description": "The key to use for the comparison. For example, the name of the cookie to\nevaluate. Valid when `type` is set to COOKIE or HEADER. Changing this creates a new L7 Rule.\n"
        },
        "l7policyId": {
          "type": "string",
          "description": "The ID of the L7 Policy to query. Changing this creates a new L7 Rule.\n"
        },
        "lbL7ruleV2Id": {
          "type": "string",
          "description": "The unique ID for the L7 Rule.\n"
        },
        "listenerId": {
          "type": "string",
          "description": "The ID of the Listener owning this resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create an . If omitted, the\n`region` argument of the provider is used. Changing this creates a new L7 Rule.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbL7ruleV2Timeouts:LbL7ruleV2Timeouts"
        },
        "type": {
          "type": "string",
          "description": "The L7 Rule type - can either be HOST_NAME or PATH.\nChanging this creates a new L7 Rule.\n"
        },
        "value": {
          "type": "string",
          "description": "The value to use for the comparison. For example, the file type to compare.\n"
        }
      },
      "type": "object",
      "required": [
        "compareType",
        "l7policyId",
        "lbL7ruleV2Id",
        "listenerId",
        "region",
        "tenantId",
        "type",
        "value"
      ],
      "inputProperties": {
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "compareType": {
          "type": "string",
          "description": "The comparison type for the L7 rule - can either be\nSTARTS_WITH, EQUAL_TO or REGEX\n"
        },
        "key": {
          "type": "string",
          "description": "The key to use for the comparison. For example, the name of the cookie to\nevaluate. Valid when `type` is set to COOKIE or HEADER. Changing this creates a new L7 Rule.\n"
        },
        "l7policyId": {
          "type": "string",
          "description": "The ID of the L7 Policy to query. Changing this creates a new L7 Rule.\n"
        },
        "lbL7ruleV2Id": {
          "type": "string",
          "description": "The unique ID for the L7 Rule.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create an . If omitted, the\n`region` argument of the provider is used. Changing this creates a new L7 Rule.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbL7ruleV2Timeouts:LbL7ruleV2Timeouts"
        },
        "type": {
          "type": "string",
          "description": "The L7 Rule type - can either be HOST_NAME or PATH.\nChanging this creates a new L7 Rule.\n"
        },
        "value": {
          "type": "string",
          "description": "The value to use for the comparison. For example, the file type to compare.\n"
        }
      },
      "requiredInputs": [
        "compareType",
        "l7policyId",
        "type",
        "value"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbL7ruleV2 resources.\n",
        "properties": {
          "adminStateUp": {
            "type": "boolean",
            "deprecationMessage": "Deprecated"
          },
          "compareType": {
            "type": "string",
            "description": "The comparison type for the L7 rule - can either be\nSTARTS_WITH, EQUAL_TO or REGEX\n"
          },
          "key": {
            "type": "string",
            "description": "The key to use for the comparison. For example, the name of the cookie to\nevaluate. Valid when `type` is set to COOKIE or HEADER. Changing this creates a new L7 Rule.\n"
          },
          "l7policyId": {
            "type": "string",
            "description": "The ID of the L7 Policy to query. Changing this creates a new L7 Rule.\n"
          },
          "lbL7ruleV2Id": {
            "type": "string",
            "description": "The unique ID for the L7 Rule.\n"
          },
          "listenerId": {
            "type": "string",
            "description": "The ID of the Listener owning this resource.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create an . If omitted, the\n`region` argument of the provider is used. Changing this creates a new L7 Rule.\n"
          },
          "tenantId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FLbL7ruleV2Timeouts:LbL7ruleV2Timeouts"
          },
          "type": {
            "type": "string",
            "description": "The L7 Rule type - can either be HOST_NAME or PATH.\nChanging this creates a new L7 Rule.\n"
          },
          "value": {
            "type": "string",
            "description": "The value to use for the comparison. For example, the file type to compare.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbListenerV2:LbListenerV2": {
      "description": "Manages an **enhanced** lb listener resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst lb1 = new flexibleengine.LbLoadbalancerV2(\"lb1\", {\n    vipSubnetId: flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id,\n    tags: {\n        key: \"value\",\n    },\n});\nconst listener1 = new flexibleengine.LbListenerV2(\"listener1\", {\n    protocol: \"HTTP\",\n    protocolPort: 8080,\n    loadbalancerId: lb1.lbLoadbalancerV2Id,\n    tags: {\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nlb1 = flexibleengine.LbLoadbalancerV2(\"lb1\",\n    vip_subnet_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"ipv4_subnet_id\"],\n    tags={\n        \"key\": \"value\",\n    })\nlistener1 = flexibleengine.LbListenerV2(\"listener1\",\n    protocol=\"HTTP\",\n    protocol_port=8080,\n    loadbalancer_id=lb1.lb_loadbalancer_v2_id,\n    tags={\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var lb1 = new Flexibleengine.LbLoadbalancerV2(\"lb1\", new()\n    {\n        VipSubnetId = flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id,\n        Tags = \n        {\n            { \"key\", \"value\" },\n        },\n    });\n\n    var listener1 = new Flexibleengine.LbListenerV2(\"listener1\", new()\n    {\n        Protocol = \"HTTP\",\n        ProtocolPort = 8080,\n        LoadbalancerId = lb1.LbLoadbalancerV2Id,\n        Tags = \n        {\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb1, err := flexibleengine.NewLbLoadbalancerV2(ctx, \"lb1\", &flexibleengine.LbLoadbalancerV2Args{\n\t\t\tVipSubnetId: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"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 = flexibleengine.NewLbListenerV2(ctx, \"listener1\", &flexibleengine.LbListenerV2Args{\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort:   pulumi.Float64(8080),\n\t\t\tLoadbalancerId: lb1.LbLoadbalancerV2Id,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LbLoadbalancerV2;\nimport com.pulumi.flexibleengine.LbLoadbalancerV2Args;\nimport com.pulumi.flexibleengine.LbListenerV2;\nimport com.pulumi.flexibleengine.LbListenerV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var lb1 = new LbLoadbalancerV2(\"lb1\", LbLoadbalancerV2Args.builder()\n            .vipSubnetId(flexibleengine_vpc_subnet_v1.example_subnet().ipv4_subnet_id())\n            .tags(Map.of(\"key\", \"value\"))\n            .build());\n\n        var listener1 = new LbListenerV2(\"listener1\", LbListenerV2Args.builder()\n            .protocol(\"HTTP\")\n            .protocolPort(8080)\n            .loadbalancerId(lb1.lbLoadbalancerV2Id())\n            .tags(Map.of(\"key\", \"value\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lb1:\n    type: flexibleengine:LbLoadbalancerV2\n    properties:\n      vipSubnetId: ${flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id}\n      tags:\n        key: value\n  listener1:\n    type: flexibleengine:LbListenerV2\n    properties:\n      protocol: HTTP\n      protocolPort: 8080\n      loadbalancerId: ${lb1.lbLoadbalancerV2Id}\n      tags:\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n\n### TERMINATED_HTTPS Protocol\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst loadbalancer1 = new flexibleengine.LbLoadbalancerV2(\"loadbalancer1\", {vipSubnetId: flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id});\nconst certificate1 = new flexibleengine.ElbCertificate(\"certificate1\", {\n    domain: \"www.elb.com\",\n    privateKey: `-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n`,\n    certificate: `-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+9Aa==\n-----END CERTIFICATE-----\n`,\n});\nconst listener1 = new flexibleengine.LbListenerV2(\"listener1\", {\n    protocol: \"TERMINATED_HTTPS\",\n    protocolPort: 8080,\n    loadbalancerId: loadbalancer1.lbLoadbalancerV2Id,\n    defaultTlsContainerRef: certificate1.elbCertificateId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nloadbalancer1 = flexibleengine.LbLoadbalancerV2(\"loadbalancer1\", vip_subnet_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"ipv4_subnet_id\"])\ncertificate1 = flexibleengine.ElbCertificate(\"certificate1\",\n    domain=\"www.elb.com\",\n    private_key=\"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n\"\"\",\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+9Aa==\n-----END CERTIFICATE-----\n\"\"\")\nlistener1 = flexibleengine.LbListenerV2(\"listener1\",\n    protocol=\"TERMINATED_HTTPS\",\n    protocol_port=8080,\n    loadbalancer_id=loadbalancer1.lb_loadbalancer_v2_id,\n    default_tls_container_ref=certificate1.elb_certificate_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var loadbalancer1 = new Flexibleengine.LbLoadbalancerV2(\"loadbalancer1\", new()\n    {\n        VipSubnetId = flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id,\n    });\n\n    var certificate1 = new Flexibleengine.ElbCertificate(\"certificate1\", new()\n    {\n        Domain = \"www.elb.com\",\n        PrivateKey = @\"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n\",\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+9Aa==\n-----END CERTIFICATE-----\n\",\n    });\n\n    var listener1 = new Flexibleengine.LbListenerV2(\"listener1\", new()\n    {\n        Protocol = \"TERMINATED_HTTPS\",\n        ProtocolPort = 8080,\n        LoadbalancerId = loadbalancer1.LbLoadbalancerV2Id,\n        DefaultTlsContainerRef = certificate1.ElbCertificateId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tloadbalancer1, err := flexibleengine.NewLbLoadbalancerV2(ctx, \"loadbalancer1\", &flexibleengine.LbLoadbalancerV2Args{\n\t\t\tVipSubnetId: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcertificate1, err := flexibleengine.NewElbCertificate(ctx, \"certificate1\", &flexibleengine.ElbCertificateArgs{\n\t\t\tDomain: pulumi.String(\"www.elb.com\"),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n`),\n\t\t\tCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+9Aa==\n-----END CERTIFICATE-----\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewLbListenerV2(ctx, \"listener1\", &flexibleengine.LbListenerV2Args{\n\t\t\tProtocol:               pulumi.String(\"TERMINATED_HTTPS\"),\n\t\t\tProtocolPort:           pulumi.Float64(8080),\n\t\t\tLoadbalancerId:         loadbalancer1.LbLoadbalancerV2Id,\n\t\t\tDefaultTlsContainerRef: certificate1.ElbCertificateId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LbLoadbalancerV2;\nimport com.pulumi.flexibleengine.LbLoadbalancerV2Args;\nimport com.pulumi.flexibleengine.ElbCertificate;\nimport com.pulumi.flexibleengine.ElbCertificateArgs;\nimport com.pulumi.flexibleengine.LbListenerV2;\nimport com.pulumi.flexibleengine.LbListenerV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var loadbalancer1 = new LbLoadbalancerV2(\"loadbalancer1\", LbLoadbalancerV2Args.builder()\n            .vipSubnetId(flexibleengine_vpc_subnet_v1.example_subnet().ipv4_subnet_id())\n            .build());\n\n        var certificate1 = new ElbCertificate(\"certificate1\", ElbCertificateArgs.builder()\n            .domain(\"www.elb.com\")\n            .privateKey(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n            \"\"\")\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+9Aa==\n-----END CERTIFICATE-----\n            \"\"\")\n            .build());\n\n        var listener1 = new LbListenerV2(\"listener1\", LbListenerV2Args.builder()\n            .protocol(\"TERMINATED_HTTPS\")\n            .protocolPort(8080)\n            .loadbalancerId(loadbalancer1.lbLoadbalancerV2Id())\n            .defaultTlsContainerRef(certificate1.elbCertificateId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  loadbalancer1:\n    type: flexibleengine:LbLoadbalancerV2\n    properties:\n      vipSubnetId: ${flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id}\n  certificate1:\n    type: flexibleengine:ElbCertificate\n    properties:\n      domain: www.elb.com\n      privateKey: |\n        -----BEGIN RSA PRIVATE KEY-----\n        MIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\n        qEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\n        UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\n        MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\n        M3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n        13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\n        DRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\n        Nwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\n        iMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\n        rh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n        1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\n        yDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\n        RoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\n        vABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\n        Uk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\n        aKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\n        Hdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n        75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\n        uvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\n        Up7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n        79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\n        yHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n        2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\n        ep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\n        nEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n        -----END RSA PRIVATE KEY-----\n      certificate: |\n        -----BEGIN CERTIFICATE-----\n        MIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\n        BAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\n        CQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\n        b20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\n        eDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\n        CwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\n        IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n        2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\n        iE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n        3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\n        Q8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\n        mf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\n        AQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\n        FoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\n        AQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n        83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\n        r4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\n        c8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\n        i34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\n        i1YhgnQbn5E0hz55OLu5jvOkKQjPCW+9Aa==\n        -----END CERTIFICATE-----\n  listener1:\n    type: flexibleengine:LbListenerV2\n    properties:\n      protocol: TERMINATED_HTTPS\n      protocolPort: 8080\n      loadbalancerId: ${loadbalancer1.lbLoadbalancerV2Id}\n      defaultTlsContainerRef: ${certificate1.elbCertificateId}\n```\n<!--End PulumiCodeChooser -->\n\n<!--markdownlint-disable MD033-->\n",
      "properties": {
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "defaultPoolId": {
          "type": "string",
          "description": "The ID of the default pool with which the\nlistener is associated. Changing this creates a new listener.\n"
        },
        "defaultTlsContainerRef": {
          "type": "string",
          "description": "A reference to a Barbican Secrets\ncontainer which stores TLS information. This is required if the protocol is `TERMINATED_HTTPS`. See\n[here](https://wiki.openstack.org/wiki/Network/LBaaS/docs/how-to-create-tls-loadbalancer)\nfor more information.\n"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the listener.\n"
        },
        "http2Enable": {
          "type": "boolean",
          "description": "Specifies whether to use HTTP/2. The default value is false.\nThis parameter is valid only when the protocol is set to *TERMINATED_HTTPS*.\n"
        },
        "idleTimeout": {
          "type": "number",
          "description": "Specifies the idle timeout duration, in seconds.\n+ For TCP listeners, the value ranges from 10 to 4000, and the default value is 300.\n+ For HTTP and HTTPS listeners, the value ranges from 1 to 300, and the default value is 60.\n+ For UDP listeners, this parameter does not take effect.\n"
        },
        "lbListenerV2Id": {
          "type": "string",
          "description": "The unique ID for the listener.\n"
        },
        "loadbalancerId": {
          "type": "string",
          "description": "The load balancer on which to provision this\nlistener. Changing this creates a new listener.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the listener. Does not have to be unique.\n"
        },
        "protocol": {
          "type": "string",
          "description": "The protocol - can either be TCP, UDP, HTTP or TERMINATED_HTTPS.\nChanging this creates a new listener.\n"
        },
        "protocolPort": {
          "type": "number",
          "description": "The port on which to listen for client traffic.\nChanging this creates a new listener.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the listener resource.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new listener.\n"
        },
        "requestTimeout": {
          "type": "number",
          "description": "Specifies the timeout duration for waiting for a request from a client,\nin seconds. This parameter is available only for HTTP and HTTPS listeners. The value ranges from 1 to 300,\nand the default value is 60.\n"
        },
        "responseTimeout": {
          "type": "number",
          "description": "Specifies the timeout duration for waiting for a request from a backend\nserver, in seconds. This parameter is available only for HTTP and HTTPS listeners. The value ranges from 1 to 300,\nand the default value is 60.\n"
        },
        "sniContainerRefs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of references to Barbican Secrets\ncontainers which store SNI information. See\n[here](https://wiki.openstack.org/wiki/Network/LBaaS/docs/how-to-create-tls-loadbalancer)\nfor more information.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the listener.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbListenerV2Timeouts:LbListenerV2Timeouts"
        },
        "tlsCiphersPolicy": {
          "type": "string",
          "description": "Specifies the security policy used by the listener.\nThis parameter is valid only when the load balancer protocol is set to TERMINATED_HTTPS.\nThe value can be tls-1-0, tls-1-1, tls-1-2, or tls-1-2-strict, and the default value is tls-1-0.\nFor details of cipher suites for each security policy, see the table below.\n\n<table>\n<tr>\n<th>Security Policy</th>\n<th>TLS Version</th>\n<th>Cipher Suite</th>\n</tr >\n<tr >\n<td>tls-1-0</td>\n<td>TLSv1.2 TLSv1.1 TLSv1</td>\n<td rowspan=\"3\">ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-SHA:AES256-SHA</td>\n</tr>\n<tr>\n<td>tls-1-1</td>\n<td>TLSv1.2 TLSv1.1</td>\n</tr>\n<tr>\n<td>tls-1-2</td>\n<td>TLSv1.2</td>\n</tr>\n<tr>\n<td >tls-1-2-strict</td>\n<td >TLSv1.2</td>\n<td >ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384</td>\n</tr>\n</table>\n"
        },
        "transparentClientIpEnable": {
          "type": "boolean",
          "description": "Specifies whether to pass source IP addresses of the clients to\nbackend servers.\n+ For TCP and UDP listeners, the value can be true or false, and the default value is false.\n+ For HTTP and HTTPS listeners, the value can only be true.\n"
        }
      },
      "type": "object",
      "required": [
        "defaultPoolId",
        "idleTimeout",
        "lbListenerV2Id",
        "loadbalancerId",
        "name",
        "protocol",
        "protocolPort",
        "region",
        "requestTimeout",
        "responseTimeout",
        "tenantId",
        "tlsCiphersPolicy",
        "transparentClientIpEnable"
      ],
      "inputProperties": {
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "defaultPoolId": {
          "type": "string",
          "description": "The ID of the default pool with which the\nlistener is associated. Changing this creates a new listener.\n"
        },
        "defaultTlsContainerRef": {
          "type": "string",
          "description": "A reference to a Barbican Secrets\ncontainer which stores TLS information. This is required if the protocol is `TERMINATED_HTTPS`. See\n[here](https://wiki.openstack.org/wiki/Network/LBaaS/docs/how-to-create-tls-loadbalancer)\nfor more information.\n"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the listener.\n"
        },
        "http2Enable": {
          "type": "boolean",
          "description": "Specifies whether to use HTTP/2. The default value is false.\nThis parameter is valid only when the protocol is set to *TERMINATED_HTTPS*.\n"
        },
        "idleTimeout": {
          "type": "number",
          "description": "Specifies the idle timeout duration, in seconds.\n+ For TCP listeners, the value ranges from 10 to 4000, and the default value is 300.\n+ For HTTP and HTTPS listeners, the value ranges from 1 to 300, and the default value is 60.\n+ For UDP listeners, this parameter does not take effect.\n"
        },
        "lbListenerV2Id": {
          "type": "string",
          "description": "The unique ID for the listener.\n"
        },
        "loadbalancerId": {
          "type": "string",
          "description": "The load balancer on which to provision this\nlistener. Changing this creates a new listener.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the listener. Does not have to be unique.\n"
        },
        "protocol": {
          "type": "string",
          "description": "The protocol - can either be TCP, UDP, HTTP or TERMINATED_HTTPS.\nChanging this creates a new listener.\n"
        },
        "protocolPort": {
          "type": "number",
          "description": "The port on which to listen for client traffic.\nChanging this creates a new listener.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the listener resource.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new listener.\n"
        },
        "requestTimeout": {
          "type": "number",
          "description": "Specifies the timeout duration for waiting for a request from a client,\nin seconds. This parameter is available only for HTTP and HTTPS listeners. The value ranges from 1 to 300,\nand the default value is 60.\n"
        },
        "responseTimeout": {
          "type": "number",
          "description": "Specifies the timeout duration for waiting for a request from a backend\nserver, in seconds. This parameter is available only for HTTP and HTTPS listeners. The value ranges from 1 to 300,\nand the default value is 60.\n"
        },
        "sniContainerRefs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of references to Barbican Secrets\ncontainers which store SNI information. See\n[here](https://wiki.openstack.org/wiki/Network/LBaaS/docs/how-to-create-tls-loadbalancer)\nfor more information.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the listener.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbListenerV2Timeouts:LbListenerV2Timeouts"
        },
        "tlsCiphersPolicy": {
          "type": "string",
          "description": "Specifies the security policy used by the listener.\nThis parameter is valid only when the load balancer protocol is set to TERMINATED_HTTPS.\nThe value can be tls-1-0, tls-1-1, tls-1-2, or tls-1-2-strict, and the default value is tls-1-0.\nFor details of cipher suites for each security policy, see the table below.\n\n<table>\n<tr>\n<th>Security Policy</th>\n<th>TLS Version</th>\n<th>Cipher Suite</th>\n</tr >\n<tr >\n<td>tls-1-0</td>\n<td>TLSv1.2 TLSv1.1 TLSv1</td>\n<td rowspan=\"3\">ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-SHA:AES256-SHA</td>\n</tr>\n<tr>\n<td>tls-1-1</td>\n<td>TLSv1.2 TLSv1.1</td>\n</tr>\n<tr>\n<td>tls-1-2</td>\n<td>TLSv1.2</td>\n</tr>\n<tr>\n<td >tls-1-2-strict</td>\n<td >TLSv1.2</td>\n<td >ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384</td>\n</tr>\n</table>\n"
        },
        "transparentClientIpEnable": {
          "type": "boolean",
          "description": "Specifies whether to pass source IP addresses of the clients to\nbackend servers.\n+ For TCP and UDP listeners, the value can be true or false, and the default value is false.\n+ For HTTP and HTTPS listeners, the value can only be true.\n"
        }
      },
      "requiredInputs": [
        "loadbalancerId",
        "protocol",
        "protocolPort"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbListenerV2 resources.\n",
        "properties": {
          "adminStateUp": {
            "type": "boolean",
            "deprecationMessage": "Deprecated"
          },
          "defaultPoolId": {
            "type": "string",
            "description": "The ID of the default pool with which the\nlistener is associated. Changing this creates a new listener.\n"
          },
          "defaultTlsContainerRef": {
            "type": "string",
            "description": "A reference to a Barbican Secrets\ncontainer which stores TLS information. This is required if the protocol is `TERMINATED_HTTPS`. See\n[here](https://wiki.openstack.org/wiki/Network/LBaaS/docs/how-to-create-tls-loadbalancer)\nfor more information.\n"
          },
          "description": {
            "type": "string",
            "description": "Human-readable description for the listener.\n"
          },
          "http2Enable": {
            "type": "boolean",
            "description": "Specifies whether to use HTTP/2. The default value is false.\nThis parameter is valid only when the protocol is set to *TERMINATED_HTTPS*.\n"
          },
          "idleTimeout": {
            "type": "number",
            "description": "Specifies the idle timeout duration, in seconds.\n+ For TCP listeners, the value ranges from 10 to 4000, and the default value is 300.\n+ For HTTP and HTTPS listeners, the value ranges from 1 to 300, and the default value is 60.\n+ For UDP listeners, this parameter does not take effect.\n"
          },
          "lbListenerV2Id": {
            "type": "string",
            "description": "The unique ID for the listener.\n"
          },
          "loadbalancerId": {
            "type": "string",
            "description": "The load balancer on which to provision this\nlistener. Changing this creates a new listener.\n"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for the listener. Does not have to be unique.\n"
          },
          "protocol": {
            "type": "string",
            "description": "The protocol - can either be TCP, UDP, HTTP or TERMINATED_HTTPS.\nChanging this creates a new listener.\n"
          },
          "protocolPort": {
            "type": "number",
            "description": "The port on which to listen for client traffic.\nChanging this creates a new listener.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the listener resource.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new listener.\n"
          },
          "requestTimeout": {
            "type": "number",
            "description": "Specifies the timeout duration for waiting for a request from a client,\nin seconds. This parameter is available only for HTTP and HTTPS listeners. The value ranges from 1 to 300,\nand the default value is 60.\n"
          },
          "responseTimeout": {
            "type": "number",
            "description": "Specifies the timeout duration for waiting for a request from a backend\nserver, in seconds. This parameter is available only for HTTP and HTTPS listeners. The value ranges from 1 to 300,\nand the default value is 60.\n"
          },
          "sniContainerRefs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of references to Barbican Secrets\ncontainers which store SNI information. See\n[here](https://wiki.openstack.org/wiki/Network/LBaaS/docs/how-to-create-tls-loadbalancer)\nfor more information.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the listener.\n"
          },
          "tenantId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FLbListenerV2Timeouts:LbListenerV2Timeouts"
          },
          "tlsCiphersPolicy": {
            "type": "string",
            "description": "Specifies the security policy used by the listener.\nThis parameter is valid only when the load balancer protocol is set to TERMINATED_HTTPS.\nThe value can be tls-1-0, tls-1-1, tls-1-2, or tls-1-2-strict, and the default value is tls-1-0.\nFor details of cipher suites for each security policy, see the table below.\n\n<table>\n<tr>\n<th>Security Policy</th>\n<th>TLS Version</th>\n<th>Cipher Suite</th>\n</tr >\n<tr >\n<td>tls-1-0</td>\n<td>TLSv1.2 TLSv1.1 TLSv1</td>\n<td rowspan=\"3\">ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-SHA:AES256-SHA</td>\n</tr>\n<tr>\n<td>tls-1-1</td>\n<td>TLSv1.2 TLSv1.1</td>\n</tr>\n<tr>\n<td>tls-1-2</td>\n<td>TLSv1.2</td>\n</tr>\n<tr>\n<td >tls-1-2-strict</td>\n<td >TLSv1.2</td>\n<td >ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384</td>\n</tr>\n</table>\n"
          },
          "transparentClientIpEnable": {
            "type": "boolean",
            "description": "Specifies whether to pass source IP addresses of the clients to\nbackend servers.\n+ For TCP and UDP listeners, the value can be true or false, and the default value is false.\n+ For HTTP and HTTPS listeners, the value can only be true.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbListenerV3:LbListenerV3": {
      "description": "Manages an ELB v3 listener resource within FlexibleEngine.\n\n## Import\n\nELB listener can be imported using the listener ID, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/lbListenerV3:LbListenerV3 listener_1 5c20fdad-7288-11eb-b817-0255ac10158b\n```\n\n",
      "properties": {
        "accessPolicy": {
          "type": "string",
          "description": "Specifies the access policy for the listener. Valid options are *white* and\n*black*.\n"
        },
        "advancedForwardingEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable advanced forwarding.\nIf advanced forwarding is enabled, more flexible forwarding policies and rules are supported.\n"
        },
        "caCertificate": {
          "type": "string",
          "description": "Specifies the ID of the CA certificate used by the listener.\nThis parameter is valid when protocol is set to *HTTPS*.\n"
        },
        "defaultPoolId": {
          "type": "string",
          "description": "The ID of the default pool with which the listener is associated. Changing this\ncreates a new listener.\n"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the listener.\n"
        },
        "forceDelete": {
          "type": "boolean"
        },
        "forwardEip": {
          "type": "boolean",
          "description": "Specifies whether transfer the load balancer EIP in the X-Forward-EIP header to\nbackend servers. The default value is false. This parameter is valid only when the protocol is set to *HTTP* or\n*HTTPS*.\n"
        },
        "forwardHost": {
          "type": "boolean"
        },
        "forwardPort": {
          "type": "boolean"
        },
        "forwardRequestPort": {
          "type": "boolean"
        },
        "http2Enable": {
          "type": "boolean",
          "description": "Specifies whether to use HTTP/2. The default value is false. This parameter is valid\nonly when the protocol is set to *HTTPS*.\n"
        },
        "idleTimeout": {
          "type": "number",
          "description": "Specifies the idle timeout for the listener. Value range: 0 to 4000.\n"
        },
        "ipGroup": {
          "type": "string",
          "description": "Specifies the ip group id for the listener.\n"
        },
        "lbListenerV3Id": {
          "type": "string",
          "description": "The unique ID for the listener.\n"
        },
        "loadbalancerId": {
          "type": "string",
          "description": "The load balancer on which to provision this listener. Changing this\ncreates a new listener.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the listener.\n"
        },
        "protectionReason": {
          "type": "string"
        },
        "protectionStatus": {
          "type": "string"
        },
        "protocol": {
          "type": "string",
          "description": "The protocol can either be *TCP*, *UDP*, *HTTP* or *HTTPS*.\nChanging this creates a new listener.\n"
        },
        "protocolPort": {
          "type": "number",
          "description": "The port on which to listen for client traffic. Changing this creates a\nnew listener.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the listener resource. If omitted, the\nprovider-level region will be used. Changing this creates a new listener.\n"
        },
        "requestTimeout": {
          "type": "number",
          "description": "Specifies the request timeout for the listener. Value range: 1 to 300.\nThis parameter is valid when protocol is set to *HTTP* or *HTTPS*.\n"
        },
        "responseTimeout": {
          "type": "number",
          "description": "Specifies the response timeout for the listener. Value range: 1 to 300.\nThis parameter is valid when protocol is set to *HTTP* or *HTTPS*.\n"
        },
        "serverCertificate": {
          "type": "string",
          "description": "Specifies the ID of the server certificate used by the listener.\nThis parameter is mandatory when protocol is set to *HTTPS*.\n"
        },
        "sniCertificates": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Lists the IDs of SNI certificates (server certificates with a domain name) used\nby the listener. This parameter is valid when protocol is set to *HTTPS*.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the listener.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbListenerV3Timeouts:LbListenerV3Timeouts"
        },
        "tlsCiphersPolicy": {
          "type": "string",
          "description": "Specifies the TLS cipher policy for the listener. Valid options are:\ntls-1-0-inherit, tls-1-0, tls-1-1, tls-1-2, tls-1-2-strict, tls-1-2-fs, tls-1-0-with-1-3, and tls-1-2-fs-with-1-3.\nThis parameter is valid when protocol is set to *HTTPS*.\n"
        }
      },
      "type": "object",
      "required": [
        "advancedForwardingEnabled",
        "defaultPoolId",
        "forwardEip",
        "forwardPort",
        "forwardRequestPort",
        "idleTimeout",
        "lbListenerV3Id",
        "loadbalancerId",
        "name",
        "protectionStatus",
        "protocol",
        "protocolPort",
        "region",
        "requestTimeout",
        "responseTimeout",
        "tlsCiphersPolicy"
      ],
      "inputProperties": {
        "accessPolicy": {
          "type": "string",
          "description": "Specifies the access policy for the listener. Valid options are *white* and\n*black*.\n"
        },
        "advancedForwardingEnabled": {
          "type": "boolean",
          "description": "Specifies whether to enable advanced forwarding.\nIf advanced forwarding is enabled, more flexible forwarding policies and rules are supported.\n"
        },
        "caCertificate": {
          "type": "string",
          "description": "Specifies the ID of the CA certificate used by the listener.\nThis parameter is valid when protocol is set to *HTTPS*.\n"
        },
        "defaultPoolId": {
          "type": "string",
          "description": "The ID of the default pool with which the listener is associated. Changing this\ncreates a new listener.\n"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the listener.\n"
        },
        "forceDelete": {
          "type": "boolean"
        },
        "forwardEip": {
          "type": "boolean",
          "description": "Specifies whether transfer the load balancer EIP in the X-Forward-EIP header to\nbackend servers. The default value is false. This parameter is valid only when the protocol is set to *HTTP* or\n*HTTPS*.\n"
        },
        "forwardHost": {
          "type": "boolean"
        },
        "forwardPort": {
          "type": "boolean"
        },
        "forwardRequestPort": {
          "type": "boolean"
        },
        "http2Enable": {
          "type": "boolean",
          "description": "Specifies whether to use HTTP/2. The default value is false. This parameter is valid\nonly when the protocol is set to *HTTPS*.\n"
        },
        "idleTimeout": {
          "type": "number",
          "description": "Specifies the idle timeout for the listener. Value range: 0 to 4000.\n"
        },
        "ipGroup": {
          "type": "string",
          "description": "Specifies the ip group id for the listener.\n"
        },
        "lbListenerV3Id": {
          "type": "string",
          "description": "The unique ID for the listener.\n"
        },
        "loadbalancerId": {
          "type": "string",
          "description": "The load balancer on which to provision this listener. Changing this\ncreates a new listener.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the listener.\n"
        },
        "protectionReason": {
          "type": "string"
        },
        "protectionStatus": {
          "type": "string"
        },
        "protocol": {
          "type": "string",
          "description": "The protocol can either be *TCP*, *UDP*, *HTTP* or *HTTPS*.\nChanging this creates a new listener.\n"
        },
        "protocolPort": {
          "type": "number",
          "description": "The port on which to listen for client traffic. Changing this creates a\nnew listener.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the listener resource. If omitted, the\nprovider-level region will be used. Changing this creates a new listener.\n"
        },
        "requestTimeout": {
          "type": "number",
          "description": "Specifies the request timeout for the listener. Value range: 1 to 300.\nThis parameter is valid when protocol is set to *HTTP* or *HTTPS*.\n"
        },
        "responseTimeout": {
          "type": "number",
          "description": "Specifies the response timeout for the listener. Value range: 1 to 300.\nThis parameter is valid when protocol is set to *HTTP* or *HTTPS*.\n"
        },
        "serverCertificate": {
          "type": "string",
          "description": "Specifies the ID of the server certificate used by the listener.\nThis parameter is mandatory when protocol is set to *HTTPS*.\n"
        },
        "sniCertificates": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Lists the IDs of SNI certificates (server certificates with a domain name) used\nby the listener. This parameter is valid when protocol is set to *HTTPS*.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the listener.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbListenerV3Timeouts:LbListenerV3Timeouts"
        },
        "tlsCiphersPolicy": {
          "type": "string",
          "description": "Specifies the TLS cipher policy for the listener. Valid options are:\ntls-1-0-inherit, tls-1-0, tls-1-1, tls-1-2, tls-1-2-strict, tls-1-2-fs, tls-1-0-with-1-3, and tls-1-2-fs-with-1-3.\nThis parameter is valid when protocol is set to *HTTPS*.\n"
        }
      },
      "requiredInputs": [
        "loadbalancerId",
        "protocol",
        "protocolPort"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbListenerV3 resources.\n",
        "properties": {
          "accessPolicy": {
            "type": "string",
            "description": "Specifies the access policy for the listener. Valid options are *white* and\n*black*.\n"
          },
          "advancedForwardingEnabled": {
            "type": "boolean",
            "description": "Specifies whether to enable advanced forwarding.\nIf advanced forwarding is enabled, more flexible forwarding policies and rules are supported.\n"
          },
          "caCertificate": {
            "type": "string",
            "description": "Specifies the ID of the CA certificate used by the listener.\nThis parameter is valid when protocol is set to *HTTPS*.\n"
          },
          "defaultPoolId": {
            "type": "string",
            "description": "The ID of the default pool with which the listener is associated. Changing this\ncreates a new listener.\n"
          },
          "description": {
            "type": "string",
            "description": "Human-readable description for the listener.\n"
          },
          "forceDelete": {
            "type": "boolean"
          },
          "forwardEip": {
            "type": "boolean",
            "description": "Specifies whether transfer the load balancer EIP in the X-Forward-EIP header to\nbackend servers. The default value is false. This parameter is valid only when the protocol is set to *HTTP* or\n*HTTPS*.\n"
          },
          "forwardHost": {
            "type": "boolean"
          },
          "forwardPort": {
            "type": "boolean"
          },
          "forwardRequestPort": {
            "type": "boolean"
          },
          "http2Enable": {
            "type": "boolean",
            "description": "Specifies whether to use HTTP/2. The default value is false. This parameter is valid\nonly when the protocol is set to *HTTPS*.\n"
          },
          "idleTimeout": {
            "type": "number",
            "description": "Specifies the idle timeout for the listener. Value range: 0 to 4000.\n"
          },
          "ipGroup": {
            "type": "string",
            "description": "Specifies the ip group id for the listener.\n"
          },
          "lbListenerV3Id": {
            "type": "string",
            "description": "The unique ID for the listener.\n"
          },
          "loadbalancerId": {
            "type": "string",
            "description": "The load balancer on which to provision this listener. Changing this\ncreates a new listener.\n"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for the listener.\n"
          },
          "protectionReason": {
            "type": "string"
          },
          "protectionStatus": {
            "type": "string"
          },
          "protocol": {
            "type": "string",
            "description": "The protocol can either be *TCP*, *UDP*, *HTTP* or *HTTPS*.\nChanging this creates a new listener.\n"
          },
          "protocolPort": {
            "type": "number",
            "description": "The port on which to listen for client traffic. Changing this creates a\nnew listener.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the listener resource. If omitted, the\nprovider-level region will be used. Changing this creates a new listener.\n"
          },
          "requestTimeout": {
            "type": "number",
            "description": "Specifies the request timeout for the listener. Value range: 1 to 300.\nThis parameter is valid when protocol is set to *HTTP* or *HTTPS*.\n"
          },
          "responseTimeout": {
            "type": "number",
            "description": "Specifies the response timeout for the listener. Value range: 1 to 300.\nThis parameter is valid when protocol is set to *HTTP* or *HTTPS*.\n"
          },
          "serverCertificate": {
            "type": "string",
            "description": "Specifies the ID of the server certificate used by the listener.\nThis parameter is mandatory when protocol is set to *HTTPS*.\n"
          },
          "sniCertificates": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Lists the IDs of SNI certificates (server certificates with a domain name) used\nby the listener. This parameter is valid when protocol is set to *HTTPS*.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the listener.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FLbListenerV3Timeouts:LbListenerV3Timeouts"
          },
          "tlsCiphersPolicy": {
            "type": "string",
            "description": "Specifies the TLS cipher policy for the listener. Valid options are:\ntls-1-0-inherit, tls-1-0, tls-1-1, tls-1-2, tls-1-2-strict, tls-1-2-fs, tls-1-0-with-1-3, and tls-1-2-fs-with-1-3.\nThis parameter is valid when protocol is set to *HTTPS*.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbLoadbalancerV2:LbLoadbalancerV2": {
      "description": "Manages an **enhanced** load balancer resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst lb1 = new flexibleengine.LbLoadbalancerV2(\"lb1\", {\n    vipSubnetId: flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id,\n    tags: {\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nlb1 = flexibleengine.LbLoadbalancerV2(\"lb1\",\n    vip_subnet_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"ipv4_subnet_id\"],\n    tags={\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var lb1 = new Flexibleengine.LbLoadbalancerV2(\"lb1\", new()\n    {\n        VipSubnetId = flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id,\n        Tags = \n        {\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewLbLoadbalancerV2(ctx, \"lb1\", &flexibleengine.LbLoadbalancerV2Args{\n\t\t\tVipSubnetId: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LbLoadbalancerV2;\nimport com.pulumi.flexibleengine.LbLoadbalancerV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var lb1 = new LbLoadbalancerV2(\"lb1\", LbLoadbalancerV2Args.builder()\n            .vipSubnetId(flexibleengine_vpc_subnet_v1.example_subnet().ipv4_subnet_id())\n            .tags(Map.of(\"key\", \"value\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lb1:\n    type: flexibleengine:LbLoadbalancerV2\n    properties:\n      vipSubnetId: ${flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id}\n      tags:\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLoadbalancers can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/lbLoadbalancerV2:LbLoadbalancerV2 loadbalancer_1 3e3632db-36c6-4b28-a92e-e72e6562daa6\n```\n\n",
      "properties": {
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the loadbalancer.\n"
        },
        "flavor": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "lbLoadbalancerV2Id": {
          "type": "string"
        },
        "loadbalancerProvider": {
          "type": "string",
          "description": "The name of the provider. Currently, only\nvlb is supported. Changing this creates a new loadbalancer.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the loadbalancer. Does not have to be unique.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the loadbalancer resource.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new loadbalancer.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of security group IDs to apply to the\nloadbalancer. The security groups must be specified by ID and not name (as\nopposed to how they are configured with the Compute Instance).\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the loadbalancer.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbLoadbalancerV2Timeouts:LbLoadbalancerV2Timeouts"
        },
        "vipAddress": {
          "type": "string",
          "description": "The ip address of the load balancer.\nChanging this creates a new loadbalancer.\n"
        },
        "vipPortId": {
          "type": "string",
          "description": "The Port ID of the Load Balancer IP.\n"
        },
        "vipSubnetId": {
          "type": "string",
          "description": "The `ipv4_subnet_id` or `ipv6_subnet_id` of the\nVPC Subnet on which to allocate the loadbalancer's address.\nA tenant can only create Loadbalancers on networks authorized\nby policy (e.g. networks that belong to them or networks that\nare shared).  Changing this creates a new loadbalancer.\n"
        }
      },
      "type": "object",
      "required": [
        "lbLoadbalancerV2Id",
        "loadbalancerProvider",
        "name",
        "region",
        "securityGroupIds",
        "tenantId",
        "vipAddress",
        "vipPortId",
        "vipSubnetId"
      ],
      "inputProperties": {
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the loadbalancer.\n"
        },
        "flavor": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "lbLoadbalancerV2Id": {
          "type": "string"
        },
        "loadbalancerProvider": {
          "type": "string",
          "description": "The name of the provider. Currently, only\nvlb is supported. Changing this creates a new loadbalancer.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the loadbalancer. Does not have to be unique.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the loadbalancer resource.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new loadbalancer.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of security group IDs to apply to the\nloadbalancer. The security groups must be specified by ID and not name (as\nopposed to how they are configured with the Compute Instance).\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the loadbalancer.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbLoadbalancerV2Timeouts:LbLoadbalancerV2Timeouts"
        },
        "vipAddress": {
          "type": "string",
          "description": "The ip address of the load balancer.\nChanging this creates a new loadbalancer.\n"
        },
        "vipSubnetId": {
          "type": "string",
          "description": "The `ipv4_subnet_id` or `ipv6_subnet_id` of the\nVPC Subnet on which to allocate the loadbalancer's address.\nA tenant can only create Loadbalancers on networks authorized\nby policy (e.g. networks that belong to them or networks that\nare shared).  Changing this creates a new loadbalancer.\n"
        }
      },
      "requiredInputs": [
        "vipSubnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbLoadbalancerV2 resources.\n",
        "properties": {
          "adminStateUp": {
            "type": "boolean",
            "deprecationMessage": "Deprecated"
          },
          "description": {
            "type": "string",
            "description": "Human-readable description for the loadbalancer.\n"
          },
          "flavor": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "lbLoadbalancerV2Id": {
            "type": "string"
          },
          "loadbalancerProvider": {
            "type": "string",
            "description": "The name of the provider. Currently, only\nvlb is supported. Changing this creates a new loadbalancer.\n"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for the loadbalancer. Does not have to be unique.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the loadbalancer resource.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new loadbalancer.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of security group IDs to apply to the\nloadbalancer. The security groups must be specified by ID and not name (as\nopposed to how they are configured with the Compute Instance).\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the loadbalancer.\n"
          },
          "tenantId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FLbLoadbalancerV2Timeouts:LbLoadbalancerV2Timeouts"
          },
          "vipAddress": {
            "type": "string",
            "description": "The ip address of the load balancer.\nChanging this creates a new loadbalancer.\n"
          },
          "vipPortId": {
            "type": "string",
            "description": "The Port ID of the Load Balancer IP.\n"
          },
          "vipSubnetId": {
            "type": "string",
            "description": "The `ipv4_subnet_id` or `ipv6_subnet_id` of the\nVPC Subnet on which to allocate the loadbalancer's address.\nA tenant can only create Loadbalancers on networks authorized\nby policy (e.g. networks that belong to them or networks that\nare shared).  Changing this creates a new loadbalancer.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbLoadbalancerV3:LbLoadbalancerV3": {
      "description": "Manages a **Dedicated** Load Balancer resource within FlexibleEngine.\n\n## Example Usage\n\n### Basic Loadbalancer\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst l7Flavors = flexibleengine.getElbFlavors({\n    type: \"L7\",\n});\nconst l4Flavors = flexibleengine.getElbFlavors({\n    type: \"L4\",\n});\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst basic = new flexibleengine.LbLoadbalancerV3(\"basic\", {\n    description: \"basic example\",\n    crossVpcBackend: true,\n    vpcId: exampleVpc.vpcV1Id,\n    ipv4SubnetId: exampleSubnet.ipv4SubnetId,\n    l4FlavorId: l4Flavors.then(l4Flavors => l4Flavors.ids?.[0]),\n    l7FlavorId: l7Flavors.then(l7Flavors => l7Flavors.ids?.[0]),\n    availabilityZones: [\n        \"eu-west-0a\",\n        \"eu-west-0b\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nl7_flavors = flexibleengine.get_elb_flavors(type=\"L7\")\nl4_flavors = flexibleengine.get_elb_flavors(type=\"L4\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nbasic = flexibleengine.LbLoadbalancerV3(\"basic\",\n    description=\"basic example\",\n    cross_vpc_backend=True,\n    vpc_id=example_vpc.vpc_v1_id,\n    ipv4_subnet_id=example_subnet.ipv4_subnet_id,\n    l4_flavor_id=l4_flavors.ids[0],\n    l7_flavor_id=l7_flavors.ids[0],\n    availability_zones=[\n        \"eu-west-0a\",\n        \"eu-west-0b\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var l7Flavors = Flexibleengine.GetElbFlavors.Invoke(new()\n    {\n        Type = \"L7\",\n    });\n\n    var l4Flavors = Flexibleengine.GetElbFlavors.Invoke(new()\n    {\n        Type = \"L4\",\n    });\n\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var basic = new Flexibleengine.LbLoadbalancerV3(\"basic\", new()\n    {\n        Description = \"basic example\",\n        CrossVpcBackend = true,\n        VpcId = exampleVpc.VpcV1Id,\n        Ipv4SubnetId = exampleSubnet.Ipv4SubnetId,\n        L4FlavorId = l4Flavors.Apply(getElbFlavorsResult => getElbFlavorsResult.Ids[0]),\n        L7FlavorId = l7Flavors.Apply(getElbFlavorsResult => getElbFlavorsResult.Ids[0]),\n        AvailabilityZones = new[]\n        {\n            \"eu-west-0a\",\n            \"eu-west-0b\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tl7Flavors, err := flexibleengine.GetElbFlavors(ctx, &flexibleengine.GetElbFlavorsArgs{\n\t\t\tType: pulumi.StringRef(\"L7\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tl4Flavors, err := flexibleengine.GetElbFlavors(ctx, &flexibleengine.GetElbFlavorsArgs{\n\t\t\tType: pulumi.StringRef(\"L4\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewLbLoadbalancerV3(ctx, \"basic\", &flexibleengine.LbLoadbalancerV3Args{\n\t\t\tDescription:     pulumi.String(\"basic example\"),\n\t\t\tCrossVpcBackend: pulumi.Bool(true),\n\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\tIpv4SubnetId:    exampleSubnet.Ipv4SubnetId,\n\t\t\tL4FlavorId:      pulumi.String(l4Flavors.Ids[0]),\n\t\t\tL7FlavorId:      pulumi.String(l7Flavors.Ids[0]),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-west-0a\"),\n\t\t\t\tpulumi.String(\"eu-west-0b\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetElbFlavorsArgs;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.LbLoadbalancerV3;\nimport com.pulumi.flexibleengine.LbLoadbalancerV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var l7Flavors = FlexibleengineFunctions.getElbFlavors(GetElbFlavorsArgs.builder()\n            .type(\"L7\")\n            .build());\n\n        final var l4Flavors = FlexibleengineFunctions.getElbFlavors(GetElbFlavorsArgs.builder()\n            .type(\"L4\")\n            .build());\n\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var basic = new LbLoadbalancerV3(\"basic\", LbLoadbalancerV3Args.builder()\n            .description(\"basic example\")\n            .crossVpcBackend(true)\n            .vpcId(exampleVpc.vpcV1Id())\n            .ipv4SubnetId(exampleSubnet.ipv4SubnetId())\n            .l4FlavorId(l4Flavors.applyValue(getElbFlavorsResult -> getElbFlavorsResult.ids()[0]))\n            .l7FlavorId(l7Flavors.applyValue(getElbFlavorsResult -> getElbFlavorsResult.ids()[0]))\n            .availabilityZones(            \n                \"eu-west-0a\",\n                \"eu-west-0b\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  basic:\n    type: flexibleengine:LbLoadbalancerV3\n    properties:\n      description: basic example\n      crossVpcBackend: true\n      vpcId: ${exampleVpc.vpcV1Id}\n      ipv4SubnetId: ${exampleSubnet.ipv4SubnetId}\n      l4FlavorId: ${l4Flavors.ids[0]}\n      l7FlavorId: ${l7Flavors.ids[0]}\n      availabilityZones:\n        - eu-west-0a\n        - eu-west-0b\nvariables:\n  l7Flavors:\n    fn::invoke:\n      function: flexibleengine:getElbFlavors\n      arguments:\n        type: L7\n  l4Flavors:\n    fn::invoke:\n      function: flexibleengine:getElbFlavors\n      arguments:\n        type: L4\n```\n<!--End PulumiCodeChooser -->\n\n### Loadbalancer With Existing EIP\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst l7Flavors = flexibleengine.getElbFlavors({\n    type: \"L7\",\n});\nconst l4Flavors = flexibleengine.getElbFlavors({\n    type: \"L4\",\n});\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst basic = new flexibleengine.LbLoadbalancerV3(\"basic\", {\n    description: \"basic example\",\n    crossVpcBackend: true,\n    vpcId: exampleVpc.vpcV1Id,\n    ipv6NetworkId: flexibleengine_vpc_subnet_v1.example_subnet_ipv6.id,\n    ipv6BandwidthId: \"{{ ipv6_bandwidth_id }}\",\n    ipv4SubnetId: exampleSubnet.ipv4SubnetId,\n    l4FlavorId: l4Flavors.then(l4Flavors => l4Flavors.ids?.[0]),\n    l7FlavorId: l7Flavors.then(l7Flavors => l7Flavors.ids?.[0]),\n    availabilityZones: [\n        \"eu-west-0a\",\n        \"eu-west-0b\",\n    ],\n    ipv4EipId: flexibleengine_vpc_eip.example_eip.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nl7_flavors = flexibleengine.get_elb_flavors(type=\"L7\")\nl4_flavors = flexibleengine.get_elb_flavors(type=\"L4\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nbasic = flexibleengine.LbLoadbalancerV3(\"basic\",\n    description=\"basic example\",\n    cross_vpc_backend=True,\n    vpc_id=example_vpc.vpc_v1_id,\n    ipv6_network_id=flexibleengine_vpc_subnet_v1[\"example_subnet_ipv6\"][\"id\"],\n    ipv6_bandwidth_id=\"{{ ipv6_bandwidth_id }}\",\n    ipv4_subnet_id=example_subnet.ipv4_subnet_id,\n    l4_flavor_id=l4_flavors.ids[0],\n    l7_flavor_id=l7_flavors.ids[0],\n    availability_zones=[\n        \"eu-west-0a\",\n        \"eu-west-0b\",\n    ],\n    ipv4_eip_id=flexibleengine_vpc_eip[\"example_eip\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var l7Flavors = Flexibleengine.GetElbFlavors.Invoke(new()\n    {\n        Type = \"L7\",\n    });\n\n    var l4Flavors = Flexibleengine.GetElbFlavors.Invoke(new()\n    {\n        Type = \"L4\",\n    });\n\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var basic = new Flexibleengine.LbLoadbalancerV3(\"basic\", new()\n    {\n        Description = \"basic example\",\n        CrossVpcBackend = true,\n        VpcId = exampleVpc.VpcV1Id,\n        Ipv6NetworkId = flexibleengine_vpc_subnet_v1.Example_subnet_ipv6.Id,\n        Ipv6BandwidthId = \"{{ ipv6_bandwidth_id }}\",\n        Ipv4SubnetId = exampleSubnet.Ipv4SubnetId,\n        L4FlavorId = l4Flavors.Apply(getElbFlavorsResult => getElbFlavorsResult.Ids[0]),\n        L7FlavorId = l7Flavors.Apply(getElbFlavorsResult => getElbFlavorsResult.Ids[0]),\n        AvailabilityZones = new[]\n        {\n            \"eu-west-0a\",\n            \"eu-west-0b\",\n        },\n        Ipv4EipId = flexibleengine_vpc_eip.Example_eip.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tl7Flavors, err := flexibleengine.GetElbFlavors(ctx, &flexibleengine.GetElbFlavorsArgs{\n\t\t\tType: pulumi.StringRef(\"L7\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tl4Flavors, err := flexibleengine.GetElbFlavors(ctx, &flexibleengine.GetElbFlavorsArgs{\n\t\t\tType: pulumi.StringRef(\"L4\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewLbLoadbalancerV3(ctx, \"basic\", &flexibleengine.LbLoadbalancerV3Args{\n\t\t\tDescription:     pulumi.String(\"basic example\"),\n\t\t\tCrossVpcBackend: pulumi.Bool(true),\n\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\tIpv6NetworkId:   pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet_ipv6.Id),\n\t\t\tIpv6BandwidthId: pulumi.String(\"{{ ipv6_bandwidth_id }}\"),\n\t\t\tIpv4SubnetId:    exampleSubnet.Ipv4SubnetId,\n\t\t\tL4FlavorId:      pulumi.String(l4Flavors.Ids[0]),\n\t\t\tL7FlavorId:      pulumi.String(l7Flavors.Ids[0]),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-west-0a\"),\n\t\t\t\tpulumi.String(\"eu-west-0b\"),\n\t\t\t},\n\t\t\tIpv4EipId: pulumi.Any(flexibleengine_vpc_eip.Example_eip.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetElbFlavorsArgs;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.LbLoadbalancerV3;\nimport com.pulumi.flexibleengine.LbLoadbalancerV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var l7Flavors = FlexibleengineFunctions.getElbFlavors(GetElbFlavorsArgs.builder()\n            .type(\"L7\")\n            .build());\n\n        final var l4Flavors = FlexibleengineFunctions.getElbFlavors(GetElbFlavorsArgs.builder()\n            .type(\"L4\")\n            .build());\n\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var basic = new LbLoadbalancerV3(\"basic\", LbLoadbalancerV3Args.builder()\n            .description(\"basic example\")\n            .crossVpcBackend(true)\n            .vpcId(exampleVpc.vpcV1Id())\n            .ipv6NetworkId(flexibleengine_vpc_subnet_v1.example_subnet_ipv6().id())\n            .ipv6BandwidthId(\"{{ ipv6_bandwidth_id }}\")\n            .ipv4SubnetId(exampleSubnet.ipv4SubnetId())\n            .l4FlavorId(l4Flavors.applyValue(getElbFlavorsResult -> getElbFlavorsResult.ids()[0]))\n            .l7FlavorId(l7Flavors.applyValue(getElbFlavorsResult -> getElbFlavorsResult.ids()[0]))\n            .availabilityZones(            \n                \"eu-west-0a\",\n                \"eu-west-0b\")\n            .ipv4EipId(flexibleengine_vpc_eip.example_eip().id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  basic:\n    type: flexibleengine:LbLoadbalancerV3\n    properties:\n      description: basic example\n      crossVpcBackend: true\n      vpcId: ${exampleVpc.vpcV1Id}\n      ipv6NetworkId: ${flexibleengine_vpc_subnet_v1.example_subnet_ipv6.id}\n      ipv6BandwidthId: '{{ ipv6_bandwidth_id }}'\n      ipv4SubnetId: ${exampleSubnet.ipv4SubnetId}\n      l4FlavorId: ${l4Flavors.ids[0]}\n      l7FlavorId: ${l7Flavors.ids[0]}\n      availabilityZones:\n        - eu-west-0a\n        - eu-west-0b\n      ipv4EipId: ${flexibleengine_vpc_eip.example_eip.id}\nvariables:\n  l7Flavors:\n    fn::invoke:\n      function: flexibleengine:getElbFlavors\n      arguments:\n        type: L7\n  l4Flavors:\n    fn::invoke:\n      function: flexibleengine:getElbFlavors\n      arguments:\n        type: L4\n```\n<!--End PulumiCodeChooser -->\n\n### Loadbalancer With EIP\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst l7Flavors = flexibleengine.getElbFlavors({\n    type: \"L7\",\n});\nconst l4Flavors = flexibleengine.getElbFlavors({\n    type: \"L4\",\n});\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst basic = new flexibleengine.LbLoadbalancerV3(\"basic\", {\n    description: \"basic example\",\n    crossVpcBackend: true,\n    vpcId: exampleVpc.vpcV1Id,\n    ipv6NetworkId: flexibleengine_vpc_subnet_v1.example_subnet_ipv6.id,\n    ipv6BandwidthId: \"{{ ipv6_bandwidth_id }}\",\n    ipv4SubnetId: exampleSubnet.ipv4SubnetId,\n    l4FlavorId: l4Flavors.then(l4Flavors => l4Flavors.ids?.[0]),\n    l7FlavorId: l7Flavors.then(l7Flavors => l7Flavors.ids?.[0]),\n    availabilityZones: [\n        \"eu-west-0a\",\n        \"eu-west-0b\",\n    ],\n    iptype: \"5_bgp\",\n    bandwidthChargeMode: \"traffic\",\n    sharetype: \"PER\",\n    bandwidthSize: 10,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nl7_flavors = flexibleengine.get_elb_flavors(type=\"L7\")\nl4_flavors = flexibleengine.get_elb_flavors(type=\"L4\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nbasic = flexibleengine.LbLoadbalancerV3(\"basic\",\n    description=\"basic example\",\n    cross_vpc_backend=True,\n    vpc_id=example_vpc.vpc_v1_id,\n    ipv6_network_id=flexibleengine_vpc_subnet_v1[\"example_subnet_ipv6\"][\"id\"],\n    ipv6_bandwidth_id=\"{{ ipv6_bandwidth_id }}\",\n    ipv4_subnet_id=example_subnet.ipv4_subnet_id,\n    l4_flavor_id=l4_flavors.ids[0],\n    l7_flavor_id=l7_flavors.ids[0],\n    availability_zones=[\n        \"eu-west-0a\",\n        \"eu-west-0b\",\n    ],\n    iptype=\"5_bgp\",\n    bandwidth_charge_mode=\"traffic\",\n    sharetype=\"PER\",\n    bandwidth_size=10)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var l7Flavors = Flexibleengine.GetElbFlavors.Invoke(new()\n    {\n        Type = \"L7\",\n    });\n\n    var l4Flavors = Flexibleengine.GetElbFlavors.Invoke(new()\n    {\n        Type = \"L4\",\n    });\n\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var basic = new Flexibleengine.LbLoadbalancerV3(\"basic\", new()\n    {\n        Description = \"basic example\",\n        CrossVpcBackend = true,\n        VpcId = exampleVpc.VpcV1Id,\n        Ipv6NetworkId = flexibleengine_vpc_subnet_v1.Example_subnet_ipv6.Id,\n        Ipv6BandwidthId = \"{{ ipv6_bandwidth_id }}\",\n        Ipv4SubnetId = exampleSubnet.Ipv4SubnetId,\n        L4FlavorId = l4Flavors.Apply(getElbFlavorsResult => getElbFlavorsResult.Ids[0]),\n        L7FlavorId = l7Flavors.Apply(getElbFlavorsResult => getElbFlavorsResult.Ids[0]),\n        AvailabilityZones = new[]\n        {\n            \"eu-west-0a\",\n            \"eu-west-0b\",\n        },\n        Iptype = \"5_bgp\",\n        BandwidthChargeMode = \"traffic\",\n        Sharetype = \"PER\",\n        BandwidthSize = 10,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tl7Flavors, err := flexibleengine.GetElbFlavors(ctx, &flexibleengine.GetElbFlavorsArgs{\n\t\t\tType: pulumi.StringRef(\"L7\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tl4Flavors, err := flexibleengine.GetElbFlavors(ctx, &flexibleengine.GetElbFlavorsArgs{\n\t\t\tType: pulumi.StringRef(\"L4\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewLbLoadbalancerV3(ctx, \"basic\", &flexibleengine.LbLoadbalancerV3Args{\n\t\t\tDescription:     pulumi.String(\"basic example\"),\n\t\t\tCrossVpcBackend: pulumi.Bool(true),\n\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\tIpv6NetworkId:   pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet_ipv6.Id),\n\t\t\tIpv6BandwidthId: pulumi.String(\"{{ ipv6_bandwidth_id }}\"),\n\t\t\tIpv4SubnetId:    exampleSubnet.Ipv4SubnetId,\n\t\t\tL4FlavorId:      pulumi.String(l4Flavors.Ids[0]),\n\t\t\tL7FlavorId:      pulumi.String(l7Flavors.Ids[0]),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-west-0a\"),\n\t\t\t\tpulumi.String(\"eu-west-0b\"),\n\t\t\t},\n\t\t\tIptype:              pulumi.String(\"5_bgp\"),\n\t\t\tBandwidthChargeMode: pulumi.String(\"traffic\"),\n\t\t\tSharetype:           pulumi.String(\"PER\"),\n\t\t\tBandwidthSize:       pulumi.Float64(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetElbFlavorsArgs;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.LbLoadbalancerV3;\nimport com.pulumi.flexibleengine.LbLoadbalancerV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var l7Flavors = FlexibleengineFunctions.getElbFlavors(GetElbFlavorsArgs.builder()\n            .type(\"L7\")\n            .build());\n\n        final var l4Flavors = FlexibleengineFunctions.getElbFlavors(GetElbFlavorsArgs.builder()\n            .type(\"L4\")\n            .build());\n\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var basic = new LbLoadbalancerV3(\"basic\", LbLoadbalancerV3Args.builder()\n            .description(\"basic example\")\n            .crossVpcBackend(true)\n            .vpcId(exampleVpc.vpcV1Id())\n            .ipv6NetworkId(flexibleengine_vpc_subnet_v1.example_subnet_ipv6().id())\n            .ipv6BandwidthId(\"{{ ipv6_bandwidth_id }}\")\n            .ipv4SubnetId(exampleSubnet.ipv4SubnetId())\n            .l4FlavorId(l4Flavors.applyValue(getElbFlavorsResult -> getElbFlavorsResult.ids()[0]))\n            .l7FlavorId(l7Flavors.applyValue(getElbFlavorsResult -> getElbFlavorsResult.ids()[0]))\n            .availabilityZones(            \n                \"eu-west-0a\",\n                \"eu-west-0b\")\n            .iptype(\"5_bgp\")\n            .bandwidthChargeMode(\"traffic\")\n            .sharetype(\"PER\")\n            .bandwidthSize(10)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  basic:\n    type: flexibleengine:LbLoadbalancerV3\n    properties:\n      description: basic example\n      crossVpcBackend: true\n      vpcId: ${exampleVpc.vpcV1Id}\n      ipv6NetworkId: ${flexibleengine_vpc_subnet_v1.example_subnet_ipv6.id}\n      ipv6BandwidthId: '{{ ipv6_bandwidth_id }}'\n      ipv4SubnetId: ${exampleSubnet.ipv4SubnetId}\n      l4FlavorId: ${l4Flavors.ids[0]}\n      l7FlavorId: ${l7Flavors.ids[0]}\n      availabilityZones:\n        - eu-west-0a\n        - eu-west-0b\n      iptype: 5_bgp\n      bandwidthChargeMode: traffic\n      sharetype: PER\n      bandwidthSize: 10\nvariables:\n  l7Flavors:\n    fn::invoke:\n      function: flexibleengine:getElbFlavors\n      arguments:\n        type: L7\n  l4Flavors:\n    fn::invoke:\n      function: flexibleengine:getElbFlavors\n      arguments:\n        type: L4\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nELB loadbalancer can be imported using the loadbalancer ID, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/lbLoadbalancerV3:LbLoadbalancerV3 loadbalancer_1 5c20fdad-7288-11eb-b817-0255ac10158b\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include: `ipv6_bandwidth_id`, `iptype`,\n\n`bandwidth_charge_mode`, `sharetype`, `bandwidth_size` and `bandwidth_id`.\n\nIt is generally recommended running `pulumi preview` after importing a loadbalancer.\n\nYou can then decide if changes should be applied to the loadbalancer, or the resource\n\ndefinition should be updated to align with the loadbalancer. Also, you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_lb_loadbalancer_v3\" \"loadbalancer_1\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      ipv6_bandwidth_id, iptype, bandwidth_charge_mode, sharetype, bandwidth_size, bandwidth_id,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "autoPay": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "autoRenew": {
          "type": "string"
        },
        "autoscalingEnabled": {
          "type": "boolean",
          "description": "Specifies whether autoscaling is enabled. Valid values are **true** and\n**false**.\n"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of AZ names. Changing this parameter will create a\nnew resource.\n"
        },
        "backendSubnets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The IDs of subnets on the downstream plane.\n+ If this parameter is not specified, select subnets as follows:\n- If IPv6 is enabled for a load balancer, the ID of subnet specified in `ipv6_network_id` will be used.\n- If IPv4 is enabled for a load balancer, the ID of subnet specified in `ipv4_subnet_id` will be used.\n- If only public network is available for a load balancer, the ID of any subnet in the VPC where the load balancer\nresides will be used. Subnets with more IP addresses are preferred.\n+ If there is more than one subnet, the first subnet in the list will be used, and the subnets must be in the VPC\nwhere the load balancer resides.\n"
        },
        "bandwidthChargeMode": {
          "type": "string",
          "description": "Bandwidth billing type. Value options:\n+ **bandwidth**: Billed by bandwidth.\n+ **traffic**: Billed by traffic.\n\nIt is mandatory when `iptype` is set and `bandwidth_id` is empty.\nChanging this parameter will create a new resource.\n"
        },
        "bandwidthId": {
          "type": "string",
          "description": "Bandwidth ID of the shared bandwidth. It is mandatory when `sharetype`\nis **WHOLE**. Changing this parameter will create a new resource.\n\n> **NOTE:** If the `bandwidth_id` parameter is configured, you can not configure the parameters:\n`bandwidth_charge_mode`, `bandwidth_size`.\n"
        },
        "bandwidthSize": {
          "type": "number",
          "description": "Bandwidth size. It is mandatory when `iptype` is set and `bandwidth_id`\nis empty. Changing this parameter will create a new resource.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "crossVpcBackend": {
          "type": "boolean",
          "description": "Enable this if you want to associate the IP addresses of backend servers with\nyour load balancer. Can only be true when updating.\n"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the loadbalancer.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the resource.\nChanging this will create a new resource.\n"
        },
        "forceDelete": {
          "type": "boolean"
        },
        "iptype": {
          "type": "string",
          "description": "Elastic IP type. Changing this parameter will create a new resource.\n"
        },
        "ipv4Address": {
          "type": "string",
          "description": "The ipv4 address of the load balancer.\n"
        },
        "ipv4Eip": {
          "type": "string",
          "description": "The ipv4 eip address of the Load Balancer.\n"
        },
        "ipv4EipId": {
          "type": "string",
          "description": "The ID of the EIP. Changing this parameter will create a new resource.\n\n> **NOTE:** If the `ipv4_eip_id` parameter is configured, you do not need to configure the bandwidth parameters:\n`iptype`, `bandwidth_charge_mode`, `bandwidth_size`, `share_type` and `bandwidth_id`.\n"
        },
        "ipv4PortId": {
          "type": "string",
          "description": "The ID of the port bound to the private IPv4 address of the loadbalancer.\n"
        },
        "ipv4SubnetId": {
          "type": "string",
          "description": "The **IPv4 subnet ID** of the subnet on which to allocate the loadbalancer's\nipv4 address.\n"
        },
        "ipv6Address": {
          "type": "string",
          "description": "The ipv6 address of the Load Balancer.\n"
        },
        "ipv6BandwidthId": {
          "type": "string",
          "description": "The ipv6 bandwidth id. Only support shared bandwidth.\n"
        },
        "ipv6Eip": {
          "type": "string",
          "description": "The ipv6 eip address of the Load Balancer.\n"
        },
        "ipv6EipId": {
          "type": "string",
          "description": "The ipv6 eip id of the Load Balancer.\n"
        },
        "ipv6NetworkId": {
          "type": "string",
          "description": "The network on which to allocate the loadbalancer's ipv6 address.\n"
        },
        "l4FlavorId": {
          "type": "string",
          "description": "The L4 flavor id of the load balancer.\n"
        },
        "l7FlavorId": {
          "type": "string",
          "description": "The L7 flavor id of the load balancer.\n"
        },
        "lbLoadbalancerV3Id": {
          "type": "string"
        },
        "minL7FlavorId": {
          "type": "string",
          "description": "Specifies the ID of the minimum Layer-7 flavor for elastic scaling.\nThis parameter cannot be left blank if there are HTTP or HTTPS listeners.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the loadbalancer.\n"
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "protectionReason": {
          "type": "string"
        },
        "protectionStatus": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the loadbalancer resource. If omitted, the\nprovider-level region will be used. Changing this creates a new loadbalancer.\n"
        },
        "sharetype": {
          "type": "string",
          "description": "Bandwidth sharing type. Value options:\n+ **PER**: Dedicated bandwidth.\n+ **WHOLE**: Shared bandwidth.\n\nIt is mandatory when `iptype` is set and `bandwidth_id` is empty.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the loadbalancer.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbLoadbalancerV3Timeouts:LbLoadbalancerV3Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "The vpc on which to create the loadbalancer. Changing this creates a new\nloadbalancer.\n"
        }
      },
      "type": "object",
      "required": [
        "autoscalingEnabled",
        "availabilityZones",
        "backendSubnets",
        "bandwidthChargeMode",
        "bandwidthId",
        "bandwidthSize",
        "chargingMode",
        "crossVpcBackend",
        "enterpriseProjectId",
        "iptype",
        "ipv4Address",
        "ipv4Eip",
        "ipv4EipId",
        "ipv4PortId",
        "ipv6Address",
        "ipv6Eip",
        "ipv6EipId",
        "l4FlavorId",
        "l7FlavorId",
        "lbLoadbalancerV3Id",
        "minL7FlavorId",
        "name",
        "protectionStatus",
        "region",
        "sharetype",
        "vpcId"
      ],
      "inputProperties": {
        "autoPay": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "autoRenew": {
          "type": "string"
        },
        "autoscalingEnabled": {
          "type": "boolean",
          "description": "Specifies whether autoscaling is enabled. Valid values are **true** and\n**false**.\n"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of AZ names. Changing this parameter will create a\nnew resource.\n"
        },
        "backendSubnets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The IDs of subnets on the downstream plane.\n+ If this parameter is not specified, select subnets as follows:\n- If IPv6 is enabled for a load balancer, the ID of subnet specified in `ipv6_network_id` will be used.\n- If IPv4 is enabled for a load balancer, the ID of subnet specified in `ipv4_subnet_id` will be used.\n- If only public network is available for a load balancer, the ID of any subnet in the VPC where the load balancer\nresides will be used. Subnets with more IP addresses are preferred.\n+ If there is more than one subnet, the first subnet in the list will be used, and the subnets must be in the VPC\nwhere the load balancer resides.\n"
        },
        "bandwidthChargeMode": {
          "type": "string",
          "description": "Bandwidth billing type. Value options:\n+ **bandwidth**: Billed by bandwidth.\n+ **traffic**: Billed by traffic.\n\nIt is mandatory when `iptype` is set and `bandwidth_id` is empty.\nChanging this parameter will create a new resource.\n"
        },
        "bandwidthId": {
          "type": "string",
          "description": "Bandwidth ID of the shared bandwidth. It is mandatory when `sharetype`\nis **WHOLE**. Changing this parameter will create a new resource.\n\n> **NOTE:** If the `bandwidth_id` parameter is configured, you can not configure the parameters:\n`bandwidth_charge_mode`, `bandwidth_size`.\n"
        },
        "bandwidthSize": {
          "type": "number",
          "description": "Bandwidth size. It is mandatory when `iptype` is set and `bandwidth_id`\nis empty. Changing this parameter will create a new resource.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "crossVpcBackend": {
          "type": "boolean",
          "description": "Enable this if you want to associate the IP addresses of backend servers with\nyour load balancer. Can only be true when updating.\n"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the loadbalancer.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the resource.\nChanging this will create a new resource.\n"
        },
        "forceDelete": {
          "type": "boolean"
        },
        "iptype": {
          "type": "string",
          "description": "Elastic IP type. Changing this parameter will create a new resource.\n"
        },
        "ipv4Address": {
          "type": "string",
          "description": "The ipv4 address of the load balancer.\n"
        },
        "ipv4EipId": {
          "type": "string",
          "description": "The ID of the EIP. Changing this parameter will create a new resource.\n\n> **NOTE:** If the `ipv4_eip_id` parameter is configured, you do not need to configure the bandwidth parameters:\n`iptype`, `bandwidth_charge_mode`, `bandwidth_size`, `share_type` and `bandwidth_id`.\n"
        },
        "ipv4SubnetId": {
          "type": "string",
          "description": "The **IPv4 subnet ID** of the subnet on which to allocate the loadbalancer's\nipv4 address.\n"
        },
        "ipv6BandwidthId": {
          "type": "string",
          "description": "The ipv6 bandwidth id. Only support shared bandwidth.\n"
        },
        "ipv6NetworkId": {
          "type": "string",
          "description": "The network on which to allocate the loadbalancer's ipv6 address.\n"
        },
        "l4FlavorId": {
          "type": "string",
          "description": "The L4 flavor id of the load balancer.\n"
        },
        "l7FlavorId": {
          "type": "string",
          "description": "The L7 flavor id of the load balancer.\n"
        },
        "lbLoadbalancerV3Id": {
          "type": "string"
        },
        "minL7FlavorId": {
          "type": "string",
          "description": "Specifies the ID of the minimum Layer-7 flavor for elastic scaling.\nThis parameter cannot be left blank if there are HTTP or HTTPS listeners.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the loadbalancer.\n"
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "protectionReason": {
          "type": "string"
        },
        "protectionStatus": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the loadbalancer resource. If omitted, the\nprovider-level region will be used. Changing this creates a new loadbalancer.\n"
        },
        "sharetype": {
          "type": "string",
          "description": "Bandwidth sharing type. Value options:\n+ **PER**: Dedicated bandwidth.\n+ **WHOLE**: Shared bandwidth.\n\nIt is mandatory when `iptype` is set and `bandwidth_id` is empty.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the loadbalancer.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbLoadbalancerV3Timeouts:LbLoadbalancerV3Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "The vpc on which to create the loadbalancer. Changing this creates a new\nloadbalancer.\n"
        }
      },
      "requiredInputs": [
        "availabilityZones"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbLoadbalancerV3 resources.\n",
        "properties": {
          "autoPay": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "autoRenew": {
            "type": "string"
          },
          "autoscalingEnabled": {
            "type": "boolean",
            "description": "Specifies whether autoscaling is enabled. Valid values are **true** and\n**false**.\n"
          },
          "availabilityZones": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the list of AZ names. Changing this parameter will create a\nnew resource.\n"
          },
          "backendSubnets": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The IDs of subnets on the downstream plane.\n+ If this parameter is not specified, select subnets as follows:\n- If IPv6 is enabled for a load balancer, the ID of subnet specified in `ipv6_network_id` will be used.\n- If IPv4 is enabled for a load balancer, the ID of subnet specified in `ipv4_subnet_id` will be used.\n- If only public network is available for a load balancer, the ID of any subnet in the VPC where the load balancer\nresides will be used. Subnets with more IP addresses are preferred.\n+ If there is more than one subnet, the first subnet in the list will be used, and the subnets must be in the VPC\nwhere the load balancer resides.\n"
          },
          "bandwidthChargeMode": {
            "type": "string",
            "description": "Bandwidth billing type. Value options:\n+ **bandwidth**: Billed by bandwidth.\n+ **traffic**: Billed by traffic.\n\nIt is mandatory when `iptype` is set and `bandwidth_id` is empty.\nChanging this parameter will create a new resource.\n"
          },
          "bandwidthId": {
            "type": "string",
            "description": "Bandwidth ID of the shared bandwidth. It is mandatory when `sharetype`\nis **WHOLE**. Changing this parameter will create a new resource.\n\n> **NOTE:** If the `bandwidth_id` parameter is configured, you can not configure the parameters:\n`bandwidth_charge_mode`, `bandwidth_size`.\n"
          },
          "bandwidthSize": {
            "type": "number",
            "description": "Bandwidth size. It is mandatory when `iptype` is set and `bandwidth_id`\nis empty. Changing this parameter will create a new resource.\n"
          },
          "chargingMode": {
            "type": "string"
          },
          "crossVpcBackend": {
            "type": "boolean",
            "description": "Enable this if you want to associate the IP addresses of backend servers with\nyour load balancer. Can only be true when updating.\n"
          },
          "description": {
            "type": "string",
            "description": "Human-readable description for the loadbalancer.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id of the resource.\nChanging this will create a new resource.\n"
          },
          "forceDelete": {
            "type": "boolean"
          },
          "iptype": {
            "type": "string",
            "description": "Elastic IP type. Changing this parameter will create a new resource.\n"
          },
          "ipv4Address": {
            "type": "string",
            "description": "The ipv4 address of the load balancer.\n"
          },
          "ipv4Eip": {
            "type": "string",
            "description": "The ipv4 eip address of the Load Balancer.\n"
          },
          "ipv4EipId": {
            "type": "string",
            "description": "The ID of the EIP. Changing this parameter will create a new resource.\n\n> **NOTE:** If the `ipv4_eip_id` parameter is configured, you do not need to configure the bandwidth parameters:\n`iptype`, `bandwidth_charge_mode`, `bandwidth_size`, `share_type` and `bandwidth_id`.\n"
          },
          "ipv4PortId": {
            "type": "string",
            "description": "The ID of the port bound to the private IPv4 address of the loadbalancer.\n"
          },
          "ipv4SubnetId": {
            "type": "string",
            "description": "The **IPv4 subnet ID** of the subnet on which to allocate the loadbalancer's\nipv4 address.\n"
          },
          "ipv6Address": {
            "type": "string",
            "description": "The ipv6 address of the Load Balancer.\n"
          },
          "ipv6BandwidthId": {
            "type": "string",
            "description": "The ipv6 bandwidth id. Only support shared bandwidth.\n"
          },
          "ipv6Eip": {
            "type": "string",
            "description": "The ipv6 eip address of the Load Balancer.\n"
          },
          "ipv6EipId": {
            "type": "string",
            "description": "The ipv6 eip id of the Load Balancer.\n"
          },
          "ipv6NetworkId": {
            "type": "string",
            "description": "The network on which to allocate the loadbalancer's ipv6 address.\n"
          },
          "l4FlavorId": {
            "type": "string",
            "description": "The L4 flavor id of the load balancer.\n"
          },
          "l7FlavorId": {
            "type": "string",
            "description": "The L7 flavor id of the load balancer.\n"
          },
          "lbLoadbalancerV3Id": {
            "type": "string"
          },
          "minL7FlavorId": {
            "type": "string",
            "description": "Specifies the ID of the minimum Layer-7 flavor for elastic scaling.\nThis parameter cannot be left blank if there are HTTP or HTTPS listeners.\n"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for the loadbalancer.\n"
          },
          "period": {
            "type": "number"
          },
          "periodUnit": {
            "type": "string"
          },
          "protectionReason": {
            "type": "string"
          },
          "protectionStatus": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the loadbalancer resource. If omitted, the\nprovider-level region will be used. Changing this creates a new loadbalancer.\n"
          },
          "sharetype": {
            "type": "string",
            "description": "Bandwidth sharing type. Value options:\n+ **PER**: Dedicated bandwidth.\n+ **WHOLE**: Shared bandwidth.\n\nIt is mandatory when `iptype` is set and `bandwidth_id` is empty.\nChanging this parameter will create a new resource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the loadbalancer.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FLbLoadbalancerV3Timeouts:LbLoadbalancerV3Timeouts"
          },
          "vpcId": {
            "type": "string",
            "description": "The vpc on which to create the loadbalancer. Changing this creates a new\nloadbalancer.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbMemberV2:LbMemberV2": {
      "description": "Manages an **enhanced** load balancer member resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleMember = new flexibleengine.LbMemberV2(\"exampleMember\", {\n    address: \"192.168.199.23\",\n    protocolPort: 8080,\n    poolId: flexibleengine_lb_pool_v2.example_pool.id,\n    subnetId: flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_member = flexibleengine.LbMemberV2(\"exampleMember\",\n    address=\"192.168.199.23\",\n    protocol_port=8080,\n    pool_id=flexibleengine_lb_pool_v2[\"example_pool\"][\"id\"],\n    subnet_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"ipv4_subnet_id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleMember = new Flexibleengine.LbMemberV2(\"exampleMember\", new()\n    {\n        Address = \"192.168.199.23\",\n        ProtocolPort = 8080,\n        PoolId = flexibleengine_lb_pool_v2.Example_pool.Id,\n        SubnetId = flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewLbMemberV2(ctx, \"exampleMember\", &flexibleengine.LbMemberV2Args{\n\t\t\tAddress:      pulumi.String(\"192.168.199.23\"),\n\t\t\tProtocolPort: pulumi.Float64(8080),\n\t\t\tPoolId:       pulumi.Any(flexibleengine_lb_pool_v2.Example_pool.Id),\n\t\t\tSubnetId:     pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LbMemberV2;\nimport com.pulumi.flexibleengine.LbMemberV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleMember = new LbMemberV2(\"exampleMember\", LbMemberV2Args.builder()\n            .address(\"192.168.199.23\")\n            .protocolPort(8080)\n            .poolId(flexibleengine_lb_pool_v2.example_pool().id())\n            .subnetId(flexibleengine_vpc_subnet_v1.example_subnet().ipv4_subnet_id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleMember:\n    type: flexibleengine:LbMemberV2\n    properties:\n      address: 192.168.199.23\n      protocolPort: 8080\n      poolId: ${flexibleengine_lb_pool_v2.example_pool.id}\n      subnetId: ${flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "address": {
          "type": "string",
          "description": "The IP address of the member to receive traffic from\nthe load balancer. Changing this creates a new member.\n"
        },
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "lbMemberV2Id": {
          "type": "string",
          "description": "The unique ID for the member.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the member.\n"
        },
        "poolId": {
          "type": "string",
          "description": "The id of the pool that this member will be\nassigned to. Changing this creates a new member.\n"
        },
        "protocolPort": {
          "type": "number",
          "description": "The port on which to listen for client traffic.\nChanging this creates a new member.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to be created. If omitted, the `region` argument of the provider is used.\nChanging this creates a new member.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The `ipv4_subnet_id` or `ipv6_subnet_id` of the\nVPC Subnet in which to access the member. Changing this creates a new member.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbMemberV2Timeouts:LbMemberV2Timeouts"
        },
        "weight": {
          "type": "number",
          "description": "A positive integer value that indicates the relative\nportion of traffic that this member should receive from the pool. For\nexample, a member with a weight of 10 receives five times as much traffic\nas a member with a weight of 2.\n"
        }
      },
      "type": "object",
      "required": [
        "address",
        "lbMemberV2Id",
        "name",
        "poolId",
        "protocolPort",
        "region",
        "subnetId",
        "tenantId",
        "weight"
      ],
      "inputProperties": {
        "address": {
          "type": "string",
          "description": "The IP address of the member to receive traffic from\nthe load balancer. Changing this creates a new member.\n"
        },
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "lbMemberV2Id": {
          "type": "string",
          "description": "The unique ID for the member.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the member.\n"
        },
        "poolId": {
          "type": "string",
          "description": "The id of the pool that this member will be\nassigned to. Changing this creates a new member.\n"
        },
        "protocolPort": {
          "type": "number",
          "description": "The port on which to listen for client traffic.\nChanging this creates a new member.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to be created. If omitted, the `region` argument of the provider is used.\nChanging this creates a new member.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The `ipv4_subnet_id` or `ipv6_subnet_id` of the\nVPC Subnet in which to access the member. Changing this creates a new member.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbMemberV2Timeouts:LbMemberV2Timeouts"
        },
        "weight": {
          "type": "number",
          "description": "A positive integer value that indicates the relative\nportion of traffic that this member should receive from the pool. For\nexample, a member with a weight of 10 receives five times as much traffic\nas a member with a weight of 2.\n"
        }
      },
      "requiredInputs": [
        "address",
        "poolId",
        "protocolPort",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbMemberV2 resources.\n",
        "properties": {
          "address": {
            "type": "string",
            "description": "The IP address of the member to receive traffic from\nthe load balancer. Changing this creates a new member.\n"
          },
          "adminStateUp": {
            "type": "boolean",
            "deprecationMessage": "Deprecated"
          },
          "lbMemberV2Id": {
            "type": "string",
            "description": "The unique ID for the member.\n"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for the member.\n"
          },
          "poolId": {
            "type": "string",
            "description": "The id of the pool that this member will be\nassigned to. Changing this creates a new member.\n"
          },
          "protocolPort": {
            "type": "number",
            "description": "The port on which to listen for client traffic.\nChanging this creates a new member.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to be created. If omitted, the `region` argument of the provider is used.\nChanging this creates a new member.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "The `ipv4_subnet_id` or `ipv6_subnet_id` of the\nVPC Subnet in which to access the member. Changing this creates a new member.\n"
          },
          "tenantId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FLbMemberV2Timeouts:LbMemberV2Timeouts"
          },
          "weight": {
            "type": "number",
            "description": "A positive integer value that indicates the relative\nportion of traffic that this member should receive from the pool. For\nexample, a member with a weight of 10 receives five times as much traffic\nas a member with a weight of 2.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbMemberV3:LbMemberV3": {
      "description": "Manages an ELB member resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst address = config.requireObject(\"address\");\nconst poolId = config.requireObject(\"poolId\");\nconst exampleMember = new flexibleengine.LbMemberV3(\"exampleMember\", {\n    address: address,\n    protocolPort: 8080,\n    poolId: flexibleengine_lb_pool_v3.example_pool.id,\n    subnetId: flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\naddress = config.require_object(\"address\")\npool_id = config.require_object(\"poolId\")\nexample_member = flexibleengine.LbMemberV3(\"exampleMember\",\n    address=address,\n    protocol_port=8080,\n    pool_id=flexibleengine_lb_pool_v3[\"example_pool\"][\"id\"],\n    subnet_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"ipv4_subnet_id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var address = config.RequireObject<dynamic>(\"address\");\n    var poolId = config.RequireObject<dynamic>(\"poolId\");\n    var exampleMember = new Flexibleengine.LbMemberV3(\"exampleMember\", new()\n    {\n        Address = address,\n        ProtocolPort = 8080,\n        PoolId = flexibleengine_lb_pool_v3.Example_pool.Id,\n        SubnetId = flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\taddress := cfg.RequireObject(\"address\")\n\t\tpoolId := cfg.RequireObject(\"poolId\")\n\t\t_, err := flexibleengine.NewLbMemberV3(ctx, \"exampleMember\", &flexibleengine.LbMemberV3Args{\n\t\t\tAddress:      pulumi.Any(address),\n\t\t\tProtocolPort: pulumi.Float64(8080),\n\t\t\tPoolId:       pulumi.Any(flexibleengine_lb_pool_v3.Example_pool.Id),\n\t\t\tSubnetId:     pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Ipv4_subnet_id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LbMemberV3;\nimport com.pulumi.flexibleengine.LbMemberV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var address = config.get(\"address\");\n        final var poolId = config.get(\"poolId\");\n        var exampleMember = new LbMemberV3(\"exampleMember\", LbMemberV3Args.builder()\n            .address(address)\n            .protocolPort(8080)\n            .poolId(flexibleengine_lb_pool_v3.example_pool().id())\n            .subnetId(flexibleengine_vpc_subnet_v1.example_subnet().ipv4_subnet_id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  address:\n    type: dynamic\n  poolId:\n    type: dynamic\nresources:\n  exampleMember:\n    type: flexibleengine:LbMemberV3\n    properties:\n      address: ${address}\n      protocolPort: 8080\n      poolId: ${flexibleengine_lb_pool_v3.example_pool.id}\n      subnetId: ${flexibleengine_vpc_subnet_v1.example_subnet.ipv4_subnet_id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nELB member can be imported using the pool ID and member ID separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/lbMemberV3:LbMemberV3 member_1 5c20fdad-7288-11eb-b817-0255ac10158b/e0bd694a-abbe-450e-b329-0931fd1cc5eb\n```\n\n",
      "properties": {
        "address": {
          "type": "string",
          "description": "Specifies the IP address of the member to receive traffic from the\nload balancer. Changing this creates a new member.\n"
        },
        "lbMemberV3Id": {
          "type": "string",
          "description": "The unique ID for the member.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name for the member.\n"
        },
        "poolId": {
          "type": "string",
          "description": "Specifies the id of the pool that this member will be assigned to.\n"
        },
        "protocolPort": {
          "type": "number",
          "description": "Specifies the port on which to listen for client traffic.\nChanging this creates a new member.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the ELB member resource.\nChanging this creates a new member.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The `ipv4_subnet_id` or `ipv6_subnet_id` of the\nVPC Subnet in which to access the member.\nThe IPv4 or IPv6 subnet must be in the same VPC as the subnet of the load balancer.\nIf this parameter is not passed, cross-VPC backend has been enabled for the load balancer. In this case,\ncross-VPC backend servers must use private IPv4 addresses, and the protocol of the backend server group\nmust be TCP, HTTP, or HTTPS.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbMemberV3Timeouts:LbMemberV3Timeouts"
        },
        "weight": {
          "type": "number",
          "description": "Specifies the positive integer value that indicates the relative portion of traffic\nthat this member should receive from the pool. For example, a member with a weight of 10 receives five times as\nmuch traffic as a member with a weight of 2.\n"
        }
      },
      "type": "object",
      "required": [
        "address",
        "lbMemberV3Id",
        "name",
        "poolId",
        "protocolPort",
        "region",
        "weight"
      ],
      "inputProperties": {
        "address": {
          "type": "string",
          "description": "Specifies the IP address of the member to receive traffic from the\nload balancer. Changing this creates a new member.\n"
        },
        "lbMemberV3Id": {
          "type": "string",
          "description": "The unique ID for the member.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name for the member.\n"
        },
        "poolId": {
          "type": "string",
          "description": "Specifies the id of the pool that this member will be assigned to.\n"
        },
        "protocolPort": {
          "type": "number",
          "description": "Specifies the port on which to listen for client traffic.\nChanging this creates a new member.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the ELB member resource.\nChanging this creates a new member.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The `ipv4_subnet_id` or `ipv6_subnet_id` of the\nVPC Subnet in which to access the member.\nThe IPv4 or IPv6 subnet must be in the same VPC as the subnet of the load balancer.\nIf this parameter is not passed, cross-VPC backend has been enabled for the load balancer. In this case,\ncross-VPC backend servers must use private IPv4 addresses, and the protocol of the backend server group\nmust be TCP, HTTP, or HTTPS.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbMemberV3Timeouts:LbMemberV3Timeouts"
        },
        "weight": {
          "type": "number",
          "description": "Specifies the positive integer value that indicates the relative portion of traffic\nthat this member should receive from the pool. For example, a member with a weight of 10 receives five times as\nmuch traffic as a member with a weight of 2.\n"
        }
      },
      "requiredInputs": [
        "address",
        "poolId",
        "protocolPort"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbMemberV3 resources.\n",
        "properties": {
          "address": {
            "type": "string",
            "description": "Specifies the IP address of the member to receive traffic from the\nload balancer. Changing this creates a new member.\n"
          },
          "lbMemberV3Id": {
            "type": "string",
            "description": "The unique ID for the member.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name for the member.\n"
          },
          "poolId": {
            "type": "string",
            "description": "Specifies the id of the pool that this member will be assigned to.\n"
          },
          "protocolPort": {
            "type": "number",
            "description": "Specifies the port on which to listen for client traffic.\nChanging this creates a new member.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the ELB member resource.\nChanging this creates a new member.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "The `ipv4_subnet_id` or `ipv6_subnet_id` of the\nVPC Subnet in which to access the member.\nThe IPv4 or IPv6 subnet must be in the same VPC as the subnet of the load balancer.\nIf this parameter is not passed, cross-VPC backend has been enabled for the load balancer. In this case,\ncross-VPC backend servers must use private IPv4 addresses, and the protocol of the backend server group\nmust be TCP, HTTP, or HTTPS.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FLbMemberV3Timeouts:LbMemberV3Timeouts"
          },
          "weight": {
            "type": "number",
            "description": "Specifies the positive integer value that indicates the relative portion of traffic\nthat this member should receive from the pool. For example, a member with a weight of 10 receives five times as\nmuch traffic as a member with a weight of 2.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbMonitorV2:LbMonitorV2": {
      "description": "Manages an **enhanced** load balancer monitor resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst monitor1 = new flexibleengine.LbMonitorV2(\"monitor1\", {\n    poolId: flexibleengine_lb_pool_v2.pool_1.id,\n    type: \"PING\",\n    delay: 20,\n    timeout: 10,\n    maxRetries: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nmonitor1 = flexibleengine.LbMonitorV2(\"monitor1\",\n    pool_id=flexibleengine_lb_pool_v2[\"pool_1\"][\"id\"],\n    type=\"PING\",\n    delay=20,\n    timeout=10,\n    max_retries=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var monitor1 = new Flexibleengine.LbMonitorV2(\"monitor1\", new()\n    {\n        PoolId = flexibleengine_lb_pool_v2.Pool_1.Id,\n        Type = \"PING\",\n        Delay = 20,\n        Timeout = 10,\n        MaxRetries = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewLbMonitorV2(ctx, \"monitor1\", &flexibleengine.LbMonitorV2Args{\n\t\t\tPoolId:     pulumi.Any(flexibleengine_lb_pool_v2.Pool_1.Id),\n\t\t\tType:       pulumi.String(\"PING\"),\n\t\t\tDelay:      pulumi.Float64(20),\n\t\t\tTimeout:    pulumi.Float64(10),\n\t\t\tMaxRetries: pulumi.Float64(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LbMonitorV2;\nimport com.pulumi.flexibleengine.LbMonitorV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var monitor1 = new LbMonitorV2(\"monitor1\", LbMonitorV2Args.builder()\n            .poolId(flexibleengine_lb_pool_v2.pool_1().id())\n            .type(\"PING\")\n            .delay(20)\n            .timeout(10)\n            .maxRetries(5)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  monitor1:\n    type: flexibleengine:LbMonitorV2\n    properties:\n      poolId: ${flexibleengine_lb_pool_v2.pool_1.id}\n      type: PING\n      delay: 20\n      timeout: 10\n      maxRetries: 5\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "delay": {
          "type": "number",
          "description": "The time, in seconds, between sending probes to members.\n"
        },
        "expectedCodes": {
          "type": "string",
          "description": "Required for HTTP(S) types. Expected HTTP codes\nfor a passing HTTP(S) monitor. You can either specify a single status like \"200\", or a range like \"200-202\".\n"
        },
        "httpMethod": {
          "type": "string",
          "description": "Required for HTTP(S) types. The HTTP method used\nfor requests by the monitor. If this attribute is not specified, it defaults to \"GET\".\n"
        },
        "lbMonitorV2Id": {
          "type": "string",
          "description": "The unique ID for the monitor.\n"
        },
        "maxRetries": {
          "type": "number",
          "description": "Number of permissible ping failures before\nchanging the member's status to INACTIVE. Must be a number between 1 and 10.\n"
        },
        "name": {
          "type": "string",
          "description": "The Name of the Monitor.\n"
        },
        "poolId": {
          "type": "string",
          "description": "The id of the pool that this monitor will be assigned to.\nChanging this creates a new monitor.\n"
        },
        "port": {
          "type": "number",
          "description": "Specifies the health check port. The value ranges from 1 to 65536.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the resources.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new resource.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeout": {
          "type": "number",
          "description": "Maximum number of seconds for a monitor to wait for a\nping reply before it times out. The value must be less than the delay value.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbMonitorV2Timeouts:LbMonitorV2Timeouts"
        },
        "type": {
          "type": "string",
          "description": "The type of probe, which is PING, TCP, HTTP, or HTTPS,\nthat is sent by the load balancer to verify the member state. Changing this creates a new monitor.\n"
        },
        "urlPath": {
          "type": "string",
          "description": "Required for HTTP(S) types. URI path that will be\naccessed if monitor type is HTTP or HTTPS.\n"
        }
      },
      "type": "object",
      "required": [
        "delay",
        "expectedCodes",
        "httpMethod",
        "lbMonitorV2Id",
        "maxRetries",
        "name",
        "poolId",
        "region",
        "tenantId",
        "timeout",
        "type",
        "urlPath"
      ],
      "inputProperties": {
        "adminStateUp": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "delay": {
          "type": "number",
          "description": "The time, in seconds, between sending probes to members.\n"
        },
        "expectedCodes": {
          "type": "string",
          "description": "Required for HTTP(S) types. Expected HTTP codes\nfor a passing HTTP(S) monitor. You can either specify a single status like \"200\", or a range like \"200-202\".\n"
        },
        "httpMethod": {
          "type": "string",
          "description": "Required for HTTP(S) types. The HTTP method used\nfor requests by the monitor. If this attribute is not specified, it defaults to \"GET\".\n"
        },
        "lbMonitorV2Id": {
          "type": "string",
          "description": "The unique ID for the monitor.\n"
        },
        "maxRetries": {
          "type": "number",
          "description": "Number of permissible ping failures before\nchanging the member's status to INACTIVE. Must be a number between 1 and 10.\n"
        },
        "name": {
          "type": "string",
          "description": "The Name of the Monitor.\n"
        },
        "poolId": {
          "type": "string",
          "description": "The id of the pool that this monitor will be assigned to.\nChanging this creates a new monitor.\n"
        },
        "port": {
          "type": "number",
          "description": "Specifies the health check port. The value ranges from 1 to 65536.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the resources.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new resource.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeout": {
          "type": "number",
          "description": "Maximum number of seconds for a monitor to wait for a\nping reply before it times out. The value must be less than the delay value.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbMonitorV2Timeouts:LbMonitorV2Timeouts"
        },
        "type": {
          "type": "string",
          "description": "The type of probe, which is PING, TCP, HTTP, or HTTPS,\nthat is sent by the load balancer to verify the member state. Changing this creates a new monitor.\n"
        },
        "urlPath": {
          "type": "string",
          "description": "Required for HTTP(S) types. URI path that will be\naccessed if monitor type is HTTP or HTTPS.\n"
        }
      },
      "requiredInputs": [
        "delay",
        "maxRetries",
        "poolId",
        "timeout",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbMonitorV2 resources.\n",
        "properties": {
          "adminStateUp": {
            "type": "boolean",
            "deprecationMessage": "Deprecated"
          },
          "delay": {
            "type": "number",
            "description": "The time, in seconds, between sending probes to members.\n"
          },
          "expectedCodes": {
            "type": "string",
            "description": "Required for HTTP(S) types. Expected HTTP codes\nfor a passing HTTP(S) monitor. You can either specify a single status like \"200\", or a range like \"200-202\".\n"
          },
          "httpMethod": {
            "type": "string",
            "description": "Required for HTTP(S) types. The HTTP method used\nfor requests by the monitor. If this attribute is not specified, it defaults to \"GET\".\n"
          },
          "lbMonitorV2Id": {
            "type": "string",
            "description": "The unique ID for the monitor.\n"
          },
          "maxRetries": {
            "type": "number",
            "description": "Number of permissible ping failures before\nchanging the member's status to INACTIVE. Must be a number between 1 and 10.\n"
          },
          "name": {
            "type": "string",
            "description": "The Name of the Monitor.\n"
          },
          "poolId": {
            "type": "string",
            "description": "The id of the pool that this monitor will be assigned to.\nChanging this creates a new monitor.\n"
          },
          "port": {
            "type": "number",
            "description": "Specifies the health check port. The value ranges from 1 to 65536.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the resources.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new resource.\n"
          },
          "tenantId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "timeout": {
            "type": "number",
            "description": "Maximum number of seconds for a monitor to wait for a\nping reply before it times out. The value must be less than the delay value.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FLbMonitorV2Timeouts:LbMonitorV2Timeouts"
          },
          "type": {
            "type": "string",
            "description": "The type of probe, which is PING, TCP, HTTP, or HTTPS,\nthat is sent by the load balancer to verify the member state. Changing this creates a new monitor.\n"
          },
          "urlPath": {
            "type": "string",
            "description": "Required for HTTP(S) types. URI path that will be\naccessed if monitor type is HTTP or HTTPS.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbMonitorV3:LbMonitorV3": {
      "description": "Manages an ELB monitor resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst poolId = config.requireObject(\"poolId\");\nconst monitor1 = new flexibleengine.LbMonitorV3(\"monitor1\", {\n    protocol: \"HTTP\",\n    interval: 30,\n    timeout: 15,\n    maxRetries: 10,\n    urlPath: \"/api\",\n    port: 8888,\n    poolId: poolId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\npool_id = config.require_object(\"poolId\")\nmonitor1 = flexibleengine.LbMonitorV3(\"monitor1\",\n    protocol=\"HTTP\",\n    interval=30,\n    timeout=15,\n    max_retries=10,\n    url_path=\"/api\",\n    port=8888,\n    pool_id=pool_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var poolId = config.RequireObject<dynamic>(\"poolId\");\n    var monitor1 = new Flexibleengine.LbMonitorV3(\"monitor1\", new()\n    {\n        Protocol = \"HTTP\",\n        Interval = 30,\n        Timeout = 15,\n        MaxRetries = 10,\n        UrlPath = \"/api\",\n        Port = 8888,\n        PoolId = poolId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tpoolId := cfg.RequireObject(\"poolId\")\n\t\t_, err := flexibleengine.NewLbMonitorV3(ctx, \"monitor1\", &flexibleengine.LbMonitorV3Args{\n\t\t\tProtocol:   pulumi.String(\"HTTP\"),\n\t\t\tInterval:   pulumi.Float64(30),\n\t\t\tTimeout:    pulumi.Float64(15),\n\t\t\tMaxRetries: pulumi.Float64(10),\n\t\t\tUrlPath:    pulumi.String(\"/api\"),\n\t\t\tPort:       pulumi.Float64(8888),\n\t\t\tPoolId:     pulumi.Any(poolId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LbMonitorV3;\nimport com.pulumi.flexibleengine.LbMonitorV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var poolId = config.get(\"poolId\");\n        var monitor1 = new LbMonitorV3(\"monitor1\", LbMonitorV3Args.builder()\n            .protocol(\"HTTP\")\n            .interval(30)\n            .timeout(15)\n            .maxRetries(10)\n            .urlPath(\"/api\")\n            .port(8888)\n            .poolId(poolId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  poolId:\n    type: dynamic\nresources:\n  monitor1:\n    type: flexibleengine:LbMonitorV3\n    properties:\n      protocol: HTTP\n      interval: 30\n      timeout: 15\n      maxRetries: 10\n      urlPath: /api\n      port: 8888\n      poolId: ${poolId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nELB monitor can be imported using the monitor ID, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/lbMonitorV3:LbMonitorV3 monitor_1 5c20fdad-7288-11eb-b817-0255ac10158b\n```\n\n",
      "properties": {
        "domainName": {
          "type": "string",
          "description": "Specifies the Domain Name of the Monitor.\n"
        },
        "interval": {
          "type": "number",
          "description": "Specifies the time, in seconds, between sending probes to members.\n"
        },
        "lbMonitorV3Id": {
          "type": "string",
          "description": "The unique ID for the monitor.\n"
        },
        "maxRetries": {
          "type": "number",
          "description": "Specifies the number of permissible ping failures before changing the member's\nstatus to INACTIVE. Must be a number between 1 and 10.\n"
        },
        "poolId": {
          "type": "string",
          "description": "Specifies the id of the pool that this monitor will be assigned to.\n"
        },
        "port": {
          "type": "number",
          "description": "Specifies the health check port. The value ranges from 1 to 65535.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the type of probe, which is TCP, HTTP, or HTTPS, that is\nsent by the load balancer to verify the member state. Changing this creates a new monitor.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the ELB monitor resource.\nIf omitted, the provider-level region will be used. Changing this creates a new monitor.\n"
        },
        "statusCode": {
          "type": "string"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the Maximum number of seconds for a monitor to wait for a ping reply before\nit times out. The value must be less than the delay value.\n"
        },
        "urlPath": {
          "type": "string",
          "description": "Specifies the required for HTTP(S) types. URI path that will be accessed if monitor\ntype is HTTP or HTTPS.\n"
        }
      },
      "type": "object",
      "required": [
        "domainName",
        "interval",
        "lbMonitorV3Id",
        "maxRetries",
        "poolId",
        "port",
        "protocol",
        "region",
        "statusCode",
        "timeout",
        "urlPath"
      ],
      "inputProperties": {
        "domainName": {
          "type": "string",
          "description": "Specifies the Domain Name of the Monitor.\n"
        },
        "interval": {
          "type": "number",
          "description": "Specifies the time, in seconds, between sending probes to members.\n"
        },
        "lbMonitorV3Id": {
          "type": "string",
          "description": "The unique ID for the monitor.\n"
        },
        "maxRetries": {
          "type": "number",
          "description": "Specifies the number of permissible ping failures before changing the member's\nstatus to INACTIVE. Must be a number between 1 and 10.\n"
        },
        "poolId": {
          "type": "string",
          "description": "Specifies the id of the pool that this monitor will be assigned to.\n"
        },
        "port": {
          "type": "number",
          "description": "Specifies the health check port. The value ranges from 1 to 65535.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the type of probe, which is TCP, HTTP, or HTTPS, that is\nsent by the load balancer to verify the member state. Changing this creates a new monitor.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the ELB monitor resource.\nIf omitted, the provider-level region will be used. Changing this creates a new monitor.\n"
        },
        "statusCode": {
          "type": "string"
        },
        "timeout": {
          "type": "number",
          "description": "Specifies the Maximum number of seconds for a monitor to wait for a ping reply before\nit times out. The value must be less than the delay value.\n"
        },
        "urlPath": {
          "type": "string",
          "description": "Specifies the required for HTTP(S) types. URI path that will be accessed if monitor\ntype is HTTP or HTTPS.\n"
        }
      },
      "requiredInputs": [
        "interval",
        "maxRetries",
        "poolId",
        "protocol",
        "timeout"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbMonitorV3 resources.\n",
        "properties": {
          "domainName": {
            "type": "string",
            "description": "Specifies the Domain Name of the Monitor.\n"
          },
          "interval": {
            "type": "number",
            "description": "Specifies the time, in seconds, between sending probes to members.\n"
          },
          "lbMonitorV3Id": {
            "type": "string",
            "description": "The unique ID for the monitor.\n"
          },
          "maxRetries": {
            "type": "number",
            "description": "Specifies the number of permissible ping failures before changing the member's\nstatus to INACTIVE. Must be a number between 1 and 10.\n"
          },
          "poolId": {
            "type": "string",
            "description": "Specifies the id of the pool that this monitor will be assigned to.\n"
          },
          "port": {
            "type": "number",
            "description": "Specifies the health check port. The value ranges from 1 to 65535.\n"
          },
          "protocol": {
            "type": "string",
            "description": "Specifies the type of probe, which is TCP, HTTP, or HTTPS, that is\nsent by the load balancer to verify the member state. Changing this creates a new monitor.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the ELB monitor resource.\nIf omitted, the provider-level region will be used. Changing this creates a new monitor.\n"
          },
          "statusCode": {
            "type": "string"
          },
          "timeout": {
            "type": "number",
            "description": "Specifies the Maximum number of seconds for a monitor to wait for a ping reply before\nit times out. The value must be less than the delay value.\n"
          },
          "urlPath": {
            "type": "string",
            "description": "Specifies the required for HTTP(S) types. URI path that will be accessed if monitor\ntype is HTTP or HTTPS.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbPoolV2:LbPoolV2": {
      "description": "Manages an **enhanced** load balancer pool resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst pool1 = new flexibleengine.LbPoolV2(\"pool1\", {\n    lbMethod: \"ROUND_ROBIN\",\n    listenerId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n    persistences: [{\n        cookieName: \"testCookie\",\n        type: \"HTTP_COOKIE\",\n    }],\n    protocol: \"HTTP\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\npool1 = flexibleengine.LbPoolV2(\"pool1\",\n    lb_method=\"ROUND_ROBIN\",\n    listener_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n    persistences=[{\n        \"cookie_name\": \"testCookie\",\n        \"type\": \"HTTP_COOKIE\",\n    }],\n    protocol=\"HTTP\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var pool1 = new Flexibleengine.LbPoolV2(\"pool1\", new()\n    {\n        LbMethod = \"ROUND_ROBIN\",\n        ListenerId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n        Persistences = new[]\n        {\n            new Flexibleengine.Inputs.LbPoolV2PersistenceArgs\n            {\n                CookieName = \"testCookie\",\n                Type = \"HTTP_COOKIE\",\n            },\n        },\n        Protocol = \"HTTP\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewLbPoolV2(ctx, \"pool1\", &flexibleengine.LbPoolV2Args{\n\t\t\tLbMethod:   pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tListenerId: pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t\tPersistences: flexibleengine.LbPoolV2PersistenceArray{\n\t\t\t\t&flexibleengine.LbPoolV2PersistenceArgs{\n\t\t\t\t\tCookieName: pulumi.String(\"testCookie\"),\n\t\t\t\t\tType:       pulumi.String(\"HTTP_COOKIE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LbPoolV2;\nimport com.pulumi.flexibleengine.LbPoolV2Args;\nimport com.pulumi.flexibleengine.inputs.LbPoolV2PersistenceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var pool1 = new LbPoolV2(\"pool1\", LbPoolV2Args.builder()\n            .lbMethod(\"ROUND_ROBIN\")\n            .listenerId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n            .persistences(LbPoolV2PersistenceArgs.builder()\n                .cookieName(\"testCookie\")\n                .type(\"HTTP_COOKIE\")\n                .build())\n            .protocol(\"HTTP\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pool1:\n    type: flexibleengine:LbPoolV2\n    properties:\n      lbMethod: ROUND_ROBIN\n      listenerId: d9415786-5f1a-428b-b35f-2f1523e146d2\n      persistences:\n        - cookieName: testCookie\n          type: HTTP_COOKIE\n      protocol: HTTP\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nELB pool can be imported using the ELB pool ID, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/lbPoolV2:LbPoolV2 pool_1 3e3632db-36c6-4b28-a92e-e72e6562daa6\n```\n\n",
      "properties": {
        "adminStateUp": {
          "type": "boolean"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the pool.\n"
        },
        "lbMethod": {
          "type": "string",
          "description": "The load balancing algorithm to\ndistribute traffic to the pool's members. Must be one of\nROUND_ROBIN, LEAST_CONNECTIONS, or SOURCE_IP.\n"
        },
        "lbPoolV2Id": {
          "type": "string",
          "description": "The unique ID for the pool.\n"
        },
        "listenerId": {
          "type": "string",
          "description": "The Listener on which the members of the pool\nwill be associated with. Changing this creates a new pool.\nNote: One of LoadbalancerID or ListenerID must be provided.\n"
        },
        "loadbalancerId": {
          "type": "string",
          "description": "The load balancer on which to provision this\npool. Changing this creates a new pool.\nNote: One of LoadbalancerID or ListenerID must be provided.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the pool.\n"
        },
        "persistences": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FLbPoolV2Persistence:LbPoolV2Persistence"
          },
          "description": "Omit this field to prevent session persistence. Indicates\nwhether connections in the same session will be processed by the same Pool member or not.\nThe persistence object structure is documented below.\nChanging this creates a new pool.\n\n<a name=\"lb_persistence\"></a>\nThe `persistence` block supports:\n"
        },
        "protocol": {
          "type": "string",
          "description": "The protocol - can either be TCP, UDP or HTTP.\n\n+ When the protocol used by the listener is UDP, the protocol of the backend pool must be UDP.\n+ When the protocol used by the listener is TCP, the protocol of the backend pool must be TCP.\n+ When the protocol used by the listener is HTTP or TERMINATED_HTTPS, the protocol of the backend pool must be HTTP.\n\nChanging this creates a new pool.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new pool.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbPoolV2Timeouts:LbPoolV2Timeouts"
        }
      },
      "type": "object",
      "required": [
        "lbMethod",
        "lbPoolV2Id",
        "listenerId",
        "loadbalancerId",
        "name",
        "protocol",
        "region",
        "tenantId"
      ],
      "inputProperties": {
        "adminStateUp": {
          "type": "boolean"
        },
        "description": {
          "type": "string",
          "description": "Human-readable description for the pool.\n"
        },
        "lbMethod": {
          "type": "string",
          "description": "The load balancing algorithm to\ndistribute traffic to the pool's members. Must be one of\nROUND_ROBIN, LEAST_CONNECTIONS, or SOURCE_IP.\n"
        },
        "lbPoolV2Id": {
          "type": "string",
          "description": "The unique ID for the pool.\n"
        },
        "listenerId": {
          "type": "string",
          "description": "The Listener on which the members of the pool\nwill be associated with. Changing this creates a new pool.\nNote: One of LoadbalancerID or ListenerID must be provided.\n"
        },
        "loadbalancerId": {
          "type": "string",
          "description": "The load balancer on which to provision this\npool. Changing this creates a new pool.\nNote: One of LoadbalancerID or ListenerID must be provided.\n"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for the pool.\n"
        },
        "persistences": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FLbPoolV2Persistence:LbPoolV2Persistence"
          },
          "description": "Omit this field to prevent session persistence. Indicates\nwhether connections in the same session will be processed by the same Pool member or not.\nThe persistence object structure is documented below.\nChanging this creates a new pool.\n\n<a name=\"lb_persistence\"></a>\nThe `persistence` block supports:\n"
        },
        "protocol": {
          "type": "string",
          "description": "The protocol - can either be TCP, UDP or HTTP.\n\n+ When the protocol used by the listener is UDP, the protocol of the backend pool must be UDP.\n+ When the protocol used by the listener is TCP, the protocol of the backend pool must be TCP.\n+ When the protocol used by the listener is HTTP or TERMINATED_HTTPS, the protocol of the backend pool must be HTTP.\n\nChanging this creates a new pool.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new pool.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbPoolV2Timeouts:LbPoolV2Timeouts"
        }
      },
      "requiredInputs": [
        "lbMethod",
        "protocol"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbPoolV2 resources.\n",
        "properties": {
          "adminStateUp": {
            "type": "boolean"
          },
          "description": {
            "type": "string",
            "description": "Human-readable description for the pool.\n"
          },
          "lbMethod": {
            "type": "string",
            "description": "The load balancing algorithm to\ndistribute traffic to the pool's members. Must be one of\nROUND_ROBIN, LEAST_CONNECTIONS, or SOURCE_IP.\n"
          },
          "lbPoolV2Id": {
            "type": "string",
            "description": "The unique ID for the pool.\n"
          },
          "listenerId": {
            "type": "string",
            "description": "The Listener on which the members of the pool\nwill be associated with. Changing this creates a new pool.\nNote: One of LoadbalancerID or ListenerID must be provided.\n"
          },
          "loadbalancerId": {
            "type": "string",
            "description": "The load balancer on which to provision this\npool. Changing this creates a new pool.\nNote: One of LoadbalancerID or ListenerID must be provided.\n"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for the pool.\n"
          },
          "persistences": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FLbPoolV2Persistence:LbPoolV2Persistence"
            },
            "description": "Omit this field to prevent session persistence. Indicates\nwhether connections in the same session will be processed by the same Pool member or not.\nThe persistence object structure is documented below.\nChanging this creates a new pool.\n\n<a name=\"lb_persistence\"></a>\nThe `persistence` block supports:\n"
          },
          "protocol": {
            "type": "string",
            "description": "The protocol - can either be TCP, UDP or HTTP.\n\n+ When the protocol used by the listener is UDP, the protocol of the backend pool must be UDP.\n+ When the protocol used by the listener is TCP, the protocol of the backend pool must be TCP.\n+ When the protocol used by the listener is HTTP or TERMINATED_HTTPS, the protocol of the backend pool must be HTTP.\n\nChanging this creates a new pool.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new pool.\n"
          },
          "tenantId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FLbPoolV2Timeouts:LbPoolV2Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbPoolV3:LbPoolV3": {
      "description": "Manages an ELB pool resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst listenerId = config.requireObject(\"listenerId\");\nconst pool1 = new flexibleengine.LbPoolV3(\"pool1\", {\n    protocol: \"HTTP\",\n    lbMethod: \"ROUND_ROBIN\",\n    listenerId: listenerId,\n    persistences: [{\n        type: \"HTTP_COOKIE\",\n        cookieName: \"testCookie\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nlistener_id = config.require_object(\"listenerId\")\npool1 = flexibleengine.LbPoolV3(\"pool1\",\n    protocol=\"HTTP\",\n    lb_method=\"ROUND_ROBIN\",\n    listener_id=listener_id,\n    persistences=[{\n        \"type\": \"HTTP_COOKIE\",\n        \"cookie_name\": \"testCookie\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var listenerId = config.RequireObject<dynamic>(\"listenerId\");\n    var pool1 = new Flexibleengine.LbPoolV3(\"pool1\", new()\n    {\n        Protocol = \"HTTP\",\n        LbMethod = \"ROUND_ROBIN\",\n        ListenerId = listenerId,\n        Persistences = new[]\n        {\n            new Flexibleengine.Inputs.LbPoolV3PersistenceArgs\n            {\n                Type = \"HTTP_COOKIE\",\n                CookieName = \"testCookie\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tlistenerId := cfg.RequireObject(\"listenerId\")\n\t\t_, err := flexibleengine.NewLbPoolV3(ctx, \"pool1\", &flexibleengine.LbPoolV3Args{\n\t\t\tProtocol:   pulumi.String(\"HTTP\"),\n\t\t\tLbMethod:   pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tListenerId: pulumi.Any(listenerId),\n\t\t\tPersistences: flexibleengine.LbPoolV3PersistenceArray{\n\t\t\t\t&flexibleengine.LbPoolV3PersistenceArgs{\n\t\t\t\t\tType:       pulumi.String(\"HTTP_COOKIE\"),\n\t\t\t\t\tCookieName: pulumi.String(\"testCookie\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LbPoolV3;\nimport com.pulumi.flexibleengine.LbPoolV3Args;\nimport com.pulumi.flexibleengine.inputs.LbPoolV3PersistenceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var listenerId = config.get(\"listenerId\");\n        var pool1 = new LbPoolV3(\"pool1\", LbPoolV3Args.builder()\n            .protocol(\"HTTP\")\n            .lbMethod(\"ROUND_ROBIN\")\n            .listenerId(listenerId)\n            .persistences(LbPoolV3PersistenceArgs.builder()\n                .type(\"HTTP_COOKIE\")\n                .cookieName(\"testCookie\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  listenerId:\n    type: dynamic\nresources:\n  pool1:\n    type: flexibleengine:LbPoolV3\n    properties:\n      protocol: HTTP\n      lbMethod: ROUND_ROBIN\n      listenerId: ${listenerId}\n      persistences:\n        - type: HTTP_COOKIE\n          cookieName: testCookie\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nELB pool can be imported using the pool ID, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/lbPoolV3:LbPoolV3 pool_1 5c20fdad-7288-11eb-b817-0255ac10158b\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description for the pool.\n"
        },
        "ipVersion": {
          "type": "string"
        },
        "lbMethod": {
          "type": "string",
          "description": "Specifies the load balancing algorithm to distribute traffic to the pool's members.\nMust be one of ROUND_ROBIN, LEAST_CONNECTIONS, or SOURCE_IP.\n"
        },
        "lbPoolV3Id": {
          "type": "string",
          "description": "The unique ID for the pool.\n"
        },
        "listenerId": {
          "type": "string",
          "description": "Specifies the listener on which the members of the pool will be\nassociated with.\nChanging this creates a new pool. Note:  Exactly one of LoadbalancerID or ListenerID must be provided.\n"
        },
        "loadbalancerId": {
          "type": "string",
          "description": "Specifies the load balancer on which to provision this pool.\nChanging this creates a new pool. Note:  Exactly one of LoadbalancerID or ListenerID must be provided.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name for the pool.\n"
        },
        "persistences": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FLbPoolV3Persistence:LbPoolV3Persistence"
          },
          "description": "Specifies the omit this field to prevent session persistence.\nIndicates whether connections in the same session will be processed by the same Pool member or not.\nThe persistence object structure is documented below. Changing this creates a new pool.\n\n<a name=\"lb_persistence\"></a>\nThe `persistence` argument supports:\n"
        },
        "protectionReason": {
          "type": "string"
        },
        "protectionStatus": {
          "type": "string"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol used by the pool. The value can be TCP, UDP,\nHTTP, HTTPS or QUIC.\n+ When the protocol used by the listener is UDP, the protocol of the backend pool must be UDP or QUIC.\n+ When the protocol used by the listener is TCP, the protocol of the backend pool must be TCP.\n+ When the protocol used by the listener is HTTP, the protocol of the backend pool must be HTTP.\n+ When the protocol used by the listener is HTTPS, the protocol of the backend pool must be HTTPS.\n+ When the protocol used by the listener is TERMINATED_HTTPS, the protocol of the backend pool must be HTTP.\nChanging this creates a new pool.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the ELB pool resource.\nIf omitted, the provider-level region will be used. Changing this will create a new ELB pool resource.\n"
        },
        "slowStartDuration": {
          "type": "number"
        },
        "slowStartEnabled": {
          "type": "boolean"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbPoolV3Timeouts:LbPoolV3Timeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of persistence mode. The current specification supports\nSOURCE_IP, HTTP_COOKIE, and APP_COOKIE.\n"
        },
        "vpcId": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "ipVersion",
        "lbMethod",
        "lbPoolV3Id",
        "listenerId",
        "loadbalancerId",
        "name",
        "protectionStatus",
        "protocol",
        "region",
        "slowStartDuration",
        "slowStartEnabled",
        "type",
        "vpcId"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies the description for the pool.\n"
        },
        "lbMethod": {
          "type": "string",
          "description": "Specifies the load balancing algorithm to distribute traffic to the pool's members.\nMust be one of ROUND_ROBIN, LEAST_CONNECTIONS, or SOURCE_IP.\n"
        },
        "lbPoolV3Id": {
          "type": "string",
          "description": "The unique ID for the pool.\n"
        },
        "listenerId": {
          "type": "string",
          "description": "Specifies the listener on which the members of the pool will be\nassociated with.\nChanging this creates a new pool. Note:  Exactly one of LoadbalancerID or ListenerID must be provided.\n"
        },
        "loadbalancerId": {
          "type": "string",
          "description": "Specifies the load balancer on which to provision this pool.\nChanging this creates a new pool. Note:  Exactly one of LoadbalancerID or ListenerID must be provided.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name for the pool.\n"
        },
        "persistences": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FLbPoolV3Persistence:LbPoolV3Persistence"
          },
          "description": "Specifies the omit this field to prevent session persistence.\nIndicates whether connections in the same session will be processed by the same Pool member or not.\nThe persistence object structure is documented below. Changing this creates a new pool.\n\n<a name=\"lb_persistence\"></a>\nThe `persistence` argument supports:\n"
        },
        "protectionReason": {
          "type": "string"
        },
        "protectionStatus": {
          "type": "string"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol used by the pool. The value can be TCP, UDP,\nHTTP, HTTPS or QUIC.\n+ When the protocol used by the listener is UDP, the protocol of the backend pool must be UDP or QUIC.\n+ When the protocol used by the listener is TCP, the protocol of the backend pool must be TCP.\n+ When the protocol used by the listener is HTTP, the protocol of the backend pool must be HTTP.\n+ When the protocol used by the listener is HTTPS, the protocol of the backend pool must be HTTPS.\n+ When the protocol used by the listener is TERMINATED_HTTPS, the protocol of the backend pool must be HTTP.\nChanging this creates a new pool.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the ELB pool resource.\nIf omitted, the provider-level region will be used. Changing this will create a new ELB pool resource.\n"
        },
        "slowStartDuration": {
          "type": "number"
        },
        "slowStartEnabled": {
          "type": "boolean"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbPoolV3Timeouts:LbPoolV3Timeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of persistence mode. The current specification supports\nSOURCE_IP, HTTP_COOKIE, and APP_COOKIE.\n"
        },
        "vpcId": {
          "type": "string"
        }
      },
      "requiredInputs": [
        "lbMethod",
        "protocol"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbPoolV3 resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies the description for the pool.\n"
          },
          "ipVersion": {
            "type": "string"
          },
          "lbMethod": {
            "type": "string",
            "description": "Specifies the load balancing algorithm to distribute traffic to the pool's members.\nMust be one of ROUND_ROBIN, LEAST_CONNECTIONS, or SOURCE_IP.\n"
          },
          "lbPoolV3Id": {
            "type": "string",
            "description": "The unique ID for the pool.\n"
          },
          "listenerId": {
            "type": "string",
            "description": "Specifies the listener on which the members of the pool will be\nassociated with.\nChanging this creates a new pool. Note:  Exactly one of LoadbalancerID or ListenerID must be provided.\n"
          },
          "loadbalancerId": {
            "type": "string",
            "description": "Specifies the load balancer on which to provision this pool.\nChanging this creates a new pool. Note:  Exactly one of LoadbalancerID or ListenerID must be provided.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name for the pool.\n"
          },
          "persistences": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FLbPoolV3Persistence:LbPoolV3Persistence"
            },
            "description": "Specifies the omit this field to prevent session persistence.\nIndicates whether connections in the same session will be processed by the same Pool member or not.\nThe persistence object structure is documented below. Changing this creates a new pool.\n\n<a name=\"lb_persistence\"></a>\nThe `persistence` argument supports:\n"
          },
          "protectionReason": {
            "type": "string"
          },
          "protectionStatus": {
            "type": "string"
          },
          "protocol": {
            "type": "string",
            "description": "Specifies the protocol used by the pool. The value can be TCP, UDP,\nHTTP, HTTPS or QUIC.\n+ When the protocol used by the listener is UDP, the protocol of the backend pool must be UDP or QUIC.\n+ When the protocol used by the listener is TCP, the protocol of the backend pool must be TCP.\n+ When the protocol used by the listener is HTTP, the protocol of the backend pool must be HTTP.\n+ When the protocol used by the listener is HTTPS, the protocol of the backend pool must be HTTPS.\n+ When the protocol used by the listener is TERMINATED_HTTPS, the protocol of the backend pool must be HTTP.\nChanging this creates a new pool.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the ELB pool resource.\nIf omitted, the provider-level region will be used. Changing this will create a new ELB pool resource.\n"
          },
          "slowStartDuration": {
            "type": "number"
          },
          "slowStartEnabled": {
            "type": "boolean"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FLbPoolV3Timeouts:LbPoolV3Timeouts"
          },
          "type": {
            "type": "string",
            "description": "Specifies the type of persistence mode. The current specification supports\nSOURCE_IP, HTTP_COOKIE, and APP_COOKIE.\n"
          },
          "vpcId": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/lbWhitelistV2:LbWhitelistV2": {
      "description": "Manages an **enhanced** load balancer whitelist resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst whitelist1 = new flexibleengine.LbWhitelistV2(\"whitelist1\", {\n    enableWhitelist: true,\n    listenerId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n    whitelist: \"192.168.11.1,192.168.0.1/24,192.168.201.18/8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nwhitelist1 = flexibleengine.LbWhitelistV2(\"whitelist1\",\n    enable_whitelist=True,\n    listener_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n    whitelist=\"192.168.11.1,192.168.0.1/24,192.168.201.18/8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var whitelist1 = new Flexibleengine.LbWhitelistV2(\"whitelist1\", new()\n    {\n        EnableWhitelist = true,\n        ListenerId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n        Whitelist = \"192.168.11.1,192.168.0.1/24,192.168.201.18/8\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewLbWhitelistV2(ctx, \"whitelist1\", &flexibleengine.LbWhitelistV2Args{\n\t\t\tEnableWhitelist: pulumi.Bool(true),\n\t\t\tListenerId:      pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t\tWhitelist:       pulumi.String(\"192.168.11.1,192.168.0.1/24,192.168.201.18/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LbWhitelistV2;\nimport com.pulumi.flexibleengine.LbWhitelistV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var whitelist1 = new LbWhitelistV2(\"whitelist1\", LbWhitelistV2Args.builder()\n            .enableWhitelist(true)\n            .listenerId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n            .whitelist(\"192.168.11.1,192.168.0.1/24,192.168.201.18/8\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  whitelist1:\n    type: flexibleengine:LbWhitelistV2\n    properties:\n      enableWhitelist: true\n      listenerId: d9415786-5f1a-428b-b35f-2f1523e146d2\n      whitelist: 192.168.11.1,192.168.0.1/24,192.168.201.18/8\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "enableWhitelist": {
          "type": "boolean",
          "description": "Specify whether to enable access control.\n"
        },
        "lbWhitelistV2Id": {
          "type": "string",
          "description": "The unique ID for the whitelist.\n"
        },
        "listenerId": {
          "type": "string",
          "description": "The Listener ID that the whitelist will be associated with.\nChanging this creates a new whitelist.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbWhitelistV2Timeouts:LbWhitelistV2Timeouts"
        },
        "whitelist": {
          "type": "string",
          "description": "Specifies the IP addresses in the whitelist. Use commas(,) to separate\nthe multiple IP addresses.\n"
        }
      },
      "type": "object",
      "required": [
        "lbWhitelistV2Id",
        "listenerId",
        "tenantId"
      ],
      "inputProperties": {
        "enableWhitelist": {
          "type": "boolean",
          "description": "Specify whether to enable access control.\n"
        },
        "lbWhitelistV2Id": {
          "type": "string",
          "description": "The unique ID for the whitelist.\n"
        },
        "listenerId": {
          "type": "string",
          "description": "The Listener ID that the whitelist will be associated with.\nChanging this creates a new whitelist.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FLbWhitelistV2Timeouts:LbWhitelistV2Timeouts"
        },
        "whitelist": {
          "type": "string",
          "description": "Specifies the IP addresses in the whitelist. Use commas(,) to separate\nthe multiple IP addresses.\n"
        }
      },
      "requiredInputs": [
        "listenerId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LbWhitelistV2 resources.\n",
        "properties": {
          "enableWhitelist": {
            "type": "boolean",
            "description": "Specify whether to enable access control.\n"
          },
          "lbWhitelistV2Id": {
            "type": "string",
            "description": "The unique ID for the whitelist.\n"
          },
          "listenerId": {
            "type": "string",
            "description": "The Listener ID that the whitelist will be associated with.\nChanging this creates a new whitelist.\n"
          },
          "tenantId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FLbWhitelistV2Timeouts:LbWhitelistV2Timeouts"
          },
          "whitelist": {
            "type": "string",
            "description": "Specifies the IP addresses in the whitelist. Use commas(,) to separate\nthe multiple IP addresses.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/ltsGroup:LtsGroup": {
      "description": "Manages a log group resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst group1 = new flexibleengine.LtsGroup(\"group1\", {groupName: \"log_group1\"});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ngroup1 = flexibleengine.LtsGroup(\"group1\", group_name=\"log_group1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var group1 = new Flexibleengine.LtsGroup(\"group1\", new()\n    {\n        GroupName = \"log_group1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewLtsGroup(ctx, \"group1\", &flexibleengine.LtsGroupArgs{\n\t\t\tGroupName: pulumi.String(\"log_group1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LtsGroup;\nimport com.pulumi.flexibleengine.LtsGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var group1 = new LtsGroup(\"group1\", LtsGroupArgs.builder()\n            .groupName(\"log_group1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: flexibleengine:LtsGroup\n    properties:\n      groupName: log_group1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLog group can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/ltsGroup:LtsGroup group_1 6e728c21-e3b6-11eb-b081-286ed488cb76\n```\n\n",
      "properties": {
        "groupName": {
          "type": "string",
          "description": "Specifies the log group name.\nChanging this parameter will create a new resource.\n"
        },
        "ltsGroupId": {
          "type": "string",
          "description": "The log group ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the log group resource.\nIf omitted, the provider-level region will be used. Changing this creates a new log group resource.\n"
        },
        "ttlInDays": {
          "type": "number",
          "description": "Indicates the log expiration time. The value is fixed to 7 days.\n"
        }
      },
      "type": "object",
      "required": [
        "groupName",
        "ltsGroupId",
        "region",
        "ttlInDays"
      ],
      "inputProperties": {
        "groupName": {
          "type": "string",
          "description": "Specifies the log group name.\nChanging this parameter will create a new resource.\n"
        },
        "ltsGroupId": {
          "type": "string",
          "description": "The log group ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the log group resource.\nIf omitted, the provider-level region will be used. Changing this creates a new log group resource.\n"
        }
      },
      "requiredInputs": [
        "groupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LtsGroup resources.\n",
        "properties": {
          "groupName": {
            "type": "string",
            "description": "Specifies the log group name.\nChanging this parameter will create a new resource.\n"
          },
          "ltsGroupId": {
            "type": "string",
            "description": "The log group ID in UUID format.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the log group resource.\nIf omitted, the provider-level region will be used. Changing this creates a new log group resource.\n"
          },
          "ttlInDays": {
            "type": "number",
            "description": "Indicates the log expiration time. The value is fixed to 7 days.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/ltsTopic:LtsTopic": {
      "description": "Manage a log topic resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst testGroup = new flexibleengine.LtsGroup(\"testGroup\", {groupName: \"test_group\"});\nconst testTopic = new flexibleengine.LtsTopic(\"testTopic\", {\n    groupId: testGroup.ltsGroupId,\n    topicName: \"test1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest_group = flexibleengine.LtsGroup(\"testGroup\", group_name=\"test_group\")\ntest_topic = flexibleengine.LtsTopic(\"testTopic\",\n    group_id=test_group.lts_group_id,\n    topic_name=\"test1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var testGroup = new Flexibleengine.LtsGroup(\"testGroup\", new()\n    {\n        GroupName = \"test_group\",\n    });\n\n    var testTopic = new Flexibleengine.LtsTopic(\"testTopic\", new()\n    {\n        GroupId = testGroup.LtsGroupId,\n        TopicName = \"test1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestGroup, err := flexibleengine.NewLtsGroup(ctx, \"testGroup\", &flexibleengine.LtsGroupArgs{\n\t\t\tGroupName: pulumi.String(\"test_group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewLtsTopic(ctx, \"testTopic\", &flexibleengine.LtsTopicArgs{\n\t\t\tGroupId:   testGroup.LtsGroupId,\n\t\t\tTopicName: pulumi.String(\"test1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LtsGroup;\nimport com.pulumi.flexibleengine.LtsGroupArgs;\nimport com.pulumi.flexibleengine.LtsTopic;\nimport com.pulumi.flexibleengine.LtsTopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testGroup = new LtsGroup(\"testGroup\", LtsGroupArgs.builder()\n            .groupName(\"test_group\")\n            .build());\n\n        var testTopic = new LtsTopic(\"testTopic\", LtsTopicArgs.builder()\n            .groupId(testGroup.ltsGroupId())\n            .topicName(\"test1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testGroup:\n    type: flexibleengine:LtsGroup\n    properties:\n      groupName: test_group\n  testTopic:\n    type: flexibleengine:LtsTopic\n    properties:\n      groupId: ${testGroup.ltsGroupId}\n      topicName: test1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLog topic can be imported using the group ID and topic ID separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/ltsTopic:LtsTopic topic_1 393f2bfd-2244-11ea-adb7-286ed488c87f/137159d3-e3b7-11eb-b952-286ed488cb76\n```\n\n",
      "properties": {
        "filterCount": {
          "type": "number",
          "description": "The Number of metric filter.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the ID of a created log group.\nChanging this parameter will create a new resource.\n"
        },
        "indexEnabled": {
          "type": "boolean",
          "deprecationMessage": "Deprecated"
        },
        "ltsTopicId": {
          "type": "string",
          "description": "The log topic ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the log topic resource.\nIf omitted, the provider-level region will be used. Changing this will create a new log topic resource.\n"
        },
        "topicName": {
          "type": "string",
          "description": "Specifies the log topic name.\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "filterCount",
        "groupId",
        "indexEnabled",
        "ltsTopicId",
        "region",
        "topicName"
      ],
      "inputProperties": {
        "groupId": {
          "type": "string",
          "description": "Specifies the ID of a created log group.\nChanging this parameter will create a new resource.\n"
        },
        "ltsTopicId": {
          "type": "string",
          "description": "The log topic ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the log topic resource.\nIf omitted, the provider-level region will be used. Changing this will create a new log topic resource.\n"
        },
        "topicName": {
          "type": "string",
          "description": "Specifies the log topic name.\nChanging this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "groupId",
        "topicName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LtsTopic resources.\n",
        "properties": {
          "filterCount": {
            "type": "number",
            "description": "The Number of metric filter.\n"
          },
          "groupId": {
            "type": "string",
            "description": "Specifies the ID of a created log group.\nChanging this parameter will create a new resource.\n"
          },
          "indexEnabled": {
            "type": "boolean",
            "deprecationMessage": "Deprecated"
          },
          "ltsTopicId": {
            "type": "string",
            "description": "The log topic ID in UUID format.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the log topic resource.\nIf omitted, the provider-level region will be used. Changing this will create a new log topic resource.\n"
          },
          "topicName": {
            "type": "string",
            "description": "Specifies the log topic name.\nChanging this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/mlsInstanceV1:MlsInstanceV1": {
      "description": "Manages mls instance resource within FlexibleEngine\n\n## Example Usage\n\n### Creating A MLS Instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst cluster1 = new flexibleengine.MrsClusterV1(\"cluster1\", {\n    clusterName: \"mrs-cluster-acc\",\n    region: \"eu-west-0\",\n    billingType: 12,\n    masterNodeNum: 2,\n    coreNodeNum: 3,\n    masterNodeSize: \"s1.4xlarge.linux.mrs\",\n    coreNodeSize: \"s1.xlarge.linux.mrs\",\n    availableZoneId: \"eu-west-0a\",\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    clusterVersion: \"MRS 1.3.0\",\n    volumeType: \"SATA\",\n    volumeSize: 100,\n    safeMode: 0,\n    clusterType: 0,\n    nodePublicCertName: \"KeyPair-ci\",\n    clusterAdminSecret: \"\",\n    componentLists: [\n        {\n            componentName: \"Hadoop\",\n        },\n        {\n            componentName: \"Spark\",\n        },\n        {\n            componentName: \"Hive\",\n        },\n    ],\n});\nconst instance = new flexibleengine.MlsInstanceV1(\"instance\", {\n    version: \"1.2.0\",\n    flavor: \"mls.c2.2xlarge.common\",\n    network: {\n        vpcId: exampleVpc.vpcV1Id,\n        subnetId: exampleSubnet.vpcSubnetV1Id,\n        availableZone: \"eu-west-0a\",\n        publicIp: {\n            bindType: \"not_use\",\n        },\n    },\n    mrsCluster: {\n        id: cluster1.mrsClusterV1Id,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\ncluster1 = flexibleengine.MrsClusterV1(\"cluster1\",\n    cluster_name=\"mrs-cluster-acc\",\n    region=\"eu-west-0\",\n    billing_type=12,\n    master_node_num=2,\n    core_node_num=3,\n    master_node_size=\"s1.4xlarge.linux.mrs\",\n    core_node_size=\"s1.xlarge.linux.mrs\",\n    available_zone_id=\"eu-west-0a\",\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    cluster_version=\"MRS 1.3.0\",\n    volume_type=\"SATA\",\n    volume_size=100,\n    safe_mode=0,\n    cluster_type=0,\n    node_public_cert_name=\"KeyPair-ci\",\n    cluster_admin_secret=\"\",\n    component_lists=[\n        {\n            \"component_name\": \"Hadoop\",\n        },\n        {\n            \"component_name\": \"Spark\",\n        },\n        {\n            \"component_name\": \"Hive\",\n        },\n    ])\ninstance = flexibleengine.MlsInstanceV1(\"instance\",\n    version=\"1.2.0\",\n    flavor=\"mls.c2.2xlarge.common\",\n    network={\n        \"vpc_id\": example_vpc.vpc_v1_id,\n        \"subnet_id\": example_subnet.vpc_subnet_v1_id,\n        \"available_zone\": \"eu-west-0a\",\n        \"public_ip\": {\n            \"bind_type\": \"not_use\",\n        },\n    },\n    mrs_cluster={\n        \"id\": cluster1.mrs_cluster_v1_id,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var cluster1 = new Flexibleengine.MrsClusterV1(\"cluster1\", new()\n    {\n        ClusterName = \"mrs-cluster-acc\",\n        Region = \"eu-west-0\",\n        BillingType = 12,\n        MasterNodeNum = 2,\n        CoreNodeNum = 3,\n        MasterNodeSize = \"s1.4xlarge.linux.mrs\",\n        CoreNodeSize = \"s1.xlarge.linux.mrs\",\n        AvailableZoneId = \"eu-west-0a\",\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        ClusterVersion = \"MRS 1.3.0\",\n        VolumeType = \"SATA\",\n        VolumeSize = 100,\n        SafeMode = 0,\n        ClusterType = 0,\n        NodePublicCertName = \"KeyPair-ci\",\n        ClusterAdminSecret = \"\",\n        ComponentLists = new[]\n        {\n            new Flexibleengine.Inputs.MrsClusterV1ComponentListArgs\n            {\n                ComponentName = \"Hadoop\",\n            },\n            new Flexibleengine.Inputs.MrsClusterV1ComponentListArgs\n            {\n                ComponentName = \"Spark\",\n            },\n            new Flexibleengine.Inputs.MrsClusterV1ComponentListArgs\n            {\n                ComponentName = \"Hive\",\n            },\n        },\n    });\n\n    var instance = new Flexibleengine.MlsInstanceV1(\"instance\", new()\n    {\n        Version = \"1.2.0\",\n        Flavor = \"mls.c2.2xlarge.common\",\n        Network = new Flexibleengine.Inputs.MlsInstanceV1NetworkArgs\n        {\n            VpcId = exampleVpc.VpcV1Id,\n            SubnetId = exampleSubnet.VpcSubnetV1Id,\n            AvailableZone = \"eu-west-0a\",\n            PublicIp = new Flexibleengine.Inputs.MlsInstanceV1NetworkPublicIpArgs\n            {\n                BindType = \"not_use\",\n            },\n        },\n        MrsCluster = new Flexibleengine.Inputs.MlsInstanceV1MrsClusterArgs\n        {\n            Id = cluster1.MrsClusterV1Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster1, err := flexibleengine.NewMrsClusterV1(ctx, \"cluster1\", &flexibleengine.MrsClusterV1Args{\n\t\t\tClusterName:        pulumi.String(\"mrs-cluster-acc\"),\n\t\t\tRegion:             pulumi.String(\"eu-west-0\"),\n\t\t\tBillingType:        pulumi.Float64(12),\n\t\t\tMasterNodeNum:      pulumi.Float64(2),\n\t\t\tCoreNodeNum:        pulumi.Float64(3),\n\t\t\tMasterNodeSize:     pulumi.String(\"s1.4xlarge.linux.mrs\"),\n\t\t\tCoreNodeSize:       pulumi.String(\"s1.xlarge.linux.mrs\"),\n\t\t\tAvailableZoneId:    pulumi.String(\"eu-west-0a\"),\n\t\t\tVpcId:              exampleVpc.VpcV1Id,\n\t\t\tSubnetId:           exampleSubnet.VpcSubnetV1Id,\n\t\t\tClusterVersion:     pulumi.String(\"MRS 1.3.0\"),\n\t\t\tVolumeType:         pulumi.String(\"SATA\"),\n\t\t\tVolumeSize:         pulumi.Float64(100),\n\t\t\tSafeMode:           pulumi.Float64(0),\n\t\t\tClusterType:        pulumi.Float64(0),\n\t\t\tNodePublicCertName: pulumi.String(\"KeyPair-ci\"),\n\t\t\tClusterAdminSecret: pulumi.String(\"\"),\n\t\t\tComponentLists: flexibleengine.MrsClusterV1ComponentListArray{\n\t\t\t\t&flexibleengine.MrsClusterV1ComponentListArgs{\n\t\t\t\t\tComponentName: pulumi.String(\"Hadoop\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.MrsClusterV1ComponentListArgs{\n\t\t\t\t\tComponentName: pulumi.String(\"Spark\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.MrsClusterV1ComponentListArgs{\n\t\t\t\t\tComponentName: pulumi.String(\"Hive\"),\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 = flexibleengine.NewMlsInstanceV1(ctx, \"instance\", &flexibleengine.MlsInstanceV1Args{\n\t\t\tVersion: pulumi.String(\"1.2.0\"),\n\t\t\tFlavor:  pulumi.String(\"mls.c2.2xlarge.common\"),\n\t\t\tNetwork: &flexibleengine.MlsInstanceV1NetworkArgs{\n\t\t\t\tVpcId:         exampleVpc.VpcV1Id,\n\t\t\t\tSubnetId:      exampleSubnet.VpcSubnetV1Id,\n\t\t\t\tAvailableZone: pulumi.String(\"eu-west-0a\"),\n\t\t\t\tPublicIp: &flexibleengine.MlsInstanceV1NetworkPublicIpArgs{\n\t\t\t\t\tBindType: pulumi.String(\"not_use\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMrsCluster: &flexibleengine.MlsInstanceV1MrsClusterArgs{\n\t\t\t\tId: cluster1.MrsClusterV1Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.MrsClusterV1;\nimport com.pulumi.flexibleengine.MrsClusterV1Args;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV1ComponentListArgs;\nimport com.pulumi.flexibleengine.MlsInstanceV1;\nimport com.pulumi.flexibleengine.MlsInstanceV1Args;\nimport com.pulumi.flexibleengine.inputs.MlsInstanceV1NetworkArgs;\nimport com.pulumi.flexibleengine.inputs.MlsInstanceV1NetworkPublicIpArgs;\nimport com.pulumi.flexibleengine.inputs.MlsInstanceV1MrsClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var cluster1 = new MrsClusterV1(\"cluster1\", MrsClusterV1Args.builder()\n            .clusterName(\"mrs-cluster-acc\")\n            .region(\"eu-west-0\")\n            .billingType(12)\n            .masterNodeNum(2)\n            .coreNodeNum(3)\n            .masterNodeSize(\"s1.4xlarge.linux.mrs\")\n            .coreNodeSize(\"s1.xlarge.linux.mrs\")\n            .availableZoneId(\"eu-west-0a\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .clusterVersion(\"MRS 1.3.0\")\n            .volumeType(\"SATA\")\n            .volumeSize(100)\n            .safeMode(0)\n            .clusterType(0)\n            .nodePublicCertName(\"KeyPair-ci\")\n            .clusterAdminSecret(\"\")\n            .componentLists(            \n                MrsClusterV1ComponentListArgs.builder()\n                    .componentName(\"Hadoop\")\n                    .build(),\n                MrsClusterV1ComponentListArgs.builder()\n                    .componentName(\"Spark\")\n                    .build(),\n                MrsClusterV1ComponentListArgs.builder()\n                    .componentName(\"Hive\")\n                    .build())\n            .build());\n\n        var instance = new MlsInstanceV1(\"instance\", MlsInstanceV1Args.builder()\n            .version(\"1.2.0\")\n            .flavor(\"mls.c2.2xlarge.common\")\n            .network(MlsInstanceV1NetworkArgs.builder()\n                .vpcId(exampleVpc.vpcV1Id())\n                .subnetId(exampleSubnet.vpcSubnetV1Id())\n                .availableZone(\"eu-west-0a\")\n                .publicIp(MlsInstanceV1NetworkPublicIpArgs.builder()\n                    .bindType(\"not_use\")\n                    .build())\n                .build())\n            .mrsCluster(MlsInstanceV1MrsClusterArgs.builder()\n                .id(cluster1.mrsClusterV1Id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  cluster1:\n    type: flexibleengine:MrsClusterV1\n    properties:\n      clusterName: mrs-cluster-acc\n      region: eu-west-0\n      billingType: 12\n      masterNodeNum: 2\n      coreNodeNum: 3\n      masterNodeSize: s1.4xlarge.linux.mrs\n      coreNodeSize: s1.xlarge.linux.mrs\n      availableZoneId: eu-west-0a\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      clusterVersion: MRS 1.3.0\n      volumeType: SATA\n      volumeSize: 100\n      safeMode: 0\n      clusterType: 0\n      nodePublicCertName: KeyPair-ci\n      clusterAdminSecret: \"\"\n      componentLists:\n        - componentName: Hadoop\n        - componentName: Spark\n        - componentName: Hive\n  instance:\n    type: flexibleengine:MlsInstanceV1\n    properties:\n      version: 1.2.0\n      flavor: mls.c2.2xlarge.common\n      network:\n        vpcId: ${exampleVpc.vpcV1Id}\n        subnetId: ${exampleSubnet.vpcSubnetV1Id}\n        availableZone: eu-west-0a\n        publicIp:\n          bindType: not_use\n      mrsCluster:\n        id: ${cluster1.mrsClusterV1Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nMLS Instance can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/mlsInstanceV1:MlsInstanceV1 instance 1a2b3c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p\n```\n\n",
      "properties": {
        "agency": {
          "type": "string",
          "description": "Specifies the agency name. This parameter is mandatory only\nwhen you bind an instance to an elastic IP address (EIP). An instance must be\nbound to an EIP to grant MLS rights to obtain a tenant's token. NOTE: The tenant\nmust create an agency on the Identity and Access Management (IAM) interface in\nadvance. Changing this creates a new instance.\n"
        },
        "created": {
          "type": "string",
          "description": "Indicates the creation time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the instance flavor, only `mls.c2.2xlarge.common`\nis supported now. Changing this creates a new instance.\n"
        },
        "innerEndpoint": {
          "type": "string",
          "description": "Indicates the URL for accessing the instance. Only machines in the same\nVPC and subnet as the instance can access the URL.\n"
        },
        "mlsInstanceV1Id": {
          "type": "string",
          "description": "Specifies the ID of the MRS cluster. Changing this creates a new instance.\n"
        },
        "mrsCluster": {
          "$ref": "#/types/flexibleengine:index%2FMlsInstanceV1MrsCluster:MlsInstanceV1MrsCluster",
          "description": "Specifies the MRS cluster information which the instance\nis associated. The mrs_cluster object structure is documented below.\nNOTE: The current MRS instance requires an MRS cluster whose version is 1.3.0 and that is configured with the\nSpark component. MRS clusters whose version is not 1.3.0 or that are not configured\nwith the Spark component cannot be selected. Changing this creates a new instance.\n\n<a name=\"mls_network\"></a>\nThe `network` block supports:\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the MLS instance name. The DB instance name of\nthe same type is unique in the same tenant. Changing this creates a new instance.\n"
        },
        "network": {
          "$ref": "#/types/flexibleengine:index%2FMlsInstanceV1Network:MlsInstanceV1Network",
          "description": "Specifies the instance network information. The network\nobject structure is documented below. Changing this creates a new instance.\n"
        },
        "publicEndpoint": {
          "type": "string",
          "description": "Indicates the URL for accessing the instance. The URL can be accessed\nfrom the Internet. The URL is created only after the instance is bound to an EIP.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the MLS instance resource.\nIf omitted, the provider-level region will be used. Changing this will create a new MLS instance resource.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the MLS instance status.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FMlsInstanceV1Timeouts:MlsInstanceV1Timeouts"
        },
        "updated": {
          "type": "string",
          "description": "Indicates the update time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies MLS Software version, only `1.2.0` is supported now.\nChanging this creates a new instance.\n"
        }
      },
      "type": "object",
      "required": [
        "agency",
        "created",
        "flavor",
        "innerEndpoint",
        "mlsInstanceV1Id",
        "mrsCluster",
        "name",
        "network",
        "publicEndpoint",
        "region",
        "status",
        "updated",
        "version"
      ],
      "inputProperties": {
        "agency": {
          "type": "string",
          "description": "Specifies the agency name. This parameter is mandatory only\nwhen you bind an instance to an elastic IP address (EIP). An instance must be\nbound to an EIP to grant MLS rights to obtain a tenant's token. NOTE: The tenant\nmust create an agency on the Identity and Access Management (IAM) interface in\nadvance. Changing this creates a new instance.\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the instance flavor, only `mls.c2.2xlarge.common`\nis supported now. Changing this creates a new instance.\n"
        },
        "mlsInstanceV1Id": {
          "type": "string",
          "description": "Specifies the ID of the MRS cluster. Changing this creates a new instance.\n"
        },
        "mrsCluster": {
          "$ref": "#/types/flexibleengine:index%2FMlsInstanceV1MrsCluster:MlsInstanceV1MrsCluster",
          "description": "Specifies the MRS cluster information which the instance\nis associated. The mrs_cluster object structure is documented below.\nNOTE: The current MRS instance requires an MRS cluster whose version is 1.3.0 and that is configured with the\nSpark component. MRS clusters whose version is not 1.3.0 or that are not configured\nwith the Spark component cannot be selected. Changing this creates a new instance.\n\n<a name=\"mls_network\"></a>\nThe `network` block supports:\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the MLS instance name. The DB instance name of\nthe same type is unique in the same tenant. Changing this creates a new instance.\n"
        },
        "network": {
          "$ref": "#/types/flexibleengine:index%2FMlsInstanceV1Network:MlsInstanceV1Network",
          "description": "Specifies the instance network information. The network\nobject structure is documented below. Changing this creates a new instance.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the MLS instance resource.\nIf omitted, the provider-level region will be used. Changing this will create a new MLS instance resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FMlsInstanceV1Timeouts:MlsInstanceV1Timeouts"
        },
        "version": {
          "type": "string",
          "description": "Specifies MLS Software version, only `1.2.0` is supported now.\nChanging this creates a new instance.\n"
        }
      },
      "requiredInputs": [
        "flavor",
        "mrsCluster",
        "network",
        "version"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MlsInstanceV1 resources.\n",
        "properties": {
          "agency": {
            "type": "string",
            "description": "Specifies the agency name. This parameter is mandatory only\nwhen you bind an instance to an elastic IP address (EIP). An instance must be\nbound to an EIP to grant MLS rights to obtain a tenant's token. NOTE: The tenant\nmust create an agency on the Identity and Access Management (IAM) interface in\nadvance. Changing this creates a new instance.\n"
          },
          "created": {
            "type": "string",
            "description": "Indicates the creation time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n"
          },
          "flavor": {
            "type": "string",
            "description": "Specifies the instance flavor, only `mls.c2.2xlarge.common`\nis supported now. Changing this creates a new instance.\n"
          },
          "innerEndpoint": {
            "type": "string",
            "description": "Indicates the URL for accessing the instance. Only machines in the same\nVPC and subnet as the instance can access the URL.\n"
          },
          "mlsInstanceV1Id": {
            "type": "string",
            "description": "Specifies the ID of the MRS cluster. Changing this creates a new instance.\n"
          },
          "mrsCluster": {
            "$ref": "#/types/flexibleengine:index%2FMlsInstanceV1MrsCluster:MlsInstanceV1MrsCluster",
            "description": "Specifies the MRS cluster information which the instance\nis associated. The mrs_cluster object structure is documented below.\nNOTE: The current MRS instance requires an MRS cluster whose version is 1.3.0 and that is configured with the\nSpark component. MRS clusters whose version is not 1.3.0 or that are not configured\nwith the Spark component cannot be selected. Changing this creates a new instance.\n\n<a name=\"mls_network\"></a>\nThe `network` block supports:\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the MLS instance name. The DB instance name of\nthe same type is unique in the same tenant. Changing this creates a new instance.\n"
          },
          "network": {
            "$ref": "#/types/flexibleengine:index%2FMlsInstanceV1Network:MlsInstanceV1Network",
            "description": "Specifies the instance network information. The network\nobject structure is documented below. Changing this creates a new instance.\n"
          },
          "publicEndpoint": {
            "type": "string",
            "description": "Indicates the URL for accessing the instance. The URL can be accessed\nfrom the Internet. The URL is created only after the instance is bound to an EIP.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the MLS instance resource.\nIf omitted, the provider-level region will be used. Changing this will create a new MLS instance resource.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the MLS instance status.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FMlsInstanceV1Timeouts:MlsInstanceV1Timeouts"
          },
          "updated": {
            "type": "string",
            "description": "Indicates the update time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n"
          },
          "version": {
            "type": "string",
            "description": "Specifies MLS Software version, only `1.2.0` is supported now.\nChanging this creates a new instance.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/modelartsDataset:ModelartsDataset": {
      "description": "Manages ModelArts dataset resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject(\"name\");\nconst outputObsPath = config.requireObject(\"outputObsPath\");\nconst inputObsPath = config.requireObject(\"inputObsPath\");\nconst test = new flexibleengine.ModelartsDataset(\"test\", {\n    type: 1,\n    outputPath: outputObsPath,\n    description: \"Terraform Demo\",\n    dataSource: {\n        path: inputObsPath,\n    },\n    labels: [{\n        name: \"foo\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\noutput_obs_path = config.require_object(\"outputObsPath\")\ninput_obs_path = config.require_object(\"inputObsPath\")\ntest = flexibleengine.ModelartsDataset(\"test\",\n    type=1,\n    output_path=output_obs_path,\n    description=\"Terraform Demo\",\n    data_source={\n        \"path\": input_obs_path,\n    },\n    labels=[{\n        \"name\": \"foo\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var outputObsPath = config.RequireObject<dynamic>(\"outputObsPath\");\n    var inputObsPath = config.RequireObject<dynamic>(\"inputObsPath\");\n    var test = new Flexibleengine.ModelartsDataset(\"test\", new()\n    {\n        Type = 1,\n        OutputPath = outputObsPath,\n        Description = \"Terraform Demo\",\n        DataSource = new Flexibleengine.Inputs.ModelartsDatasetDataSourceArgs\n        {\n            Path = inputObsPath,\n        },\n        Labels = new[]\n        {\n            new Flexibleengine.Inputs.ModelartsDatasetLabelArgs\n            {\n                Name = \"foo\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\toutputObsPath := cfg.RequireObject(\"outputObsPath\")\n\t\tinputObsPath := cfg.RequireObject(\"inputObsPath\")\n\t\t_, err := flexibleengine.NewModelartsDataset(ctx, \"test\", &flexibleengine.ModelartsDatasetArgs{\n\t\t\tType:        pulumi.Float64(1),\n\t\t\tOutputPath:  pulumi.Any(outputObsPath),\n\t\t\tDescription: pulumi.String(\"Terraform Demo\"),\n\t\t\tDataSource: &flexibleengine.ModelartsDatasetDataSourceArgs{\n\t\t\t\tPath: pulumi.Any(inputObsPath),\n\t\t\t},\n\t\t\tLabels: flexibleengine.ModelartsDatasetLabelArray{\n\t\t\t\t&flexibleengine.ModelartsDatasetLabelArgs{\n\t\t\t\t\tName: pulumi.String(\"foo\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ModelartsDataset;\nimport com.pulumi.flexibleengine.ModelartsDatasetArgs;\nimport com.pulumi.flexibleengine.inputs.ModelartsDatasetDataSourceArgs;\nimport com.pulumi.flexibleengine.inputs.ModelartsDatasetLabelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var outputObsPath = config.get(\"outputObsPath\");\n        final var inputObsPath = config.get(\"inputObsPath\");\n        var test = new ModelartsDataset(\"test\", ModelartsDatasetArgs.builder()\n            .type(1)\n            .outputPath(outputObsPath)\n            .description(\"Terraform Demo\")\n            .dataSource(ModelartsDatasetDataSourceArgs.builder()\n                .path(inputObsPath)\n                .build())\n            .labels(ModelartsDatasetLabelArgs.builder()\n                .name(\"foo\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\n  outputObsPath:\n    type: dynamic\n  inputObsPath:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ModelartsDataset\n    properties:\n      type: 1\n      outputPath: ${outputObsPath}\n      description: Terraform Demo\n      dataSource:\n        path: ${inputObsPath}\n      labels:\n        - name: foo\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe datasets can be imported by `id`.\n\n```sh\n$ pulumi import flexibleengine:index/modelartsDataset:ModelartsDataset test yiROKoTTjtwjvP71yLG\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include: `data_source.0.path`,\n\n`data_source.0.queue_name`, `data_source.0.database_name`, `data_source.0.table_name`, `data_source.0.cluster_id`,\n\n`data_source.0.user_name` and `data_source.0.password`. It is generally recommended running `pulumi preview` after\n\nimporting a dataset. You can then decide if changes should be applied to the dataset, or the resource definition\n\nshould be updated to align with the dataset. Also you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_modelarts_dataset\" \"test\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      data_source.0.path, data_source.0.queue_name, data_source.0.database_name, data_source.0.table_name,\n\n      data_source.0.cluster_id, data_source.0.user_name, data_source.0.password,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The dataset creation time.\n"
        },
        "dataFormat": {
          "type": "string",
          "description": "dataset format. Valid values include: `Default`, `CarbonData`: Carbon format(Supported only for\ntable type datasets).\n"
        },
        "dataSource": {
          "$ref": "#/types/flexibleengine:index%2FModelartsDatasetDataSource:ModelartsDatasetDataSource",
          "description": "Specifies the data sources which be used to imported the source data (such\nas pictures/files/audio, etc.) in this directory and subdirectories to the dataset. Structure is documented below.\nChanging this parameter will create a new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of dataset. It contains a maximum of 256 characters and\ncannot contain special characters `!<>=&\"'`.\n"
        },
        "importLabeledEnabled": {
          "type": "boolean",
          "description": "Specifies whether to import labeled files.\nDefault value is `true`. Changing this parameter will create a new resource.\n"
        },
        "labelFormat": {
          "$ref": "#/types/flexibleengine:index%2FModelartsDatasetLabelFormat:ModelartsDatasetLabelFormat",
          "description": "Specifies the custom format information of labeled files when import\nlabeled files for Text classification. Structure is documented below.\nChanging this parameter will create a new resource.\n"
        },
        "labels": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FModelartsDatasetLabel:ModelartsDatasetLabel"
          },
          "description": "Specifies labels information. Structure is documented below.\n"
        },
        "modelartsDatasetId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the dataset. The name consists of 1 to 100 characters,\nstarting with a letter. Only letters, chinese charactors, digits underscores (_) and hyphens (-) are allowed.\n"
        },
        "outputPath": {
          "type": "string",
          "description": "Specifies the OBS path for storing output files such as labeled files.\nThe path cannot be the same as the import path or subdirectory of the import path.\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "schemas": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FModelartsDatasetSchema:ModelartsDatasetSchema"
          },
          "description": "Specifies the schema information of source data when `type` is `400`.\nStructure is documented below. Changing this parameter will create a new resource.\n"
        },
        "status": {
          "type": "number",
          "description": "Dataset status. Valid values are as follows:\n+ **0**: Creating.\n+ **1**: Completed.\n+ **2**: Deleting.\n+ **3**: Deleted.\n+ **4**: Exception.\n+ **5**: Syncing.\n+ **6**: Releasing.\n+ **7**: Version switching.\n+ **8**: Importing.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FModelartsDatasetTimeouts:ModelartsDatasetTimeouts"
        },
        "type": {
          "type": "number",
          "description": "Specifies the type of dataset. The options are as follows:\n+ **0**: Image classification, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **1**: Object detection, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **3**: Image segmentation, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **100**: Text classification, supported formats: `.txt`, `.csv`.\n+ **200**: Sound classification, Supported formats: `.wav`.\n+ **400**: Table type, supported formats: Carbon type.\n+ **600**: Video, supported formats: `.mp4`.\n+ **900**: Free format.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "dataFormat",
        "dataSource",
        "modelartsDatasetId",
        "name",
        "outputPath",
        "region",
        "status",
        "type"
      ],
      "inputProperties": {
        "dataSource": {
          "$ref": "#/types/flexibleengine:index%2FModelartsDatasetDataSource:ModelartsDatasetDataSource",
          "description": "Specifies the data sources which be used to imported the source data (such\nas pictures/files/audio, etc.) in this directory and subdirectories to the dataset. Structure is documented below.\nChanging this parameter will create a new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of dataset. It contains a maximum of 256 characters and\ncannot contain special characters `!<>=&\"'`.\n"
        },
        "importLabeledEnabled": {
          "type": "boolean",
          "description": "Specifies whether to import labeled files.\nDefault value is `true`. Changing this parameter will create a new resource.\n"
        },
        "labelFormat": {
          "$ref": "#/types/flexibleengine:index%2FModelartsDatasetLabelFormat:ModelartsDatasetLabelFormat",
          "description": "Specifies the custom format information of labeled files when import\nlabeled files for Text classification. Structure is documented below.\nChanging this parameter will create a new resource.\n"
        },
        "labels": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FModelartsDatasetLabel:ModelartsDatasetLabel"
          },
          "description": "Specifies labels information. Structure is documented below.\n"
        },
        "modelartsDatasetId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the dataset. The name consists of 1 to 100 characters,\nstarting with a letter. Only letters, chinese charactors, digits underscores (_) and hyphens (-) are allowed.\n"
        },
        "outputPath": {
          "type": "string",
          "description": "Specifies the OBS path for storing output files such as labeled files.\nThe path cannot be the same as the import path or subdirectory of the import path.\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "schemas": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FModelartsDatasetSchema:ModelartsDatasetSchema"
          },
          "description": "Specifies the schema information of source data when `type` is `400`.\nStructure is documented below. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FModelartsDatasetTimeouts:ModelartsDatasetTimeouts"
        },
        "type": {
          "type": "number",
          "description": "Specifies the type of dataset. The options are as follows:\n+ **0**: Image classification, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **1**: Object detection, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **3**: Image segmentation, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **100**: Text classification, supported formats: `.txt`, `.csv`.\n+ **200**: Sound classification, Supported formats: `.wav`.\n+ **400**: Table type, supported formats: Carbon type.\n+ **600**: Video, supported formats: `.mp4`.\n+ **900**: Free format.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "dataSource",
        "outputPath",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ModelartsDataset resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "The dataset creation time.\n"
          },
          "dataFormat": {
            "type": "string",
            "description": "dataset format. Valid values include: `Default`, `CarbonData`: Carbon format(Supported only for\ntable type datasets).\n"
          },
          "dataSource": {
            "$ref": "#/types/flexibleengine:index%2FModelartsDatasetDataSource:ModelartsDatasetDataSource",
            "description": "Specifies the data sources which be used to imported the source data (such\nas pictures/files/audio, etc.) in this directory and subdirectories to the dataset. Structure is documented below.\nChanging this parameter will create a new resource.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of dataset. It contains a maximum of 256 characters and\ncannot contain special characters `!<>=&\"'`.\n"
          },
          "importLabeledEnabled": {
            "type": "boolean",
            "description": "Specifies whether to import labeled files.\nDefault value is `true`. Changing this parameter will create a new resource.\n"
          },
          "labelFormat": {
            "$ref": "#/types/flexibleengine:index%2FModelartsDatasetLabelFormat:ModelartsDatasetLabelFormat",
            "description": "Specifies the custom format information of labeled files when import\nlabeled files for Text classification. Structure is documented below.\nChanging this parameter will create a new resource.\n"
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FModelartsDatasetLabel:ModelartsDatasetLabel"
            },
            "description": "Specifies labels information. Structure is documented below.\n"
          },
          "modelartsDatasetId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the dataset. The name consists of 1 to 100 characters,\nstarting with a letter. Only letters, chinese charactors, digits underscores (_) and hyphens (-) are allowed.\n"
          },
          "outputPath": {
            "type": "string",
            "description": "Specifies the OBS path for storing output files such as labeled files.\nThe path cannot be the same as the import path or subdirectory of the import path.\nChanging this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "schemas": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FModelartsDatasetSchema:ModelartsDatasetSchema"
            },
            "description": "Specifies the schema information of source data when `type` is `400`.\nStructure is documented below. Changing this parameter will create a new resource.\n"
          },
          "status": {
            "type": "number",
            "description": "Dataset status. Valid values are as follows:\n+ **0**: Creating.\n+ **1**: Completed.\n+ **2**: Deleting.\n+ **3**: Deleted.\n+ **4**: Exception.\n+ **5**: Syncing.\n+ **6**: Releasing.\n+ **7**: Version switching.\n+ **8**: Importing.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FModelartsDatasetTimeouts:ModelartsDatasetTimeouts"
          },
          "type": {
            "type": "number",
            "description": "Specifies the type of dataset. The options are as follows:\n+ **0**: Image classification, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **1**: Object detection, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **3**: Image segmentation, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **100**: Text classification, supported formats: `.txt`, `.csv`.\n+ **200**: Sound classification, Supported formats: `.wav`.\n+ **400**: Table type, supported formats: Carbon type.\n+ **600**: Video, supported formats: `.mp4`.\n+ **900**: Free format.\n\nChanging this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/modelartsDatasetVersion:ModelartsDatasetVersion": {
      "description": "Manages ModelArts dataset version resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst datasetId = config.requireObject(\"datasetId\");\nconst v001 = new flexibleengine.ModelartsDatasetVersion(\"v001\", {\n    datasetId: datasetId,\n    description: \"Created by demo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ndataset_id = config.require_object(\"datasetId\")\nv001 = flexibleengine.ModelartsDatasetVersion(\"v001\",\n    dataset_id=dataset_id,\n    description=\"Created by demo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var datasetId = config.RequireObject<dynamic>(\"datasetId\");\n    var v001 = new Flexibleengine.ModelartsDatasetVersion(\"v001\", new()\n    {\n        DatasetId = datasetId,\n        Description = \"Created by demo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdatasetId := cfg.RequireObject(\"datasetId\")\n\t\t_, err := flexibleengine.NewModelartsDatasetVersion(ctx, \"v001\", &flexibleengine.ModelartsDatasetVersionArgs{\n\t\t\tDatasetId:   pulumi.Any(datasetId),\n\t\t\tDescription: pulumi.String(\"Created by demo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ModelartsDatasetVersion;\nimport com.pulumi.flexibleengine.ModelartsDatasetVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var datasetId = config.get(\"datasetId\");\n        var v001 = new ModelartsDatasetVersion(\"v001\", ModelartsDatasetVersionArgs.builder()\n            .datasetId(datasetId)\n            .description(\"Created by demo\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  datasetId:\n    type: dynamic\nresources:\n  v001:\n    type: flexibleengine:ModelartsDatasetVersion\n    properties:\n      datasetId: ${datasetId}\n      description: Created by demo\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe dataset versions can be imported by dataset ID and version ID, separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/modelartsDatasetVersion:ModelartsDatasetVersion test yiROKoTTjtwjvP71yLG/wieeeoTrtrtjvn67yLm\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include: `hard_example`. It is generally\n\nrecommended running `pulumi preview` after importing a dataset. You can then decide if changes should be applied to the\n\ndataset, or the resource definition should be updated to align with the dataset. Also you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_modelarts_dataset_version\" \"test\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      hard_example,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The creation time, in UTC format.\n"
        },
        "datasetId": {
          "type": "string",
          "description": "Specifies the ID of dataset.\nChanging this parameter will create a new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of dataset version. It contains a maximum of\n256 characters and cannot contain special characters `!<>=&\"'`. Changing this parameter will create a new resource.\n"
        },
        "files": {
          "type": "number",
          "description": "The total number of samples.\n"
        },
        "hardExample": {
          "type": "boolean",
          "description": "Specifies whether to enable ModelArts to write the hard example\nattributes (difficult, hard-coefficient, and hard-reasons) into the XML and manifest labeling files. ModelArts will\nuse these attributes to optimize hard example filtering. Default value is `false`.\nChanging this parameter will create a new resource.\n"
        },
        "isCurrent": {
          "type": "boolean",
          "description": "Whether this version is current version.\n"
        },
        "labelingType": {
          "type": "string",
          "description": "The label type of the dataset version. Valid values are as follows:\n+ **multi**: Indicates that there are multi-label samples.\n+ **single**: Indicates that all samples are single-label.\n+ **unlabeled**: Indicates that all samples are unlabeled.\n"
        },
        "modelartsDatasetVersionId": {
          "type": "string",
          "description": "The resource ID in format of **dataset_id/version_id**. It is composed of dataset ID and version ID,\nseparated by a slash.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the dataset version. The name consists of 1 to 32\ncharacters. Only letters, Chinese characters, digits underscores (_) and hyphens (-) are allowed.\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "splitRatio": {
          "type": "string",
          "description": "Specifies the ratio of splitting which randomly divides a labeled sample\ninto a training set and a validation set. Changing this parameter will create a new resource.\n\n> Before you enable splitting, ensure each label has at least five labeled samples. Ensure there are at least two\nmulti-label samples, if any.\n"
        },
        "status": {
          "type": "number",
          "description": "The status of the dataset version. Valid values are as follows:\n+ **0**: Creating.\n+ **1**: Normal.\n+ **2**: Deleting.\n+ **3**: Deleted.\n+ **4**: Exception.\n"
        },
        "storagePath": {
          "type": "string",
          "description": "The path to save the manifest file of the version.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FModelartsDatasetVersionTimeouts:ModelartsDatasetVersionTimeouts"
        },
        "updatedAt": {
          "type": "string",
          "description": "The last update time, in UTC format.\n"
        },
        "verification": {
          "type": "boolean",
          "description": "Whether the data has been verified by the verification algorithm before publishing.\n"
        },
        "versionId": {
          "type": "string",
          "description": "The version ID.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "datasetId",
        "files",
        "isCurrent",
        "labelingType",
        "modelartsDatasetVersionId",
        "name",
        "region",
        "status",
        "storagePath",
        "updatedAt",
        "verification",
        "versionId"
      ],
      "inputProperties": {
        "datasetId": {
          "type": "string",
          "description": "Specifies the ID of dataset.\nChanging this parameter will create a new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of dataset version. It contains a maximum of\n256 characters and cannot contain special characters `!<>=&\"'`. Changing this parameter will create a new resource.\n"
        },
        "hardExample": {
          "type": "boolean",
          "description": "Specifies whether to enable ModelArts to write the hard example\nattributes (difficult, hard-coefficient, and hard-reasons) into the XML and manifest labeling files. ModelArts will\nuse these attributes to optimize hard example filtering. Default value is `false`.\nChanging this parameter will create a new resource.\n"
        },
        "modelartsDatasetVersionId": {
          "type": "string",
          "description": "The resource ID in format of **dataset_id/version_id**. It is composed of dataset ID and version ID,\nseparated by a slash.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the dataset version. The name consists of 1 to 32\ncharacters. Only letters, Chinese characters, digits underscores (_) and hyphens (-) are allowed.\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "splitRatio": {
          "type": "string",
          "description": "Specifies the ratio of splitting which randomly divides a labeled sample\ninto a training set and a validation set. Changing this parameter will create a new resource.\n\n> Before you enable splitting, ensure each label has at least five labeled samples. Ensure there are at least two\nmulti-label samples, if any.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FModelartsDatasetVersionTimeouts:ModelartsDatasetVersionTimeouts"
        }
      },
      "requiredInputs": [
        "datasetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ModelartsDatasetVersion resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "The creation time, in UTC format.\n"
          },
          "datasetId": {
            "type": "string",
            "description": "Specifies the ID of dataset.\nChanging this parameter will create a new resource.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of dataset version. It contains a maximum of\n256 characters and cannot contain special characters `!<>=&\"'`. Changing this parameter will create a new resource.\n"
          },
          "files": {
            "type": "number",
            "description": "The total number of samples.\n"
          },
          "hardExample": {
            "type": "boolean",
            "description": "Specifies whether to enable ModelArts to write the hard example\nattributes (difficult, hard-coefficient, and hard-reasons) into the XML and manifest labeling files. ModelArts will\nuse these attributes to optimize hard example filtering. Default value is `false`.\nChanging this parameter will create a new resource.\n"
          },
          "isCurrent": {
            "type": "boolean",
            "description": "Whether this version is current version.\n"
          },
          "labelingType": {
            "type": "string",
            "description": "The label type of the dataset version. Valid values are as follows:\n+ **multi**: Indicates that there are multi-label samples.\n+ **single**: Indicates that all samples are single-label.\n+ **unlabeled**: Indicates that all samples are unlabeled.\n"
          },
          "modelartsDatasetVersionId": {
            "type": "string",
            "description": "The resource ID in format of **dataset_id/version_id**. It is composed of dataset ID and version ID,\nseparated by a slash.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the dataset version. The name consists of 1 to 32\ncharacters. Only letters, Chinese characters, digits underscores (_) and hyphens (-) are allowed.\nChanging this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "splitRatio": {
            "type": "string",
            "description": "Specifies the ratio of splitting which randomly divides a labeled sample\ninto a training set and a validation set. Changing this parameter will create a new resource.\n\n> Before you enable splitting, ensure each label has at least five labeled samples. Ensure there are at least two\nmulti-label samples, if any.\n"
          },
          "status": {
            "type": "number",
            "description": "The status of the dataset version. Valid values are as follows:\n+ **0**: Creating.\n+ **1**: Normal.\n+ **2**: Deleting.\n+ **3**: Deleted.\n+ **4**: Exception.\n"
          },
          "storagePath": {
            "type": "string",
            "description": "The path to save the manifest file of the version.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FModelartsDatasetVersionTimeouts:ModelartsDatasetVersionTimeouts"
          },
          "updatedAt": {
            "type": "string",
            "description": "The last update time, in UTC format.\n"
          },
          "verification": {
            "type": "boolean",
            "description": "Whether the data has been verified by the verification algorithm before publishing.\n"
          },
          "versionId": {
            "type": "string",
            "description": "The version ID.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/mrsClusterV1:MrsClusterV1": {
      "description": "Manages a MRS cluster resource within FlexibleEngine.\n\n!> **Warning:** It has been deprecated, please use `flexibleengine.MrsClusterV2` instead.\n\n## Example Usage\n\n### Creating A MRS Cluster\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst cluster1 = new flexibleengine.MrsClusterV1(\"cluster1\", {\n    region: \"eu-west-0\",\n    availableZoneId: \"eu-west-0a\",\n    clusterName: \"mrs-cluster-test\",\n    clusterType: 0,\n    clusterVersion: \"MRS 2.0.1\",\n    masterNodeNum: 2,\n    coreNodeNum: 3,\n    masterNodeSize: \"s3.2xlarge.4.linux.mrs\",\n    coreNodeSize: \"s3.xlarge.4.linux.mrs\",\n    volumeType: \"SATA\",\n    volumeSize: 100,\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    safeMode: 0,\n    clusterAdminSecret: \"{{password_of_mrs_manager}}\",\n    nodePublicCertName: \"KeyPair-ci\",\n    componentLists: [\n        {\n            componentName: \"Hadoop\",\n        },\n        {\n            componentName: \"Spark\",\n        },\n        {\n            componentName: \"Hive\",\n        },\n        {\n            componentName: \"Tez\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\ncluster1 = flexibleengine.MrsClusterV1(\"cluster1\",\n    region=\"eu-west-0\",\n    available_zone_id=\"eu-west-0a\",\n    cluster_name=\"mrs-cluster-test\",\n    cluster_type=0,\n    cluster_version=\"MRS 2.0.1\",\n    master_node_num=2,\n    core_node_num=3,\n    master_node_size=\"s3.2xlarge.4.linux.mrs\",\n    core_node_size=\"s3.xlarge.4.linux.mrs\",\n    volume_type=\"SATA\",\n    volume_size=100,\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    safe_mode=0,\n    cluster_admin_secret=\"{{password_of_mrs_manager}}\",\n    node_public_cert_name=\"KeyPair-ci\",\n    component_lists=[\n        {\n            \"component_name\": \"Hadoop\",\n        },\n        {\n            \"component_name\": \"Spark\",\n        },\n        {\n            \"component_name\": \"Hive\",\n        },\n        {\n            \"component_name\": \"Tez\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var cluster1 = new Flexibleengine.MrsClusterV1(\"cluster1\", new()\n    {\n        Region = \"eu-west-0\",\n        AvailableZoneId = \"eu-west-0a\",\n        ClusterName = \"mrs-cluster-test\",\n        ClusterType = 0,\n        ClusterVersion = \"MRS 2.0.1\",\n        MasterNodeNum = 2,\n        CoreNodeNum = 3,\n        MasterNodeSize = \"s3.2xlarge.4.linux.mrs\",\n        CoreNodeSize = \"s3.xlarge.4.linux.mrs\",\n        VolumeType = \"SATA\",\n        VolumeSize = 100,\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        SafeMode = 0,\n        ClusterAdminSecret = \"{{password_of_mrs_manager}}\",\n        NodePublicCertName = \"KeyPair-ci\",\n        ComponentLists = new[]\n        {\n            new Flexibleengine.Inputs.MrsClusterV1ComponentListArgs\n            {\n                ComponentName = \"Hadoop\",\n            },\n            new Flexibleengine.Inputs.MrsClusterV1ComponentListArgs\n            {\n                ComponentName = \"Spark\",\n            },\n            new Flexibleengine.Inputs.MrsClusterV1ComponentListArgs\n            {\n                ComponentName = \"Hive\",\n            },\n            new Flexibleengine.Inputs.MrsClusterV1ComponentListArgs\n            {\n                ComponentName = \"Tez\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewMrsClusterV1(ctx, \"cluster1\", &flexibleengine.MrsClusterV1Args{\n\t\t\tRegion:             pulumi.String(\"eu-west-0\"),\n\t\t\tAvailableZoneId:    pulumi.String(\"eu-west-0a\"),\n\t\t\tClusterName:        pulumi.String(\"mrs-cluster-test\"),\n\t\t\tClusterType:        pulumi.Float64(0),\n\t\t\tClusterVersion:     pulumi.String(\"MRS 2.0.1\"),\n\t\t\tMasterNodeNum:      pulumi.Float64(2),\n\t\t\tCoreNodeNum:        pulumi.Float64(3),\n\t\t\tMasterNodeSize:     pulumi.String(\"s3.2xlarge.4.linux.mrs\"),\n\t\t\tCoreNodeSize:       pulumi.String(\"s3.xlarge.4.linux.mrs\"),\n\t\t\tVolumeType:         pulumi.String(\"SATA\"),\n\t\t\tVolumeSize:         pulumi.Float64(100),\n\t\t\tVpcId:              exampleVpc.VpcV1Id,\n\t\t\tSubnetId:           exampleSubnet.VpcSubnetV1Id,\n\t\t\tSafeMode:           pulumi.Float64(0),\n\t\t\tClusterAdminSecret: pulumi.String(\"{{password_of_mrs_manager}}\"),\n\t\t\tNodePublicCertName: pulumi.String(\"KeyPair-ci\"),\n\t\t\tComponentLists: flexibleengine.MrsClusterV1ComponentListArray{\n\t\t\t\t&flexibleengine.MrsClusterV1ComponentListArgs{\n\t\t\t\t\tComponentName: pulumi.String(\"Hadoop\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.MrsClusterV1ComponentListArgs{\n\t\t\t\t\tComponentName: pulumi.String(\"Spark\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.MrsClusterV1ComponentListArgs{\n\t\t\t\t\tComponentName: pulumi.String(\"Hive\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.MrsClusterV1ComponentListArgs{\n\t\t\t\t\tComponentName: pulumi.String(\"Tez\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.MrsClusterV1;\nimport com.pulumi.flexibleengine.MrsClusterV1Args;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV1ComponentListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var cluster1 = new MrsClusterV1(\"cluster1\", MrsClusterV1Args.builder()\n            .region(\"eu-west-0\")\n            .availableZoneId(\"eu-west-0a\")\n            .clusterName(\"mrs-cluster-test\")\n            .clusterType(0)\n            .clusterVersion(\"MRS 2.0.1\")\n            .masterNodeNum(2)\n            .coreNodeNum(3)\n            .masterNodeSize(\"s3.2xlarge.4.linux.mrs\")\n            .coreNodeSize(\"s3.xlarge.4.linux.mrs\")\n            .volumeType(\"SATA\")\n            .volumeSize(100)\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .safeMode(0)\n            .clusterAdminSecret(\"{{password_of_mrs_manager}}\")\n            .nodePublicCertName(\"KeyPair-ci\")\n            .componentLists(            \n                MrsClusterV1ComponentListArgs.builder()\n                    .componentName(\"Hadoop\")\n                    .build(),\n                MrsClusterV1ComponentListArgs.builder()\n                    .componentName(\"Spark\")\n                    .build(),\n                MrsClusterV1ComponentListArgs.builder()\n                    .componentName(\"Hive\")\n                    .build(),\n                MrsClusterV1ComponentListArgs.builder()\n                    .componentName(\"Tez\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  cluster1:\n    type: flexibleengine:MrsClusterV1\n    properties:\n      region: eu-west-0\n      availableZoneId: eu-west-0a\n      clusterName: mrs-cluster-test\n      clusterType: 0\n      clusterVersion: MRS 2.0.1\n      masterNodeNum: 2\n      coreNodeNum: 3\n      masterNodeSize: s3.2xlarge.4.linux.mrs\n      coreNodeSize: s3.xlarge.4.linux.mrs\n      volumeType: SATA\n      volumeSize: 100\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      safeMode: 0\n      clusterAdminSecret: '{{password_of_mrs_manager}}'\n      nodePublicCertName: KeyPair-ci\n      componentLists:\n        - componentName: Hadoop\n        - componentName: Spark\n        - componentName: Hive\n        - componentName: Tez\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "addJobs": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV1AddJob:MrsClusterV1AddJob"
          },
          "description": "You can submit a job when you create a cluster to save time and use MRS easily.\nOnly one job can be added. The object structure is documented below.\n"
        },
        "availableZoneId": {
          "type": "string",
          "description": "ID or Name of an available zone. Obtain the value\nfrom Regions and Endpoints.\n"
        },
        "availableZoneName": {
          "type": "string",
          "description": "Name of an availability zone.\n"
        },
        "billingType": {
          "type": "number"
        },
        "chargingStartTime": {
          "type": "string",
          "description": "Time when charging starts.\n"
        },
        "clusterAdminSecret": {
          "type": "string",
          "description": "Indicates the password of the MRS Manager\nadministrator.\n+ Must contain 8 to 32 characters.\n+ Must contain at least three of the following: Lowercase letters, Uppercase letters,\nDigits and Special characters: `~!@#$%^&*()-_=+\\|[{}];:'\",<.>/? and space\n+ Cannot be the username or the username spelled backwards.\n",
          "secret": true
        },
        "clusterId": {
          "type": "string",
          "description": "Cluster ID.\n"
        },
        "clusterName": {
          "type": "string",
          "description": "Cluster name, which is globally unique and contains\nonly 1 to 64 letters, digits, hyphens (-), and underscores (_).\n"
        },
        "clusterState": {
          "type": "string",
          "description": "Cluster status. Valid values include: starting, running, terminated, failed, abnormal,\nterminating, frozen, scaling-out and scaling-in.\n"
        },
        "clusterType": {
          "type": "number",
          "description": "Type of clusters. 0: analysis cluster; 1: streaming cluster.\nThe default value is 0.\n"
        },
        "clusterVersion": {
          "type": "string",
          "description": "Version of the clusters. Possible values are as follows:\nMRS 1.8.9, MRS 2.0.1, MRS 2.1.0 and MRS 3.1.0-LTS.1. The latest version of MRS is used by default.\n"
        },
        "componentLists": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV1ComponentList:MrsClusterV1ComponentList"
          },
          "description": "Service component list. The object structure is documented below.\n"
        },
        "coreNodeNum": {
          "type": "number",
          "description": "Number of Core nodes Value range: 3 to 500. A\nmaximum of 500 Core nodes are supported by default. If more than 500 Core nodes\nare required, contact technical support engineers or invoke background APIs\nto modify the database.\n"
        },
        "coreNodeProductId": {
          "type": "string",
          "description": "Product ID of a Core node.\n"
        },
        "coreNodeSize": {
          "type": "string",
          "description": "Instance specification of a Core node Configuration\nmethod of this parameter is identical to that of master_node_size.\n"
        },
        "coreNodeSpecId": {
          "type": "string",
          "description": "Specification ID of a Core node.\n"
        },
        "createAt": {
          "type": "string",
          "description": "Cluster creation time.\n"
        },
        "deploymentId": {
          "type": "string",
          "description": "Deployment ID of a cluster.\n"
        },
        "duration": {
          "type": "string",
          "description": "Cluster subscription duration.\n"
        },
        "errorInfo": {
          "type": "string",
          "description": "Error information.\n"
        },
        "externalAlternateIp": {
          "type": "string",
          "description": "Backup external IP address.\n"
        },
        "externalIp": {
          "type": "string",
          "description": "External IP address.\n"
        },
        "fee": {
          "type": "string",
          "description": "Cluster creation fee, which is automatically calculated.\n"
        },
        "hadoopVersion": {
          "type": "string",
          "description": "Hadoop version.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Instance ID.\n"
        },
        "internalIp": {
          "type": "string"
        },
        "logCollection": {
          "type": "number",
          "description": "Indicates whether logs are collected when cluster\ninstallation fails. 0: not collected 1: collected The default value is 0. If\nlog_collection is set to 1, OBS buckets will be created to collect the MRS logs.\nThese buckets will be charged.\n"
        },
        "masterNodeIp": {
          "type": "string",
          "description": "IP address of a Master node.\n* `externalIp` - Internal IP address.\n"
        },
        "masterNodeNum": {
          "type": "number",
          "description": "Number of Master nodes The value is 2.\n"
        },
        "masterNodeProductId": {
          "type": "string",
          "description": "Product ID of a Master node.\n"
        },
        "masterNodeSize": {
          "type": "string",
          "description": "Best match based on several years of commissioning\nexperience. MRS supports specifications of hosts, and host specifications are\ndetermined by CPUs, memory, and disks space.\n+ Master nodes support s1.4xlarge and s1.8xlarge, c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4,\nc3.8xlarge.4, c3.15xlarge.4.\n+ Core nodes of a streaming cluster support s1.xlarge, c2.2xlarge, s1.2xlarge, s1.4xlarge, s1.8xlarge, d1.8xlarge,\nc3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4.\n+ Core nodes of an analysis cluster support all specifications c2.2xlarge, s1.xlarge, s1.4xlarge, s1.8xlarge,\nd1.xlarge, d1.2xlarge, d1.4xlarge, d1.8xlarge, , c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2,\nc3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4, d2.xlarge.8, d2.2xlarge.8, d2.4xlarge.8, d2.8xlarge.8.\n\nThe following provides specification details.\n\nnode_size | CPU(core) | Memory(GB) | System Disk | Data Disk\n--- | --- | --- | --- | ---\nc2.2xlarge.linux.mrs | 8  | 16  | 40 | -\ncc3.xlarge.4.linux.mrs | 4  | 16  | 40 | -\ncc3.2xlarge.4.linux.mrs | 8  | 32  | 40 | -\ncc3.4xlarge.4.linux.mrs | 16 | 64  | 40 | -\ncc3.8xlarge.4.linux.mrs | 32 | 128 | 40 | -\ns1.xlarge.linux.mrs  | 4  | 16  | 40 | -\ns1.4xlarge.linux.mrs | 16 | 64  | 40 | -\ns1.8xlarge.linux.mrs | 32 | 128 | 40 | -\ns3.xlarge.4.linux.mrs| 4  | 16  | 40 | -\ns3.2xlarge.4.linux.mrs| 8 | 32  | 40 | -\ns3.4xlarge.4.linux.mrs| 16 | 64  | 40 | -\nd1.xlarge.linux.mrs  | 6  | 55  | 40 | 1.8 TB x 3 HDDs\nd1.2xlarge.linux.mrs | 12 | 110 | 40 | 1.8 TB x 6 HDDs\nd1.4xlarge.linux.mrs | 24 | 220 | 40 | 1.8 TB x 12 HDDs\nd1.8xlarge.linux.mrs | 48 | 440 | 40 | 1.8 TB x 24 HDDs\nd2.xlarge.linux.mrs  | 4  | 32  | 40 | -\nd2.2xlarge.linux.mrs | 8 | 64 | 40 | -\nd2.4xlarge.linux.mrs | 16 | 128 | 40 | 1.8TB*8HDDs\nd2.8xlarge.linux.mrs | 32 | 256 | 40 | 1.8TB*16HDDs\n"
        },
        "masterNodeSpecId": {
          "type": "string",
          "description": "Specification ID of a Master node.\n"
        },
        "mrsClusterV1Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "nodePublicCertName": {
          "type": "string",
          "description": "Name of a key pair You can use a key\nto log in to the Master node in the cluster.\n"
        },
        "orderId": {
          "type": "string",
          "description": "Order ID for creating clusters.\n"
        },
        "privateIpFirst": {
          "type": "string",
          "description": "Primary private IP address.\n"
        },
        "region": {
          "type": "string",
          "description": "Cluster region information. Obtain the value from\nRegions and Endpoints.\n"
        },
        "remark": {
          "type": "string",
          "description": "Remarks of a cluster.\n"
        },
        "safeMode": {
          "type": "number",
          "description": "MRS cluster running mode.\n+ **0**: common mode The value indicates that the Kerberos authentication is disabled.\nUsers can use all functions provided by the cluster.\n+ **1**: safe mode The value indicates that the Kerberos authentication is enabled.\nCommon users cannot use the file management and job management functions of an MRS cluster or\nview cluster resource usage and the job records of Hadoop and Spark. To use these functions,\nthe users must obtain the relevant permissions from the MRS Manager administrator.\n"
        },
        "securityGroupsId": {
          "type": "string",
          "description": "Security group ID.\n"
        },
        "slaveSecurityGroupsId": {
          "type": "string",
          "description": "Standby security group ID.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet which bound to the MRS cluster.\nChanging this will create a new MRS cluster resource.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "Project ID.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV1Timeouts:MrsClusterV1Timeouts"
        },
        "updateAt": {
          "type": "string",
          "description": "Cluster update time.\n"
        },
        "vnc": {
          "type": "string",
          "description": "URI address for remote login of the elastic cloud server.\n"
        },
        "volumeSize": {
          "type": "number",
          "description": "Data disk storage space of a Core node Users can\nadd disks to expand storage capacity when creating a cluster. There are the\nfollowing scenarios: Separation of data storage and computing: Data is stored\nin the OBS system. Costs of clusters are relatively low but computing performance\nis poor. The clusters can be deleted at any time. It is recommended when data\ncomputing is not frequently performed. Integration of data storage and computing:\nData is stored in the HDFS system. Costs of clusters are relatively high but\ncomputing performance is good. The clusters cannot be deleted in a short term.\nIt is recommended when data computing is frequently performed. Value range:\n100 GB to 32000 GB\n"
        },
        "volumeType": {
          "type": "string",
          "description": "Type of disks SATA and SSD are supported. SATA:\ncommon I/O SSD: super high-speed I/O\n"
        },
        "vpcId": {
          "type": "string",
          "description": "ID of the VPC where the subnet locates Obtain the VPC\nID from the management console as follows: Register an account and log in to\nthe management console. Click Virtual Private Cloud and select Virtual Private\nCloud from the left list. On the Virtual Private Cloud page, obtain the VPC\nID from the list.\n"
        }
      },
      "type": "object",
      "required": [
        "availableZoneId",
        "availableZoneName",
        "chargingStartTime",
        "clusterId",
        "clusterName",
        "clusterState",
        "clusterType",
        "clusterVersion",
        "componentLists",
        "coreNodeNum",
        "coreNodeProductId",
        "coreNodeSize",
        "coreNodeSpecId",
        "createAt",
        "deploymentId",
        "duration",
        "errorInfo",
        "externalAlternateIp",
        "externalIp",
        "fee",
        "hadoopVersion",
        "instanceId",
        "internalIp",
        "logCollection",
        "masterNodeIp",
        "masterNodeNum",
        "masterNodeProductId",
        "masterNodeSize",
        "masterNodeSpecId",
        "mrsClusterV1Id",
        "nodePublicCertName",
        "orderId",
        "privateIpFirst",
        "region",
        "remark",
        "safeMode",
        "securityGroupsId",
        "slaveSecurityGroupsId",
        "subnetId",
        "tenantId",
        "updateAt",
        "vnc",
        "volumeSize",
        "volumeType",
        "vpcId"
      ],
      "inputProperties": {
        "addJobs": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV1AddJob:MrsClusterV1AddJob"
          },
          "description": "You can submit a job when you create a cluster to save time and use MRS easily.\nOnly one job can be added. The object structure is documented below.\n"
        },
        "availableZoneId": {
          "type": "string",
          "description": "ID or Name of an available zone. Obtain the value\nfrom Regions and Endpoints.\n"
        },
        "billingType": {
          "type": "number"
        },
        "clusterAdminSecret": {
          "type": "string",
          "description": "Indicates the password of the MRS Manager\nadministrator.\n+ Must contain 8 to 32 characters.\n+ Must contain at least three of the following: Lowercase letters, Uppercase letters,\nDigits and Special characters: `~!@#$%^&*()-_=+\\|[{}];:'\",<.>/? and space\n+ Cannot be the username or the username spelled backwards.\n",
          "secret": true
        },
        "clusterName": {
          "type": "string",
          "description": "Cluster name, which is globally unique and contains\nonly 1 to 64 letters, digits, hyphens (-), and underscores (_).\n"
        },
        "clusterType": {
          "type": "number",
          "description": "Type of clusters. 0: analysis cluster; 1: streaming cluster.\nThe default value is 0.\n"
        },
        "clusterVersion": {
          "type": "string",
          "description": "Version of the clusters. Possible values are as follows:\nMRS 1.8.9, MRS 2.0.1, MRS 2.1.0 and MRS 3.1.0-LTS.1. The latest version of MRS is used by default.\n"
        },
        "componentLists": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV1ComponentList:MrsClusterV1ComponentList"
          },
          "description": "Service component list. The object structure is documented below.\n"
        },
        "coreNodeNum": {
          "type": "number",
          "description": "Number of Core nodes Value range: 3 to 500. A\nmaximum of 500 Core nodes are supported by default. If more than 500 Core nodes\nare required, contact technical support engineers or invoke background APIs\nto modify the database.\n"
        },
        "coreNodeSize": {
          "type": "string",
          "description": "Instance specification of a Core node Configuration\nmethod of this parameter is identical to that of master_node_size.\n"
        },
        "logCollection": {
          "type": "number",
          "description": "Indicates whether logs are collected when cluster\ninstallation fails. 0: not collected 1: collected The default value is 0. If\nlog_collection is set to 1, OBS buckets will be created to collect the MRS logs.\nThese buckets will be charged.\n"
        },
        "masterNodeNum": {
          "type": "number",
          "description": "Number of Master nodes The value is 2.\n"
        },
        "masterNodeSize": {
          "type": "string",
          "description": "Best match based on several years of commissioning\nexperience. MRS supports specifications of hosts, and host specifications are\ndetermined by CPUs, memory, and disks space.\n+ Master nodes support s1.4xlarge and s1.8xlarge, c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4,\nc3.8xlarge.4, c3.15xlarge.4.\n+ Core nodes of a streaming cluster support s1.xlarge, c2.2xlarge, s1.2xlarge, s1.4xlarge, s1.8xlarge, d1.8xlarge,\nc3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4.\n+ Core nodes of an analysis cluster support all specifications c2.2xlarge, s1.xlarge, s1.4xlarge, s1.8xlarge,\nd1.xlarge, d1.2xlarge, d1.4xlarge, d1.8xlarge, , c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2,\nc3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4, d2.xlarge.8, d2.2xlarge.8, d2.4xlarge.8, d2.8xlarge.8.\n\nThe following provides specification details.\n\nnode_size | CPU(core) | Memory(GB) | System Disk | Data Disk\n--- | --- | --- | --- | ---\nc2.2xlarge.linux.mrs | 8  | 16  | 40 | -\ncc3.xlarge.4.linux.mrs | 4  | 16  | 40 | -\ncc3.2xlarge.4.linux.mrs | 8  | 32  | 40 | -\ncc3.4xlarge.4.linux.mrs | 16 | 64  | 40 | -\ncc3.8xlarge.4.linux.mrs | 32 | 128 | 40 | -\ns1.xlarge.linux.mrs  | 4  | 16  | 40 | -\ns1.4xlarge.linux.mrs | 16 | 64  | 40 | -\ns1.8xlarge.linux.mrs | 32 | 128 | 40 | -\ns3.xlarge.4.linux.mrs| 4  | 16  | 40 | -\ns3.2xlarge.4.linux.mrs| 8 | 32  | 40 | -\ns3.4xlarge.4.linux.mrs| 16 | 64  | 40 | -\nd1.xlarge.linux.mrs  | 6  | 55  | 40 | 1.8 TB x 3 HDDs\nd1.2xlarge.linux.mrs | 12 | 110 | 40 | 1.8 TB x 6 HDDs\nd1.4xlarge.linux.mrs | 24 | 220 | 40 | 1.8 TB x 12 HDDs\nd1.8xlarge.linux.mrs | 48 | 440 | 40 | 1.8 TB x 24 HDDs\nd2.xlarge.linux.mrs  | 4  | 32  | 40 | -\nd2.2xlarge.linux.mrs | 8 | 64 | 40 | -\nd2.4xlarge.linux.mrs | 16 | 128 | 40 | 1.8TB*8HDDs\nd2.8xlarge.linux.mrs | 32 | 256 | 40 | 1.8TB*16HDDs\n"
        },
        "mrsClusterV1Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "nodePublicCertName": {
          "type": "string",
          "description": "Name of a key pair You can use a key\nto log in to the Master node in the cluster.\n"
        },
        "region": {
          "type": "string",
          "description": "Cluster region information. Obtain the value from\nRegions and Endpoints.\n"
        },
        "safeMode": {
          "type": "number",
          "description": "MRS cluster running mode.\n+ **0**: common mode The value indicates that the Kerberos authentication is disabled.\nUsers can use all functions provided by the cluster.\n+ **1**: safe mode The value indicates that the Kerberos authentication is enabled.\nCommon users cannot use the file management and job management functions of an MRS cluster or\nview cluster resource usage and the job records of Hadoop and Spark. To use these functions,\nthe users must obtain the relevant permissions from the MRS Manager administrator.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet which bound to the MRS cluster.\nChanging this will create a new MRS cluster resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV1Timeouts:MrsClusterV1Timeouts"
        },
        "volumeSize": {
          "type": "number",
          "description": "Data disk storage space of a Core node Users can\nadd disks to expand storage capacity when creating a cluster. There are the\nfollowing scenarios: Separation of data storage and computing: Data is stored\nin the OBS system. Costs of clusters are relatively low but computing performance\nis poor. The clusters can be deleted at any time. It is recommended when data\ncomputing is not frequently performed. Integration of data storage and computing:\nData is stored in the HDFS system. Costs of clusters are relatively high but\ncomputing performance is good. The clusters cannot be deleted in a short term.\nIt is recommended when data computing is frequently performed. Value range:\n100 GB to 32000 GB\n"
        },
        "volumeType": {
          "type": "string",
          "description": "Type of disks SATA and SSD are supported. SATA:\ncommon I/O SSD: super high-speed I/O\n"
        },
        "vpcId": {
          "type": "string",
          "description": "ID of the VPC where the subnet locates Obtain the VPC\nID from the management console as follows: Register an account and log in to\nthe management console. Click Virtual Private Cloud and select Virtual Private\nCloud from the left list. On the Virtual Private Cloud page, obtain the VPC\nID from the list.\n"
        }
      },
      "requiredInputs": [
        "availableZoneId",
        "clusterName",
        "componentLists",
        "coreNodeNum",
        "coreNodeSize",
        "masterNodeNum",
        "masterNodeSize",
        "nodePublicCertName",
        "safeMode",
        "subnetId",
        "volumeSize",
        "volumeType",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MrsClusterV1 resources.\n",
        "properties": {
          "addJobs": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FMrsClusterV1AddJob:MrsClusterV1AddJob"
            },
            "description": "You can submit a job when you create a cluster to save time and use MRS easily.\nOnly one job can be added. The object structure is documented below.\n"
          },
          "availableZoneId": {
            "type": "string",
            "description": "ID or Name of an available zone. Obtain the value\nfrom Regions and Endpoints.\n"
          },
          "availableZoneName": {
            "type": "string",
            "description": "Name of an availability zone.\n"
          },
          "billingType": {
            "type": "number"
          },
          "chargingStartTime": {
            "type": "string",
            "description": "Time when charging starts.\n"
          },
          "clusterAdminSecret": {
            "type": "string",
            "description": "Indicates the password of the MRS Manager\nadministrator.\n+ Must contain 8 to 32 characters.\n+ Must contain at least three of the following: Lowercase letters, Uppercase letters,\nDigits and Special characters: `~!@#$%^&*()-_=+\\|[{}];:'\",<.>/? and space\n+ Cannot be the username or the username spelled backwards.\n",
            "secret": true
          },
          "clusterId": {
            "type": "string",
            "description": "Cluster ID.\n"
          },
          "clusterName": {
            "type": "string",
            "description": "Cluster name, which is globally unique and contains\nonly 1 to 64 letters, digits, hyphens (-), and underscores (_).\n"
          },
          "clusterState": {
            "type": "string",
            "description": "Cluster status. Valid values include: starting, running, terminated, failed, abnormal,\nterminating, frozen, scaling-out and scaling-in.\n"
          },
          "clusterType": {
            "type": "number",
            "description": "Type of clusters. 0: analysis cluster; 1: streaming cluster.\nThe default value is 0.\n"
          },
          "clusterVersion": {
            "type": "string",
            "description": "Version of the clusters. Possible values are as follows:\nMRS 1.8.9, MRS 2.0.1, MRS 2.1.0 and MRS 3.1.0-LTS.1. The latest version of MRS is used by default.\n"
          },
          "componentLists": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FMrsClusterV1ComponentList:MrsClusterV1ComponentList"
            },
            "description": "Service component list. The object structure is documented below.\n"
          },
          "coreNodeNum": {
            "type": "number",
            "description": "Number of Core nodes Value range: 3 to 500. A\nmaximum of 500 Core nodes are supported by default. If more than 500 Core nodes\nare required, contact technical support engineers or invoke background APIs\nto modify the database.\n"
          },
          "coreNodeProductId": {
            "type": "string",
            "description": "Product ID of a Core node.\n"
          },
          "coreNodeSize": {
            "type": "string",
            "description": "Instance specification of a Core node Configuration\nmethod of this parameter is identical to that of master_node_size.\n"
          },
          "coreNodeSpecId": {
            "type": "string",
            "description": "Specification ID of a Core node.\n"
          },
          "createAt": {
            "type": "string",
            "description": "Cluster creation time.\n"
          },
          "deploymentId": {
            "type": "string",
            "description": "Deployment ID of a cluster.\n"
          },
          "duration": {
            "type": "string",
            "description": "Cluster subscription duration.\n"
          },
          "errorInfo": {
            "type": "string",
            "description": "Error information.\n"
          },
          "externalAlternateIp": {
            "type": "string",
            "description": "Backup external IP address.\n"
          },
          "externalIp": {
            "type": "string",
            "description": "External IP address.\n"
          },
          "fee": {
            "type": "string",
            "description": "Cluster creation fee, which is automatically calculated.\n"
          },
          "hadoopVersion": {
            "type": "string",
            "description": "Hadoop version.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Instance ID.\n"
          },
          "internalIp": {
            "type": "string"
          },
          "logCollection": {
            "type": "number",
            "description": "Indicates whether logs are collected when cluster\ninstallation fails. 0: not collected 1: collected The default value is 0. If\nlog_collection is set to 1, OBS buckets will be created to collect the MRS logs.\nThese buckets will be charged.\n"
          },
          "masterNodeIp": {
            "type": "string",
            "description": "IP address of a Master node.\n* `externalIp` - Internal IP address.\n"
          },
          "masterNodeNum": {
            "type": "number",
            "description": "Number of Master nodes The value is 2.\n"
          },
          "masterNodeProductId": {
            "type": "string",
            "description": "Product ID of a Master node.\n"
          },
          "masterNodeSize": {
            "type": "string",
            "description": "Best match based on several years of commissioning\nexperience. MRS supports specifications of hosts, and host specifications are\ndetermined by CPUs, memory, and disks space.\n+ Master nodes support s1.4xlarge and s1.8xlarge, c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4,\nc3.8xlarge.4, c3.15xlarge.4.\n+ Core nodes of a streaming cluster support s1.xlarge, c2.2xlarge, s1.2xlarge, s1.4xlarge, s1.8xlarge, d1.8xlarge,\nc3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2, c3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4.\n+ Core nodes of an analysis cluster support all specifications c2.2xlarge, s1.xlarge, s1.4xlarge, s1.8xlarge,\nd1.xlarge, d1.2xlarge, d1.4xlarge, d1.8xlarge, , c3.2xlarge.2, c3.xlarge.4, c3.2xlarge.4, c3.4xlarge.2,\nc3.4xlarge.4, c3.8xlarge.4, c3.15xlarge.4, d2.xlarge.8, d2.2xlarge.8, d2.4xlarge.8, d2.8xlarge.8.\n\nThe following provides specification details.\n\nnode_size | CPU(core) | Memory(GB) | System Disk | Data Disk\n--- | --- | --- | --- | ---\nc2.2xlarge.linux.mrs | 8  | 16  | 40 | -\ncc3.xlarge.4.linux.mrs | 4  | 16  | 40 | -\ncc3.2xlarge.4.linux.mrs | 8  | 32  | 40 | -\ncc3.4xlarge.4.linux.mrs | 16 | 64  | 40 | -\ncc3.8xlarge.4.linux.mrs | 32 | 128 | 40 | -\ns1.xlarge.linux.mrs  | 4  | 16  | 40 | -\ns1.4xlarge.linux.mrs | 16 | 64  | 40 | -\ns1.8xlarge.linux.mrs | 32 | 128 | 40 | -\ns3.xlarge.4.linux.mrs| 4  | 16  | 40 | -\ns3.2xlarge.4.linux.mrs| 8 | 32  | 40 | -\ns3.4xlarge.4.linux.mrs| 16 | 64  | 40 | -\nd1.xlarge.linux.mrs  | 6  | 55  | 40 | 1.8 TB x 3 HDDs\nd1.2xlarge.linux.mrs | 12 | 110 | 40 | 1.8 TB x 6 HDDs\nd1.4xlarge.linux.mrs | 24 | 220 | 40 | 1.8 TB x 12 HDDs\nd1.8xlarge.linux.mrs | 48 | 440 | 40 | 1.8 TB x 24 HDDs\nd2.xlarge.linux.mrs  | 4  | 32  | 40 | -\nd2.2xlarge.linux.mrs | 8 | 64 | 40 | -\nd2.4xlarge.linux.mrs | 16 | 128 | 40 | 1.8TB*8HDDs\nd2.8xlarge.linux.mrs | 32 | 256 | 40 | 1.8TB*16HDDs\n"
          },
          "masterNodeSpecId": {
            "type": "string",
            "description": "Specification ID of a Master node.\n"
          },
          "mrsClusterV1Id": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "nodePublicCertName": {
            "type": "string",
            "description": "Name of a key pair You can use a key\nto log in to the Master node in the cluster.\n"
          },
          "orderId": {
            "type": "string",
            "description": "Order ID for creating clusters.\n"
          },
          "privateIpFirst": {
            "type": "string",
            "description": "Primary private IP address.\n"
          },
          "region": {
            "type": "string",
            "description": "Cluster region information. Obtain the value from\nRegions and Endpoints.\n"
          },
          "remark": {
            "type": "string",
            "description": "Remarks of a cluster.\n"
          },
          "safeMode": {
            "type": "number",
            "description": "MRS cluster running mode.\n+ **0**: common mode The value indicates that the Kerberos authentication is disabled.\nUsers can use all functions provided by the cluster.\n+ **1**: safe mode The value indicates that the Kerberos authentication is enabled.\nCommon users cannot use the file management and job management functions of an MRS cluster or\nview cluster resource usage and the job records of Hadoop and Spark. To use these functions,\nthe users must obtain the relevant permissions from the MRS Manager administrator.\n"
          },
          "securityGroupsId": {
            "type": "string",
            "description": "Security group ID.\n"
          },
          "slaveSecurityGroupsId": {
            "type": "string",
            "description": "Standby security group ID.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the ID of the VPC Subnet which bound to the MRS cluster.\nChanging this will create a new MRS cluster resource.\n"
          },
          "tenantId": {
            "type": "string",
            "description": "Project ID.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV1Timeouts:MrsClusterV1Timeouts"
          },
          "updateAt": {
            "type": "string",
            "description": "Cluster update time.\n"
          },
          "vnc": {
            "type": "string",
            "description": "URI address for remote login of the elastic cloud server.\n"
          },
          "volumeSize": {
            "type": "number",
            "description": "Data disk storage space of a Core node Users can\nadd disks to expand storage capacity when creating a cluster. There are the\nfollowing scenarios: Separation of data storage and computing: Data is stored\nin the OBS system. Costs of clusters are relatively low but computing performance\nis poor. The clusters can be deleted at any time. It is recommended when data\ncomputing is not frequently performed. Integration of data storage and computing:\nData is stored in the HDFS system. Costs of clusters are relatively high but\ncomputing performance is good. The clusters cannot be deleted in a short term.\nIt is recommended when data computing is frequently performed. Value range:\n100 GB to 32000 GB\n"
          },
          "volumeType": {
            "type": "string",
            "description": "Type of disks SATA and SSD are supported. SATA:\ncommon I/O SSD: super high-speed I/O\n"
          },
          "vpcId": {
            "type": "string",
            "description": "ID of the VPC where the subnet locates Obtain the VPC\nID from the management console as follows: Register an account and log in to\nthe management console. Click Virtual Private Cloud and select Virtual Private\nCloud from the left list. On the Virtual Private Cloud page, obtain the VPC\nID from the list.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/mrsClusterV2:MrsClusterV2": {
      "description": "Manages a MRS cluster resource within FlexibleEngine.\n\n## Example Usage\n\n### Create an analysis cluster\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst mrsAz = config.requireObject(\"mrsAz\");\nconst clusterName = config.requireObject(\"clusterName\");\nconst password = config.requireObject(\"password\");\nconst keypair = config.requireObject(\"keypair\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst test = new flexibleengine.MrsClusterV2(\"test\", {\n    availabilityZone: mrsAz,\n    version: \"MRS 2.0.1\",\n    type: \"ANALYSIS\",\n    componentLists: [\n        \"Hadoop\",\n        \"Spark\",\n        \"Hive\",\n        \"Tez\",\n    ],\n    managerAdminPwd: password,\n    nodeKeyPair: keypair,\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    masterNodes: {\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 2,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 300,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 480,\n        dataVolumeCount: 1,\n    },\n    analysisCoreNodes: {\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 3,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 300,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 480,\n        dataVolumeCount: 1,\n    },\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nmrs_az = config.require_object(\"mrsAz\")\ncluster_name = config.require_object(\"clusterName\")\npassword = config.require_object(\"password\")\nkeypair = config.require_object(\"keypair\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\ntest = flexibleengine.MrsClusterV2(\"test\",\n    availability_zone=mrs_az,\n    version=\"MRS 2.0.1\",\n    type=\"ANALYSIS\",\n    component_lists=[\n        \"Hadoop\",\n        \"Spark\",\n        \"Hive\",\n        \"Tez\",\n    ],\n    manager_admin_pwd=password,\n    node_key_pair=keypair,\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    master_nodes={\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 2,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 300,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 480,\n        \"data_volume_count\": 1,\n    },\n    analysis_core_nodes={\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 3,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 300,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 480,\n        \"data_volume_count\": 1,\n    },\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var mrsAz = config.RequireObject<dynamic>(\"mrsAz\");\n    var clusterName = config.RequireObject<dynamic>(\"clusterName\");\n    var password = config.RequireObject<dynamic>(\"password\");\n    var keypair = config.RequireObject<dynamic>(\"keypair\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var test = new Flexibleengine.MrsClusterV2(\"test\", new()\n    {\n        AvailabilityZone = mrsAz,\n        Version = \"MRS 2.0.1\",\n        Type = \"ANALYSIS\",\n        ComponentLists = new[]\n        {\n            \"Hadoop\",\n            \"Spark\",\n            \"Hive\",\n            \"Tez\",\n        },\n        ManagerAdminPwd = password,\n        NodeKeyPair = keypair,\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        MasterNodes = new Flexibleengine.Inputs.MrsClusterV2MasterNodesArgs\n        {\n            Flavor = \"c6.4xlarge.4.linux.mrs\",\n            NodeNumber = 2,\n            RootVolumeType = \"SAS\",\n            RootVolumeSize = 300,\n            DataVolumeType = \"SAS\",\n            DataVolumeSize = 480,\n            DataVolumeCount = 1,\n        },\n        AnalysisCoreNodes = new Flexibleengine.Inputs.MrsClusterV2AnalysisCoreNodesArgs\n        {\n            Flavor = \"c6.4xlarge.4.linux.mrs\",\n            NodeNumber = 3,\n            RootVolumeType = \"SAS\",\n            RootVolumeSize = 300,\n            DataVolumeType = \"SAS\",\n            DataVolumeSize = 480,\n            DataVolumeCount = 1,\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tmrsAz := cfg.RequireObject(\"mrsAz\")\n\t\tclusterName := cfg.RequireObject(\"clusterName\")\n\t\tpassword := cfg.RequireObject(\"password\")\n\t\tkeypair := cfg.RequireObject(\"keypair\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewMrsClusterV2(ctx, \"test\", &flexibleengine.MrsClusterV2Args{\n\t\t\tAvailabilityZone: pulumi.Any(mrsAz),\n\t\t\tVersion:          pulumi.String(\"MRS 2.0.1\"),\n\t\t\tType:             pulumi.String(\"ANALYSIS\"),\n\t\t\tComponentLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Hadoop\"),\n\t\t\t\tpulumi.String(\"Spark\"),\n\t\t\t\tpulumi.String(\"Hive\"),\n\t\t\t\tpulumi.String(\"Tez\"),\n\t\t\t},\n\t\t\tManagerAdminPwd: pulumi.Any(password),\n\t\t\tNodeKeyPair:     pulumi.Any(keypair),\n\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\tSubnetId:        exampleSubnet.VpcSubnetV1Id,\n\t\t\tMasterNodes: &flexibleengine.MrsClusterV2MasterNodesArgs{\n\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\tNodeNumber:      pulumi.Float64(2),\n\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tRootVolumeSize:  pulumi.Float64(300),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(480),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tAnalysisCoreNodes: &flexibleengine.MrsClusterV2AnalysisCoreNodesArgs{\n\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\tNodeNumber:      pulumi.Float64(3),\n\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tRootVolumeSize:  pulumi.Float64(300),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(480),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.MrsClusterV2;\nimport com.pulumi.flexibleengine.MrsClusterV2Args;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2MasterNodesArgs;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2AnalysisCoreNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var mrsAz = config.get(\"mrsAz\");\n        final var clusterName = config.get(\"clusterName\");\n        final var password = config.get(\"password\");\n        final var keypair = config.get(\"keypair\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var test = new MrsClusterV2(\"test\", MrsClusterV2Args.builder()\n            .availabilityZone(mrsAz)\n            .version(\"MRS 2.0.1\")\n            .type(\"ANALYSIS\")\n            .componentLists(            \n                \"Hadoop\",\n                \"Spark\",\n                \"Hive\",\n                \"Tez\")\n            .managerAdminPwd(password)\n            .nodeKeyPair(keypair)\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .masterNodes(MrsClusterV2MasterNodesArgs.builder()\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(2)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(300)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(480)\n                .dataVolumeCount(1)\n                .build())\n            .analysisCoreNodes(MrsClusterV2AnalysisCoreNodesArgs.builder()\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(3)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(300)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(480)\n                .dataVolumeCount(1)\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  mrsAz:\n    type: dynamic\n  clusterName:\n    type: dynamic\n  password:\n    type: dynamic\n  keypair:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  test:\n    type: flexibleengine:MrsClusterV2\n    properties:\n      availabilityZone: ${mrsAz}\n      version: MRS 2.0.1\n      type: ANALYSIS\n      componentLists:\n        - Hadoop\n        - Spark\n        - Hive\n        - Tez\n      managerAdminPwd: ${password}\n      nodeKeyPair: ${keypair}\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      masterNodes:\n        flavor: c6.4xlarge.4.linux.mrs\n        nodeNumber: 2\n        rootVolumeType: SAS\n        rootVolumeSize: 300\n        dataVolumeType: SAS\n        dataVolumeSize: 480\n        dataVolumeCount: 1\n      analysisCoreNodes:\n        flavor: c6.4xlarge.4.linux.mrs\n        nodeNumber: 3\n        rootVolumeType: SAS\n        rootVolumeSize: 300\n        dataVolumeType: SAS\n        dataVolumeSize: 480\n        dataVolumeCount: 1\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### Create a stream cluster\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst mrsAz = config.requireObject(\"mrsAz\");\nconst clusterName = config.requireObject(\"clusterName\");\nconst password = config.requireObject(\"password\");\nconst keypair = config.requireObject(\"keypair\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst test = new flexibleengine.MrsClusterV2(\"test\", {\n    availabilityZone: mrsAz,\n    type: \"STREAMING\",\n    version: \"MRS 3.1.0-LTS.1\",\n    managerAdminPwd: password,\n    nodeKeyPair: keypair,\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    componentLists: [\n        \"Ranger\",\n        \"Kafka\",\n        \"ZooKeeper\",\n    ],\n    masterNodes: {\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 2,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 480,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 600,\n        dataVolumeCount: 1,\n    },\n    streamingCoreNodes: {\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 3,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 480,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 600,\n        dataVolumeCount: 1,\n    },\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nmrs_az = config.require_object(\"mrsAz\")\ncluster_name = config.require_object(\"clusterName\")\npassword = config.require_object(\"password\")\nkeypair = config.require_object(\"keypair\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\ntest = flexibleengine.MrsClusterV2(\"test\",\n    availability_zone=mrs_az,\n    type=\"STREAMING\",\n    version=\"MRS 3.1.0-LTS.1\",\n    manager_admin_pwd=password,\n    node_key_pair=keypair,\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    component_lists=[\n        \"Ranger\",\n        \"Kafka\",\n        \"ZooKeeper\",\n    ],\n    master_nodes={\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 2,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 480,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 600,\n        \"data_volume_count\": 1,\n    },\n    streaming_core_nodes={\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 3,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 480,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 600,\n        \"data_volume_count\": 1,\n    },\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var mrsAz = config.RequireObject<dynamic>(\"mrsAz\");\n    var clusterName = config.RequireObject<dynamic>(\"clusterName\");\n    var password = config.RequireObject<dynamic>(\"password\");\n    var keypair = config.RequireObject<dynamic>(\"keypair\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var test = new Flexibleengine.MrsClusterV2(\"test\", new()\n    {\n        AvailabilityZone = mrsAz,\n        Type = \"STREAMING\",\n        Version = \"MRS 3.1.0-LTS.1\",\n        ManagerAdminPwd = password,\n        NodeKeyPair = keypair,\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        ComponentLists = new[]\n        {\n            \"Ranger\",\n            \"Kafka\",\n            \"ZooKeeper\",\n        },\n        MasterNodes = new Flexibleengine.Inputs.MrsClusterV2MasterNodesArgs\n        {\n            Flavor = \"c6.4xlarge.4.linux.mrs\",\n            NodeNumber = 2,\n            RootVolumeType = \"SAS\",\n            RootVolumeSize = 480,\n            DataVolumeType = \"SAS\",\n            DataVolumeSize = 600,\n            DataVolumeCount = 1,\n        },\n        StreamingCoreNodes = new Flexibleengine.Inputs.MrsClusterV2StreamingCoreNodesArgs\n        {\n            Flavor = \"c6.4xlarge.4.linux.mrs\",\n            NodeNumber = 3,\n            RootVolumeType = \"SAS\",\n            RootVolumeSize = 480,\n            DataVolumeType = \"SAS\",\n            DataVolumeSize = 600,\n            DataVolumeCount = 1,\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tmrsAz := cfg.RequireObject(\"mrsAz\")\n\t\tclusterName := cfg.RequireObject(\"clusterName\")\n\t\tpassword := cfg.RequireObject(\"password\")\n\t\tkeypair := cfg.RequireObject(\"keypair\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewMrsClusterV2(ctx, \"test\", &flexibleengine.MrsClusterV2Args{\n\t\t\tAvailabilityZone: pulumi.Any(mrsAz),\n\t\t\tType:             pulumi.String(\"STREAMING\"),\n\t\t\tVersion:          pulumi.String(\"MRS 3.1.0-LTS.1\"),\n\t\t\tManagerAdminPwd:  pulumi.Any(password),\n\t\t\tNodeKeyPair:      pulumi.Any(keypair),\n\t\t\tVpcId:            exampleVpc.VpcV1Id,\n\t\t\tSubnetId:         exampleSubnet.VpcSubnetV1Id,\n\t\t\tComponentLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Ranger\"),\n\t\t\t\tpulumi.String(\"Kafka\"),\n\t\t\t\tpulumi.String(\"ZooKeeper\"),\n\t\t\t},\n\t\t\tMasterNodes: &flexibleengine.MrsClusterV2MasterNodesArgs{\n\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\tNodeNumber:      pulumi.Float64(2),\n\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tRootVolumeSize:  pulumi.Float64(480),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(600),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tStreamingCoreNodes: &flexibleengine.MrsClusterV2StreamingCoreNodesArgs{\n\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\tNodeNumber:      pulumi.Float64(3),\n\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tRootVolumeSize:  pulumi.Float64(480),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(600),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.MrsClusterV2;\nimport com.pulumi.flexibleengine.MrsClusterV2Args;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2MasterNodesArgs;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2StreamingCoreNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var mrsAz = config.get(\"mrsAz\");\n        final var clusterName = config.get(\"clusterName\");\n        final var password = config.get(\"password\");\n        final var keypair = config.get(\"keypair\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var test = new MrsClusterV2(\"test\", MrsClusterV2Args.builder()\n            .availabilityZone(mrsAz)\n            .type(\"STREAMING\")\n            .version(\"MRS 3.1.0-LTS.1\")\n            .managerAdminPwd(password)\n            .nodeKeyPair(keypair)\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .componentLists(            \n                \"Ranger\",\n                \"Kafka\",\n                \"ZooKeeper\")\n            .masterNodes(MrsClusterV2MasterNodesArgs.builder()\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(2)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(480)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(600)\n                .dataVolumeCount(1)\n                .build())\n            .streamingCoreNodes(MrsClusterV2StreamingCoreNodesArgs.builder()\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(3)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(480)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(600)\n                .dataVolumeCount(1)\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  mrsAz:\n    type: dynamic\n  clusterName:\n    type: dynamic\n  password:\n    type: dynamic\n  keypair:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  test:\n    type: flexibleengine:MrsClusterV2\n    properties:\n      availabilityZone: ${mrsAz}\n      type: STREAMING\n      version: MRS 3.1.0-LTS.1\n      managerAdminPwd: ${password}\n      nodeKeyPair: ${keypair}\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      componentLists:\n        - Ranger\n        - Kafka\n        - ZooKeeper\n      masterNodes:\n        flavor: c6.4xlarge.4.linux.mrs\n        nodeNumber: 2\n        rootVolumeType: SAS\n        rootVolumeSize: 480\n        dataVolumeType: SAS\n        dataVolumeSize: 600\n        dataVolumeCount: 1\n      streamingCoreNodes:\n        flavor: c6.4xlarge.4.linux.mrs\n        nodeNumber: 3\n        rootVolumeType: SAS\n        rootVolumeSize: 480\n        dataVolumeType: SAS\n        dataVolumeSize: 600\n        dataVolumeCount: 1\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### Create a hybrid cluster\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst mrsAz = config.requireObject(\"mrsAz\");\nconst clusterName = config.requireObject(\"clusterName\");\nconst password = config.requireObject(\"password\");\nconst keypair = config.requireObject(\"keypair\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst test = new flexibleengine.MrsClusterV2(\"test\", {\n    availabilityZone: mrsAz,\n    version: \"MRS 2.0.1\",\n    type: \"MIXED\",\n    componentLists: [\n        \"Hadoop\",\n        \"Spark\",\n        \"Hive\",\n        \"Tez\",\n        \"Storm\",\n    ],\n    managerAdminPwd: password,\n    nodeKeyPair: keypair,\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    masterNodes: {\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 2,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 300,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 480,\n        dataVolumeCount: 1,\n    },\n    analysisCoreNodes: {\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 2,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 300,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 480,\n        dataVolumeCount: 1,\n    },\n    streamingCoreNodes: {\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 2,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 300,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 480,\n        dataVolumeCount: 1,\n    },\n    analysisTaskNodes: {\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 1,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 300,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 480,\n        dataVolumeCount: 1,\n    },\n    streamingTaskNodes: {\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 1,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 300,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 480,\n        dataVolumeCount: 1,\n    },\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nmrs_az = config.require_object(\"mrsAz\")\ncluster_name = config.require_object(\"clusterName\")\npassword = config.require_object(\"password\")\nkeypair = config.require_object(\"keypair\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\ntest = flexibleengine.MrsClusterV2(\"test\",\n    availability_zone=mrs_az,\n    version=\"MRS 2.0.1\",\n    type=\"MIXED\",\n    component_lists=[\n        \"Hadoop\",\n        \"Spark\",\n        \"Hive\",\n        \"Tez\",\n        \"Storm\",\n    ],\n    manager_admin_pwd=password,\n    node_key_pair=keypair,\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    master_nodes={\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 2,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 300,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 480,\n        \"data_volume_count\": 1,\n    },\n    analysis_core_nodes={\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 2,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 300,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 480,\n        \"data_volume_count\": 1,\n    },\n    streaming_core_nodes={\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 2,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 300,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 480,\n        \"data_volume_count\": 1,\n    },\n    analysis_task_nodes={\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 1,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 300,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 480,\n        \"data_volume_count\": 1,\n    },\n    streaming_task_nodes={\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 1,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 300,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 480,\n        \"data_volume_count\": 1,\n    },\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var mrsAz = config.RequireObject<dynamic>(\"mrsAz\");\n    var clusterName = config.RequireObject<dynamic>(\"clusterName\");\n    var password = config.RequireObject<dynamic>(\"password\");\n    var keypair = config.RequireObject<dynamic>(\"keypair\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var test = new Flexibleengine.MrsClusterV2(\"test\", new()\n    {\n        AvailabilityZone = mrsAz,\n        Version = \"MRS 2.0.1\",\n        Type = \"MIXED\",\n        ComponentLists = new[]\n        {\n            \"Hadoop\",\n            \"Spark\",\n            \"Hive\",\n            \"Tez\",\n            \"Storm\",\n        },\n        ManagerAdminPwd = password,\n        NodeKeyPair = keypair,\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        MasterNodes = new Flexibleengine.Inputs.MrsClusterV2MasterNodesArgs\n        {\n            Flavor = \"c6.4xlarge.4.linux.mrs\",\n            NodeNumber = 2,\n            RootVolumeType = \"SAS\",\n            RootVolumeSize = 300,\n            DataVolumeType = \"SAS\",\n            DataVolumeSize = 480,\n            DataVolumeCount = 1,\n        },\n        AnalysisCoreNodes = new Flexibleengine.Inputs.MrsClusterV2AnalysisCoreNodesArgs\n        {\n            Flavor = \"c6.4xlarge.4.linux.mrs\",\n            NodeNumber = 2,\n            RootVolumeType = \"SAS\",\n            RootVolumeSize = 300,\n            DataVolumeType = \"SAS\",\n            DataVolumeSize = 480,\n            DataVolumeCount = 1,\n        },\n        StreamingCoreNodes = new Flexibleengine.Inputs.MrsClusterV2StreamingCoreNodesArgs\n        {\n            Flavor = \"c6.4xlarge.4.linux.mrs\",\n            NodeNumber = 2,\n            RootVolumeType = \"SAS\",\n            RootVolumeSize = 300,\n            DataVolumeType = \"SAS\",\n            DataVolumeSize = 480,\n            DataVolumeCount = 1,\n        },\n        AnalysisTaskNodes = new Flexibleengine.Inputs.MrsClusterV2AnalysisTaskNodesArgs\n        {\n            Flavor = \"c6.4xlarge.4.linux.mrs\",\n            NodeNumber = 1,\n            RootVolumeType = \"SAS\",\n            RootVolumeSize = 300,\n            DataVolumeType = \"SAS\",\n            DataVolumeSize = 480,\n            DataVolumeCount = 1,\n        },\n        StreamingTaskNodes = new Flexibleengine.Inputs.MrsClusterV2StreamingTaskNodesArgs\n        {\n            Flavor = \"c6.4xlarge.4.linux.mrs\",\n            NodeNumber = 1,\n            RootVolumeType = \"SAS\",\n            RootVolumeSize = 300,\n            DataVolumeType = \"SAS\",\n            DataVolumeSize = 480,\n            DataVolumeCount = 1,\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tmrsAz := cfg.RequireObject(\"mrsAz\")\n\t\tclusterName := cfg.RequireObject(\"clusterName\")\n\t\tpassword := cfg.RequireObject(\"password\")\n\t\tkeypair := cfg.RequireObject(\"keypair\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewMrsClusterV2(ctx, \"test\", &flexibleengine.MrsClusterV2Args{\n\t\t\tAvailabilityZone: pulumi.Any(mrsAz),\n\t\t\tVersion:          pulumi.String(\"MRS 2.0.1\"),\n\t\t\tType:             pulumi.String(\"MIXED\"),\n\t\t\tComponentLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Hadoop\"),\n\t\t\t\tpulumi.String(\"Spark\"),\n\t\t\t\tpulumi.String(\"Hive\"),\n\t\t\t\tpulumi.String(\"Tez\"),\n\t\t\t\tpulumi.String(\"Storm\"),\n\t\t\t},\n\t\t\tManagerAdminPwd: pulumi.Any(password),\n\t\t\tNodeKeyPair:     pulumi.Any(keypair),\n\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\tSubnetId:        exampleSubnet.VpcSubnetV1Id,\n\t\t\tMasterNodes: &flexibleengine.MrsClusterV2MasterNodesArgs{\n\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\tNodeNumber:      pulumi.Float64(2),\n\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tRootVolumeSize:  pulumi.Float64(300),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(480),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tAnalysisCoreNodes: &flexibleengine.MrsClusterV2AnalysisCoreNodesArgs{\n\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\tNodeNumber:      pulumi.Float64(2),\n\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tRootVolumeSize:  pulumi.Float64(300),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(480),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tStreamingCoreNodes: &flexibleengine.MrsClusterV2StreamingCoreNodesArgs{\n\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\tNodeNumber:      pulumi.Float64(2),\n\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tRootVolumeSize:  pulumi.Float64(300),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(480),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tAnalysisTaskNodes: &flexibleengine.MrsClusterV2AnalysisTaskNodesArgs{\n\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\tNodeNumber:      pulumi.Float64(1),\n\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tRootVolumeSize:  pulumi.Float64(300),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(480),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tStreamingTaskNodes: &flexibleengine.MrsClusterV2StreamingTaskNodesArgs{\n\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\tNodeNumber:      pulumi.Float64(1),\n\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tRootVolumeSize:  pulumi.Float64(300),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(480),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.MrsClusterV2;\nimport com.pulumi.flexibleengine.MrsClusterV2Args;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2MasterNodesArgs;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2AnalysisCoreNodesArgs;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2StreamingCoreNodesArgs;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2AnalysisTaskNodesArgs;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2StreamingTaskNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var mrsAz = config.get(\"mrsAz\");\n        final var clusterName = config.get(\"clusterName\");\n        final var password = config.get(\"password\");\n        final var keypair = config.get(\"keypair\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var test = new MrsClusterV2(\"test\", MrsClusterV2Args.builder()\n            .availabilityZone(mrsAz)\n            .version(\"MRS 2.0.1\")\n            .type(\"MIXED\")\n            .componentLists(            \n                \"Hadoop\",\n                \"Spark\",\n                \"Hive\",\n                \"Tez\",\n                \"Storm\")\n            .managerAdminPwd(password)\n            .nodeKeyPair(keypair)\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .masterNodes(MrsClusterV2MasterNodesArgs.builder()\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(2)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(300)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(480)\n                .dataVolumeCount(1)\n                .build())\n            .analysisCoreNodes(MrsClusterV2AnalysisCoreNodesArgs.builder()\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(2)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(300)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(480)\n                .dataVolumeCount(1)\n                .build())\n            .streamingCoreNodes(MrsClusterV2StreamingCoreNodesArgs.builder()\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(2)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(300)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(480)\n                .dataVolumeCount(1)\n                .build())\n            .analysisTaskNodes(MrsClusterV2AnalysisTaskNodesArgs.builder()\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(1)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(300)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(480)\n                .dataVolumeCount(1)\n                .build())\n            .streamingTaskNodes(MrsClusterV2StreamingTaskNodesArgs.builder()\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(1)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(300)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(480)\n                .dataVolumeCount(1)\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  mrsAz:\n    type: dynamic\n  clusterName:\n    type: dynamic\n  password:\n    type: dynamic\n  keypair:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  test:\n    type: flexibleengine:MrsClusterV2\n    properties:\n      availabilityZone: ${mrsAz}\n      version: MRS 2.0.1\n      type: MIXED\n      componentLists:\n        - Hadoop\n        - Spark\n        - Hive\n        - Tez\n        - Storm\n      managerAdminPwd: ${password}\n      nodeKeyPair: ${keypair}\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      masterNodes:\n        flavor: c6.4xlarge.4.linux.mrs\n        nodeNumber: 2\n        rootVolumeType: SAS\n        rootVolumeSize: 300\n        dataVolumeType: SAS\n        dataVolumeSize: 480\n        dataVolumeCount: 1\n      analysisCoreNodes:\n        flavor: c6.4xlarge.4.linux.mrs\n        nodeNumber: 2\n        rootVolumeType: SAS\n        rootVolumeSize: 300\n        dataVolumeType: SAS\n        dataVolumeSize: 480\n        dataVolumeCount: 1\n      streamingCoreNodes:\n        flavor: c6.4xlarge.4.linux.mrs\n        nodeNumber: 2\n        rootVolumeType: SAS\n        rootVolumeSize: 300\n        dataVolumeType: SAS\n        dataVolumeSize: 480\n        dataVolumeCount: 1\n      analysisTaskNodes:\n        flavor: c6.4xlarge.4.linux.mrs\n        nodeNumber: 1\n        rootVolumeType: SAS\n        rootVolumeSize: 300\n        dataVolumeType: SAS\n        dataVolumeSize: 480\n        dataVolumeCount: 1\n      streamingTaskNodes:\n        flavor: c6.4xlarge.4.linux.mrs\n        nodeNumber: 1\n        rootVolumeType: SAS\n        rootVolumeSize: 300\n        dataVolumeType: SAS\n        dataVolumeSize: 480\n        dataVolumeCount: 1\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### Create a custom cluster\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst mrsAz = config.requireObject(\"mrsAz\");\nconst clusterName = config.requireObject(\"clusterName\");\nconst password = config.requireObject(\"password\");\nconst keypair = config.requireObject(\"keypair\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst test = new flexibleengine.MrsClusterV2(\"test\", {\n    availabilityZone: mrsAz,\n    version: \"MRS 3.1.0-LTS.1\",\n    type: \"CUSTOM\",\n    safeMode: true,\n    managerAdminPwd: password,\n    nodeKeyPair: keypair,\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    templateId: \"mgmt_control_combined_v4\",\n    componentLists: [\n        \"DBService\",\n        \"Hadoop\",\n        \"ZooKeeper\",\n        \"Ranger\",\n    ],\n    masterNodes: {\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 3,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 480,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 600,\n        dataVolumeCount: 1,\n        assignedRoles: [\n            \"OMSServer:1,2\",\n            \"SlapdServer:1,2\",\n            \"KerberosServer:1,2\",\n            \"KerberosAdmin:1,2\",\n            \"quorumpeer:1,2,3\",\n            \"NameNode:2,3\",\n            \"Zkfc:2,3\",\n            \"JournalNode:1,2,3\",\n            \"ResourceManager:2,3\",\n            \"JobHistoryServer:3\",\n            \"DBServer:1,3\",\n            \"HttpFS:1,3\",\n            \"TimelineServer:3\",\n            \"RangerAdmin:1,2\",\n            \"UserSync:2\",\n            \"TagSync:2\",\n            \"KerberosClient\",\n            \"SlapdClient\",\n            \"meta\",\n        ],\n    },\n    customNodes: [{\n        groupName: \"node_group_1\",\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 4,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 480,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 600,\n        dataVolumeCount: 1,\n        assignedRoles: [\n            \"DataNode\",\n            \"NodeManager\",\n            \"KerberosClient\",\n            \"SlapdClient\",\n            \"meta\",\n        ],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nmrs_az = config.require_object(\"mrsAz\")\ncluster_name = config.require_object(\"clusterName\")\npassword = config.require_object(\"password\")\nkeypair = config.require_object(\"keypair\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\ntest = flexibleengine.MrsClusterV2(\"test\",\n    availability_zone=mrs_az,\n    version=\"MRS 3.1.0-LTS.1\",\n    type=\"CUSTOM\",\n    safe_mode=True,\n    manager_admin_pwd=password,\n    node_key_pair=keypair,\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    template_id=\"mgmt_control_combined_v4\",\n    component_lists=[\n        \"DBService\",\n        \"Hadoop\",\n        \"ZooKeeper\",\n        \"Ranger\",\n    ],\n    master_nodes={\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 3,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 480,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 600,\n        \"data_volume_count\": 1,\n        \"assigned_roles\": [\n            \"OMSServer:1,2\",\n            \"SlapdServer:1,2\",\n            \"KerberosServer:1,2\",\n            \"KerberosAdmin:1,2\",\n            \"quorumpeer:1,2,3\",\n            \"NameNode:2,3\",\n            \"Zkfc:2,3\",\n            \"JournalNode:1,2,3\",\n            \"ResourceManager:2,3\",\n            \"JobHistoryServer:3\",\n            \"DBServer:1,3\",\n            \"HttpFS:1,3\",\n            \"TimelineServer:3\",\n            \"RangerAdmin:1,2\",\n            \"UserSync:2\",\n            \"TagSync:2\",\n            \"KerberosClient\",\n            \"SlapdClient\",\n            \"meta\",\n        ],\n    },\n    custom_nodes=[{\n        \"group_name\": \"node_group_1\",\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 4,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 480,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 600,\n        \"data_volume_count\": 1,\n        \"assigned_roles\": [\n            \"DataNode\",\n            \"NodeManager\",\n            \"KerberosClient\",\n            \"SlapdClient\",\n            \"meta\",\n        ],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var mrsAz = config.RequireObject<dynamic>(\"mrsAz\");\n    var clusterName = config.RequireObject<dynamic>(\"clusterName\");\n    var password = config.RequireObject<dynamic>(\"password\");\n    var keypair = config.RequireObject<dynamic>(\"keypair\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var test = new Flexibleengine.MrsClusterV2(\"test\", new()\n    {\n        AvailabilityZone = mrsAz,\n        Version = \"MRS 3.1.0-LTS.1\",\n        Type = \"CUSTOM\",\n        SafeMode = true,\n        ManagerAdminPwd = password,\n        NodeKeyPair = keypair,\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        TemplateId = \"mgmt_control_combined_v4\",\n        ComponentLists = new[]\n        {\n            \"DBService\",\n            \"Hadoop\",\n            \"ZooKeeper\",\n            \"Ranger\",\n        },\n        MasterNodes = new Flexibleengine.Inputs.MrsClusterV2MasterNodesArgs\n        {\n            Flavor = \"c6.4xlarge.4.linux.mrs\",\n            NodeNumber = 3,\n            RootVolumeType = \"SAS\",\n            RootVolumeSize = 480,\n            DataVolumeType = \"SAS\",\n            DataVolumeSize = 600,\n            DataVolumeCount = 1,\n            AssignedRoles = new[]\n            {\n                \"OMSServer:1,2\",\n                \"SlapdServer:1,2\",\n                \"KerberosServer:1,2\",\n                \"KerberosAdmin:1,2\",\n                \"quorumpeer:1,2,3\",\n                \"NameNode:2,3\",\n                \"Zkfc:2,3\",\n                \"JournalNode:1,2,3\",\n                \"ResourceManager:2,3\",\n                \"JobHistoryServer:3\",\n                \"DBServer:1,3\",\n                \"HttpFS:1,3\",\n                \"TimelineServer:3\",\n                \"RangerAdmin:1,2\",\n                \"UserSync:2\",\n                \"TagSync:2\",\n                \"KerberosClient\",\n                \"SlapdClient\",\n                \"meta\",\n            },\n        },\n        CustomNodes = new[]\n        {\n            new Flexibleengine.Inputs.MrsClusterV2CustomNodeArgs\n            {\n                GroupName = \"node_group_1\",\n                Flavor = \"c6.4xlarge.4.linux.mrs\",\n                NodeNumber = 4,\n                RootVolumeType = \"SAS\",\n                RootVolumeSize = 480,\n                DataVolumeType = \"SAS\",\n                DataVolumeSize = 600,\n                DataVolumeCount = 1,\n                AssignedRoles = new[]\n                {\n                    \"DataNode\",\n                    \"NodeManager\",\n                    \"KerberosClient\",\n                    \"SlapdClient\",\n                    \"meta\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tmrsAz := cfg.RequireObject(\"mrsAz\")\n\t\tclusterName := cfg.RequireObject(\"clusterName\")\n\t\tpassword := cfg.RequireObject(\"password\")\n\t\tkeypair := cfg.RequireObject(\"keypair\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewMrsClusterV2(ctx, \"test\", &flexibleengine.MrsClusterV2Args{\n\t\t\tAvailabilityZone: pulumi.Any(mrsAz),\n\t\t\tVersion:          pulumi.String(\"MRS 3.1.0-LTS.1\"),\n\t\t\tType:             pulumi.String(\"CUSTOM\"),\n\t\t\tSafeMode:         pulumi.Bool(true),\n\t\t\tManagerAdminPwd:  pulumi.Any(password),\n\t\t\tNodeKeyPair:      pulumi.Any(keypair),\n\t\t\tVpcId:            exampleVpc.VpcV1Id,\n\t\t\tSubnetId:         exampleSubnet.VpcSubnetV1Id,\n\t\t\tTemplateId:       pulumi.String(\"mgmt_control_combined_v4\"),\n\t\t\tComponentLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"DBService\"),\n\t\t\t\tpulumi.String(\"Hadoop\"),\n\t\t\t\tpulumi.String(\"ZooKeeper\"),\n\t\t\t\tpulumi.String(\"Ranger\"),\n\t\t\t},\n\t\t\tMasterNodes: &flexibleengine.MrsClusterV2MasterNodesArgs{\n\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\tNodeNumber:      pulumi.Float64(3),\n\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tRootVolumeSize:  pulumi.Float64(480),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(600),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t\tAssignedRoles: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"OMSServer:1,2\"),\n\t\t\t\t\tpulumi.String(\"SlapdServer:1,2\"),\n\t\t\t\t\tpulumi.String(\"KerberosServer:1,2\"),\n\t\t\t\t\tpulumi.String(\"KerberosAdmin:1,2\"),\n\t\t\t\t\tpulumi.String(\"quorumpeer:1,2,3\"),\n\t\t\t\t\tpulumi.String(\"NameNode:2,3\"),\n\t\t\t\t\tpulumi.String(\"Zkfc:2,3\"),\n\t\t\t\t\tpulumi.String(\"JournalNode:1,2,3\"),\n\t\t\t\t\tpulumi.String(\"ResourceManager:2,3\"),\n\t\t\t\t\tpulumi.String(\"JobHistoryServer:3\"),\n\t\t\t\t\tpulumi.String(\"DBServer:1,3\"),\n\t\t\t\t\tpulumi.String(\"HttpFS:1,3\"),\n\t\t\t\t\tpulumi.String(\"TimelineServer:3\"),\n\t\t\t\t\tpulumi.String(\"RangerAdmin:1,2\"),\n\t\t\t\t\tpulumi.String(\"UserSync:2\"),\n\t\t\t\t\tpulumi.String(\"TagSync:2\"),\n\t\t\t\t\tpulumi.String(\"KerberosClient\"),\n\t\t\t\t\tpulumi.String(\"SlapdClient\"),\n\t\t\t\t\tpulumi.String(\"meta\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCustomNodes: flexibleengine.MrsClusterV2CustomNodeArray{\n\t\t\t\t&flexibleengine.MrsClusterV2CustomNodeArgs{\n\t\t\t\t\tGroupName:       pulumi.String(\"node_group_1\"),\n\t\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\t\tNodeNumber:      pulumi.Float64(4),\n\t\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\t\tRootVolumeSize:  pulumi.Float64(480),\n\t\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\t\tDataVolumeSize:  pulumi.Float64(600),\n\t\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t\t\tAssignedRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"DataNode\"),\n\t\t\t\t\t\tpulumi.String(\"NodeManager\"),\n\t\t\t\t\t\tpulumi.String(\"KerberosClient\"),\n\t\t\t\t\t\tpulumi.String(\"SlapdClient\"),\n\t\t\t\t\t\tpulumi.String(\"meta\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.MrsClusterV2;\nimport com.pulumi.flexibleengine.MrsClusterV2Args;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2MasterNodesArgs;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2CustomNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var mrsAz = config.get(\"mrsAz\");\n        final var clusterName = config.get(\"clusterName\");\n        final var password = config.get(\"password\");\n        final var keypair = config.get(\"keypair\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var test = new MrsClusterV2(\"test\", MrsClusterV2Args.builder()\n            .availabilityZone(mrsAz)\n            .version(\"MRS 3.1.0-LTS.1\")\n            .type(\"CUSTOM\")\n            .safeMode(true)\n            .managerAdminPwd(password)\n            .nodeKeyPair(keypair)\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .templateId(\"mgmt_control_combined_v4\")\n            .componentLists(            \n                \"DBService\",\n                \"Hadoop\",\n                \"ZooKeeper\",\n                \"Ranger\")\n            .masterNodes(MrsClusterV2MasterNodesArgs.builder()\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(3)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(480)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(600)\n                .dataVolumeCount(1)\n                .assignedRoles(                \n                    \"OMSServer:1,2\",\n                    \"SlapdServer:1,2\",\n                    \"KerberosServer:1,2\",\n                    \"KerberosAdmin:1,2\",\n                    \"quorumpeer:1,2,3\",\n                    \"NameNode:2,3\",\n                    \"Zkfc:2,3\",\n                    \"JournalNode:1,2,3\",\n                    \"ResourceManager:2,3\",\n                    \"JobHistoryServer:3\",\n                    \"DBServer:1,3\",\n                    \"HttpFS:1,3\",\n                    \"TimelineServer:3\",\n                    \"RangerAdmin:1,2\",\n                    \"UserSync:2\",\n                    \"TagSync:2\",\n                    \"KerberosClient\",\n                    \"SlapdClient\",\n                    \"meta\")\n                .build())\n            .customNodes(MrsClusterV2CustomNodeArgs.builder()\n                .groupName(\"node_group_1\")\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(4)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(480)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(600)\n                .dataVolumeCount(1)\n                .assignedRoles(                \n                    \"DataNode\",\n                    \"NodeManager\",\n                    \"KerberosClient\",\n                    \"SlapdClient\",\n                    \"meta\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  mrsAz:\n    type: dynamic\n  clusterName:\n    type: dynamic\n  password:\n    type: dynamic\n  keypair:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  test:\n    type: flexibleengine:MrsClusterV2\n    properties:\n      availabilityZone: ${mrsAz}\n      version: MRS 3.1.0-LTS.1\n      type: CUSTOM\n      safeMode: true\n      managerAdminPwd: ${password}\n      nodeKeyPair: ${keypair}\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      templateId: mgmt_control_combined_v4\n      componentLists:\n        - DBService\n        - Hadoop\n        - ZooKeeper\n        - Ranger\n      masterNodes:\n        flavor: c6.4xlarge.4.linux.mrs\n        nodeNumber: 3\n        rootVolumeType: SAS\n        rootVolumeSize: 480\n        dataVolumeType: SAS\n        dataVolumeSize: 600\n        dataVolumeCount: 1\n        assignedRoles:\n          - OMSServer:1,2\n          - SlapdServer:1,2\n          - KerberosServer:1,2\n          - KerberosAdmin:1,2\n          - quorumpeer:1,2,3\n          - NameNode:2,3\n          - Zkfc:2,3\n          - JournalNode:1,2,3\n          - ResourceManager:2,3\n          - JobHistoryServer:3\n          - DBServer:1,3\n          - HttpFS:1,3\n          - TimelineServer:3\n          - RangerAdmin:1,2\n          - UserSync:2\n          - TagSync:2\n          - KerberosClient\n          - SlapdClient\n          - meta\n      customNodes:\n        - groupName: node_group_1\n          flavor: c6.4xlarge.4.linux.mrs\n          nodeNumber: 4\n          rootVolumeType: SAS\n          rootVolumeSize: 480\n          dataVolumeType: SAS\n          dataVolumeSize: 600\n          dataVolumeCount: 1\n          assignedRoles:\n            - DataNode\n            - NodeManager\n            - KerberosClient\n            - SlapdClient\n            - meta\n```\n<!--End PulumiCodeChooser -->\n\n### Create an analysis cluster and bind public IP\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst mrsAz = config.requireObject(\"mrsAz\");\nconst clusterName = config.requireObject(\"clusterName\");\nconst password = config.requireObject(\"password\");\nconst keypair = config.requireObject(\"keypair\");\nconst publicIp = config.requireObject(\"publicIp\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst test = new flexibleengine.MrsClusterV2(\"test\", {\n    availabilityZone: mrsAz,\n    version: \"MRS 2.0.1\",\n    type: \"ANALYSIS\",\n    componentLists: [\n        \"Hadoop\",\n        \"Hive\",\n        \"Tez\",\n    ],\n    managerAdminPwd: password,\n    nodeKeyPair: keypair,\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    publicIp: publicIp,\n    masterNodes: {\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 2,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 300,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 480,\n        dataVolumeCount: 1,\n    },\n    analysisCoreNodes: {\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 2,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 300,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 480,\n        dataVolumeCount: 1,\n    },\n    analysisTaskNodes: {\n        flavor: \"c6.4xlarge.4.linux.mrs\",\n        nodeNumber: 1,\n        rootVolumeType: \"SAS\",\n        rootVolumeSize: 300,\n        dataVolumeType: \"SAS\",\n        dataVolumeSize: 480,\n        dataVolumeCount: 1,\n    },\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nmrs_az = config.require_object(\"mrsAz\")\ncluster_name = config.require_object(\"clusterName\")\npassword = config.require_object(\"password\")\nkeypair = config.require_object(\"keypair\")\npublic_ip = config.require_object(\"publicIp\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\ntest = flexibleengine.MrsClusterV2(\"test\",\n    availability_zone=mrs_az,\n    version=\"MRS 2.0.1\",\n    type=\"ANALYSIS\",\n    component_lists=[\n        \"Hadoop\",\n        \"Hive\",\n        \"Tez\",\n    ],\n    manager_admin_pwd=password,\n    node_key_pair=keypair,\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    public_ip=public_ip,\n    master_nodes={\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 2,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 300,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 480,\n        \"data_volume_count\": 1,\n    },\n    analysis_core_nodes={\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 2,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 300,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 480,\n        \"data_volume_count\": 1,\n    },\n    analysis_task_nodes={\n        \"flavor\": \"c6.4xlarge.4.linux.mrs\",\n        \"node_number\": 1,\n        \"root_volume_type\": \"SAS\",\n        \"root_volume_size\": 300,\n        \"data_volume_type\": \"SAS\",\n        \"data_volume_size\": 480,\n        \"data_volume_count\": 1,\n    },\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var mrsAz = config.RequireObject<dynamic>(\"mrsAz\");\n    var clusterName = config.RequireObject<dynamic>(\"clusterName\");\n    var password = config.RequireObject<dynamic>(\"password\");\n    var keypair = config.RequireObject<dynamic>(\"keypair\");\n    var publicIp = config.RequireObject<dynamic>(\"publicIp\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var test = new Flexibleengine.MrsClusterV2(\"test\", new()\n    {\n        AvailabilityZone = mrsAz,\n        Version = \"MRS 2.0.1\",\n        Type = \"ANALYSIS\",\n        ComponentLists = new[]\n        {\n            \"Hadoop\",\n            \"Hive\",\n            \"Tez\",\n        },\n        ManagerAdminPwd = password,\n        NodeKeyPair = keypair,\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        PublicIp = publicIp,\n        MasterNodes = new Flexibleengine.Inputs.MrsClusterV2MasterNodesArgs\n        {\n            Flavor = \"c6.4xlarge.4.linux.mrs\",\n            NodeNumber = 2,\n            RootVolumeType = \"SAS\",\n            RootVolumeSize = 300,\n            DataVolumeType = \"SAS\",\n            DataVolumeSize = 480,\n            DataVolumeCount = 1,\n        },\n        AnalysisCoreNodes = new Flexibleengine.Inputs.MrsClusterV2AnalysisCoreNodesArgs\n        {\n            Flavor = \"c6.4xlarge.4.linux.mrs\",\n            NodeNumber = 2,\n            RootVolumeType = \"SAS\",\n            RootVolumeSize = 300,\n            DataVolumeType = \"SAS\",\n            DataVolumeSize = 480,\n            DataVolumeCount = 1,\n        },\n        AnalysisTaskNodes = new Flexibleengine.Inputs.MrsClusterV2AnalysisTaskNodesArgs\n        {\n            Flavor = \"c6.4xlarge.4.linux.mrs\",\n            NodeNumber = 1,\n            RootVolumeType = \"SAS\",\n            RootVolumeSize = 300,\n            DataVolumeType = \"SAS\",\n            DataVolumeSize = 480,\n            DataVolumeCount = 1,\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tmrsAz := cfg.RequireObject(\"mrsAz\")\n\t\tclusterName := cfg.RequireObject(\"clusterName\")\n\t\tpassword := cfg.RequireObject(\"password\")\n\t\tkeypair := cfg.RequireObject(\"keypair\")\n\t\tpublicIp := cfg.RequireObject(\"publicIp\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewMrsClusterV2(ctx, \"test\", &flexibleengine.MrsClusterV2Args{\n\t\t\tAvailabilityZone: pulumi.Any(mrsAz),\n\t\t\tVersion:          pulumi.String(\"MRS 2.0.1\"),\n\t\t\tType:             pulumi.String(\"ANALYSIS\"),\n\t\t\tComponentLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Hadoop\"),\n\t\t\t\tpulumi.String(\"Hive\"),\n\t\t\t\tpulumi.String(\"Tez\"),\n\t\t\t},\n\t\t\tManagerAdminPwd: pulumi.Any(password),\n\t\t\tNodeKeyPair:     pulumi.Any(keypair),\n\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\tSubnetId:        exampleSubnet.VpcSubnetV1Id,\n\t\t\tPublicIp:        pulumi.Any(publicIp),\n\t\t\tMasterNodes: &flexibleengine.MrsClusterV2MasterNodesArgs{\n\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\tNodeNumber:      pulumi.Float64(2),\n\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tRootVolumeSize:  pulumi.Float64(300),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(480),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tAnalysisCoreNodes: &flexibleengine.MrsClusterV2AnalysisCoreNodesArgs{\n\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\tNodeNumber:      pulumi.Float64(2),\n\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tRootVolumeSize:  pulumi.Float64(300),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(480),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tAnalysisTaskNodes: &flexibleengine.MrsClusterV2AnalysisTaskNodesArgs{\n\t\t\t\tFlavor:          pulumi.String(\"c6.4xlarge.4.linux.mrs\"),\n\t\t\t\tNodeNumber:      pulumi.Float64(1),\n\t\t\t\tRootVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tRootVolumeSize:  pulumi.Float64(300),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SAS\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(480),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.MrsClusterV2;\nimport com.pulumi.flexibleengine.MrsClusterV2Args;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2MasterNodesArgs;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2AnalysisCoreNodesArgs;\nimport com.pulumi.flexibleengine.inputs.MrsClusterV2AnalysisTaskNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var mrsAz = config.get(\"mrsAz\");\n        final var clusterName = config.get(\"clusterName\");\n        final var password = config.get(\"password\");\n        final var keypair = config.get(\"keypair\");\n        final var publicIp = config.get(\"publicIp\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var test = new MrsClusterV2(\"test\", MrsClusterV2Args.builder()\n            .availabilityZone(mrsAz)\n            .version(\"MRS 2.0.1\")\n            .type(\"ANALYSIS\")\n            .componentLists(            \n                \"Hadoop\",\n                \"Hive\",\n                \"Tez\")\n            .managerAdminPwd(password)\n            .nodeKeyPair(keypair)\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .publicIp(publicIp)\n            .masterNodes(MrsClusterV2MasterNodesArgs.builder()\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(2)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(300)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(480)\n                .dataVolumeCount(1)\n                .build())\n            .analysisCoreNodes(MrsClusterV2AnalysisCoreNodesArgs.builder()\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(2)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(300)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(480)\n                .dataVolumeCount(1)\n                .build())\n            .analysisTaskNodes(MrsClusterV2AnalysisTaskNodesArgs.builder()\n                .flavor(\"c6.4xlarge.4.linux.mrs\")\n                .nodeNumber(1)\n                .rootVolumeType(\"SAS\")\n                .rootVolumeSize(300)\n                .dataVolumeType(\"SAS\")\n                .dataVolumeSize(480)\n                .dataVolumeCount(1)\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  mrsAz:\n    type: dynamic\n  clusterName:\n    type: dynamic\n  password:\n    type: dynamic\n  keypair:\n    type: dynamic\n  publicIp:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  test:\n    type: flexibleengine:MrsClusterV2\n    properties:\n      availabilityZone: ${mrsAz}\n      version: MRS 2.0.1\n      type: ANALYSIS\n      componentLists:\n        - Hadoop\n        - Hive\n        - Tez\n      managerAdminPwd: ${password}\n      nodeKeyPair: ${keypair}\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      publicIp: ${publicIp}\n      masterNodes:\n        flavor: c6.4xlarge.4.linux.mrs\n        nodeNumber: 2\n        rootVolumeType: SAS\n        rootVolumeSize: 300\n        dataVolumeType: SAS\n        dataVolumeSize: 480\n        dataVolumeCount: 1\n      analysisCoreNodes:\n        flavor: c6.4xlarge.4.linux.mrs\n        nodeNumber: 2\n        rootVolumeType: SAS\n        rootVolumeSize: 300\n        dataVolumeType: SAS\n        dataVolumeSize: 480\n        dataVolumeCount: 1\n      analysisTaskNodes:\n        flavor: c6.4xlarge.4.linux.mrs\n        nodeNumber: 1\n        rootVolumeType: SAS\n        rootVolumeSize: 300\n        dataVolumeType: SAS\n        dataVolumeSize: 480\n        dataVolumeCount: 1\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n<!--markdownlint-disable MD033-->\n\n## Import\n\nClusters can be imported by their `id`. For example,\n\n```sh\n$ pulumi import flexibleengine:index/mrsClusterV2:MrsClusterV2 test b11b407c-e604-4e8d-8bc4-92398320b847\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attrubutes missing from the\n\nAPI response, security or some other reason. The missing attributes include:\n\n`manager_admin_pwd`, `template_id` and `assigned_roles`.\n\nIt is generally recommended running `pulumi preview` after importing a cluster.\n\nYou can then decide if changes should be applied to the cluster, or the resource definition\n\nshould be updated to align with the cluster. Also you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_mrs_cluster_v2\" \"test\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      manager_admin_pwd,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "analysisCoreNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV2AnalysisCoreNodes:MrsClusterV2AnalysisCoreNodes",
          "description": "Specifies a list of the information about the analysis core nodes\nin the MRS cluster. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `analysis_core_nodes` is documented below.\n"
        },
        "analysisTaskNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV2AnalysisTaskNodes:MrsClusterV2AnalysisTaskNodes",
          "description": "Specifies a list of the information about the analysis task nodes\nin the MRS cluster. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `analysis_task_nodes` is documented below.\n"
        },
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the availability zone in which to create the cluster.\nChanging this will create a new MRS cluster resource.\n"
        },
        "chargingStartTime": {
          "type": "string",
          "description": "The charging start time which is the start time of billing, in RFC-3339 format.\n"
        },
        "componentLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of component names.\nChanging this will create a new MRS cluster resource. The supported components are as follows:\n\n<table border=\"2\">\n<tr>\n<th>Cluster Version</th>\n<th>Cluster Type</th>\n<th>Components</th>\n</tr>\n<tr>\n<td rowspan=\"4\">MRS 3.1.0-LTS.1</td>\n<td>analysis</td>\n<td>Hadoop, Spark2x, HBase, Hive, Hue, HetuEngine, Loader, Flink, Oozie, ZooKeeper, Ranger, and Tez</td>\n</tr>\n<tr>\n<td>streaming</td>\n<td>Kafka, Flume, ZooKeeper, and Ranger</td>\n</tr>\n<tr>\n<td>hybrid</td>\n<td>Hadoop, Spark2x, HBase, Hive, Hue, HetuEngine, Loader, Flink, Oozie, ZooKeeper, Ranger, Tez, Kafka, and Flume</td>\n</tr>\n<tr>\n<td>custom</td>\n<td>Hadoop, Spark2x, HBase, Hive, Hue, HetuEngine, Loader, Kafka, Flume, Flink, Oozie, ZooKeeper, Ranger, Tez,\nand ClickHouse</td>\n</tr>\n<tr>\n<td rowspan=\"2\">MRS 2.0.1</td>\n<td>analysis</td>\n<td>Presto, Hadoop, Spark, HBase, Hive, Hue, Loader, and Tez</td>\n</tr>\n<tr>\n<td>streaming</td>\n<td>Kafka, Storm, and Flume</td>\n</tr>\n<tr>\n<td rowspan=\"2\">MRS 1.8.9</td>\n<td>analysis</td>\n<td>Presto, Hadoop, Spark, HBase, Opentsdb, Hive, Hue, Loader, and Flink</td>\n</tr>\n<tr>\n<td>streaming</td>\n<td>Kafka, KafkaManager, Storm, and Flume</td>\n</tr>\n</table>\n"
        },
        "components": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV2Component:MrsClusterV2Component"
          },
          "description": "Component list information. The components object structure is documented below.\n"
        },
        "createTime": {
          "type": "string",
          "description": "The cluster creation time, in RFC-3339 format.\n"
        },
        "customNodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV2CustomNode:MrsClusterV2CustomNode"
          },
          "description": "Specifies a list of the information about the custom nodes in the MRS\ncluster. Unlike other nodes, it needs to specify group_name. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `custom_nodes` is documented below.\n"
        },
        "eipId": {
          "type": "string",
          "description": "Specifies the EIP ID which bound to the MRS cluster.\nThe EIP must have been created and must be in the same region as the cluster.\nChanging this will create a new MRS cluster resource.\n"
        },
        "logCollection": {
          "type": "boolean",
          "description": "Specifies whether logs are collected when cluster installation fails.\nDefault to true. If `log_collection` set true, the OBS buckets will be created and only used to collect logs that\nrecord MRS cluster creation failures. Changing this will create a new MRS cluster resource.\n"
        },
        "managerAdminPwd": {
          "type": "string",
          "description": "Specifies the administrator password, which is used to login to\nthe cluster management page. The password can contain 8 to 26 charactors and cannot be the username or the username\nspelled backwards. The password must contain lowercase letters, uppercase letters, digits, spaces and the special\ncharacters: `!?,.:-_{}[]@$^+=/`. Changing this will create a new MRS cluster resource.\n",
          "secret": true
        },
        "masterNodeIp": {
          "type": "string",
          "description": "The IP address of the master node.\n"
        },
        "masterNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV2MasterNodes:MrsClusterV2MasterNodes",
          "description": "Specifies a list of the information about the master nodes in the\nMRS cluster.\nThe nodes object structure of the `master_nodes` is documented below.\nChanging this will create a new MRS cluster resource.\n"
        },
        "mrsClusterV2Id": {
          "type": "string",
          "description": "Component ID. For example, component_id of Hadoop is MRS 3.1.0-LTS.1_001, MRS 2.0.1_001, and MRS 1.8.9_001.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the MRS cluster. The name can contain 2 to 64\ncharacters, which may consist of letters, digits, underscores (_) and hyphens (-). Changing this will create a new\nMRS cluster resource.\n"
        },
        "nodeKeyPair": {
          "type": "string",
          "description": "Specifies the name of a key pair, which is used to login to the each\nnodes(ECSs). Changing this will create a new MRS cluster resource.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "The preferred private IP address of the master node.\n"
        },
        "publicIp": {
          "type": "string",
          "description": "Specifies the EIP address which bound to the MRS cluster.\nThe EIP must have been created and must be in the same region as the cluster.\nChanging this will create a new MRS cluster resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the MRS cluster resource. If omitted, the\nprovider-level region will be used. Changing this will create a new MRS cluster resource.\n"
        },
        "safeMode": {
          "type": "boolean",
          "description": "Specifies whether the running mode of the MRS cluster is secure,\ndefault to true.\n+ true: enable Kerberos authentication.\n+ false: disable Kerberos authentication. Changing this will create a new MRS cluster resource.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of one or more security group ID to attach to the\nMRS cluster. If using the specified security group, the group need to open the specified port (9022) rules.\nChanging this will create a new MRS cluster resource.\n"
        },
        "status": {
          "type": "string",
          "description": "The cluster state, which include: running, frozen, abnormal and failed.\n"
        },
        "streamingCoreNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV2StreamingCoreNodes:MrsClusterV2StreamingCoreNodes",
          "description": "Specifies a list of the information about the streaming core nodes\nin the MRS cluster. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `streaming_core_nodes` is documented below.\n"
        },
        "streamingTaskNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV2StreamingTaskNodes:MrsClusterV2StreamingTaskNodes",
          "description": "Specifies a list of the information about the streaming task nodes\nin the MRS cluster. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `streaming_task_nodes` is documented below.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet which bound to the MRS cluster.\nChanging this will create a new MRS cluster resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the cluster.\n\n<a name=\"mrs_arg_nodes\"></a>\nThe `nodes` block supports:\n"
        },
        "templateId": {
          "type": "string",
          "description": "Specifies the template used for node deployment when the cluster type is\nCUSTOM. Changing this will create a new MRS cluster resource.\n+ mgmt_control_combined_v2: template for jointly deploying the management and control nodes. The management and\ncontrol roles are co-deployed on the Master node, and data instances are deployed in the same node group. This\ndeployment mode applies to scenarios where the number of control nodes is less than 100, reducing costs.\n+ mgmt_control_separated_v2: The management and control roles are deployed on different master nodes, and data\ninstances are deployed in the same node group. This deployment mode is applicable to a cluster with 100 to 500 nodes\nand delivers better performance in high-concurrency load scenarios.\n+ mgmt_control_data_separated_v2: The management role and control role are deployed on different Master nodes,\nand data instances are deployed in different node groups. This deployment mode is applicable to a cluster with more\nthan 500 nodes. Components can be deployed separately, which can be used for a larger cluster scale.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV2Timeouts:MrsClusterV2Timeouts"
        },
        "totalNodeNumber": {
          "type": "number",
          "description": "The total number of nodes deployed in the cluster.\n"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the MRS cluster. The valid values are *ANALYSIS*,\n*STREAMING*, *MIXED* and *CUSTOM* (supported in MRS 3.x only), default to *ANALYSIS*.\nChanging this will create a new MRS cluster resource.\n"
        },
        "updateTime": {
          "type": "string",
          "description": "The cluster update time, in RFC-3339 format.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the MRS cluster version. Currently, `MRS 1.8.9`,\n`MRS 2.0.1`, and `MRS 3.1.0-LTS.1` are supported. Changing this will create a new MRS cluster resource.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC which bound to the MRS cluster.\nChanging this will create a new MRS cluster resource.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "chargingStartTime",
        "componentLists",
        "components",
        "createTime",
        "eipId",
        "managerAdminPwd",
        "masterNodeIp",
        "masterNodes",
        "mrsClusterV2Id",
        "name",
        "nodeKeyPair",
        "privateIp",
        "publicIp",
        "region",
        "securityGroupIds",
        "status",
        "subnetId",
        "totalNodeNumber",
        "updateTime",
        "version",
        "vpcId"
      ],
      "inputProperties": {
        "analysisCoreNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV2AnalysisCoreNodes:MrsClusterV2AnalysisCoreNodes",
          "description": "Specifies a list of the information about the analysis core nodes\nin the MRS cluster. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `analysis_core_nodes` is documented below.\n"
        },
        "analysisTaskNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV2AnalysisTaskNodes:MrsClusterV2AnalysisTaskNodes",
          "description": "Specifies a list of the information about the analysis task nodes\nin the MRS cluster. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `analysis_task_nodes` is documented below.\n"
        },
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the availability zone in which to create the cluster.\nChanging this will create a new MRS cluster resource.\n"
        },
        "componentLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of component names.\nChanging this will create a new MRS cluster resource. The supported components are as follows:\n\n<table border=\"2\">\n<tr>\n<th>Cluster Version</th>\n<th>Cluster Type</th>\n<th>Components</th>\n</tr>\n<tr>\n<td rowspan=\"4\">MRS 3.1.0-LTS.1</td>\n<td>analysis</td>\n<td>Hadoop, Spark2x, HBase, Hive, Hue, HetuEngine, Loader, Flink, Oozie, ZooKeeper, Ranger, and Tez</td>\n</tr>\n<tr>\n<td>streaming</td>\n<td>Kafka, Flume, ZooKeeper, and Ranger</td>\n</tr>\n<tr>\n<td>hybrid</td>\n<td>Hadoop, Spark2x, HBase, Hive, Hue, HetuEngine, Loader, Flink, Oozie, ZooKeeper, Ranger, Tez, Kafka, and Flume</td>\n</tr>\n<tr>\n<td>custom</td>\n<td>Hadoop, Spark2x, HBase, Hive, Hue, HetuEngine, Loader, Kafka, Flume, Flink, Oozie, ZooKeeper, Ranger, Tez,\nand ClickHouse</td>\n</tr>\n<tr>\n<td rowspan=\"2\">MRS 2.0.1</td>\n<td>analysis</td>\n<td>Presto, Hadoop, Spark, HBase, Hive, Hue, Loader, and Tez</td>\n</tr>\n<tr>\n<td>streaming</td>\n<td>Kafka, Storm, and Flume</td>\n</tr>\n<tr>\n<td rowspan=\"2\">MRS 1.8.9</td>\n<td>analysis</td>\n<td>Presto, Hadoop, Spark, HBase, Opentsdb, Hive, Hue, Loader, and Flink</td>\n</tr>\n<tr>\n<td>streaming</td>\n<td>Kafka, KafkaManager, Storm, and Flume</td>\n</tr>\n</table>\n"
        },
        "customNodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV2CustomNode:MrsClusterV2CustomNode"
          },
          "description": "Specifies a list of the information about the custom nodes in the MRS\ncluster. Unlike other nodes, it needs to specify group_name. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `custom_nodes` is documented below.\n"
        },
        "eipId": {
          "type": "string",
          "description": "Specifies the EIP ID which bound to the MRS cluster.\nThe EIP must have been created and must be in the same region as the cluster.\nChanging this will create a new MRS cluster resource.\n"
        },
        "logCollection": {
          "type": "boolean",
          "description": "Specifies whether logs are collected when cluster installation fails.\nDefault to true. If `log_collection` set true, the OBS buckets will be created and only used to collect logs that\nrecord MRS cluster creation failures. Changing this will create a new MRS cluster resource.\n"
        },
        "managerAdminPwd": {
          "type": "string",
          "description": "Specifies the administrator password, which is used to login to\nthe cluster management page. The password can contain 8 to 26 charactors and cannot be the username or the username\nspelled backwards. The password must contain lowercase letters, uppercase letters, digits, spaces and the special\ncharacters: `!?,.:-_{}[]@$^+=/`. Changing this will create a new MRS cluster resource.\n",
          "secret": true
        },
        "masterNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV2MasterNodes:MrsClusterV2MasterNodes",
          "description": "Specifies a list of the information about the master nodes in the\nMRS cluster.\nThe nodes object structure of the `master_nodes` is documented below.\nChanging this will create a new MRS cluster resource.\n"
        },
        "mrsClusterV2Id": {
          "type": "string",
          "description": "Component ID. For example, component_id of Hadoop is MRS 3.1.0-LTS.1_001, MRS 2.0.1_001, and MRS 1.8.9_001.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the MRS cluster. The name can contain 2 to 64\ncharacters, which may consist of letters, digits, underscores (_) and hyphens (-). Changing this will create a new\nMRS cluster resource.\n"
        },
        "nodeKeyPair": {
          "type": "string",
          "description": "Specifies the name of a key pair, which is used to login to the each\nnodes(ECSs). Changing this will create a new MRS cluster resource.\n"
        },
        "publicIp": {
          "type": "string",
          "description": "Specifies the EIP address which bound to the MRS cluster.\nThe EIP must have been created and must be in the same region as the cluster.\nChanging this will create a new MRS cluster resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the MRS cluster resource. If omitted, the\nprovider-level region will be used. Changing this will create a new MRS cluster resource.\n"
        },
        "safeMode": {
          "type": "boolean",
          "description": "Specifies whether the running mode of the MRS cluster is secure,\ndefault to true.\n+ true: enable Kerberos authentication.\n+ false: disable Kerberos authentication. Changing this will create a new MRS cluster resource.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of one or more security group ID to attach to the\nMRS cluster. If using the specified security group, the group need to open the specified port (9022) rules.\nChanging this will create a new MRS cluster resource.\n"
        },
        "streamingCoreNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV2StreamingCoreNodes:MrsClusterV2StreamingCoreNodes",
          "description": "Specifies a list of the information about the streaming core nodes\nin the MRS cluster. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `streaming_core_nodes` is documented below.\n"
        },
        "streamingTaskNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV2StreamingTaskNodes:MrsClusterV2StreamingTaskNodes",
          "description": "Specifies a list of the information about the streaming task nodes\nin the MRS cluster. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `streaming_task_nodes` is documented below.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet which bound to the MRS cluster.\nChanging this will create a new MRS cluster resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the cluster.\n\n<a name=\"mrs_arg_nodes\"></a>\nThe `nodes` block supports:\n"
        },
        "templateId": {
          "type": "string",
          "description": "Specifies the template used for node deployment when the cluster type is\nCUSTOM. Changing this will create a new MRS cluster resource.\n+ mgmt_control_combined_v2: template for jointly deploying the management and control nodes. The management and\ncontrol roles are co-deployed on the Master node, and data instances are deployed in the same node group. This\ndeployment mode applies to scenarios where the number of control nodes is less than 100, reducing costs.\n+ mgmt_control_separated_v2: The management and control roles are deployed on different master nodes, and data\ninstances are deployed in the same node group. This deployment mode is applicable to a cluster with 100 to 500 nodes\nand delivers better performance in high-concurrency load scenarios.\n+ mgmt_control_data_separated_v2: The management role and control role are deployed on different Master nodes,\nand data instances are deployed in different node groups. This deployment mode is applicable to a cluster with more\nthan 500 nodes. Components can be deployed separately, which can be used for a larger cluster scale.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FMrsClusterV2Timeouts:MrsClusterV2Timeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the MRS cluster. The valid values are *ANALYSIS*,\n*STREAMING*, *MIXED* and *CUSTOM* (supported in MRS 3.x only), default to *ANALYSIS*.\nChanging this will create a new MRS cluster resource.\n"
        },
        "version": {
          "type": "string",
          "description": "Specifies the MRS cluster version. Currently, `MRS 1.8.9`,\n`MRS 2.0.1`, and `MRS 3.1.0-LTS.1` are supported. Changing this will create a new MRS cluster resource.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC which bound to the MRS cluster.\nChanging this will create a new MRS cluster resource.\n"
        }
      },
      "requiredInputs": [
        "availabilityZone",
        "componentLists",
        "managerAdminPwd",
        "masterNodes",
        "nodeKeyPair",
        "subnetId",
        "version",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MrsClusterV2 resources.\n",
        "properties": {
          "analysisCoreNodes": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV2AnalysisCoreNodes:MrsClusterV2AnalysisCoreNodes",
            "description": "Specifies a list of the information about the analysis core nodes\nin the MRS cluster. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `analysis_core_nodes` is documented below.\n"
          },
          "analysisTaskNodes": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV2AnalysisTaskNodes:MrsClusterV2AnalysisTaskNodes",
            "description": "Specifies a list of the information about the analysis task nodes\nin the MRS cluster. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `analysis_task_nodes` is documented below.\n"
          },
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the availability zone in which to create the cluster.\nChanging this will create a new MRS cluster resource.\n"
          },
          "chargingStartTime": {
            "type": "string",
            "description": "The charging start time which is the start time of billing, in RFC-3339 format.\n"
          },
          "componentLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the list of component names.\nChanging this will create a new MRS cluster resource. The supported components are as follows:\n\n<table border=\"2\">\n<tr>\n<th>Cluster Version</th>\n<th>Cluster Type</th>\n<th>Components</th>\n</tr>\n<tr>\n<td rowspan=\"4\">MRS 3.1.0-LTS.1</td>\n<td>analysis</td>\n<td>Hadoop, Spark2x, HBase, Hive, Hue, HetuEngine, Loader, Flink, Oozie, ZooKeeper, Ranger, and Tez</td>\n</tr>\n<tr>\n<td>streaming</td>\n<td>Kafka, Flume, ZooKeeper, and Ranger</td>\n</tr>\n<tr>\n<td>hybrid</td>\n<td>Hadoop, Spark2x, HBase, Hive, Hue, HetuEngine, Loader, Flink, Oozie, ZooKeeper, Ranger, Tez, Kafka, and Flume</td>\n</tr>\n<tr>\n<td>custom</td>\n<td>Hadoop, Spark2x, HBase, Hive, Hue, HetuEngine, Loader, Kafka, Flume, Flink, Oozie, ZooKeeper, Ranger, Tez,\nand ClickHouse</td>\n</tr>\n<tr>\n<td rowspan=\"2\">MRS 2.0.1</td>\n<td>analysis</td>\n<td>Presto, Hadoop, Spark, HBase, Hive, Hue, Loader, and Tez</td>\n</tr>\n<tr>\n<td>streaming</td>\n<td>Kafka, Storm, and Flume</td>\n</tr>\n<tr>\n<td rowspan=\"2\">MRS 1.8.9</td>\n<td>analysis</td>\n<td>Presto, Hadoop, Spark, HBase, Opentsdb, Hive, Hue, Loader, and Flink</td>\n</tr>\n<tr>\n<td>streaming</td>\n<td>Kafka, KafkaManager, Storm, and Flume</td>\n</tr>\n</table>\n"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FMrsClusterV2Component:MrsClusterV2Component"
            },
            "description": "Component list information. The components object structure is documented below.\n"
          },
          "createTime": {
            "type": "string",
            "description": "The cluster creation time, in RFC-3339 format.\n"
          },
          "customNodes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FMrsClusterV2CustomNode:MrsClusterV2CustomNode"
            },
            "description": "Specifies a list of the information about the custom nodes in the MRS\ncluster. Unlike other nodes, it needs to specify group_name. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `custom_nodes` is documented below.\n"
          },
          "eipId": {
            "type": "string",
            "description": "Specifies the EIP ID which bound to the MRS cluster.\nThe EIP must have been created and must be in the same region as the cluster.\nChanging this will create a new MRS cluster resource.\n"
          },
          "logCollection": {
            "type": "boolean",
            "description": "Specifies whether logs are collected when cluster installation fails.\nDefault to true. If `log_collection` set true, the OBS buckets will be created and only used to collect logs that\nrecord MRS cluster creation failures. Changing this will create a new MRS cluster resource.\n"
          },
          "managerAdminPwd": {
            "type": "string",
            "description": "Specifies the administrator password, which is used to login to\nthe cluster management page. The password can contain 8 to 26 charactors and cannot be the username or the username\nspelled backwards. The password must contain lowercase letters, uppercase letters, digits, spaces and the special\ncharacters: `!?,.:-_{}[]@$^+=/`. Changing this will create a new MRS cluster resource.\n",
            "secret": true
          },
          "masterNodeIp": {
            "type": "string",
            "description": "The IP address of the master node.\n"
          },
          "masterNodes": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV2MasterNodes:MrsClusterV2MasterNodes",
            "description": "Specifies a list of the information about the master nodes in the\nMRS cluster.\nThe nodes object structure of the `master_nodes` is documented below.\nChanging this will create a new MRS cluster resource.\n"
          },
          "mrsClusterV2Id": {
            "type": "string",
            "description": "Component ID. For example, component_id of Hadoop is MRS 3.1.0-LTS.1_001, MRS 2.0.1_001, and MRS 1.8.9_001.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the MRS cluster. The name can contain 2 to 64\ncharacters, which may consist of letters, digits, underscores (_) and hyphens (-). Changing this will create a new\nMRS cluster resource.\n"
          },
          "nodeKeyPair": {
            "type": "string",
            "description": "Specifies the name of a key pair, which is used to login to the each\nnodes(ECSs). Changing this will create a new MRS cluster resource.\n"
          },
          "privateIp": {
            "type": "string",
            "description": "The preferred private IP address of the master node.\n"
          },
          "publicIp": {
            "type": "string",
            "description": "Specifies the EIP address which bound to the MRS cluster.\nThe EIP must have been created and must be in the same region as the cluster.\nChanging this will create a new MRS cluster resource.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the MRS cluster resource. If omitted, the\nprovider-level region will be used. Changing this will create a new MRS cluster resource.\n"
          },
          "safeMode": {
            "type": "boolean",
            "description": "Specifies whether the running mode of the MRS cluster is secure,\ndefault to true.\n+ true: enable Kerberos authentication.\n+ false: disable Kerberos authentication. Changing this will create a new MRS cluster resource.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies an array of one or more security group ID to attach to the\nMRS cluster. If using the specified security group, the group need to open the specified port (9022) rules.\nChanging this will create a new MRS cluster resource.\n"
          },
          "status": {
            "type": "string",
            "description": "The cluster state, which include: running, frozen, abnormal and failed.\n"
          },
          "streamingCoreNodes": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV2StreamingCoreNodes:MrsClusterV2StreamingCoreNodes",
            "description": "Specifies a list of the information about the streaming core nodes\nin the MRS cluster. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `streaming_core_nodes` is documented below.\n"
          },
          "streamingTaskNodes": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV2StreamingTaskNodes:MrsClusterV2StreamingTaskNodes",
            "description": "Specifies a list of the information about the streaming task nodes\nin the MRS cluster. Changing this will create a new MRS cluster resource.\nThe nodes object structure of the `streaming_task_nodes` is documented below.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the ID of the VPC Subnet which bound to the MRS cluster.\nChanging this will create a new MRS cluster resource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the key/value pairs to associate with the cluster.\n\n<a name=\"mrs_arg_nodes\"></a>\nThe `nodes` block supports:\n"
          },
          "templateId": {
            "type": "string",
            "description": "Specifies the template used for node deployment when the cluster type is\nCUSTOM. Changing this will create a new MRS cluster resource.\n+ mgmt_control_combined_v2: template for jointly deploying the management and control nodes. The management and\ncontrol roles are co-deployed on the Master node, and data instances are deployed in the same node group. This\ndeployment mode applies to scenarios where the number of control nodes is less than 100, reducing costs.\n+ mgmt_control_separated_v2: The management and control roles are deployed on different master nodes, and data\ninstances are deployed in the same node group. This deployment mode is applicable to a cluster with 100 to 500 nodes\nand delivers better performance in high-concurrency load scenarios.\n+ mgmt_control_data_separated_v2: The management role and control role are deployed on different Master nodes,\nand data instances are deployed in different node groups. This deployment mode is applicable to a cluster with more\nthan 500 nodes. Components can be deployed separately, which can be used for a larger cluster scale.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FMrsClusterV2Timeouts:MrsClusterV2Timeouts"
          },
          "totalNodeNumber": {
            "type": "number",
            "description": "The total number of nodes deployed in the cluster.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the type of the MRS cluster. The valid values are *ANALYSIS*,\n*STREAMING*, *MIXED* and *CUSTOM* (supported in MRS 3.x only), default to *ANALYSIS*.\nChanging this will create a new MRS cluster resource.\n"
          },
          "updateTime": {
            "type": "string",
            "description": "The cluster update time, in RFC-3339 format.\n"
          },
          "version": {
            "type": "string",
            "description": "Specifies the MRS cluster version. Currently, `MRS 1.8.9`,\n`MRS 2.0.1`, and `MRS 3.1.0-LTS.1` are supported. Changing this will create a new MRS cluster resource.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of the VPC which bound to the MRS cluster.\nChanging this will create a new MRS cluster resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/mrsHybridClusterV1:MrsHybridClusterV1": {
      "description": "Manages a MRS hybrid cluster resource cluster within FlexibleEngine.\n\n!> **Warning:** It has been deprecated, please use `flexibleengine.MrsClusterV2` instead.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst cluster1 = new flexibleengine.MrsHybridClusterV1(\"cluster1\", {\n    availableZone: \"eu-west-0a\",\n    clusterName: \"mrs-hybrid-cluster-acc\",\n    clusterVersion: \"MRS 2.0.1\",\n    componentLists: [\n        \"Hadoop\",\n        \"Storm\",\n        \"Spark\",\n        \"Hive\",\n    ],\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    clusterAdminSecret: \"Cluster@123\",\n    masterNodeKeyPair: \"KeyPair-ci\",\n    masterNodes: {\n        nodeNumber: 1,\n        flavor: \"s3.2xlarge.4.linux.mrs\",\n        dataVolumeType: \"SATA\",\n        dataVolumeSize: 100,\n        dataVolumeCount: 1,\n    },\n    analysisCoreNodes: {\n        nodeNumber: 1,\n        flavor: \"s3.xlarge.4.linux.mrs\",\n        dataVolumeType: \"SATA\",\n        dataVolumeSize: 100,\n        dataVolumeCount: 1,\n    },\n    streamingCoreNodes: {\n        nodeNumber: 1,\n        flavor: \"s3.xlarge.4.linux.mrs\",\n        dataVolumeType: \"SATA\",\n        dataVolumeSize: 100,\n        dataVolumeCount: 1,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\ncluster1 = flexibleengine.MrsHybridClusterV1(\"cluster1\",\n    available_zone=\"eu-west-0a\",\n    cluster_name=\"mrs-hybrid-cluster-acc\",\n    cluster_version=\"MRS 2.0.1\",\n    component_lists=[\n        \"Hadoop\",\n        \"Storm\",\n        \"Spark\",\n        \"Hive\",\n    ],\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    cluster_admin_secret=\"Cluster@123\",\n    master_node_key_pair=\"KeyPair-ci\",\n    master_nodes={\n        \"node_number\": 1,\n        \"flavor\": \"s3.2xlarge.4.linux.mrs\",\n        \"data_volume_type\": \"SATA\",\n        \"data_volume_size\": 100,\n        \"data_volume_count\": 1,\n    },\n    analysis_core_nodes={\n        \"node_number\": 1,\n        \"flavor\": \"s3.xlarge.4.linux.mrs\",\n        \"data_volume_type\": \"SATA\",\n        \"data_volume_size\": 100,\n        \"data_volume_count\": 1,\n    },\n    streaming_core_nodes={\n        \"node_number\": 1,\n        \"flavor\": \"s3.xlarge.4.linux.mrs\",\n        \"data_volume_type\": \"SATA\",\n        \"data_volume_size\": 100,\n        \"data_volume_count\": 1,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var cluster1 = new Flexibleengine.MrsHybridClusterV1(\"cluster1\", new()\n    {\n        AvailableZone = \"eu-west-0a\",\n        ClusterName = \"mrs-hybrid-cluster-acc\",\n        ClusterVersion = \"MRS 2.0.1\",\n        ComponentLists = new[]\n        {\n            \"Hadoop\",\n            \"Storm\",\n            \"Spark\",\n            \"Hive\",\n        },\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        ClusterAdminSecret = \"Cluster@123\",\n        MasterNodeKeyPair = \"KeyPair-ci\",\n        MasterNodes = new Flexibleengine.Inputs.MrsHybridClusterV1MasterNodesArgs\n        {\n            NodeNumber = 1,\n            Flavor = \"s3.2xlarge.4.linux.mrs\",\n            DataVolumeType = \"SATA\",\n            DataVolumeSize = 100,\n            DataVolumeCount = 1,\n        },\n        AnalysisCoreNodes = new Flexibleengine.Inputs.MrsHybridClusterV1AnalysisCoreNodesArgs\n        {\n            NodeNumber = 1,\n            Flavor = \"s3.xlarge.4.linux.mrs\",\n            DataVolumeType = \"SATA\",\n            DataVolumeSize = 100,\n            DataVolumeCount = 1,\n        },\n        StreamingCoreNodes = new Flexibleengine.Inputs.MrsHybridClusterV1StreamingCoreNodesArgs\n        {\n            NodeNumber = 1,\n            Flavor = \"s3.xlarge.4.linux.mrs\",\n            DataVolumeType = \"SATA\",\n            DataVolumeSize = 100,\n            DataVolumeCount = 1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewMrsHybridClusterV1(ctx, \"cluster1\", &flexibleengine.MrsHybridClusterV1Args{\n\t\t\tAvailableZone:  pulumi.String(\"eu-west-0a\"),\n\t\t\tClusterName:    pulumi.String(\"mrs-hybrid-cluster-acc\"),\n\t\t\tClusterVersion: pulumi.String(\"MRS 2.0.1\"),\n\t\t\tComponentLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Hadoop\"),\n\t\t\t\tpulumi.String(\"Storm\"),\n\t\t\t\tpulumi.String(\"Spark\"),\n\t\t\t\tpulumi.String(\"Hive\"),\n\t\t\t},\n\t\t\tVpcId:              exampleVpc.VpcV1Id,\n\t\t\tSubnetId:           exampleSubnet.VpcSubnetV1Id,\n\t\t\tClusterAdminSecret: pulumi.String(\"Cluster@123\"),\n\t\t\tMasterNodeKeyPair:  pulumi.String(\"KeyPair-ci\"),\n\t\t\tMasterNodes: &flexibleengine.MrsHybridClusterV1MasterNodesArgs{\n\t\t\t\tNodeNumber:      pulumi.Float64(1),\n\t\t\t\tFlavor:          pulumi.String(\"s3.2xlarge.4.linux.mrs\"),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SATA\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(100),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tAnalysisCoreNodes: &flexibleengine.MrsHybridClusterV1AnalysisCoreNodesArgs{\n\t\t\t\tNodeNumber:      pulumi.Float64(1),\n\t\t\t\tFlavor:          pulumi.String(\"s3.xlarge.4.linux.mrs\"),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SATA\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(100),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t\tStreamingCoreNodes: &flexibleengine.MrsHybridClusterV1StreamingCoreNodesArgs{\n\t\t\t\tNodeNumber:      pulumi.Float64(1),\n\t\t\t\tFlavor:          pulumi.String(\"s3.xlarge.4.linux.mrs\"),\n\t\t\t\tDataVolumeType:  pulumi.String(\"SATA\"),\n\t\t\t\tDataVolumeSize:  pulumi.Float64(100),\n\t\t\t\tDataVolumeCount: pulumi.Float64(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.MrsHybridClusterV1;\nimport com.pulumi.flexibleengine.MrsHybridClusterV1Args;\nimport com.pulumi.flexibleengine.inputs.MrsHybridClusterV1MasterNodesArgs;\nimport com.pulumi.flexibleengine.inputs.MrsHybridClusterV1AnalysisCoreNodesArgs;\nimport com.pulumi.flexibleengine.inputs.MrsHybridClusterV1StreamingCoreNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var cluster1 = new MrsHybridClusterV1(\"cluster1\", MrsHybridClusterV1Args.builder()\n            .availableZone(\"eu-west-0a\")\n            .clusterName(\"mrs-hybrid-cluster-acc\")\n            .clusterVersion(\"MRS 2.0.1\")\n            .componentLists(            \n                \"Hadoop\",\n                \"Storm\",\n                \"Spark\",\n                \"Hive\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .clusterAdminSecret(\"Cluster@123\")\n            .masterNodeKeyPair(\"KeyPair-ci\")\n            .masterNodes(MrsHybridClusterV1MasterNodesArgs.builder()\n                .nodeNumber(1)\n                .flavor(\"s3.2xlarge.4.linux.mrs\")\n                .dataVolumeType(\"SATA\")\n                .dataVolumeSize(100)\n                .dataVolumeCount(1)\n                .build())\n            .analysisCoreNodes(MrsHybridClusterV1AnalysisCoreNodesArgs.builder()\n                .nodeNumber(1)\n                .flavor(\"s3.xlarge.4.linux.mrs\")\n                .dataVolumeType(\"SATA\")\n                .dataVolumeSize(100)\n                .dataVolumeCount(1)\n                .build())\n            .streamingCoreNodes(MrsHybridClusterV1StreamingCoreNodesArgs.builder()\n                .nodeNumber(1)\n                .flavor(\"s3.xlarge.4.linux.mrs\")\n                .dataVolumeType(\"SATA\")\n                .dataVolumeSize(100)\n                .dataVolumeCount(1)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  cluster1:\n    type: flexibleengine:MrsHybridClusterV1\n    properties:\n      availableZone: eu-west-0a\n      clusterName: mrs-hybrid-cluster-acc\n      clusterVersion: MRS 2.0.1\n      componentLists:\n        - Hadoop\n        - Storm\n        - Spark\n        - Hive\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      clusterAdminSecret: Cluster@123\n      masterNodeKeyPair: KeyPair-ci\n      masterNodes:\n        nodeNumber: 1\n        flavor: s3.2xlarge.4.linux.mrs\n        dataVolumeType: SATA\n        dataVolumeSize: 100\n        dataVolumeCount: 1\n      analysisCoreNodes:\n        nodeNumber: 1\n        flavor: s3.xlarge.4.linux.mrs\n        dataVolumeType: SATA\n        dataVolumeSize: 100\n        dataVolumeCount: 1\n      streamingCoreNodes:\n        nodeNumber: 1\n        flavor: s3.xlarge.4.linux.mrs\n        dataVolumeType: SATA\n        dataVolumeSize: 100\n        dataVolumeCount: 1\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "analysisCoreNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1AnalysisCoreNodes:MrsHybridClusterV1AnalysisCoreNodes",
          "description": "Specifies the analysis core nodes information.\n"
        },
        "analysisTaskNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1AnalysisTaskNodes:MrsHybridClusterV1AnalysisTaskNodes",
          "description": "Specifies the analysis task nodes information.\n"
        },
        "availableZone": {
          "type": "string",
          "description": "ID or Name of an available zone. Obtain the value\nfrom Regions and Endpoints.\n"
        },
        "billingType": {
          "type": "string",
          "description": "The value is Metered, indicating on-demand payment.\n"
        },
        "chargingStartTime": {
          "type": "string",
          "description": "Time when charging starts.\n"
        },
        "clusterAdminSecret": {
          "type": "string",
          "description": "Indicates the password of the MRS Manager administrator.\n- Must contain 8 to 32 characters.\n- Must contain at least three types of the following: Lowercase letters, Uppercase letters,\nDigits, Special characters of `~!@#$%^&*()-_=+\\|[{}];:'\",<.>/? and Spaces.\n- Must be different from the username.\n- Must be different from the username written in reverse order.\nFor versions earlier than MRS 2.0.1, this parameter is mandatory only when safe_mode is set to 1.\nFor MRS 2.0.1 or later, this parameter is mandatory no matter which value safe_mode is set to.\n",
          "secret": true
        },
        "clusterName": {
          "type": "string",
          "description": "Cluster name, which is globally unique and contains\nonly 1 to 64 letters, digits, hyphens (-), and underscores (_).\n"
        },
        "clusterVersion": {
          "type": "string",
          "description": "Version of the clusters. Possible values are as follows:\nMRS 1.8.9, MRS 2.0.1, MRS 2.1.0 and MRS 3.1.0-LTS.1.\n"
        },
        "componentLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Component name\n- Presto, Hadoop, Spark, HBase, Hive, Tez, Hue, Loader, Flume, Kafka and Storm are supported by MRS 2.0.1 or later.\n- Presto, Hadoop, Spark, HBase, Opentsdb, Hive, Hue, Loader, Flink, Flume, Kafka, KafkaManager and Storm are\nsupported by MRS 1.8.9.\n- Hadoop, Spark, HBase, Hive, Hue, Loader, Flume, Kafka and Storm are supported by versions earlier than MRS 1.8.9.\n"
        },
        "components": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1Component:MrsHybridClusterV1Component"
          }
        },
        "createAt": {
          "type": "string",
          "description": "Cluster creation time.\n"
        },
        "externalAlternateIp": {
          "type": "string",
          "description": "Backup external IP address.\n"
        },
        "externalIp": {
          "type": "string",
          "description": "External IP address.\n"
        },
        "internalIp": {
          "type": "string",
          "description": "Iternal IP address.\n"
        },
        "logCollection": {
          "type": "number",
          "description": "Indicates whether logs are collected when cluster\ninstallation fails. 0: not collected 1: collected The default value is 0. If\nlog_collection is set to 1, OBS buckets will be created to collect the MRS logs.\nThese buckets will be charged.\n"
        },
        "masterNodeIp": {
          "type": "string",
          "description": "IP address of a Master node.\n"
        },
        "masterNodeKeyPair": {
          "type": "string",
          "description": "Name of a key pair You can use a key\nto log in to the Master node in the cluster.\n"
        },
        "masterNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1MasterNodes:MrsHybridClusterV1MasterNodes",
          "description": "Specifies the master nodes information.\n"
        },
        "mrsHybridClusterV1Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "privateIpFirst": {
          "type": "string",
          "description": "Primary private IP address.\n"
        },
        "region": {
          "type": "string",
          "description": "Cluster region information. Obtain the value from\nRegions and Endpoints.\n"
        },
        "safeMode": {
          "type": "number",
          "description": "MRS cluster running mode\n- 0: common mode\n\nThe value indicates that the Kerberos authentication is disabled.\nUsers can use all functions provided by the cluster.\n- 1: safe mode (by default)\n\nThe value indicates that the Kerberos authentication is enabled.\nCommon users cannot use the file management or job management functions of an MRS cluster\nand cannot view cluster resource usage or the job records of Hadoop and Spark. To use these\nfunctions, the users must obtain the relevant permissions from the MRS Manager administrator.\nThe request has the cluster_admin_secret parameter only when safe_mode is set to 1.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the id of the security group which the cluster\nbelongs to. If this parameter is empty, MRS automatically creates a security group, whose\nname starts with mrs_{cluster_name}.\n"
        },
        "state": {
          "type": "string",
          "description": "Cluster creation fee, which is automatically calculated.\n"
        },
        "streamingCoreNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1StreamingCoreNodes:MrsHybridClusterV1StreamingCoreNodes",
          "description": "Specifies the streaming core nodes information.\n"
        },
        "streamingTaskNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1StreamingTaskNodes:MrsHybridClusterV1StreamingTaskNodes",
          "description": "Specifies the streaming task nodes information.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1Timeouts:MrsHybridClusterV1Timeouts"
        },
        "totalNodeNumber": {
          "type": "number",
          "description": "Total node number.\n"
        },
        "updateAt": {
          "type": "string",
          "description": "Cluster update time.\n"
        },
        "vnc": {
          "type": "string",
          "description": "URI address for remote login of the elastic cloud server.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the id of the VPC.\n"
        }
      },
      "type": "object",
      "required": [
        "analysisCoreNodes",
        "availableZone",
        "billingType",
        "chargingStartTime",
        "clusterName",
        "clusterVersion",
        "componentLists",
        "components",
        "createAt",
        "externalAlternateIp",
        "externalIp",
        "internalIp",
        "masterNodeIp",
        "masterNodeKeyPair",
        "masterNodes",
        "mrsHybridClusterV1Id",
        "privateIpFirst",
        "region",
        "state",
        "streamingCoreNodes",
        "subnetId",
        "totalNodeNumber",
        "updateAt",
        "vnc",
        "vpcId"
      ],
      "inputProperties": {
        "analysisCoreNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1AnalysisCoreNodes:MrsHybridClusterV1AnalysisCoreNodes",
          "description": "Specifies the analysis core nodes information.\n"
        },
        "analysisTaskNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1AnalysisTaskNodes:MrsHybridClusterV1AnalysisTaskNodes",
          "description": "Specifies the analysis task nodes information.\n"
        },
        "availableZone": {
          "type": "string",
          "description": "ID or Name of an available zone. Obtain the value\nfrom Regions and Endpoints.\n"
        },
        "clusterAdminSecret": {
          "type": "string",
          "description": "Indicates the password of the MRS Manager administrator.\n- Must contain 8 to 32 characters.\n- Must contain at least three types of the following: Lowercase letters, Uppercase letters,\nDigits, Special characters of `~!@#$%^&*()-_=+\\|[{}];:'\",<.>/? and Spaces.\n- Must be different from the username.\n- Must be different from the username written in reverse order.\nFor versions earlier than MRS 2.0.1, this parameter is mandatory only when safe_mode is set to 1.\nFor MRS 2.0.1 or later, this parameter is mandatory no matter which value safe_mode is set to.\n",
          "secret": true
        },
        "clusterName": {
          "type": "string",
          "description": "Cluster name, which is globally unique and contains\nonly 1 to 64 letters, digits, hyphens (-), and underscores (_).\n"
        },
        "clusterVersion": {
          "type": "string",
          "description": "Version of the clusters. Possible values are as follows:\nMRS 1.8.9, MRS 2.0.1, MRS 2.1.0 and MRS 3.1.0-LTS.1.\n"
        },
        "componentLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Component name\n- Presto, Hadoop, Spark, HBase, Hive, Tez, Hue, Loader, Flume, Kafka and Storm are supported by MRS 2.0.1 or later.\n- Presto, Hadoop, Spark, HBase, Opentsdb, Hive, Hue, Loader, Flink, Flume, Kafka, KafkaManager and Storm are\nsupported by MRS 1.8.9.\n- Hadoop, Spark, HBase, Hive, Hue, Loader, Flume, Kafka and Storm are supported by versions earlier than MRS 1.8.9.\n"
        },
        "logCollection": {
          "type": "number",
          "description": "Indicates whether logs are collected when cluster\ninstallation fails. 0: not collected 1: collected The default value is 0. If\nlog_collection is set to 1, OBS buckets will be created to collect the MRS logs.\nThese buckets will be charged.\n"
        },
        "masterNodeKeyPair": {
          "type": "string",
          "description": "Name of a key pair You can use a key\nto log in to the Master node in the cluster.\n"
        },
        "masterNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1MasterNodes:MrsHybridClusterV1MasterNodes",
          "description": "Specifies the master nodes information.\n"
        },
        "mrsHybridClusterV1Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "Cluster region information. Obtain the value from\nRegions and Endpoints.\n"
        },
        "safeMode": {
          "type": "number",
          "description": "MRS cluster running mode\n- 0: common mode\n\nThe value indicates that the Kerberos authentication is disabled.\nUsers can use all functions provided by the cluster.\n- 1: safe mode (by default)\n\nThe value indicates that the Kerberos authentication is enabled.\nCommon users cannot use the file management or job management functions of an MRS cluster\nand cannot view cluster resource usage or the job records of Hadoop and Spark. To use these\nfunctions, the users must obtain the relevant permissions from the MRS Manager administrator.\nThe request has the cluster_admin_secret parameter only when safe_mode is set to 1.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the id of the security group which the cluster\nbelongs to. If this parameter is empty, MRS automatically creates a security group, whose\nname starts with mrs_{cluster_name}.\n"
        },
        "streamingCoreNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1StreamingCoreNodes:MrsHybridClusterV1StreamingCoreNodes",
          "description": "Specifies the streaming core nodes information.\n"
        },
        "streamingTaskNodes": {
          "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1StreamingTaskNodes:MrsHybridClusterV1StreamingTaskNodes",
          "description": "Specifies the streaming task nodes information.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1Timeouts:MrsHybridClusterV1Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the id of the VPC.\n"
        }
      },
      "requiredInputs": [
        "analysisCoreNodes",
        "availableZone",
        "clusterName",
        "componentLists",
        "masterNodeKeyPair",
        "masterNodes",
        "streamingCoreNodes",
        "subnetId",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MrsHybridClusterV1 resources.\n",
        "properties": {
          "analysisCoreNodes": {
            "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1AnalysisCoreNodes:MrsHybridClusterV1AnalysisCoreNodes",
            "description": "Specifies the analysis core nodes information.\n"
          },
          "analysisTaskNodes": {
            "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1AnalysisTaskNodes:MrsHybridClusterV1AnalysisTaskNodes",
            "description": "Specifies the analysis task nodes information.\n"
          },
          "availableZone": {
            "type": "string",
            "description": "ID or Name of an available zone. Obtain the value\nfrom Regions and Endpoints.\n"
          },
          "billingType": {
            "type": "string",
            "description": "The value is Metered, indicating on-demand payment.\n"
          },
          "chargingStartTime": {
            "type": "string",
            "description": "Time when charging starts.\n"
          },
          "clusterAdminSecret": {
            "type": "string",
            "description": "Indicates the password of the MRS Manager administrator.\n- Must contain 8 to 32 characters.\n- Must contain at least three types of the following: Lowercase letters, Uppercase letters,\nDigits, Special characters of `~!@#$%^&*()-_=+\\|[{}];:'\",<.>/? and Spaces.\n- Must be different from the username.\n- Must be different from the username written in reverse order.\nFor versions earlier than MRS 2.0.1, this parameter is mandatory only when safe_mode is set to 1.\nFor MRS 2.0.1 or later, this parameter is mandatory no matter which value safe_mode is set to.\n",
            "secret": true
          },
          "clusterName": {
            "type": "string",
            "description": "Cluster name, which is globally unique and contains\nonly 1 to 64 letters, digits, hyphens (-), and underscores (_).\n"
          },
          "clusterVersion": {
            "type": "string",
            "description": "Version of the clusters. Possible values are as follows:\nMRS 1.8.9, MRS 2.0.1, MRS 2.1.0 and MRS 3.1.0-LTS.1.\n"
          },
          "componentLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Component name\n- Presto, Hadoop, Spark, HBase, Hive, Tez, Hue, Loader, Flume, Kafka and Storm are supported by MRS 2.0.1 or later.\n- Presto, Hadoop, Spark, HBase, Opentsdb, Hive, Hue, Loader, Flink, Flume, Kafka, KafkaManager and Storm are\nsupported by MRS 1.8.9.\n- Hadoop, Spark, HBase, Hive, Hue, Loader, Flume, Kafka and Storm are supported by versions earlier than MRS 1.8.9.\n"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1Component:MrsHybridClusterV1Component"
            }
          },
          "createAt": {
            "type": "string",
            "description": "Cluster creation time.\n"
          },
          "externalAlternateIp": {
            "type": "string",
            "description": "Backup external IP address.\n"
          },
          "externalIp": {
            "type": "string",
            "description": "External IP address.\n"
          },
          "internalIp": {
            "type": "string",
            "description": "Iternal IP address.\n"
          },
          "logCollection": {
            "type": "number",
            "description": "Indicates whether logs are collected when cluster\ninstallation fails. 0: not collected 1: collected The default value is 0. If\nlog_collection is set to 1, OBS buckets will be created to collect the MRS logs.\nThese buckets will be charged.\n"
          },
          "masterNodeIp": {
            "type": "string",
            "description": "IP address of a Master node.\n"
          },
          "masterNodeKeyPair": {
            "type": "string",
            "description": "Name of a key pair You can use a key\nto log in to the Master node in the cluster.\n"
          },
          "masterNodes": {
            "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1MasterNodes:MrsHybridClusterV1MasterNodes",
            "description": "Specifies the master nodes information.\n"
          },
          "mrsHybridClusterV1Id": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "privateIpFirst": {
            "type": "string",
            "description": "Primary private IP address.\n"
          },
          "region": {
            "type": "string",
            "description": "Cluster region information. Obtain the value from\nRegions and Endpoints.\n"
          },
          "safeMode": {
            "type": "number",
            "description": "MRS cluster running mode\n- 0: common mode\n\nThe value indicates that the Kerberos authentication is disabled.\nUsers can use all functions provided by the cluster.\n- 1: safe mode (by default)\n\nThe value indicates that the Kerberos authentication is enabled.\nCommon users cannot use the file management or job management functions of an MRS cluster\nand cannot view cluster resource usage or the job records of Hadoop and Spark. To use these\nfunctions, the users must obtain the relevant permissions from the MRS Manager administrator.\nThe request has the cluster_admin_secret parameter only when safe_mode is set to 1.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Specifies the id of the security group which the cluster\nbelongs to. If this parameter is empty, MRS automatically creates a security group, whose\nname starts with mrs_{cluster_name}.\n"
          },
          "state": {
            "type": "string",
            "description": "Cluster creation fee, which is automatically calculated.\n"
          },
          "streamingCoreNodes": {
            "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1StreamingCoreNodes:MrsHybridClusterV1StreamingCoreNodes",
            "description": "Specifies the streaming core nodes information.\n"
          },
          "streamingTaskNodes": {
            "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1StreamingTaskNodes:MrsHybridClusterV1StreamingTaskNodes",
            "description": "Specifies the streaming task nodes information.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the ID of the VPC Subnet.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FMrsHybridClusterV1Timeouts:MrsHybridClusterV1Timeouts"
          },
          "totalNodeNumber": {
            "type": "number",
            "description": "Total node number.\n"
          },
          "updateAt": {
            "type": "string",
            "description": "Cluster update time.\n"
          },
          "vnc": {
            "type": "string",
            "description": "URI address for remote login of the elastic cloud server.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the id of the VPC.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/mrsJobV1:MrsJobV1": {
      "description": "Manages resource job within FlexibleEngine MRS.\n\n!> **Warning:** It has been deprecated, please use `flexibleengine.MrsJobV2` instead.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst job1 = new flexibleengine.MrsJobV1(\"job1\", {\n    arguments: \"wordcount\",\n    clusterId: \"ef43d2ff-1ecf-4f13-bd0c-0004c429a058\",\n    input: \"s3a://wordcount/input/\",\n    jarPath: \"s3a://wordcount/program/hadoop-mapreduce-examples-2.7.5.jar\",\n    jobLog: \"s3a://wordcount/log/\",\n    jobName: \"test_mapreduce_job1\",\n    jobType: 1,\n    output: \"s3a://wordcount/output/\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\njob1 = flexibleengine.MrsJobV1(\"job1\",\n    arguments=\"wordcount\",\n    cluster_id=\"ef43d2ff-1ecf-4f13-bd0c-0004c429a058\",\n    input=\"s3a://wordcount/input/\",\n    jar_path=\"s3a://wordcount/program/hadoop-mapreduce-examples-2.7.5.jar\",\n    job_log=\"s3a://wordcount/log/\",\n    job_name=\"test_mapreduce_job1\",\n    job_type=1,\n    output=\"s3a://wordcount/output/\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var job1 = new Flexibleengine.MrsJobV1(\"job1\", new()\n    {\n        Arguments = \"wordcount\",\n        ClusterId = \"ef43d2ff-1ecf-4f13-bd0c-0004c429a058\",\n        Input = \"s3a://wordcount/input/\",\n        JarPath = \"s3a://wordcount/program/hadoop-mapreduce-examples-2.7.5.jar\",\n        JobLog = \"s3a://wordcount/log/\",\n        JobName = \"test_mapreduce_job1\",\n        JobType = 1,\n        Output = \"s3a://wordcount/output/\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewMrsJobV1(ctx, \"job1\", &flexibleengine.MrsJobV1Args{\n\t\t\tArguments: pulumi.String(\"wordcount\"),\n\t\t\tClusterId: pulumi.String(\"ef43d2ff-1ecf-4f13-bd0c-0004c429a058\"),\n\t\t\tInput:     pulumi.String(\"s3a://wordcount/input/\"),\n\t\t\tJarPath:   pulumi.String(\"s3a://wordcount/program/hadoop-mapreduce-examples-2.7.5.jar\"),\n\t\t\tJobLog:    pulumi.String(\"s3a://wordcount/log/\"),\n\t\t\tJobName:   pulumi.String(\"test_mapreduce_job1\"),\n\t\t\tJobType:   pulumi.Float64(1),\n\t\t\tOutput:    pulumi.String(\"s3a://wordcount/output/\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.MrsJobV1;\nimport com.pulumi.flexibleengine.MrsJobV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var job1 = new MrsJobV1(\"job1\", MrsJobV1Args.builder()\n            .arguments(\"wordcount\")\n            .clusterId(\"ef43d2ff-1ecf-4f13-bd0c-0004c429a058\")\n            .input(\"s3a://wordcount/input/\")\n            .jarPath(\"s3a://wordcount/program/hadoop-mapreduce-examples-2.7.5.jar\")\n            .jobLog(\"s3a://wordcount/log/\")\n            .jobName(\"test_mapreduce_job1\")\n            .jobType(1)\n            .output(\"s3a://wordcount/output/\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  job1:\n    type: flexibleengine:MrsJobV1\n    properties:\n      arguments: wordcount\n      clusterId: ef43d2ff-1ecf-4f13-bd0c-0004c429a058\n      input: s3a://wordcount/input/\n      jarPath: s3a://wordcount/program/hadoop-mapreduce-examples-2.7.5.jar\n      jobLog: s3a://wordcount/log/\n      jobName: test_mapreduce_job1\n      jobType: 1\n      output: s3a://wordcount/output/\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "arguments": {
          "type": "string",
          "description": "Key parameter for program execution. The parameter\nis specified by the function of the user's program. MRS is only responsible\nfor loading the parameter. The parameter contains a maximum of 2047 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "Cluster ID\n"
        },
        "hiveScriptPath": {
          "type": "string",
          "description": "SQL program path This parameter is needed\nby Spark Script and Hive Script jobs only and must meet the following requirements:\nContains a maximum of 1023 characters, excluding special characters such as\n;|&><'$. The address cannot be empty or full of spaces. Starts with / or s3a://.\nEnds with .sql. sql is case-insensitive.\n"
        },
        "input": {
          "type": "string",
          "description": "Path for inputting data, which must start with / or s3a://.\nA correct OBS path is required. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n"
        },
        "isProtected": {
          "type": "boolean",
          "description": "Whether a job is protected true false The current\nversion does not support this function.\n"
        },
        "isPublic": {
          "type": "boolean",
          "description": "Whether a job is public true false The current version\ndoes not support this function.\n"
        },
        "jarPath": {
          "type": "string",
          "description": "Path of the .jar package or .sql file for program\nexecution The parameter must meet the following requirements: Contains a maximum\nof 1023 characters, excluding special characters such as ;|&><'$. The address\ncannot be empty or full of spaces. Starts with / or s3a://. Spark Script must\nend with .sql; while MapReduce and Spark Jar must end with .jar. sql and jar\nare case-insensitive.\n"
        },
        "jobLog": {
          "type": "string",
          "description": "Path for storing job logs that record job running status.\nThis path must start with / or s3a://. A correct OBS path is required. The parameter\ncontains a maximum of 1023 characters, excluding special characters such as\n;|&>'<$, and can be empty.\n"
        },
        "jobName": {
          "type": "string",
          "description": "Job name Contains only 1 to 64 letters, digits, hyphens\n(-), and underscores (_). NOTE: Identical job names are allowed but not recommended.\n"
        },
        "jobState": {
          "type": "string"
        },
        "jobType": {
          "type": "number",
          "description": "Job type 1: MapReduce 2: Spark 3: Hive Script 4: HiveQL\n(not supported currently) 5: DistCp, importing and exporting data.  6: Spark\nScript 7: Spark SQL, submitting Spark SQL statements. (not supported in this\nAPIcurrently) NOTE: Spark and Hive jobs can be added to only clusters including\nSpark and Hive components.\n"
        },
        "mrsJobV1Id": {
          "type": "string"
        },
        "output": {
          "type": "string",
          "description": "Path for outputting data, which must start with / or\ns3a://. A correct OBS path is required. If the path does not exist, the system\nautomatically creates it. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n"
        },
        "region": {
          "type": "string"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FMrsJobV1Timeouts:MrsJobV1Timeouts"
        }
      },
      "type": "object",
      "required": [
        "arguments",
        "clusterId",
        "hiveScriptPath",
        "input",
        "isProtected",
        "isPublic",
        "jarPath",
        "jobLog",
        "jobName",
        "jobState",
        "jobType",
        "mrsJobV1Id",
        "output",
        "region"
      ],
      "inputProperties": {
        "arguments": {
          "type": "string",
          "description": "Key parameter for program execution. The parameter\nis specified by the function of the user's program. MRS is only responsible\nfor loading the parameter. The parameter contains a maximum of 2047 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n"
        },
        "clusterId": {
          "type": "string",
          "description": "Cluster ID\n"
        },
        "hiveScriptPath": {
          "type": "string",
          "description": "SQL program path This parameter is needed\nby Spark Script and Hive Script jobs only and must meet the following requirements:\nContains a maximum of 1023 characters, excluding special characters such as\n;|&><'$. The address cannot be empty or full of spaces. Starts with / or s3a://.\nEnds with .sql. sql is case-insensitive.\n"
        },
        "input": {
          "type": "string",
          "description": "Path for inputting data, which must start with / or s3a://.\nA correct OBS path is required. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n"
        },
        "isProtected": {
          "type": "boolean",
          "description": "Whether a job is protected true false The current\nversion does not support this function.\n"
        },
        "isPublic": {
          "type": "boolean",
          "description": "Whether a job is public true false The current version\ndoes not support this function.\n"
        },
        "jarPath": {
          "type": "string",
          "description": "Path of the .jar package or .sql file for program\nexecution The parameter must meet the following requirements: Contains a maximum\nof 1023 characters, excluding special characters such as ;|&><'$. The address\ncannot be empty or full of spaces. Starts with / or s3a://. Spark Script must\nend with .sql; while MapReduce and Spark Jar must end with .jar. sql and jar\nare case-insensitive.\n"
        },
        "jobLog": {
          "type": "string",
          "description": "Path for storing job logs that record job running status.\nThis path must start with / or s3a://. A correct OBS path is required. The parameter\ncontains a maximum of 1023 characters, excluding special characters such as\n;|&>'<$, and can be empty.\n"
        },
        "jobName": {
          "type": "string",
          "description": "Job name Contains only 1 to 64 letters, digits, hyphens\n(-), and underscores (_). NOTE: Identical job names are allowed but not recommended.\n"
        },
        "jobType": {
          "type": "number",
          "description": "Job type 1: MapReduce 2: Spark 3: Hive Script 4: HiveQL\n(not supported currently) 5: DistCp, importing and exporting data.  6: Spark\nScript 7: Spark SQL, submitting Spark SQL statements. (not supported in this\nAPIcurrently) NOTE: Spark and Hive jobs can be added to only clusters including\nSpark and Hive components.\n"
        },
        "mrsJobV1Id": {
          "type": "string"
        },
        "output": {
          "type": "string",
          "description": "Path for outputting data, which must start with / or\ns3a://. A correct OBS path is required. If the path does not exist, the system\nautomatically creates it. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n"
        },
        "region": {
          "type": "string"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FMrsJobV1Timeouts:MrsJobV1Timeouts"
        }
      },
      "requiredInputs": [
        "clusterId",
        "jarPath",
        "jobName",
        "jobType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MrsJobV1 resources.\n",
        "properties": {
          "arguments": {
            "type": "string",
            "description": "Key parameter for program execution. The parameter\nis specified by the function of the user's program. MRS is only responsible\nfor loading the parameter. The parameter contains a maximum of 2047 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n"
          },
          "clusterId": {
            "type": "string",
            "description": "Cluster ID\n"
          },
          "hiveScriptPath": {
            "type": "string",
            "description": "SQL program path This parameter is needed\nby Spark Script and Hive Script jobs only and must meet the following requirements:\nContains a maximum of 1023 characters, excluding special characters such as\n;|&><'$. The address cannot be empty or full of spaces. Starts with / or s3a://.\nEnds with .sql. sql is case-insensitive.\n"
          },
          "input": {
            "type": "string",
            "description": "Path for inputting data, which must start with / or s3a://.\nA correct OBS path is required. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n"
          },
          "isProtected": {
            "type": "boolean",
            "description": "Whether a job is protected true false The current\nversion does not support this function.\n"
          },
          "isPublic": {
            "type": "boolean",
            "description": "Whether a job is public true false The current version\ndoes not support this function.\n"
          },
          "jarPath": {
            "type": "string",
            "description": "Path of the .jar package or .sql file for program\nexecution The parameter must meet the following requirements: Contains a maximum\nof 1023 characters, excluding special characters such as ;|&><'$. The address\ncannot be empty or full of spaces. Starts with / or s3a://. Spark Script must\nend with .sql; while MapReduce and Spark Jar must end with .jar. sql and jar\nare case-insensitive.\n"
          },
          "jobLog": {
            "type": "string",
            "description": "Path for storing job logs that record job running status.\nThis path must start with / or s3a://. A correct OBS path is required. The parameter\ncontains a maximum of 1023 characters, excluding special characters such as\n;|&>'<$, and can be empty.\n"
          },
          "jobName": {
            "type": "string",
            "description": "Job name Contains only 1 to 64 letters, digits, hyphens\n(-), and underscores (_). NOTE: Identical job names are allowed but not recommended.\n"
          },
          "jobState": {
            "type": "string"
          },
          "jobType": {
            "type": "number",
            "description": "Job type 1: MapReduce 2: Spark 3: Hive Script 4: HiveQL\n(not supported currently) 5: DistCp, importing and exporting data.  6: Spark\nScript 7: Spark SQL, submitting Spark SQL statements. (not supported in this\nAPIcurrently) NOTE: Spark and Hive jobs can be added to only clusters including\nSpark and Hive components.\n"
          },
          "mrsJobV1Id": {
            "type": "string"
          },
          "output": {
            "type": "string",
            "description": "Path for outputting data, which must start with / or\ns3a://. A correct OBS path is required. If the path does not exist, the system\nautomatically creates it. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n"
          },
          "region": {
            "type": "string"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FMrsJobV1Timeouts:MrsJobV1Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/mrsJobV2:MrsJobV2": {
      "description": "Manage a job resource within FlexibleEngine MRS.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject(\"clusterId\");\nconst jobName = config.requireObject(\"jobName\");\nconst programPath = config.requireObject(\"programPath\");\nconst accessKey = config.requireObject(\"accessKey\");\nconst secretKey = config.requireObject(\"secretKey\");\nconst test = new flexibleengine.MrsJobV2(\"test\", {\n    clusterId: clusterId,\n    type: \"SparkSubmit\",\n    programPath: programPath,\n    parameters: `${accessKey} ${secretKey} 1 s3a://obs-demo-analysis/input s3a://obs-demo-analysis/output`,\n    programParameters: {\n        \"--class\": \"com.orange.bigdata.spark.examples.DriverBehavior\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\njob_name = config.require_object(\"jobName\")\nprogram_path = config.require_object(\"programPath\")\naccess_key = config.require_object(\"accessKey\")\nsecret_key = config.require_object(\"secretKey\")\ntest = flexibleengine.MrsJobV2(\"test\",\n    cluster_id=cluster_id,\n    type=\"SparkSubmit\",\n    program_path=program_path,\n    parameters=f\"{access_key} {secret_key} 1 s3a://obs-demo-analysis/input s3a://obs-demo-analysis/output\",\n    program_parameters={\n        \"--class\": \"com.orange.bigdata.spark.examples.DriverBehavior\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var jobName = config.RequireObject<dynamic>(\"jobName\");\n    var programPath = config.RequireObject<dynamic>(\"programPath\");\n    var accessKey = config.RequireObject<dynamic>(\"accessKey\");\n    var secretKey = config.RequireObject<dynamic>(\"secretKey\");\n    var test = new Flexibleengine.MrsJobV2(\"test\", new()\n    {\n        ClusterId = clusterId,\n        Type = \"SparkSubmit\",\n        ProgramPath = programPath,\n        Parameters = $\"{accessKey} {secretKey} 1 s3a://obs-demo-analysis/input s3a://obs-demo-analysis/output\",\n        ProgramParameters = \n        {\n            { \"--class\", \"com.orange.bigdata.spark.examples.DriverBehavior\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tjobName := cfg.RequireObject(\"jobName\")\n\t\tprogramPath := cfg.RequireObject(\"programPath\")\n\t\taccessKey := cfg.RequireObject(\"accessKey\")\n\t\tsecretKey := cfg.RequireObject(\"secretKey\")\n\t\t_, err := flexibleengine.NewMrsJobV2(ctx, \"test\", &flexibleengine.MrsJobV2Args{\n\t\t\tClusterId:   pulumi.Any(clusterId),\n\t\t\tType:        pulumi.String(\"SparkSubmit\"),\n\t\t\tProgramPath: pulumi.Any(programPath),\n\t\t\tParameters:  pulumi.Sprintf(\"%v %v 1 s3a://obs-demo-analysis/input s3a://obs-demo-analysis/output\", accessKey, secretKey),\n\t\t\tProgramParameters: pulumi.StringMap{\n\t\t\t\t\"--class\": pulumi.String(\"com.orange.bigdata.spark.examples.DriverBehavior\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.MrsJobV2;\nimport com.pulumi.flexibleengine.MrsJobV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var jobName = config.get(\"jobName\");\n        final var programPath = config.get(\"programPath\");\n        final var accessKey = config.get(\"accessKey\");\n        final var secretKey = config.get(\"secretKey\");\n        var test = new MrsJobV2(\"test\", MrsJobV2Args.builder()\n            .clusterId(clusterId)\n            .type(\"SparkSubmit\")\n            .programPath(programPath)\n            .parameters(String.format(\"%s %s 1 s3a://obs-demo-analysis/input s3a://obs-demo-analysis/output\", accessKey,secretKey))\n            .programParameters(Map.of(\"--class\", \"com.orange.bigdata.spark.examples.DriverBehavior\"))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  jobName:\n    type: dynamic\n  programPath:\n    type: dynamic\n  accessKey:\n    type: dynamic\n  secretKey:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:MrsJobV2\n    properties:\n      clusterId: ${clusterId}\n      type: SparkSubmit\n      programPath: ${programPath}\n      parameters: ${accessKey} ${secretKey} 1 s3a://obs-demo-analysis/input s3a://obs-demo-analysis/output\n      programParameters:\n        --class: com.orange.bigdata.spark.examples.DriverBehavior\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nMRS jobs can be imported using their `id` and the IDs of the MRS cluster to which the job belongs, separated\n\nby a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/mrsJobV2:MrsJobV2 test <cluster_id>/<id>\n```\n\n",
      "properties": {
        "clusterId": {
          "type": "string",
          "description": "Specifies an ID of the MRS cluster to which the job belongs to.\nChanging this will create a new MRS job resource.\n"
        },
        "finishTime": {
          "type": "string",
          "description": "The completion time of the MRS job.\n"
        },
        "mrsJobV2Id": {
          "type": "string",
          "description": "ID of the MRS job in UUID format.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the MRS job. The name can contain 1 to 64\ncharacters, which may consist of letters, digits, underscores (_) and hyphens (-).\nChanging this will create a new MRS job resource.\n"
        },
        "parameters": {
          "type": "string",
          "description": "Specifies the parameters for the MRS job. Add an at sign (@) before\neach parameter can prevent the parameters being saved in plaintext format. Each parameters are separated with spaces.\nThis parameter can be set when `type` is **Flink**, **MRS** or **SparkSubmit**. Changing this will create a new\nMRS job resource.\n"
        },
        "programParameters": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the the key/value pairs of the program parameters, such as\nthread, memory, and vCPUs, are used to optimize resource usage and improve job execution performance. This parameter\ncan be set when `type` is **Flink**, **SparkSubmit**, **SparkSql**, **SparkScript**, **HiveSql** or\n**HiveScript**. Changing this will create a new MRS job resource.\n"
        },
        "programPath": {
          "type": "string",
          "description": "Specifies the .jar package path or .py file path for program execution.\nThe parameter must meet the following requirements:\n+ Contains a maximum of 1023 characters, excluding special characters such as `;|&><'$`.\n+ The address cannot be empty or full of spaces.\n+ The program support OBS or DHFS to storage program file or package. For OBS, starts with (OBS:) **s3a://** and end\nwith **.jar** or **.py**. For DHFS, starts with (DHFS:) **/user**.\n\nRequired if `type` is **MapReduce** or **SparkSubmit**. Changing this will create a new MRS job resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the MRS job resource.\nIf omitted, the provider-level region will be used. Changing this will create a new MRS job resource.\n"
        },
        "serviceParameters": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs used to modify service configuration.\nParameter configurations of services are available on the Service Configuration tab page of MRS Manager.\nChanging this will create a new MRS job resource.\n"
        },
        "sql": {
          "type": "string",
          "description": "Specifies the SQL command or file path. Only required if `type` is **HiveSql**\nor **SparkSql**. Changing this will create a new MRS job resource.\n"
        },
        "startTime": {
          "type": "string",
          "description": "The creation time of the MRS job.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of the MRS job.\n"
        },
        "submitTime": {
          "type": "string",
          "description": "The submission time of the MRS job.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FMrsJobV2Timeouts:MrsJobV2Timeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the job type. The valid values are **MapReduce**,\n**Flink**, **HiveSql**, **HiveScript**, **SparkSubmit**, **SparkSql** and **SparkScript**.\n\nChanging this will create a new MRS job resource.\n\n> Spark, Hive, and Flink jobs can be added to only clusters that include Spark, Hive, and Flink components.\n"
        }
      },
      "type": "object",
      "required": [
        "clusterId",
        "finishTime",
        "mrsJobV2Id",
        "name",
        "region",
        "startTime",
        "status",
        "submitTime",
        "type"
      ],
      "inputProperties": {
        "clusterId": {
          "type": "string",
          "description": "Specifies an ID of the MRS cluster to which the job belongs to.\nChanging this will create a new MRS job resource.\n"
        },
        "mrsJobV2Id": {
          "type": "string",
          "description": "ID of the MRS job in UUID format.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the MRS job. The name can contain 1 to 64\ncharacters, which may consist of letters, digits, underscores (_) and hyphens (-).\nChanging this will create a new MRS job resource.\n"
        },
        "parameters": {
          "type": "string",
          "description": "Specifies the parameters for the MRS job. Add an at sign (@) before\neach parameter can prevent the parameters being saved in plaintext format. Each parameters are separated with spaces.\nThis parameter can be set when `type` is **Flink**, **MRS** or **SparkSubmit**. Changing this will create a new\nMRS job resource.\n"
        },
        "programParameters": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the the key/value pairs of the program parameters, such as\nthread, memory, and vCPUs, are used to optimize resource usage and improve job execution performance. This parameter\ncan be set when `type` is **Flink**, **SparkSubmit**, **SparkSql**, **SparkScript**, **HiveSql** or\n**HiveScript**. Changing this will create a new MRS job resource.\n"
        },
        "programPath": {
          "type": "string",
          "description": "Specifies the .jar package path or .py file path for program execution.\nThe parameter must meet the following requirements:\n+ Contains a maximum of 1023 characters, excluding special characters such as `;|&><'$`.\n+ The address cannot be empty or full of spaces.\n+ The program support OBS or DHFS to storage program file or package. For OBS, starts with (OBS:) **s3a://** and end\nwith **.jar** or **.py**. For DHFS, starts with (DHFS:) **/user**.\n\nRequired if `type` is **MapReduce** or **SparkSubmit**. Changing this will create a new MRS job resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the MRS job resource.\nIf omitted, the provider-level region will be used. Changing this will create a new MRS job resource.\n"
        },
        "serviceParameters": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs used to modify service configuration.\nParameter configurations of services are available on the Service Configuration tab page of MRS Manager.\nChanging this will create a new MRS job resource.\n"
        },
        "sql": {
          "type": "string",
          "description": "Specifies the SQL command or file path. Only required if `type` is **HiveSql**\nor **SparkSql**. Changing this will create a new MRS job resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FMrsJobV2Timeouts:MrsJobV2Timeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the job type. The valid values are **MapReduce**,\n**Flink**, **HiveSql**, **HiveScript**, **SparkSubmit**, **SparkSql** and **SparkScript**.\n\nChanging this will create a new MRS job resource.\n\n> Spark, Hive, and Flink jobs can be added to only clusters that include Spark, Hive, and Flink components.\n"
        }
      },
      "requiredInputs": [
        "clusterId",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MrsJobV2 resources.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "Specifies an ID of the MRS cluster to which the job belongs to.\nChanging this will create a new MRS job resource.\n"
          },
          "finishTime": {
            "type": "string",
            "description": "The completion time of the MRS job.\n"
          },
          "mrsJobV2Id": {
            "type": "string",
            "description": "ID of the MRS job in UUID format.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the MRS job. The name can contain 1 to 64\ncharacters, which may consist of letters, digits, underscores (_) and hyphens (-).\nChanging this will create a new MRS job resource.\n"
          },
          "parameters": {
            "type": "string",
            "description": "Specifies the parameters for the MRS job. Add an at sign (@) before\neach parameter can prevent the parameters being saved in plaintext format. Each parameters are separated with spaces.\nThis parameter can be set when `type` is **Flink**, **MRS** or **SparkSubmit**. Changing this will create a new\nMRS job resource.\n"
          },
          "programParameters": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the the key/value pairs of the program parameters, such as\nthread, memory, and vCPUs, are used to optimize resource usage and improve job execution performance. This parameter\ncan be set when `type` is **Flink**, **SparkSubmit**, **SparkSql**, **SparkScript**, **HiveSql** or\n**HiveScript**. Changing this will create a new MRS job resource.\n"
          },
          "programPath": {
            "type": "string",
            "description": "Specifies the .jar package path or .py file path for program execution.\nThe parameter must meet the following requirements:\n+ Contains a maximum of 1023 characters, excluding special characters such as `;|&><'$`.\n+ The address cannot be empty or full of spaces.\n+ The program support OBS or DHFS to storage program file or package. For OBS, starts with (OBS:) **s3a://** and end\nwith **.jar** or **.py**. For DHFS, starts with (DHFS:) **/user**.\n\nRequired if `type` is **MapReduce** or **SparkSubmit**. Changing this will create a new MRS job resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the MRS job resource.\nIf omitted, the provider-level region will be used. Changing this will create a new MRS job resource.\n"
          },
          "serviceParameters": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the key/value pairs used to modify service configuration.\nParameter configurations of services are available on the Service Configuration tab page of MRS Manager.\nChanging this will create a new MRS job resource.\n"
          },
          "sql": {
            "type": "string",
            "description": "Specifies the SQL command or file path. Only required if `type` is **HiveSql**\nor **SparkSql**. Changing this will create a new MRS job resource.\n"
          },
          "startTime": {
            "type": "string",
            "description": "The creation time of the MRS job.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of the MRS job.\n"
          },
          "submitTime": {
            "type": "string",
            "description": "The submission time of the MRS job.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FMrsJobV2Timeouts:MrsJobV2Timeouts"
          },
          "type": {
            "type": "string",
            "description": "Specifies the job type. The valid values are **MapReduce**,\n**Flink**, **HiveSql**, **HiveScript**, **SparkSubmit**, **SparkSql** and **SparkScript**.\n\nChanging this will create a new MRS job resource.\n\n> Spark, Hive, and Flink jobs can be added to only clusters that include Spark, Hive, and Flink components.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/natDnatRuleV2:NatDnatRuleV2": {
      "description": "Manages a DNAT rule resource within FlexibleEngine.\n\n## Example Usage\n\n### DNAT rule in Direct Connect scenario\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst dnat2 = new flexibleengine.NatDnatRuleV2(\"dnat2\", {\n    natGatewayId: _var.natgw_id,\n    floatingIpId: _var.publicip_id,\n    privateIp: \"10.0.0.12\",\n    protocol: \"tcp\",\n    internalServicePort: 80,\n    externalServicePort: 8080,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ndnat2 = flexibleengine.NatDnatRuleV2(\"dnat2\",\n    nat_gateway_id=var[\"natgw_id\"],\n    floating_ip_id=var[\"publicip_id\"],\n    private_ip=\"10.0.0.12\",\n    protocol=\"tcp\",\n    internal_service_port=80,\n    external_service_port=8080)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var dnat2 = new Flexibleengine.NatDnatRuleV2(\"dnat2\", new()\n    {\n        NatGatewayId = @var.Natgw_id,\n        FloatingIpId = @var.Publicip_id,\n        PrivateIp = \"10.0.0.12\",\n        Protocol = \"tcp\",\n        InternalServicePort = 80,\n        ExternalServicePort = 8080,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewNatDnatRuleV2(ctx, \"dnat2\", &flexibleengine.NatDnatRuleV2Args{\n\t\t\tNatGatewayId:        pulumi.Any(_var.Natgw_id),\n\t\t\tFloatingIpId:        pulumi.Any(_var.Publicip_id),\n\t\t\tPrivateIp:           pulumi.String(\"10.0.0.12\"),\n\t\t\tProtocol:            pulumi.String(\"tcp\"),\n\t\t\tInternalServicePort: pulumi.Float64(80),\n\t\t\tExternalServicePort: pulumi.Float64(8080),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NatDnatRuleV2;\nimport com.pulumi.flexibleengine.NatDnatRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dnat2 = new NatDnatRuleV2(\"dnat2\", NatDnatRuleV2Args.builder()\n            .natGatewayId(var_.natgw_id())\n            .floatingIpId(var_.publicip_id())\n            .privateIp(\"10.0.0.12\")\n            .protocol(\"tcp\")\n            .internalServicePort(80)\n            .externalServicePort(8080)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dnat2:\n    type: flexibleengine:NatDnatRuleV2\n    properties:\n      natGatewayId: ${var.natgw_id}\n      floatingIpId: ${var.publicip_id}\n      privateIp: 10.0.0.12\n      protocol: tcp\n      internalServicePort: 80\n      externalServicePort: 8080\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDNAT can be imported using the following format:\n\n```sh\n$ pulumi import flexibleengine:index/natDnatRuleV2:NatDnatRuleV2 dnat_1 f4f783a7-b908-4215-b018-724960e5df4a\n```\n\n",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "DNAT rule creation time.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the dnat rule.\nThe value is a string of no more than 255 characters, and angle brackets (<>) are not allowed.\nChanging this creates a new dnat rule.\n"
        },
        "externalServicePort": {
          "type": "number",
          "description": "Specifies the port for providing services\nthat are accessible from external systems. Changing this creates a new dnat rule.\n"
        },
        "floatingIpAddress": {
          "type": "string",
          "description": "The actual floating IP address.\n"
        },
        "floatingIpId": {
          "type": "string",
          "description": "Specifies the ID of the floating IP address.\nChanging this creates a new dnat rule.\n"
        },
        "internalServicePort": {
          "type": "number",
          "description": "Specifies the port used by ECSs or BMSs to provide services\nthat are accessible from external systems. Changing this creates a new dnat rule.\n"
        },
        "natDnatRuleV2Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "natGatewayId": {
          "type": "string",
          "description": "Specifies the ID of the nat gateway this dnat rule belongs to.\nChanging this creates a new dnat rule.\n"
        },
        "portId": {
          "type": "string",
          "description": "Specifies the port ID of an ECS or a BMS. This parameter is\nmandatory in VPC scenario. Changing this creates a new dnat rule.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "Specifies the private IP address of a user, for example,\nthe IP address of a VPC for dedicated connection. This parameter is mandatory in\nDirect Connect scenario. Changing this creates a new dnat rule.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol type. Currently,\nTCP, UDP, and ANY are supported. Changing this creates a new dnat rule.\n"
        },
        "status": {
          "type": "string",
          "description": "DNAT rule status.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "description",
        "externalServicePort",
        "floatingIpAddress",
        "floatingIpId",
        "internalServicePort",
        "natDnatRuleV2Id",
        "natGatewayId",
        "protocol",
        "status"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the dnat rule.\nThe value is a string of no more than 255 characters, and angle brackets (<>) are not allowed.\nChanging this creates a new dnat rule.\n"
        },
        "externalServicePort": {
          "type": "number",
          "description": "Specifies the port for providing services\nthat are accessible from external systems. Changing this creates a new dnat rule.\n"
        },
        "floatingIpId": {
          "type": "string",
          "description": "Specifies the ID of the floating IP address.\nChanging this creates a new dnat rule.\n"
        },
        "internalServicePort": {
          "type": "number",
          "description": "Specifies the port used by ECSs or BMSs to provide services\nthat are accessible from external systems. Changing this creates a new dnat rule.\n"
        },
        "natDnatRuleV2Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "natGatewayId": {
          "type": "string",
          "description": "Specifies the ID of the nat gateway this dnat rule belongs to.\nChanging this creates a new dnat rule.\n"
        },
        "portId": {
          "type": "string",
          "description": "Specifies the port ID of an ECS or a BMS. This parameter is\nmandatory in VPC scenario. Changing this creates a new dnat rule.\n"
        },
        "privateIp": {
          "type": "string",
          "description": "Specifies the private IP address of a user, for example,\nthe IP address of a VPC for dedicated connection. This parameter is mandatory in\nDirect Connect scenario. Changing this creates a new dnat rule.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol type. Currently,\nTCP, UDP, and ANY are supported. Changing this creates a new dnat rule.\n"
        }
      },
      "requiredInputs": [
        "externalServicePort",
        "floatingIpId",
        "internalServicePort",
        "natGatewayId",
        "protocol"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NatDnatRuleV2 resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "DNAT rule creation time.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the dnat rule.\nThe value is a string of no more than 255 characters, and angle brackets (<>) are not allowed.\nChanging this creates a new dnat rule.\n"
          },
          "externalServicePort": {
            "type": "number",
            "description": "Specifies the port for providing services\nthat are accessible from external systems. Changing this creates a new dnat rule.\n"
          },
          "floatingIpAddress": {
            "type": "string",
            "description": "The actual floating IP address.\n"
          },
          "floatingIpId": {
            "type": "string",
            "description": "Specifies the ID of the floating IP address.\nChanging this creates a new dnat rule.\n"
          },
          "internalServicePort": {
            "type": "number",
            "description": "Specifies the port used by ECSs or BMSs to provide services\nthat are accessible from external systems. Changing this creates a new dnat rule.\n"
          },
          "natDnatRuleV2Id": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "natGatewayId": {
            "type": "string",
            "description": "Specifies the ID of the nat gateway this dnat rule belongs to.\nChanging this creates a new dnat rule.\n"
          },
          "portId": {
            "type": "string",
            "description": "Specifies the port ID of an ECS or a BMS. This parameter is\nmandatory in VPC scenario. Changing this creates a new dnat rule.\n"
          },
          "privateIp": {
            "type": "string",
            "description": "Specifies the private IP address of a user, for example,\nthe IP address of a VPC for dedicated connection. This parameter is mandatory in\nDirect Connect scenario. Changing this creates a new dnat rule.\n"
          },
          "protocol": {
            "type": "string",
            "description": "Specifies the protocol type. Currently,\nTCP, UDP, and ANY are supported. Changing this creates a new dnat rule.\n"
          },
          "status": {
            "type": "string",
            "description": "DNAT rule status.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/natGatewayV2:NatGatewayV2": {
      "description": "Manages a V2 nat gateway resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst nat1 = new flexibleengine.NatGatewayV2(\"nat1\", {\n    description: \"test for terraform\",\n    spec: \"3\",\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nnat1 = flexibleengine.NatGatewayV2(\"nat1\",\n    description=\"test for terraform\",\n    spec=\"3\",\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var nat1 = new Flexibleengine.NatGatewayV2(\"nat1\", new()\n    {\n        Description = \"test for terraform\",\n        Spec = \"3\",\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewNatGatewayV2(ctx, \"nat1\", &flexibleengine.NatGatewayV2Args{\n\t\t\tDescription: pulumi.String(\"test for terraform\"),\n\t\t\tSpec:        pulumi.String(\"3\"),\n\t\t\tVpcId:       exampleVpc.VpcV1Id,\n\t\t\tSubnetId:    exampleSubnet.VpcSubnetV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NatGatewayV2;\nimport com.pulumi.flexibleengine.NatGatewayV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var nat1 = new NatGatewayV2(\"nat1\", NatGatewayV2Args.builder()\n            .description(\"test for terraform\")\n            .spec(\"3\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  nat1:\n    type: flexibleengine:NatGatewayV2\n    properties:\n      description: test for terraform\n      spec: '3'\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nNat gateway can be imported using the following format:\n\n```sh\n$ pulumi import flexibleengine:index/natGatewayV2:NatGatewayV2 nat_1 d126fb87-43ce-4867-a2ff-cf34af3765d9\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the nat gateway.\nThe value contains 0 to 255 characters, and angle brackets (<) and (>) are not allowed.\n"
        },
        "internalNetworkId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "name": {
          "type": "string",
          "description": "Specifies the nat gateway name. The name can contain only digits, letters,\nunderscores (_), and hyphens(-).\n"
        },
        "natGatewayV2Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the Nat gateway resource.\nIf omitted, the provider-level region will be used. Changing this creates a new nat gateway.\n"
        },
        "routerId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "spec": {
          "type": "string",
          "description": "Specifies the nat gateway type. The value can be:\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the nat gateway.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet of the downstream interface\n(the next hop of the DVR) of the NAT gateway. Changing this creates a new nat gateway.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNatGatewayV2Timeouts:NatGatewayV2Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC this nat gateway belongs to.\nChanging this creates a new nat gateway.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "name",
        "natGatewayV2Id",
        "region",
        "spec",
        "status",
        "subnetId",
        "vpcId"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the nat gateway.\nThe value contains 0 to 255 characters, and angle brackets (<) and (>) are not allowed.\n"
        },
        "internalNetworkId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "name": {
          "type": "string",
          "description": "Specifies the nat gateway name. The name can contain only digits, letters,\nunderscores (_), and hyphens(-).\n"
        },
        "natGatewayV2Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the Nat gateway resource.\nIf omitted, the provider-level region will be used. Changing this creates a new nat gateway.\n"
        },
        "routerId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "spec": {
          "type": "string",
          "description": "Specifies the nat gateway type. The value can be:\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet of the downstream interface\n(the next hop of the DVR) of the NAT gateway. Changing this creates a new nat gateway.\n"
        },
        "tenantId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNatGatewayV2Timeouts:NatGatewayV2Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC this nat gateway belongs to.\nChanging this creates a new nat gateway.\n"
        }
      },
      "requiredInputs": [
        "spec"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NatGatewayV2 resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies the description of the nat gateway.\nThe value contains 0 to 255 characters, and angle brackets (<) and (>) are not allowed.\n"
          },
          "internalNetworkId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "name": {
            "type": "string",
            "description": "Specifies the nat gateway name. The name can contain only digits, letters,\nunderscores (_), and hyphens(-).\n"
          },
          "natGatewayV2Id": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the Nat gateway resource.\nIf omitted, the provider-level region will be used. Changing this creates a new nat gateway.\n"
          },
          "routerId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "spec": {
            "type": "string",
            "description": "Specifies the nat gateway type. The value can be:\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the nat gateway.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the ID of the VPC Subnet of the downstream interface\n(the next hop of the DVR) of the NAT gateway. Changing this creates a new nat gateway.\n"
          },
          "tenantId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FNatGatewayV2Timeouts:NatGatewayV2Timeouts"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of the VPC this nat gateway belongs to.\nChanging this creates a new nat gateway.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/natPrivateDnatRule:NatPrivateDnatRule": {
      "description": "Manages a DNAT rule resource of the **private** NAT within FlexibleEngine.\n\n## Example Usage\n\n### DNAT rules forwarded with VIP as the backend\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst networkId = config.requireObject(\"networkId\");\nconst gatewayId = config.requireObject(\"gatewayId\");\nconst transitIpId = config.requireObject(\"transitIpId\");\nconst testNetworkingVipV2 = new flexibleengine.NetworkingVipV2(\"testNetworkingVipV2\", {networkId: networkId});\nconst testNatPrivateDnatRule = new flexibleengine.NatPrivateDnatRule(\"testNatPrivateDnatRule\", {\n    gatewayId: gatewayId,\n    protocol: \"tcp\",\n    transitIpId: transitIpId,\n    transitServicePort: 1000,\n    backendInterfaceId: testNetworkingVipV2.networkingVipV2Id,\n    internalServicePort: 2000,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nnetwork_id = config.require_object(\"networkId\")\ngateway_id = config.require_object(\"gatewayId\")\ntransit_ip_id = config.require_object(\"transitIpId\")\ntest_networking_vip_v2 = flexibleengine.NetworkingVipV2(\"testNetworkingVipV2\", network_id=network_id)\ntest_nat_private_dnat_rule = flexibleengine.NatPrivateDnatRule(\"testNatPrivateDnatRule\",\n    gateway_id=gateway_id,\n    protocol=\"tcp\",\n    transit_ip_id=transit_ip_id,\n    transit_service_port=1000,\n    backend_interface_id=test_networking_vip_v2.networking_vip_v2_id,\n    internal_service_port=2000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var networkId = config.RequireObject<dynamic>(\"networkId\");\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var transitIpId = config.RequireObject<dynamic>(\"transitIpId\");\n    var testNetworkingVipV2 = new Flexibleengine.NetworkingVipV2(\"testNetworkingVipV2\", new()\n    {\n        NetworkId = networkId,\n    });\n\n    var testNatPrivateDnatRule = new Flexibleengine.NatPrivateDnatRule(\"testNatPrivateDnatRule\", new()\n    {\n        GatewayId = gatewayId,\n        Protocol = \"tcp\",\n        TransitIpId = transitIpId,\n        TransitServicePort = 1000,\n        BackendInterfaceId = testNetworkingVipV2.NetworkingVipV2Id,\n        InternalServicePort = 2000,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnetworkId := cfg.RequireObject(\"networkId\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\ttransitIpId := cfg.RequireObject(\"transitIpId\")\n\t\ttestNetworkingVipV2, err := flexibleengine.NewNetworkingVipV2(ctx, \"testNetworkingVipV2\", &flexibleengine.NetworkingVipV2Args{\n\t\t\tNetworkId: pulumi.Any(networkId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewNatPrivateDnatRule(ctx, \"testNatPrivateDnatRule\", &flexibleengine.NatPrivateDnatRuleArgs{\n\t\t\tGatewayId:           pulumi.Any(gatewayId),\n\t\t\tProtocol:            pulumi.String(\"tcp\"),\n\t\t\tTransitIpId:         pulumi.Any(transitIpId),\n\t\t\tTransitServicePort:  pulumi.Float64(1000),\n\t\t\tBackendInterfaceId:  testNetworkingVipV2.NetworkingVipV2Id,\n\t\t\tInternalServicePort: pulumi.Float64(2000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NetworkingVipV2;\nimport com.pulumi.flexibleengine.NetworkingVipV2Args;\nimport com.pulumi.flexibleengine.NatPrivateDnatRule;\nimport com.pulumi.flexibleengine.NatPrivateDnatRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var networkId = config.get(\"networkId\");\n        final var gatewayId = config.get(\"gatewayId\");\n        final var transitIpId = config.get(\"transitIpId\");\n        var testNetworkingVipV2 = new NetworkingVipV2(\"testNetworkingVipV2\", NetworkingVipV2Args.builder()\n            .networkId(networkId)\n            .build());\n\n        var testNatPrivateDnatRule = new NatPrivateDnatRule(\"testNatPrivateDnatRule\", NatPrivateDnatRuleArgs.builder()\n            .gatewayId(gatewayId)\n            .protocol(\"tcp\")\n            .transitIpId(transitIpId)\n            .transitServicePort(1000)\n            .backendInterfaceId(testNetworkingVipV2.networkingVipV2Id())\n            .internalServicePort(2000)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  networkId:\n    type: dynamic\n  gatewayId:\n    type: dynamic\n  transitIpId:\n    type: dynamic\nresources:\n  testNetworkingVipV2:\n    type: flexibleengine:NetworkingVipV2\n    properties:\n      networkId: ${networkId}\n  testNatPrivateDnatRule:\n    type: flexibleengine:NatPrivateDnatRule\n    properties:\n      gatewayId: ${gatewayId}\n      protocol: tcp\n      transitIpId: ${transitIpId}\n      transitServicePort: 1000\n      backendInterfaceId: ${testNetworkingVipV2.networkingVipV2Id}\n      internalServicePort: 2000\n```\n<!--End PulumiCodeChooser -->\n\n### DNAT rules forwarded with a custom private IP address as the backend\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject(\"gatewayId\");\nconst transitIpId = config.requireObject(\"transitIpId\");\nconst test = new flexibleengine.NatPrivateDnatRule(\"test\", {\n    gatewayId: gatewayId,\n    protocol: \"tcp\",\n    transitIpId: transitIpId,\n    transitServicePort: 1000,\n    backendPrivateIp: \"172.168.0.69\",\n    internalServicePort: 2000,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\ntransit_ip_id = config.require_object(\"transitIpId\")\ntest = flexibleengine.NatPrivateDnatRule(\"test\",\n    gateway_id=gateway_id,\n    protocol=\"tcp\",\n    transit_ip_id=transit_ip_id,\n    transit_service_port=1000,\n    backend_private_ip=\"172.168.0.69\",\n    internal_service_port=2000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var transitIpId = config.RequireObject<dynamic>(\"transitIpId\");\n    var test = new Flexibleengine.NatPrivateDnatRule(\"test\", new()\n    {\n        GatewayId = gatewayId,\n        Protocol = \"tcp\",\n        TransitIpId = transitIpId,\n        TransitServicePort = 1000,\n        BackendPrivateIp = \"172.168.0.69\",\n        InternalServicePort = 2000,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\ttransitIpId := cfg.RequireObject(\"transitIpId\")\n\t\t_, err := flexibleengine.NewNatPrivateDnatRule(ctx, \"test\", &flexibleengine.NatPrivateDnatRuleArgs{\n\t\t\tGatewayId:           pulumi.Any(gatewayId),\n\t\t\tProtocol:            pulumi.String(\"tcp\"),\n\t\t\tTransitIpId:         pulumi.Any(transitIpId),\n\t\t\tTransitServicePort:  pulumi.Float64(1000),\n\t\t\tBackendPrivateIp:    pulumi.String(\"172.168.0.69\"),\n\t\t\tInternalServicePort: pulumi.Float64(2000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NatPrivateDnatRule;\nimport com.pulumi.flexibleengine.NatPrivateDnatRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var transitIpId = config.get(\"transitIpId\");\n        var test = new NatPrivateDnatRule(\"test\", NatPrivateDnatRuleArgs.builder()\n            .gatewayId(gatewayId)\n            .protocol(\"tcp\")\n            .transitIpId(transitIpId)\n            .transitServicePort(1000)\n            .backendPrivateIp(\"172.168.0.69\")\n            .internalServicePort(2000)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  transitIpId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:NatPrivateDnatRule\n    properties:\n      gatewayId: ${gatewayId}\n      protocol: tcp\n      transitIpId: ${transitIpId}\n      transitServicePort: 1000\n      backendPrivateIp: 172.168.0.69\n      internalServicePort: 2000\n```\n<!--End PulumiCodeChooser -->\n\n### DNAT rules for all ports\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject(\"gatewayId\");\nconst transitIpId = config.requireObject(\"transitIpId\");\nconst test = new flexibleengine.NatPrivateDnatRule(\"test\", {\n    gatewayId: gatewayId,\n    protocol: \"any\",\n    transitIpId: transitIpId,\n    backendPrivateIp: \"172.168.0.69\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\ntransit_ip_id = config.require_object(\"transitIpId\")\ntest = flexibleengine.NatPrivateDnatRule(\"test\",\n    gateway_id=gateway_id,\n    protocol=\"any\",\n    transit_ip_id=transit_ip_id,\n    backend_private_ip=\"172.168.0.69\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var transitIpId = config.RequireObject<dynamic>(\"transitIpId\");\n    var test = new Flexibleengine.NatPrivateDnatRule(\"test\", new()\n    {\n        GatewayId = gatewayId,\n        Protocol = \"any\",\n        TransitIpId = transitIpId,\n        BackendPrivateIp = \"172.168.0.69\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\ttransitIpId := cfg.RequireObject(\"transitIpId\")\n\t\t_, err := flexibleengine.NewNatPrivateDnatRule(ctx, \"test\", &flexibleengine.NatPrivateDnatRuleArgs{\n\t\t\tGatewayId:        pulumi.Any(gatewayId),\n\t\t\tProtocol:         pulumi.String(\"any\"),\n\t\t\tTransitIpId:      pulumi.Any(transitIpId),\n\t\t\tBackendPrivateIp: pulumi.String(\"172.168.0.69\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NatPrivateDnatRule;\nimport com.pulumi.flexibleengine.NatPrivateDnatRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var transitIpId = config.get(\"transitIpId\");\n        var test = new NatPrivateDnatRule(\"test\", NatPrivateDnatRuleArgs.builder()\n            .gatewayId(gatewayId)\n            .protocol(\"any\")\n            .transitIpId(transitIpId)\n            .backendPrivateIp(\"172.168.0.69\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  transitIpId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:NatPrivateDnatRule\n    properties:\n      gatewayId: ${gatewayId}\n      protocol: any\n      transitIpId: ${transitIpId}\n      backendPrivateIp: 172.168.0.69\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDNAT rules can be imported using their `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/natPrivateDnatRule:NatPrivateDnatRule test 19e3f4ed-fde0-406a-828d-7e0482400da9\n```\n\n",
      "properties": {
        "backendInterfaceId": {
          "type": "string",
          "description": "Specifies the network interface ID of the transit IP for private NAT.  \nExactly one of `backend_interface_id` and `backend_private_ip` must be set.\n"
        },
        "backendPrivateIp": {
          "type": "string",
          "description": "Specifies the private IP address of the backend instance.\n"
        },
        "backendType": {
          "type": "string",
          "description": "The type of backend instance.\nThe valid values are as follows:\n+ **COMPUTE**: ECS instance.\n+ **VIP**: VIP.\n+ **ELB**: ELB loadbalancer.\n+ **ELBv3**: ver.3 ELB loadbalancer.\n+ **CUSTOMIZE**: custom backend IP address.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The creation time of the DNAT rule.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the DNAT rule, which contain maximum of `255`\ncharacters, and angle brackets (< and >) are not allowed.\n"
        },
        "gatewayId": {
          "type": "string",
          "description": "Specifies the private NAT gateway ID to which the DNAT rule belongs.  \nChanging this will create a new resource.\n"
        },
        "internalServicePort": {
          "type": "number",
          "description": "Specifies the port of the backend instance.\n\n> Defaults to `0` and the default port is only available for rules with the protocol **any**.\n"
        },
        "natPrivateDnatRuleId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol type.  \nThe valid values are **tcp**, **udp** and **any**. Defaults to **any**.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the DNAT rule is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "transitIpId": {
          "type": "string",
          "description": "Specifies the ID of the transit IP for private NAT.\n"
        },
        "transitServicePort": {
          "type": "number",
          "description": "Specifies the port of the transit IP.  \n\n> Defaults to `0` and the default port is only available for rules with the protocol **any**.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The latest update time of the DNAT rule.\n"
        }
      },
      "type": "object",
      "required": [
        "backendInterfaceId",
        "backendPrivateIp",
        "backendType",
        "createdAt",
        "gatewayId",
        "natPrivateDnatRuleId",
        "protocol",
        "region",
        "transitIpId",
        "updatedAt"
      ],
      "inputProperties": {
        "backendInterfaceId": {
          "type": "string",
          "description": "Specifies the network interface ID of the transit IP for private NAT.  \nExactly one of `backend_interface_id` and `backend_private_ip` must be set.\n"
        },
        "backendPrivateIp": {
          "type": "string",
          "description": "Specifies the private IP address of the backend instance.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the DNAT rule, which contain maximum of `255`\ncharacters, and angle brackets (< and >) are not allowed.\n"
        },
        "gatewayId": {
          "type": "string",
          "description": "Specifies the private NAT gateway ID to which the DNAT rule belongs.  \nChanging this will create a new resource.\n"
        },
        "internalServicePort": {
          "type": "number",
          "description": "Specifies the port of the backend instance.\n\n> Defaults to `0` and the default port is only available for rules with the protocol **any**.\n"
        },
        "natPrivateDnatRuleId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol type.  \nThe valid values are **tcp**, **udp** and **any**. Defaults to **any**.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the DNAT rule is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "transitIpId": {
          "type": "string",
          "description": "Specifies the ID of the transit IP for private NAT.\n"
        },
        "transitServicePort": {
          "type": "number",
          "description": "Specifies the port of the transit IP.  \n\n> Defaults to `0` and the default port is only available for rules with the protocol **any**.\n"
        }
      },
      "requiredInputs": [
        "gatewayId",
        "transitIpId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NatPrivateDnatRule resources.\n",
        "properties": {
          "backendInterfaceId": {
            "type": "string",
            "description": "Specifies the network interface ID of the transit IP for private NAT.  \nExactly one of `backend_interface_id` and `backend_private_ip` must be set.\n"
          },
          "backendPrivateIp": {
            "type": "string",
            "description": "Specifies the private IP address of the backend instance.\n"
          },
          "backendType": {
            "type": "string",
            "description": "The type of backend instance.\nThe valid values are as follows:\n+ **COMPUTE**: ECS instance.\n+ **VIP**: VIP.\n+ **ELB**: ELB loadbalancer.\n+ **ELBv3**: ver.3 ELB loadbalancer.\n+ **CUSTOMIZE**: custom backend IP address.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The creation time of the DNAT rule.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the DNAT rule, which contain maximum of `255`\ncharacters, and angle brackets (< and >) are not allowed.\n"
          },
          "gatewayId": {
            "type": "string",
            "description": "Specifies the private NAT gateway ID to which the DNAT rule belongs.  \nChanging this will create a new resource.\n"
          },
          "internalServicePort": {
            "type": "number",
            "description": "Specifies the port of the backend instance.\n\n> Defaults to `0` and the default port is only available for rules with the protocol **any**.\n"
          },
          "natPrivateDnatRuleId": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "protocol": {
            "type": "string",
            "description": "Specifies the protocol type.  \nThe valid values are **tcp**, **udp** and **any**. Defaults to **any**.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the DNAT rule is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          },
          "transitIpId": {
            "type": "string",
            "description": "Specifies the ID of the transit IP for private NAT.\n"
          },
          "transitServicePort": {
            "type": "number",
            "description": "Specifies the port of the transit IP.  \n\n> Defaults to `0` and the default port is only available for rules with the protocol **any**.\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "The latest update time of the DNAT rule.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/natPrivateGateway:NatPrivateGateway": {
      "description": "Manages a gateway resource of the **private** NAT within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst subnetId = config.requireObject(\"subnetId\");\nconst gatewayName = config.requireObject(\"gatewayName\");\nconst test = new flexibleengine.NatPrivateGateway(\"test\", {\n    subnetId: subnetId,\n    spec: \"Small\",\n    description: \"Created by terraform script\",\n    enterpriseProjectId: \"0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nsubnet_id = config.require_object(\"subnetId\")\ngateway_name = config.require_object(\"gatewayName\")\ntest = flexibleengine.NatPrivateGateway(\"test\",\n    subnet_id=subnet_id,\n    spec=\"Small\",\n    description=\"Created by terraform script\",\n    enterprise_project_id=\"0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var gatewayName = config.RequireObject<dynamic>(\"gatewayName\");\n    var test = new Flexibleengine.NatPrivateGateway(\"test\", new()\n    {\n        SubnetId = subnetId,\n        Spec = \"Small\",\n        Description = \"Created by terraform script\",\n        EnterpriseProjectId = \"0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tgatewayName := cfg.RequireObject(\"gatewayName\")\n\t\t_, err := flexibleengine.NewNatPrivateGateway(ctx, \"test\", &flexibleengine.NatPrivateGatewayArgs{\n\t\t\tSubnetId:            pulumi.Any(subnetId),\n\t\t\tSpec:                pulumi.String(\"Small\"),\n\t\t\tDescription:         pulumi.String(\"Created by terraform script\"),\n\t\t\tEnterpriseProjectId: pulumi.String(\"0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NatPrivateGateway;\nimport com.pulumi.flexibleengine.NatPrivateGatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var subnetId = config.get(\"subnetId\");\n        final var gatewayName = config.get(\"gatewayName\");\n        var test = new NatPrivateGateway(\"test\", NatPrivateGatewayArgs.builder()\n            .subnetId(subnetId)\n            .spec(\"Small\")\n            .description(\"Created by terraform script\")\n            .enterpriseProjectId(\"0\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  subnetId:\n    type: dynamic\n  gatewayName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:NatPrivateGateway\n    properties:\n      subnetId: ${subnetId}\n      spec: Small\n      description: Created by terraform script\n      enterpriseProjectId: '0'\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe private NAT gateways can be imported using their `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/natPrivateGateway:NatPrivateGateway test 13d9d015-9d6f-483d-882d-d996cdf2c1d0\n```\n\n",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The creation time of the private NAT gateway.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the private NAT gateway, which contain maximum of\n`255` characters, and angle brackets (< and >) are not allowed.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the ID of the enterprise project to which the private\nNAT gateway belongs.\nChanging this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the private NAT gateway name.  \nThe valid length is limited from `1` to `64`, only English letters, Chinese characters, digits, hyphens (-) and\nunderscores (_) are allowed.\n"
        },
        "natPrivateGatewayId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the private NAT gateway is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "spec": {
          "type": "string",
          "description": "Specifies the specification of the private NAT gateway.  \nThe valid values are as follows:\n+ **Small**: Small type, which supports up to `20` rules, `200 Mbit/s` bandwidth, `20,000` PPS and `2,000` SNAT\nconnections.\n+ **Medium**: Medium type, which supports up to `50` rules, `500 Mbit/s` bandwidth, `50,000` PPS and `5,000` SNAT\nconnections.\n+ **Large**: Large type, which supports up to `200` rules, `2 Gbit/s` bandwidth, `200,000` PPS and `20,000` SNAT\nconnections.\n+ **Extra-Large**: Extra-large type, which supports up to `500` rules, `5 Gbit/s` bandwidth, `500,000` PPS and\n`50,000` SNAT connections.\n\nDefaults to **Small**.\n"
        },
        "status": {
          "type": "string",
          "description": "The current status of the private NAT gateway.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the network ID of the subnet to which the private NAT gateway\nbelongs.\nChanging this will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the private NAT geteway.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The latest update time of the private NAT gateway.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "enterpriseProjectId",
        "name",
        "natPrivateGatewayId",
        "region",
        "spec",
        "status",
        "subnetId",
        "updatedAt"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies the description of the private NAT gateway, which contain maximum of\n`255` characters, and angle brackets (< and >) are not allowed.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the ID of the enterprise project to which the private\nNAT gateway belongs.\nChanging this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the private NAT gateway name.  \nThe valid length is limited from `1` to `64`, only English letters, Chinese characters, digits, hyphens (-) and\nunderscores (_) are allowed.\n"
        },
        "natPrivateGatewayId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the private NAT gateway is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "spec": {
          "type": "string",
          "description": "Specifies the specification of the private NAT gateway.  \nThe valid values are as follows:\n+ **Small**: Small type, which supports up to `20` rules, `200 Mbit/s` bandwidth, `20,000` PPS and `2,000` SNAT\nconnections.\n+ **Medium**: Medium type, which supports up to `50` rules, `500 Mbit/s` bandwidth, `50,000` PPS and `5,000` SNAT\nconnections.\n+ **Large**: Large type, which supports up to `200` rules, `2 Gbit/s` bandwidth, `200,000` PPS and `20,000` SNAT\nconnections.\n+ **Extra-Large**: Extra-large type, which supports up to `500` rules, `5 Gbit/s` bandwidth, `500,000` PPS and\n`50,000` SNAT connections.\n\nDefaults to **Small**.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the network ID of the subnet to which the private NAT gateway\nbelongs.\nChanging this will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the private NAT geteway.\n"
        }
      },
      "requiredInputs": [
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NatPrivateGateway resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "The creation time of the private NAT gateway.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the private NAT gateway, which contain maximum of\n`255` characters, and angle brackets (< and >) are not allowed.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the ID of the enterprise project to which the private\nNAT gateway belongs.\nChanging this will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the private NAT gateway name.  \nThe valid length is limited from `1` to `64`, only English letters, Chinese characters, digits, hyphens (-) and\nunderscores (_) are allowed.\n"
          },
          "natPrivateGatewayId": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the private NAT gateway is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          },
          "spec": {
            "type": "string",
            "description": "Specifies the specification of the private NAT gateway.  \nThe valid values are as follows:\n+ **Small**: Small type, which supports up to `20` rules, `200 Mbit/s` bandwidth, `20,000` PPS and `2,000` SNAT\nconnections.\n+ **Medium**: Medium type, which supports up to `50` rules, `500 Mbit/s` bandwidth, `50,000` PPS and `5,000` SNAT\nconnections.\n+ **Large**: Large type, which supports up to `200` rules, `2 Gbit/s` bandwidth, `200,000` PPS and `20,000` SNAT\nconnections.\n+ **Extra-Large**: Extra-large type, which supports up to `500` rules, `5 Gbit/s` bandwidth, `500,000` PPS and\n`50,000` SNAT connections.\n\nDefaults to **Small**.\n"
          },
          "status": {
            "type": "string",
            "description": "The current status of the private NAT gateway.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the network ID of the subnet to which the private NAT gateway\nbelongs.\nChanging this will create a new resource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the key/value pairs to associate with the private NAT geteway.\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "The latest update time of the private NAT gateway.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/natPrivateSnatRule:NatPrivateSnatRule": {
      "description": "Manages an SNAT rule resource of the **private** NAT within FlexibleEngine.\n\n## Example Usage\n\n### Create an SNAT rule via subnet ID\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject(\"gatewayId\");\nconst transitIpId = config.requireObject(\"transitIpId\");\nconst subnetId = config.requireObject(\"subnetId\");\nconst test = new flexibleengine.NatPrivateSnatRule(\"test\", {\n    gatewayId: gatewayId,\n    transitIpId: transitIpId,\n    subnetId: subnetId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\ntransit_ip_id = config.require_object(\"transitIpId\")\nsubnet_id = config.require_object(\"subnetId\")\ntest = flexibleengine.NatPrivateSnatRule(\"test\",\n    gateway_id=gateway_id,\n    transit_ip_id=transit_ip_id,\n    subnet_id=subnet_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var transitIpId = config.RequireObject<dynamic>(\"transitIpId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var test = new Flexibleengine.NatPrivateSnatRule(\"test\", new()\n    {\n        GatewayId = gatewayId,\n        TransitIpId = transitIpId,\n        SubnetId = subnetId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\ttransitIpId := cfg.RequireObject(\"transitIpId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\t_, err := flexibleengine.NewNatPrivateSnatRule(ctx, \"test\", &flexibleengine.NatPrivateSnatRuleArgs{\n\t\t\tGatewayId:   pulumi.Any(gatewayId),\n\t\t\tTransitIpId: pulumi.Any(transitIpId),\n\t\t\tSubnetId:    pulumi.Any(subnetId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NatPrivateSnatRule;\nimport com.pulumi.flexibleengine.NatPrivateSnatRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var transitIpId = config.get(\"transitIpId\");\n        final var subnetId = config.get(\"subnetId\");\n        var test = new NatPrivateSnatRule(\"test\", NatPrivateSnatRuleArgs.builder()\n            .gatewayId(gatewayId)\n            .transitIpId(transitIpId)\n            .subnetId(subnetId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  transitIpId:\n    type: dynamic\n  subnetId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:NatPrivateSnatRule\n    properties:\n      gatewayId: ${gatewayId}\n      transitIpId: ${transitIpId}\n      subnetId: ${subnetId}\n```\n<!--End PulumiCodeChooser -->\n\n### Create an SNAT rule via CIDR\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject(\"gatewayId\");\nconst transitIpId = config.requireObject(\"transitIpId\");\nconst cidrBlock = config.requireObject(\"cidrBlock\");\nconst test = new flexibleengine.NatPrivateSnatRule(\"test\", {\n    gatewayId: gatewayId,\n    transitIpId: transitIpId,\n    cidr: cidrBlock,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\ntransit_ip_id = config.require_object(\"transitIpId\")\ncidr_block = config.require_object(\"cidrBlock\")\ntest = flexibleengine.NatPrivateSnatRule(\"test\",\n    gateway_id=gateway_id,\n    transit_ip_id=transit_ip_id,\n    cidr=cidr_block)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var transitIpId = config.RequireObject<dynamic>(\"transitIpId\");\n    var cidrBlock = config.RequireObject<dynamic>(\"cidrBlock\");\n    var test = new Flexibleengine.NatPrivateSnatRule(\"test\", new()\n    {\n        GatewayId = gatewayId,\n        TransitIpId = transitIpId,\n        Cidr = cidrBlock,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\ttransitIpId := cfg.RequireObject(\"transitIpId\")\n\t\tcidrBlock := cfg.RequireObject(\"cidrBlock\")\n\t\t_, err := flexibleengine.NewNatPrivateSnatRule(ctx, \"test\", &flexibleengine.NatPrivateSnatRuleArgs{\n\t\t\tGatewayId:   pulumi.Any(gatewayId),\n\t\t\tTransitIpId: pulumi.Any(transitIpId),\n\t\t\tCidr:        pulumi.Any(cidrBlock),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NatPrivateSnatRule;\nimport com.pulumi.flexibleengine.NatPrivateSnatRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var transitIpId = config.get(\"transitIpId\");\n        final var cidrBlock = config.get(\"cidrBlock\");\n        var test = new NatPrivateSnatRule(\"test\", NatPrivateSnatRuleArgs.builder()\n            .gatewayId(gatewayId)\n            .transitIpId(transitIpId)\n            .cidr(cidrBlock)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  transitIpId:\n    type: dynamic\n  cidrBlock:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:NatPrivateSnatRule\n    properties:\n      gatewayId: ${gatewayId}\n      transitIpId: ${transitIpId}\n      cidr: ${cidrBlock}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSNAT rules can be imported using their `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/natPrivateSnatRule:NatPrivateSnatRule test df9b61e9-79c1-4a75-bfab-736e224ced71\n```\n\n",
      "properties": {
        "cidr": {
          "type": "string",
          "description": "Specifies the CIDR block of the match rule.  \nChanging this will create a new resource.\nExactly one of `cidr` and `subnet_id` must be set.\n\n> SNAT rules under the same private NAT gateway cannot have the same CIDR, but they can be proper subsets of other\nCIDRs.\n"
        },
        "createdAt": {
          "type": "string",
          "description": "The creation time of the SNAT rule.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the SNAT rule, which contain maximum of `255`\ncharacters, and angle brackets (< and >) are not allowed.\n"
        },
        "gatewayId": {
          "type": "string",
          "description": "Specifies the private NAT gateway ID to which the SNAT rule belongs.  \nChanging this will create a new resource.\n"
        },
        "natPrivateSnatRuleId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the SNAT rule is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the subnet ID of the match rule.  \nChanging this will create a new resource.\n"
        },
        "transitIpId": {
          "type": "string",
          "description": "Specifies the ID of the transit IP associated with SNAT rule.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The latest update time of the SNAT rule.\n"
        }
      },
      "type": "object",
      "required": [
        "cidr",
        "createdAt",
        "gatewayId",
        "natPrivateSnatRuleId",
        "region",
        "subnetId",
        "transitIpId",
        "updatedAt"
      ],
      "inputProperties": {
        "cidr": {
          "type": "string",
          "description": "Specifies the CIDR block of the match rule.  \nChanging this will create a new resource.\nExactly one of `cidr` and `subnet_id` must be set.\n\n> SNAT rules under the same private NAT gateway cannot have the same CIDR, but they can be proper subsets of other\nCIDRs.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the SNAT rule, which contain maximum of `255`\ncharacters, and angle brackets (< and >) are not allowed.\n"
        },
        "gatewayId": {
          "type": "string",
          "description": "Specifies the private NAT gateway ID to which the SNAT rule belongs.  \nChanging this will create a new resource.\n"
        },
        "natPrivateSnatRuleId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the SNAT rule is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the subnet ID of the match rule.  \nChanging this will create a new resource.\n"
        },
        "transitIpId": {
          "type": "string",
          "description": "Specifies the ID of the transit IP associated with SNAT rule.\n"
        }
      },
      "requiredInputs": [
        "gatewayId",
        "transitIpId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NatPrivateSnatRule resources.\n",
        "properties": {
          "cidr": {
            "type": "string",
            "description": "Specifies the CIDR block of the match rule.  \nChanging this will create a new resource.\nExactly one of `cidr` and `subnet_id` must be set.\n\n> SNAT rules under the same private NAT gateway cannot have the same CIDR, but they can be proper subsets of other\nCIDRs.\n"
          },
          "createdAt": {
            "type": "string",
            "description": "The creation time of the SNAT rule.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the SNAT rule, which contain maximum of `255`\ncharacters, and angle brackets (< and >) are not allowed.\n"
          },
          "gatewayId": {
            "type": "string",
            "description": "Specifies the private NAT gateway ID to which the SNAT rule belongs.  \nChanging this will create a new resource.\n"
          },
          "natPrivateSnatRuleId": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the SNAT rule is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the subnet ID of the match rule.  \nChanging this will create a new resource.\n"
          },
          "transitIpId": {
            "type": "string",
            "description": "Specifies the ID of the transit IP associated with SNAT rule.\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "The latest update time of the SNAT rule.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/natPrivateTransitIp:NatPrivateTransitIp": {
      "description": "Manages a transit IP resource of the **private** NAT within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst subnetId = config.requireObject(\"subnetId\");\nconst ipv4Address = config.requireObject(\"ipv4Address\");\nconst enterpriseProjectId = config.requireObject(\"enterpriseProjectId\");\nconst test = new flexibleengine.NatPrivateTransitIp(\"test\", {\n    subnetId: subnetId,\n    ipAddress: ipv4Address,\n    enterpriseProjectId: enterpriseProjectId,\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nsubnet_id = config.require_object(\"subnetId\")\nipv4_address = config.require_object(\"ipv4Address\")\nenterprise_project_id = config.require_object(\"enterpriseProjectId\")\ntest = flexibleengine.NatPrivateTransitIp(\"test\",\n    subnet_id=subnet_id,\n    ip_address=ipv4_address,\n    enterprise_project_id=enterprise_project_id,\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var ipv4Address = config.RequireObject<dynamic>(\"ipv4Address\");\n    var enterpriseProjectId = config.RequireObject<dynamic>(\"enterpriseProjectId\");\n    var test = new Flexibleengine.NatPrivateTransitIp(\"test\", new()\n    {\n        SubnetId = subnetId,\n        IpAddress = ipv4Address,\n        EnterpriseProjectId = enterpriseProjectId,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tipv4Address := cfg.RequireObject(\"ipv4Address\")\n\t\tenterpriseProjectId := cfg.RequireObject(\"enterpriseProjectId\")\n\t\t_, err := flexibleengine.NewNatPrivateTransitIp(ctx, \"test\", &flexibleengine.NatPrivateTransitIpArgs{\n\t\t\tSubnetId:            pulumi.Any(subnetId),\n\t\t\tIpAddress:           pulumi.Any(ipv4Address),\n\t\t\tEnterpriseProjectId: pulumi.Any(enterpriseProjectId),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NatPrivateTransitIp;\nimport com.pulumi.flexibleengine.NatPrivateTransitIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var subnetId = config.get(\"subnetId\");\n        final var ipv4Address = config.get(\"ipv4Address\");\n        final var enterpriseProjectId = config.get(\"enterpriseProjectId\");\n        var test = new NatPrivateTransitIp(\"test\", NatPrivateTransitIpArgs.builder()\n            .subnetId(subnetId)\n            .ipAddress(ipv4Address)\n            .enterpriseProjectId(enterpriseProjectId)\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  subnetId:\n    type: dynamic\n  ipv4Address:\n    type: dynamic\n  enterpriseProjectId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:NatPrivateTransitIp\n    properties:\n      subnetId: ${subnetId}\n      ipAddress: ${ipv4Address}\n      enterpriseProjectId: ${enterpriseProjectId}\n      tags:\n        foo: bar\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nTransit IPs can be imported using their `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/natPrivateTransitIp:NatPrivateTransitIp test 5a1d921c-1df5-477d-8481-317b3fb47b5d\n```\n\n",
      "properties": {
        "createdAt": {
          "type": "string",
          "description": "The creation time of the transit IP for private NAT.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the ID of the enterprise project to which the transit\nIP belongs.\nChanging this will create a new resource.\n"
        },
        "gatewayId": {
          "type": "string",
          "description": "The ID of the private NAT gateway to which the transit IP belongs.\n"
        },
        "ipAddress": {
          "type": "string",
          "description": "Specifies the IP address of the transit subnet.  \nChanging this will create a new resource.\n"
        },
        "natPrivateTransitIpId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "networkInterfaceId": {
          "type": "string",
          "description": "The network interface ID of the transit IP for private NAT.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the transit IP is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the transit subnet ID to which the transit IP belongs.  \nChanging this will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the transit IP.\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "The latest update time of the transit IP for private NAT.\n"
        }
      },
      "type": "object",
      "required": [
        "createdAt",
        "enterpriseProjectId",
        "gatewayId",
        "ipAddress",
        "natPrivateTransitIpId",
        "networkInterfaceId",
        "region",
        "subnetId",
        "updatedAt"
      ],
      "inputProperties": {
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the ID of the enterprise project to which the transit\nIP belongs.\nChanging this will create a new resource.\n"
        },
        "ipAddress": {
          "type": "string",
          "description": "Specifies the IP address of the transit subnet.  \nChanging this will create a new resource.\n"
        },
        "natPrivateTransitIpId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the transit IP is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the transit subnet ID to which the transit IP belongs.  \nChanging this will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the transit IP.\n"
        }
      },
      "requiredInputs": [
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NatPrivateTransitIp resources.\n",
        "properties": {
          "createdAt": {
            "type": "string",
            "description": "The creation time of the transit IP for private NAT.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the ID of the enterprise project to which the transit\nIP belongs.\nChanging this will create a new resource.\n"
          },
          "gatewayId": {
            "type": "string",
            "description": "The ID of the private NAT gateway to which the transit IP belongs.\n"
          },
          "ipAddress": {
            "type": "string",
            "description": "Specifies the IP address of the transit subnet.  \nChanging this will create a new resource.\n"
          },
          "natPrivateTransitIpId": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "networkInterfaceId": {
            "type": "string",
            "description": "The network interface ID of the transit IP for private NAT.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the transit IP is located.  \nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the transit subnet ID to which the transit IP belongs.  \nChanging this will create a new resource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the key/value pairs to associate with the transit IP.\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "The latest update time of the transit IP for private NAT.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/natSnatRuleV2:NatSnatRuleV2": {
      "description": "Manages a V2 SNAT rule resource within FlexibleEngine.\n\n## Example Usage\n\n### SNAT rule in VPC scenario\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst snat1 = new flexibleengine.NatSnatRuleV2(\"snat1\", {\n    natGatewayId: flexibleengine_nat_gateway_v2.nat_1.id,\n    floatingIpId: _var.publicip_id,\n    subnetId: flexibleengine_vpc_subnet_v1.example_subnet.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nsnat1 = flexibleengine.NatSnatRuleV2(\"snat1\",\n    nat_gateway_id=flexibleengine_nat_gateway_v2[\"nat_1\"][\"id\"],\n    floating_ip_id=var[\"publicip_id\"],\n    subnet_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var snat1 = new Flexibleengine.NatSnatRuleV2(\"snat1\", new()\n    {\n        NatGatewayId = flexibleengine_nat_gateway_v2.Nat_1.Id,\n        FloatingIpId = @var.Publicip_id,\n        SubnetId = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewNatSnatRuleV2(ctx, \"snat1\", &flexibleengine.NatSnatRuleV2Args{\n\t\t\tNatGatewayId: pulumi.Any(flexibleengine_nat_gateway_v2.Nat_1.Id),\n\t\t\tFloatingIpId: pulumi.Any(_var.Publicip_id),\n\t\t\tSubnetId:     pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NatSnatRuleV2;\nimport com.pulumi.flexibleengine.NatSnatRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var snat1 = new NatSnatRuleV2(\"snat1\", NatSnatRuleV2Args.builder()\n            .natGatewayId(flexibleengine_nat_gateway_v2.nat_1().id())\n            .floatingIpId(var_.publicip_id())\n            .subnetId(flexibleengine_vpc_subnet_v1.example_subnet().id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  snat1:\n    type: flexibleengine:NatSnatRuleV2\n    properties:\n      natGatewayId: ${flexibleengine_nat_gateway_v2.nat_1.id}\n      floatingIpId: ${var.publicip_id}\n      subnetId: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n```\n<!--End PulumiCodeChooser -->\n\n### SNAT rule in Direct Connect scenario\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst snat2 = new flexibleengine.NatSnatRuleV2(\"snat2\", {\n    natGatewayId: flexibleengine_nat_gateway_v2.nat_1.id,\n    floatingIpId: _var.publicip_id,\n    sourceType: 1,\n    cidr: \"192.168.10.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nsnat2 = flexibleengine.NatSnatRuleV2(\"snat2\",\n    nat_gateway_id=flexibleengine_nat_gateway_v2[\"nat_1\"][\"id\"],\n    floating_ip_id=var[\"publicip_id\"],\n    source_type=1,\n    cidr=\"192.168.10.0/24\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var snat2 = new Flexibleengine.NatSnatRuleV2(\"snat2\", new()\n    {\n        NatGatewayId = flexibleengine_nat_gateway_v2.Nat_1.Id,\n        FloatingIpId = @var.Publicip_id,\n        SourceType = 1,\n        Cidr = \"192.168.10.0/24\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewNatSnatRuleV2(ctx, \"snat2\", &flexibleengine.NatSnatRuleV2Args{\n\t\t\tNatGatewayId: pulumi.Any(flexibleengine_nat_gateway_v2.Nat_1.Id),\n\t\t\tFloatingIpId: pulumi.Any(_var.Publicip_id),\n\t\t\tSourceType:   pulumi.Float64(1),\n\t\t\tCidr:         pulumi.String(\"192.168.10.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NatSnatRuleV2;\nimport com.pulumi.flexibleengine.NatSnatRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var snat2 = new NatSnatRuleV2(\"snat2\", NatSnatRuleV2Args.builder()\n            .natGatewayId(flexibleengine_nat_gateway_v2.nat_1().id())\n            .floatingIpId(var_.publicip_id())\n            .sourceType(1)\n            .cidr(\"192.168.10.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  snat2:\n    type: flexibleengine:NatSnatRuleV2\n    properties:\n      natGatewayId: ${flexibleengine_nat_gateway_v2.nat_1.id}\n      floatingIpId: ${var.publicip_id}\n      sourceType: 1\n      cidr: 192.168.10.0/24\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSNAT rules can be imported using the following format:\n\n```sh\n$ pulumi import flexibleengine:index/natSnatRuleV2:NatSnatRuleV2 snat_1 9e0713cb-0a2f-484e-8c7d-daecbb61dbe4\n```\n\n",
      "properties": {
        "cidr": {
          "type": "string",
          "description": "Specifies CIDR, which can be in the format of a network segment or a host IP\naddress. This parameter and `subnet_id` are alternative. Changing this creates a new snat rule.\n"
        },
        "floatingIpAddress": {
          "type": "string",
          "description": "The actual floating IP address.\n"
        },
        "floatingIpId": {
          "type": "string",
          "description": "ID of the floating ip this snat rule connets to.\nChanging this creates a new snat rule.\n"
        },
        "natGatewayId": {
          "type": "string",
          "description": "ID of the nat gateway this snat rule belongs to.\nChanging this creates a new snat rule.\n"
        },
        "natSnatRuleV2Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "networkId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 nat client.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new snat rule.\n"
        },
        "sourceType": {
          "type": "number",
          "description": "Specifies the scenario. The valid value is 0 (VPC scenario) and 1\n(Direct Connect scenario). Only `cidr` can be specified over a Direct Connect connection.\nIf no value is entered, the default value 0 (VPC scenario) is used. Changing this creates a new snat rule.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the snat rule.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "ID of the VPC Subnet this snat rule connects to.\nThis parameter and `cidr` are alternative. Changing this creates a new snat rule.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNatSnatRuleV2Timeouts:NatSnatRuleV2Timeouts"
        }
      },
      "type": "object",
      "required": [
        "floatingIpAddress",
        "floatingIpId",
        "natGatewayId",
        "natSnatRuleV2Id",
        "region",
        "status",
        "subnetId"
      ],
      "inputProperties": {
        "cidr": {
          "type": "string",
          "description": "Specifies CIDR, which can be in the format of a network segment or a host IP\naddress. This parameter and `subnet_id` are alternative. Changing this creates a new snat rule.\n"
        },
        "floatingIpId": {
          "type": "string",
          "description": "ID of the floating ip this snat rule connets to.\nChanging this creates a new snat rule.\n"
        },
        "natGatewayId": {
          "type": "string",
          "description": "ID of the nat gateway this snat rule belongs to.\nChanging this creates a new snat rule.\n"
        },
        "natSnatRuleV2Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "networkId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 nat client.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new snat rule.\n"
        },
        "sourceType": {
          "type": "number",
          "description": "Specifies the scenario. The valid value is 0 (VPC scenario) and 1\n(Direct Connect scenario). Only `cidr` can be specified over a Direct Connect connection.\nIf no value is entered, the default value 0 (VPC scenario) is used. Changing this creates a new snat rule.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "ID of the VPC Subnet this snat rule connects to.\nThis parameter and `cidr` are alternative. Changing this creates a new snat rule.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNatSnatRuleV2Timeouts:NatSnatRuleV2Timeouts"
        }
      },
      "requiredInputs": [
        "floatingIpId",
        "natGatewayId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NatSnatRuleV2 resources.\n",
        "properties": {
          "cidr": {
            "type": "string",
            "description": "Specifies CIDR, which can be in the format of a network segment or a host IP\naddress. This parameter and `subnet_id` are alternative. Changing this creates a new snat rule.\n"
          },
          "floatingIpAddress": {
            "type": "string",
            "description": "The actual floating IP address.\n"
          },
          "floatingIpId": {
            "type": "string",
            "description": "ID of the floating ip this snat rule connets to.\nChanging this creates a new snat rule.\n"
          },
          "natGatewayId": {
            "type": "string",
            "description": "ID of the nat gateway this snat rule belongs to.\nChanging this creates a new snat rule.\n"
          },
          "natSnatRuleV2Id": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "networkId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 nat client.\nIf omitted, the `region` argument of the provider is used. Changing this creates a new snat rule.\n"
          },
          "sourceType": {
            "type": "number",
            "description": "Specifies the scenario. The valid value is 0 (VPC scenario) and 1\n(Direct Connect scenario). Only `cidr` can be specified over a Direct Connect connection.\nIf no value is entered, the default value 0 (VPC scenario) is used. Changing this creates a new snat rule.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the snat rule.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "ID of the VPC Subnet this snat rule connects to.\nThis parameter and `cidr` are alternative. Changing this creates a new snat rule.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FNatSnatRuleV2Timeouts:NatSnatRuleV2Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkAcl:NetworkAcl": {
      "description": "Manages a network ACL resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst subnet = flexibleengine.getVpcSubnetV1({\n    name: \"subnet-default\",\n});\nconst rule1 = new flexibleengine.NetworkAclRule(\"rule1\", {\n    description: \"drop TELNET traffic\",\n    action: \"deny\",\n    protocol: \"tcp\",\n    destinationPort: \"23\",\n    enabled: true,\n});\nconst rule2 = new flexibleengine.NetworkAclRule(\"rule2\", {\n    description: \"drop NTP traffic\",\n    action: \"deny\",\n    protocol: \"udp\",\n    destinationPort: \"123\",\n    enabled: false,\n});\nconst fwAcl = new flexibleengine.NetworkAcl(\"fwAcl\", {\n    subnets: [subnet.then(subnet => subnet.id)],\n    inboundRules: [\n        rule1.networkAclRuleId,\n        rule2.networkAclRuleId,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nsubnet = flexibleengine.get_vpc_subnet_v1(name=\"subnet-default\")\nrule1 = flexibleengine.NetworkAclRule(\"rule1\",\n    description=\"drop TELNET traffic\",\n    action=\"deny\",\n    protocol=\"tcp\",\n    destination_port=\"23\",\n    enabled=True)\nrule2 = flexibleengine.NetworkAclRule(\"rule2\",\n    description=\"drop NTP traffic\",\n    action=\"deny\",\n    protocol=\"udp\",\n    destination_port=\"123\",\n    enabled=False)\nfw_acl = flexibleengine.NetworkAcl(\"fwAcl\",\n    subnets=[subnet.id],\n    inbound_rules=[\n        rule1.network_acl_rule_id,\n        rule2.network_acl_rule_id,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var subnet = Flexibleengine.GetVpcSubnetV1.Invoke(new()\n    {\n        Name = \"subnet-default\",\n    });\n\n    var rule1 = new Flexibleengine.NetworkAclRule(\"rule1\", new()\n    {\n        Description = \"drop TELNET traffic\",\n        Action = \"deny\",\n        Protocol = \"tcp\",\n        DestinationPort = \"23\",\n        Enabled = true,\n    });\n\n    var rule2 = new Flexibleengine.NetworkAclRule(\"rule2\", new()\n    {\n        Description = \"drop NTP traffic\",\n        Action = \"deny\",\n        Protocol = \"udp\",\n        DestinationPort = \"123\",\n        Enabled = false,\n    });\n\n    var fwAcl = new Flexibleengine.NetworkAcl(\"fwAcl\", new()\n    {\n        Subnets = new[]\n        {\n            subnet.Apply(getVpcSubnetV1Result => getVpcSubnetV1Result.Id),\n        },\n        InboundRules = new[]\n        {\n            rule1.NetworkAclRuleId,\n            rule2.NetworkAclRuleId,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsubnet, err := flexibleengine.LookupVpcSubnetV1(ctx, &flexibleengine.LookupVpcSubnetV1Args{\n\t\t\tName: pulumi.StringRef(\"subnet-default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule1, err := flexibleengine.NewNetworkAclRule(ctx, \"rule1\", &flexibleengine.NetworkAclRuleArgs{\n\t\t\tDescription:     pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction:          pulumi.String(\"deny\"),\n\t\t\tProtocol:        pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := flexibleengine.NewNetworkAclRule(ctx, \"rule2\", &flexibleengine.NetworkAclRuleArgs{\n\t\t\tDescription:     pulumi.String(\"drop NTP traffic\"),\n\t\t\tAction:          pulumi.String(\"deny\"),\n\t\t\tProtocol:        pulumi.String(\"udp\"),\n\t\t\tDestinationPort: pulumi.String(\"123\"),\n\t\t\tEnabled:         pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewNetworkAcl(ctx, \"fwAcl\", &flexibleengine.NetworkAclArgs{\n\t\t\tSubnets: pulumi.StringArray{\n\t\t\t\tpulumi.String(subnet.Id),\n\t\t\t},\n\t\t\tInboundRules: pulumi.StringArray{\n\t\t\t\trule1.NetworkAclRuleId,\n\t\t\t\trule2.NetworkAclRuleId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkAclRule;\nimport com.pulumi.flexibleengine.NetworkAclRuleArgs;\nimport com.pulumi.flexibleengine.NetworkAcl;\nimport com.pulumi.flexibleengine.NetworkAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var subnet = FlexibleengineFunctions.getVpcSubnetV1(GetVpcSubnetV1Args.builder()\n            .name(\"subnet-default\")\n            .build());\n\n        var rule1 = new NetworkAclRule(\"rule1\", NetworkAclRuleArgs.builder()\n            .description(\"drop TELNET traffic\")\n            .action(\"deny\")\n            .protocol(\"tcp\")\n            .destinationPort(\"23\")\n            .enabled(\"true\")\n            .build());\n\n        var rule2 = new NetworkAclRule(\"rule2\", NetworkAclRuleArgs.builder()\n            .description(\"drop NTP traffic\")\n            .action(\"deny\")\n            .protocol(\"udp\")\n            .destinationPort(\"123\")\n            .enabled(\"false\")\n            .build());\n\n        var fwAcl = new NetworkAcl(\"fwAcl\", NetworkAclArgs.builder()\n            .subnets(subnet.applyValue(getVpcSubnetV1Result -> getVpcSubnetV1Result.id()))\n            .inboundRules(            \n                rule1.networkAclRuleId(),\n                rule2.networkAclRuleId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule1:\n    type: flexibleengine:NetworkAclRule\n    properties:\n      description: drop TELNET traffic\n      action: deny\n      protocol: tcp\n      destinationPort: '23'\n      enabled: 'true'\n  rule2:\n    type: flexibleengine:NetworkAclRule\n    properties:\n      description: drop NTP traffic\n      action: deny\n      protocol: udp\n      destinationPort: '123'\n      enabled: 'false'\n  fwAcl:\n    type: flexibleengine:NetworkAcl\n    properties:\n      subnets:\n        - ${subnet.id}\n      inboundRules:\n        - ${rule1.networkAclRuleId}\n        - ${rule2.networkAclRuleId}\nvariables:\n  subnet:\n    fn::invoke:\n      function: flexibleengine:getVpcSubnetV1\n      arguments:\n        name: subnet-default\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the supplementary information about the network ACL.\nThis parameter can contain a maximum of 255 characters and cannot contain angle brackets (< or >).\n"
        },
        "inboundPolicyId": {
          "type": "string",
          "description": "The ID of the ingress firewall policy for the network ACL.\n"
        },
        "inboundRules": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of the IDs of ingress rules associated with the network ACL.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the network ACL name. This parameter can contain a maximum of 64 characters,\nwhich may consist of letters, digits, underscores (_), and hyphens (-).\n"
        },
        "networkAclId": {
          "type": "string",
          "description": "The ID of the network ACL.\n"
        },
        "outboundPolicyId": {
          "type": "string",
          "description": "The ID of the egress firewall policy for the network ACL.\n"
        },
        "outboundRules": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of the IDs of egress rules associated with the network ACL.\n"
        },
        "ports": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of the port IDs of the subnet gateway.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the network ACL.\n"
        },
        "subnets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of the IDs of networks associated with the network ACL.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkAclTimeouts:NetworkAclTimeouts"
        }
      },
      "type": "object",
      "required": [
        "inboundPolicyId",
        "name",
        "networkAclId",
        "outboundPolicyId",
        "ports",
        "status"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies the supplementary information about the network ACL.\nThis parameter can contain a maximum of 255 characters and cannot contain angle brackets (< or >).\n"
        },
        "inboundRules": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of the IDs of ingress rules associated with the network ACL.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the network ACL name. This parameter can contain a maximum of 64 characters,\nwhich may consist of letters, digits, underscores (_), and hyphens (-).\n"
        },
        "networkAclId": {
          "type": "string",
          "description": "The ID of the network ACL.\n"
        },
        "outboundRules": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of the IDs of egress rules associated with the network ACL.\n"
        },
        "subnets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of the IDs of networks associated with the network ACL.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkAclTimeouts:NetworkAclTimeouts"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkAcl resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies the supplementary information about the network ACL.\nThis parameter can contain a maximum of 255 characters and cannot contain angle brackets (< or >).\n"
          },
          "inboundPolicyId": {
            "type": "string",
            "description": "The ID of the ingress firewall policy for the network ACL.\n"
          },
          "inboundRules": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of the IDs of ingress rules associated with the network ACL.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the network ACL name. This parameter can contain a maximum of 64 characters,\nwhich may consist of letters, digits, underscores (_), and hyphens (-).\n"
          },
          "networkAclId": {
            "type": "string",
            "description": "The ID of the network ACL.\n"
          },
          "outboundPolicyId": {
            "type": "string",
            "description": "The ID of the egress firewall policy for the network ACL.\n"
          },
          "outboundRules": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of the IDs of egress rules associated with the network ACL.\n"
          },
          "ports": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of the port IDs of the subnet gateway.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the network ACL.\n"
          },
          "subnets": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of the IDs of networks associated with the network ACL.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FNetworkAclTimeouts:NetworkAclTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkAclRule:NetworkAclRule": {
      "description": "Manages a network ACL rule resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst rule1 = new flexibleengine.NetworkAclRule(\"rule1\", {\n    action: \"deny\",\n    destinationIpAddress: \"4.3.2.0/24\",\n    destinationPort: \"555\",\n    protocol: \"udp\",\n    sourceIpAddress: \"1.2.3.4\",\n    sourcePort: \"444\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nrule1 = flexibleengine.NetworkAclRule(\"rule1\",\n    action=\"deny\",\n    destination_ip_address=\"4.3.2.0/24\",\n    destination_port=\"555\",\n    protocol=\"udp\",\n    source_ip_address=\"1.2.3.4\",\n    source_port=\"444\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule1 = new Flexibleengine.NetworkAclRule(\"rule1\", new()\n    {\n        Action = \"deny\",\n        DestinationIpAddress = \"4.3.2.0/24\",\n        DestinationPort = \"555\",\n        Protocol = \"udp\",\n        SourceIpAddress = \"1.2.3.4\",\n        SourcePort = \"444\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewNetworkAclRule(ctx, \"rule1\", &flexibleengine.NetworkAclRuleArgs{\n\t\t\tAction:               pulumi.String(\"deny\"),\n\t\t\tDestinationIpAddress: pulumi.String(\"4.3.2.0/24\"),\n\t\t\tDestinationPort:      pulumi.String(\"555\"),\n\t\t\tProtocol:             pulumi.String(\"udp\"),\n\t\t\tSourceIpAddress:      pulumi.String(\"1.2.3.4\"),\n\t\t\tSourcePort:           pulumi.String(\"444\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NetworkAclRule;\nimport com.pulumi.flexibleengine.NetworkAclRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rule1 = new NetworkAclRule(\"rule1\", NetworkAclRuleArgs.builder()\n            .action(\"deny\")\n            .destinationIpAddress(\"4.3.2.0/24\")\n            .destinationPort(\"555\")\n            .protocol(\"udp\")\n            .sourceIpAddress(\"1.2.3.4\")\n            .sourcePort(\"444\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule1:\n    type: flexibleengine:NetworkAclRule\n    properties:\n      action: deny\n      destinationIpAddress: 4.3.2.0/24\n      destinationPort: '555'\n      protocol: udp\n      sourceIpAddress: 1.2.3.4\n      sourcePort: '444'\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nnetwork ACL rules can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/networkAclRule:NetworkAclRule rule_1 89a84b28-4cc2-4859-9885-c67e802a46a3\n```\n\n",
      "properties": {
        "action": {
          "type": "string",
          "description": "Specifies the action in the network ACL rule. Currently, the value can be *allow* or *deny*.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description for the network ACL rule.\n"
        },
        "destinationIpAddress": {
          "type": "string",
          "description": "Specifies the destination IP address to which the traffic is allowed.\nThe default value is *0.0.0.0/0*. For example: xxx.xxx.xxx.xxx (IP address), xxx.xxx.xxx.0/24 (CIDR block).\n"
        },
        "destinationPort": {
          "type": "string",
          "description": "Specifies the destination port number or port number range.\nThe value ranges from 1 to 65535. For a port number range, enter two port numbers connected by a hyphen (-).\nFor example, 1-100.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Enabled status for the network ACL rule. Defaults to true.\n"
        },
        "ipVersion": {
          "type": "number",
          "description": "Specifies the IP version, either 4 (default) or 6. This parameter is\navailable after the IPv6 function is enabled.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies a unique name for the network ACL rule.\n"
        },
        "networkAclRuleId": {
          "type": "string",
          "description": "The ID of the acl rule.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol supported by the network ACL rule.\nValid values are: *tcp*, *udp*, *icmp* and *any*.\n"
        },
        "sourceIpAddress": {
          "type": "string",
          "description": "Specifies the source IP address that the traffic is allowed from.\nThe default value is *0.0.0.0/0*. For example: xxx.xxx.xxx.xxx (IP address), xxx.xxx.xxx.0/24 (CIDR block).\n"
        },
        "sourcePort": {
          "type": "string",
          "description": "Specifies the source port number or port number range. The value ranges from 1 to\n65535. For a port number range, enter two port numbers connected by a hyphen (-). For example, 1-100.\n"
        }
      },
      "type": "object",
      "required": [
        "action",
        "name",
        "networkAclRuleId",
        "protocol"
      ],
      "inputProperties": {
        "action": {
          "type": "string",
          "description": "Specifies the action in the network ACL rule. Currently, the value can be *allow* or *deny*.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description for the network ACL rule.\n"
        },
        "destinationIpAddress": {
          "type": "string",
          "description": "Specifies the destination IP address to which the traffic is allowed.\nThe default value is *0.0.0.0/0*. For example: xxx.xxx.xxx.xxx (IP address), xxx.xxx.xxx.0/24 (CIDR block).\n"
        },
        "destinationPort": {
          "type": "string",
          "description": "Specifies the destination port number or port number range.\nThe value ranges from 1 to 65535. For a port number range, enter two port numbers connected by a hyphen (-).\nFor example, 1-100.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Enabled status for the network ACL rule. Defaults to true.\n"
        },
        "ipVersion": {
          "type": "number",
          "description": "Specifies the IP version, either 4 (default) or 6. This parameter is\navailable after the IPv6 function is enabled.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies a unique name for the network ACL rule.\n"
        },
        "networkAclRuleId": {
          "type": "string",
          "description": "The ID of the acl rule.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol supported by the network ACL rule.\nValid values are: *tcp*, *udp*, *icmp* and *any*.\n"
        },
        "sourceIpAddress": {
          "type": "string",
          "description": "Specifies the source IP address that the traffic is allowed from.\nThe default value is *0.0.0.0/0*. For example: xxx.xxx.xxx.xxx (IP address), xxx.xxx.xxx.0/24 (CIDR block).\n"
        },
        "sourcePort": {
          "type": "string",
          "description": "Specifies the source port number or port number range. The value ranges from 1 to\n65535. For a port number range, enter two port numbers connected by a hyphen (-). For example, 1-100.\n"
        }
      },
      "requiredInputs": [
        "action",
        "protocol"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkAclRule resources.\n",
        "properties": {
          "action": {
            "type": "string",
            "description": "Specifies the action in the network ACL rule. Currently, the value can be *allow* or *deny*.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description for the network ACL rule.\n"
          },
          "destinationIpAddress": {
            "type": "string",
            "description": "Specifies the destination IP address to which the traffic is allowed.\nThe default value is *0.0.0.0/0*. For example: xxx.xxx.xxx.xxx (IP address), xxx.xxx.xxx.0/24 (CIDR block).\n"
          },
          "destinationPort": {
            "type": "string",
            "description": "Specifies the destination port number or port number range.\nThe value ranges from 1 to 65535. For a port number range, enter two port numbers connected by a hyphen (-).\nFor example, 1-100.\n"
          },
          "enabled": {
            "type": "boolean",
            "description": "Enabled status for the network ACL rule. Defaults to true.\n"
          },
          "ipVersion": {
            "type": "number",
            "description": "Specifies the IP version, either 4 (default) or 6. This parameter is\navailable after the IPv6 function is enabled.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies a unique name for the network ACL rule.\n"
          },
          "networkAclRuleId": {
            "type": "string",
            "description": "The ID of the acl rule.\n"
          },
          "protocol": {
            "type": "string",
            "description": "Specifies the protocol supported by the network ACL rule.\nValid values are: *tcp*, *udp*, *icmp* and *any*.\n"
          },
          "sourceIpAddress": {
            "type": "string",
            "description": "Specifies the source IP address that the traffic is allowed from.\nThe default value is *0.0.0.0/0*. For example: xxx.xxx.xxx.xxx (IP address), xxx.xxx.xxx.0/24 (CIDR block).\n"
          },
          "sourcePort": {
            "type": "string",
            "description": "Specifies the source port number or port number range. The value ranges from 1 to\n65535. For a port number range, enter two port numbers connected by a hyphen (-). For example, 1-100.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkingFloatingipAssociateV2:NetworkingFloatingipAssociateV2": {
      "description": "!> **Warning:** It will be deprecated, using `flexibleengine.VpcEipAssociate` instead.\n\nAssociates a floating IP to a port. This is useful for situations where you have\na pre-allocated floating IP or are unable to use the `flexibleengine.VpcEip`\nor `flexibleengine.NetworkingFloatingipV2` resource to create a floating IP.\n\nYou can also use `publicip.0.port_id` of `flexibleengine.VpcEip` resource to associate a port.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst port1 = new flexibleengine.NetworkingPortV2(\"port1\", {networkId: \"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\"});\nconst fip1 = new flexibleengine.NetworkingFloatingipAssociateV2(\"fip1\", {\n    floatingIp: \"1.2.3.4\",\n    portId: port1.networkingPortV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nport1 = flexibleengine.NetworkingPortV2(\"port1\", network_id=\"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\")\nfip1 = flexibleengine.NetworkingFloatingipAssociateV2(\"fip1\",\n    floating_ip=\"1.2.3.4\",\n    port_id=port1.networking_port_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var port1 = new Flexibleengine.NetworkingPortV2(\"port1\", new()\n    {\n        NetworkId = \"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\",\n    });\n\n    var fip1 = new Flexibleengine.NetworkingFloatingipAssociateV2(\"fip1\", new()\n    {\n        FloatingIp = \"1.2.3.4\",\n        PortId = port1.NetworkingPortV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tport1, err := flexibleengine.NewNetworkingPortV2(ctx, \"port1\", &flexibleengine.NetworkingPortV2Args{\n\t\t\tNetworkId: pulumi.String(\"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewNetworkingFloatingipAssociateV2(ctx, \"fip1\", &flexibleengine.NetworkingFloatingipAssociateV2Args{\n\t\t\tFloatingIp: pulumi.String(\"1.2.3.4\"),\n\t\t\tPortId:     port1.NetworkingPortV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NetworkingPortV2;\nimport com.pulumi.flexibleengine.NetworkingPortV2Args;\nimport com.pulumi.flexibleengine.NetworkingFloatingipAssociateV2;\nimport com.pulumi.flexibleengine.NetworkingFloatingipAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var port1 = new NetworkingPortV2(\"port1\", NetworkingPortV2Args.builder()\n            .networkId(\"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\")\n            .build());\n\n        var fip1 = new NetworkingFloatingipAssociateV2(\"fip1\", NetworkingFloatingipAssociateV2Args.builder()\n            .floatingIp(\"1.2.3.4\")\n            .portId(port1.networkingPortV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  port1:\n    type: flexibleengine:NetworkingPortV2\n    properties:\n      networkId: a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\n  fip1:\n    type: flexibleengine:NetworkingFloatingipAssociateV2\n    properties:\n      floatingIp: 1.2.3.4\n      portId: ${port1.networkingPortV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFloating IP associations can be imported using the `id` of the floating IP, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/networkingFloatingipAssociateV2:NetworkingFloatingipAssociateV2 fip 2c7f39f3-702b-48d1-940c-b50384177ee1\n```\n\n",
      "properties": {
        "floatingIp": {
          "type": "string",
          "description": "IP Address of an existing floating IP.\n"
        },
        "networkingFloatingipAssociateV2Id": {
          "type": "string"
        },
        "portId": {
          "type": "string",
          "description": "ID of an existing port with at least one IP address to\nassociate with this floating IP.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create a floating IP that can be used with\nanother networking resource, such as a load balancer. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nfloating IP (which may or may not have a different address).\n"
        }
      },
      "type": "object",
      "required": [
        "floatingIp",
        "networkingFloatingipAssociateV2Id",
        "portId",
        "region"
      ],
      "inputProperties": {
        "floatingIp": {
          "type": "string",
          "description": "IP Address of an existing floating IP.\n"
        },
        "networkingFloatingipAssociateV2Id": {
          "type": "string"
        },
        "portId": {
          "type": "string",
          "description": "ID of an existing port with at least one IP address to\nassociate with this floating IP.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create a floating IP that can be used with\nanother networking resource, such as a load balancer. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nfloating IP (which may or may not have a different address).\n"
        }
      },
      "requiredInputs": [
        "floatingIp",
        "portId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkingFloatingipAssociateV2 resources.\n",
        "properties": {
          "floatingIp": {
            "type": "string",
            "description": "IP Address of an existing floating IP.\n"
          },
          "networkingFloatingipAssociateV2Id": {
            "type": "string"
          },
          "portId": {
            "type": "string",
            "description": "ID of an existing port with at least one IP address to\nassociate with this floating IP.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create a floating IP that can be used with\nanother networking resource, such as a load balancer. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nfloating IP (which may or may not have a different address).\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkingFloatingipV2:NetworkingFloatingipV2": {
      "description": "Manages a V2 floating IP resource within FlexibleEngine.\n\n!> **Warning:** It will be deprecated, using `flexibleengine.VpcEip` instead.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst floatip1 = new flexibleengine.NetworkingFloatingipV2(\"floatip1\", {});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nfloatip1 = flexibleengine.NetworkingFloatingipV2(\"floatip1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var floatip1 = new Flexibleengine.NetworkingFloatingipV2(\"floatip1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewNetworkingFloatingipV2(ctx, \"floatip1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NetworkingFloatingipV2;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var floatip1 = new NetworkingFloatingipV2(\"floatip1\");\n\n    }\n}\n```\n```yaml\nresources:\n  floatip1:\n    type: flexibleengine:NetworkingFloatingipV2\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFloating IPs can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/networkingFloatingipV2:NetworkingFloatingipV2 floatip_1 2c7f39f3-702b-48d1-940c-b50384177ee1\n```\n\n",
      "properties": {
        "address": {
          "type": "string",
          "description": "The actual floating IP address itself.\n"
        },
        "fixedIp": {
          "type": "string",
          "description": "Fixed IP of the port to associate with this floating IP. Required if\nthe port has multiple fixed IPs.\n"
        },
        "networkingFloatingipV2Id": {
          "type": "string"
        },
        "pool": {
          "type": "string",
          "description": "The name of the pool from which to obtain the floating\nIP. Default value is admin_external_net. Changing this creates a new floating IP.\n"
        },
        "portId": {
          "type": "string",
          "description": "ID of an existing port with at least one IP address to\nassociate with this floating IP.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create a floating IP that can be used with\nanother networking resource, such as a load balancer. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nfloating IP (which may or may not have a different address).\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The target tenant ID in which to allocate the floating\nIP, if you specify this together with a port_id, make sure the target port\nbelongs to the same tenant. Changing this creates a new floating IP (which\nmay or may not have a different address)\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingFloatingipV2Timeouts:NetworkingFloatingipV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\n"
        }
      },
      "type": "object",
      "required": [
        "address",
        "fixedIp",
        "networkingFloatingipV2Id",
        "portId",
        "region",
        "tenantId"
      ],
      "inputProperties": {
        "fixedIp": {
          "type": "string",
          "description": "Fixed IP of the port to associate with this floating IP. Required if\nthe port has multiple fixed IPs.\n"
        },
        "networkingFloatingipV2Id": {
          "type": "string"
        },
        "pool": {
          "type": "string",
          "description": "The name of the pool from which to obtain the floating\nIP. Default value is admin_external_net. Changing this creates a new floating IP.\n"
        },
        "portId": {
          "type": "string",
          "description": "ID of an existing port with at least one IP address to\nassociate with this floating IP.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create a floating IP that can be used with\nanother networking resource, such as a load balancer. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nfloating IP (which may or may not have a different address).\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The target tenant ID in which to allocate the floating\nIP, if you specify this together with a port_id, make sure the target port\nbelongs to the same tenant. Changing this creates a new floating IP (which\nmay or may not have a different address)\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingFloatingipV2Timeouts:NetworkingFloatingipV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkingFloatingipV2 resources.\n",
        "properties": {
          "address": {
            "type": "string",
            "description": "The actual floating IP address itself.\n"
          },
          "fixedIp": {
            "type": "string",
            "description": "Fixed IP of the port to associate with this floating IP. Required if\nthe port has multiple fixed IPs.\n"
          },
          "networkingFloatingipV2Id": {
            "type": "string"
          },
          "pool": {
            "type": "string",
            "description": "The name of the pool from which to obtain the floating\nIP. Default value is admin_external_net. Changing this creates a new floating IP.\n"
          },
          "portId": {
            "type": "string",
            "description": "ID of an existing port with at least one IP address to\nassociate with this floating IP.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create a floating IP that can be used with\nanother networking resource, such as a load balancer. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nfloating IP (which may or may not have a different address).\n"
          },
          "tenantId": {
            "type": "string",
            "description": "The target tenant ID in which to allocate the floating\nIP, if you specify this together with a port_id, make sure the target port\nbelongs to the same tenant. Changing this creates a new floating IP (which\nmay or may not have a different address)\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingFloatingipV2Timeouts:NetworkingFloatingipV2Timeouts"
          },
          "valueSpecs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of additional options.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkingNetworkV2:NetworkingNetworkV2": {
      "description": "Manages a V2 Neutron network resource within FlexibleEngine.\n\n!> **Warning:** It has been deprecated, use `flexibleengine.VpcSubnetV1` instead.\n\n## Import\n\nNetworks can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/networkingNetworkV2:NetworkingNetworkV2 network_1 d90ce693-5ccf-4136-a0ed-152ce412b6b9\n```\n\n",
      "properties": {
        "adminStateUp": {
          "type": "string",
          "description": "The administrative state of the network.\nAcceptable values are \"true\" and \"false\". Changing this value updates the\nstate of the existing network.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the network. Changing this updates the name of\nthe existing network.\n"
        },
        "networkingNetworkV2Id": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create a Neutron network. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nnetwork.\n"
        },
        "segments": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingNetworkV2Segment:NetworkingNetworkV2Segment"
          },
          "description": "An array of one or more provider segment objects.\n"
        },
        "shared": {
          "type": "string",
          "description": "Specifies whether the network resource can be accessed\nby any tenant or not. Changing this updates the sharing capabalities of the\nexisting network.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The owner of the network. Required if admin wants to\ncreate a network for another tenant. Changing this creates a new network.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingNetworkV2Timeouts:NetworkingNetworkV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\n"
        }
      },
      "type": "object",
      "required": [
        "adminStateUp",
        "name",
        "networkingNetworkV2Id",
        "region",
        "shared",
        "tenantId"
      ],
      "inputProperties": {
        "adminStateUp": {
          "type": "string",
          "description": "The administrative state of the network.\nAcceptable values are \"true\" and \"false\". Changing this value updates the\nstate of the existing network.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the network. Changing this updates the name of\nthe existing network.\n"
        },
        "networkingNetworkV2Id": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create a Neutron network. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nnetwork.\n"
        },
        "segments": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingNetworkV2Segment:NetworkingNetworkV2Segment"
          },
          "description": "An array of one or more provider segment objects.\n"
        },
        "shared": {
          "type": "string",
          "description": "Specifies whether the network resource can be accessed\nby any tenant or not. Changing this updates the sharing capabalities of the\nexisting network.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The owner of the network. Required if admin wants to\ncreate a network for another tenant. Changing this creates a new network.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingNetworkV2Timeouts:NetworkingNetworkV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkingNetworkV2 resources.\n",
        "properties": {
          "adminStateUp": {
            "type": "string",
            "description": "The administrative state of the network.\nAcceptable values are \"true\" and \"false\". Changing this value updates the\nstate of the existing network.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the network. Changing this updates the name of\nthe existing network.\n"
          },
          "networkingNetworkV2Id": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create a Neutron network. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nnetwork.\n"
          },
          "segments": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FNetworkingNetworkV2Segment:NetworkingNetworkV2Segment"
            },
            "description": "An array of one or more provider segment objects.\n"
          },
          "shared": {
            "type": "string",
            "description": "Specifies whether the network resource can be accessed\nby any tenant or not. Changing this updates the sharing capabalities of the\nexisting network.\n"
          },
          "tenantId": {
            "type": "string",
            "description": "The owner of the network. Required if admin wants to\ncreate a network for another tenant. Changing this creates a new network.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingNetworkV2Timeouts:NetworkingNetworkV2Timeouts"
          },
          "valueSpecs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of additional options.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkingPortV2:NetworkingPortV2": {
      "description": "Manages a V2 port resource within FlexibleEngine.\n\n## Example Usage\n\n### Basic Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst port1 = new flexibleengine.NetworkingPortV2(\"port1\", {\n    networkId: exampleSubnet.vpcSubnetV1Id,\n    adminStateUp: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nport1 = flexibleengine.NetworkingPortV2(\"port1\",\n    network_id=example_subnet.vpc_subnet_v1_id,\n    admin_state_up=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var port1 = new Flexibleengine.NetworkingPortV2(\"port1\", new()\n    {\n        NetworkId = exampleSubnet.VpcSubnetV1Id,\n        AdminStateUp = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewNetworkingPortV2(ctx, \"port1\", &flexibleengine.NetworkingPortV2Args{\n\t\t\tNetworkId:    exampleSubnet.VpcSubnetV1Id,\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingPortV2;\nimport com.pulumi.flexibleengine.NetworkingPortV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var port1 = new NetworkingPortV2(\"port1\", NetworkingPortV2Args.builder()\n            .networkId(exampleSubnet.vpcSubnetV1Id())\n            .adminStateUp(\"true\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  port1:\n    type: flexibleengine:NetworkingPortV2\n    properties:\n      networkId: ${exampleSubnet.vpcSubnetV1Id}\n      adminStateUp: 'true'\n```\n<!--End PulumiCodeChooser -->\n\n### Port With allowed_address_pairs\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst port1 = new flexibleengine.NetworkingPortV2(\"port1\", {\n    networkId: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    adminStateUp: true,\n    allowedAddressPairs: [{\n        ipAddress: \"192.168.0.0/24\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nport1 = flexibleengine.NetworkingPortV2(\"port1\",\n    network_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    admin_state_up=True,\n    allowed_address_pairs=[{\n        \"ip_address\": \"192.168.0.0/24\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var port1 = new Flexibleengine.NetworkingPortV2(\"port1\", new()\n    {\n        NetworkId = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n        AdminStateUp = true,\n        AllowedAddressPairs = new[]\n        {\n            new Flexibleengine.Inputs.NetworkingPortV2AllowedAddressPairArgs\n            {\n                IpAddress = \"192.168.0.0/24\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewNetworkingPortV2(ctx, \"port1\", &flexibleengine.NetworkingPortV2Args{\n\t\t\tNetworkId:    pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tAllowedAddressPairs: flexibleengine.NetworkingPortV2AllowedAddressPairArray{\n\t\t\t\t&flexibleengine.NetworkingPortV2AllowedAddressPairArgs{\n\t\t\t\t\tIpAddress: pulumi.String(\"192.168.0.0/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NetworkingPortV2;\nimport com.pulumi.flexibleengine.NetworkingPortV2Args;\nimport com.pulumi.flexibleengine.inputs.NetworkingPortV2AllowedAddressPairArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var port1 = new NetworkingPortV2(\"port1\", NetworkingPortV2Args.builder()\n            .networkId(flexibleengine_vpc_subnet_v1.example_subnet().id())\n            .adminStateUp(\"true\")\n            .allowedAddressPairs(NetworkingPortV2AllowedAddressPairArgs.builder()\n                .ipAddress(\"192.168.0.0/24\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  port1:\n    type: flexibleengine:NetworkingPortV2\n    properties:\n      networkId: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n      adminStateUp: 'true'\n      allowedAddressPairs:\n        - ipAddress: 192.168.0.0/24\n```\n<!--End PulumiCodeChooser -->\n\n## Notes\n\n### Ports and Instances\n\nThere are some notes to consider when connecting Instances to networks using\nPorts. Please see the `flexibleengine.ComputeInstanceV2` documentation for further\ndocumentation.\n\n## Import\n\nPorts can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/networkingPortV2:NetworkingPortV2 port_1 eae26a3e-1c33-4cc1-9c31-0cd729c438a1\n```\n\n",
      "properties": {
        "adminStateUp": {
          "type": "boolean",
          "description": "Administrative up/down status for the port\n(must be \"true\" or \"false\" if provided). Changing this updates the\n`admin_state_up` of an existing port.\n"
        },
        "allFixedIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The collection of Fixed IP addresses on the port in the\norder returned by the Network v2 API.\n"
        },
        "allowedAddressPairs": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingPortV2AllowedAddressPair:NetworkingPortV2AllowedAddressPair"
          },
          "description": "An array of IP/MAC Address pairs of additional IP\naddresses that can be active on this port. The object structure is described below.\n"
        },
        "deviceId": {
          "type": "string",
          "description": "The ID of the device attached to the port. Changing this\ncreates a new port.\n"
        },
        "deviceOwner": {
          "type": "string",
          "description": "The device owner of the Port. Changing this creates\na new port.\n"
        },
        "fixedIps": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingPortV2FixedIp:NetworkingPortV2FixedIp"
          },
          "description": "An array of desired IPs for this port. The object\nstructure is described below.\n"
        },
        "macAddress": {
          "type": "string",
          "description": "The additional MAC address.\n",
          "deprecationMessage": "Deprecated"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the port. Changing this\nupdates the `name` of an existing port.\n"
        },
        "networkId": {
          "type": "string",
          "description": "The ID of the VPC Subnet to attach the port to. Changing\nthis creates a new port.\n"
        },
        "networkingPortV2Id": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "The region in which to allocate the port. If omitted, the\n`region` argument of the provider is used. Changing this creates a new port.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of security group IDs to apply to the\nport. The security groups must be specified by ID and not name (as opposed\nto how they are configured with the Compute Instance).\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The owner of the Port. Required if admin wants\nto create a port for another tenant. Changing this creates a new port.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingPortV2Timeouts:NetworkingPortV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\n\n<a name=\"port_fixed_IP_object\"></a>\nThe `fixed_ip` block supports:\n"
        }
      },
      "type": "object",
      "required": [
        "adminStateUp",
        "allFixedIps",
        "deviceId",
        "deviceOwner",
        "macAddress",
        "name",
        "networkId",
        "networkingPortV2Id",
        "region",
        "securityGroupIds",
        "tenantId"
      ],
      "inputProperties": {
        "adminStateUp": {
          "type": "boolean",
          "description": "Administrative up/down status for the port\n(must be \"true\" or \"false\" if provided). Changing this updates the\n`admin_state_up` of an existing port.\n"
        },
        "allowedAddressPairs": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingPortV2AllowedAddressPair:NetworkingPortV2AllowedAddressPair"
          },
          "description": "An array of IP/MAC Address pairs of additional IP\naddresses that can be active on this port. The object structure is described below.\n"
        },
        "deviceId": {
          "type": "string",
          "description": "The ID of the device attached to the port. Changing this\ncreates a new port.\n"
        },
        "deviceOwner": {
          "type": "string",
          "description": "The device owner of the Port. Changing this creates\na new port.\n"
        },
        "fixedIps": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingPortV2FixedIp:NetworkingPortV2FixedIp"
          },
          "description": "An array of desired IPs for this port. The object\nstructure is described below.\n"
        },
        "macAddress": {
          "type": "string",
          "description": "The additional MAC address.\n",
          "deprecationMessage": "Deprecated"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the port. Changing this\nupdates the `name` of an existing port.\n"
        },
        "networkId": {
          "type": "string",
          "description": "The ID of the VPC Subnet to attach the port to. Changing\nthis creates a new port.\n"
        },
        "networkingPortV2Id": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "The region in which to allocate the port. If omitted, the\n`region` argument of the provider is used. Changing this creates a new port.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of security group IDs to apply to the\nport. The security groups must be specified by ID and not name (as opposed\nto how they are configured with the Compute Instance).\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The owner of the Port. Required if admin wants\nto create a port for another tenant. Changing this creates a new port.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingPortV2Timeouts:NetworkingPortV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\n\n<a name=\"port_fixed_IP_object\"></a>\nThe `fixed_ip` block supports:\n"
        }
      },
      "requiredInputs": [
        "networkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkingPortV2 resources.\n",
        "properties": {
          "adminStateUp": {
            "type": "boolean",
            "description": "Administrative up/down status for the port\n(must be \"true\" or \"false\" if provided). Changing this updates the\n`admin_state_up` of an existing port.\n"
          },
          "allFixedIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The collection of Fixed IP addresses on the port in the\norder returned by the Network v2 API.\n"
          },
          "allowedAddressPairs": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FNetworkingPortV2AllowedAddressPair:NetworkingPortV2AllowedAddressPair"
            },
            "description": "An array of IP/MAC Address pairs of additional IP\naddresses that can be active on this port. The object structure is described below.\n"
          },
          "deviceId": {
            "type": "string",
            "description": "The ID of the device attached to the port. Changing this\ncreates a new port.\n"
          },
          "deviceOwner": {
            "type": "string",
            "description": "The device owner of the Port. Changing this creates\na new port.\n"
          },
          "fixedIps": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FNetworkingPortV2FixedIp:NetworkingPortV2FixedIp"
            },
            "description": "An array of desired IPs for this port. The object\nstructure is described below.\n"
          },
          "macAddress": {
            "type": "string",
            "description": "The additional MAC address.\n",
            "deprecationMessage": "Deprecated"
          },
          "name": {
            "type": "string",
            "description": "A unique name for the port. Changing this\nupdates the `name` of an existing port.\n"
          },
          "networkId": {
            "type": "string",
            "description": "The ID of the VPC Subnet to attach the port to. Changing\nthis creates a new port.\n"
          },
          "networkingPortV2Id": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "The region in which to allocate the port. If omitted, the\n`region` argument of the provider is used. Changing this creates a new port.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of security group IDs to apply to the\nport. The security groups must be specified by ID and not name (as opposed\nto how they are configured with the Compute Instance).\n"
          },
          "tenantId": {
            "type": "string",
            "description": "The owner of the Port. Required if admin wants\nto create a port for another tenant. Changing this creates a new port.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingPortV2Timeouts:NetworkingPortV2Timeouts"
          },
          "valueSpecs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of additional options.\n\n<a name=\"port_fixed_IP_object\"></a>\nThe `fixed_ip` block supports:\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkingRouterInterfaceV2:NetworkingRouterInterfaceV2": {
      "description": "Manages a V2 router interface resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst network1 = new flexibleengine.NetworkingNetworkV2(\"network1\", {adminStateUp: \"true\"});\nconst subnet1 = new flexibleengine.NetworkingSubnetV2(\"subnet1\", {\n    networkId: network1.networkingNetworkV2Id,\n    cidr: \"192.168.199.0/24\",\n    ipVersion: 4,\n});\nconst router1 = new flexibleengine.NetworkingRouterV2(\"router1\", {externalGateway: \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\"});\nconst routerInterface1 = new flexibleengine.NetworkingRouterInterfaceV2(\"routerInterface1\", {\n    routerId: router1.networkingRouterV2Id,\n    subnetId: subnet1.networkingSubnetV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nnetwork1 = flexibleengine.NetworkingNetworkV2(\"network1\", admin_state_up=\"true\")\nsubnet1 = flexibleengine.NetworkingSubnetV2(\"subnet1\",\n    network_id=network1.networking_network_v2_id,\n    cidr=\"192.168.199.0/24\",\n    ip_version=4)\nrouter1 = flexibleengine.NetworkingRouterV2(\"router1\", external_gateway=\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\nrouter_interface1 = flexibleengine.NetworkingRouterInterfaceV2(\"routerInterface1\",\n    router_id=router1.networking_router_v2_id,\n    subnet_id=subnet1.networking_subnet_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var network1 = new Flexibleengine.NetworkingNetworkV2(\"network1\", new()\n    {\n        AdminStateUp = \"true\",\n    });\n\n    var subnet1 = new Flexibleengine.NetworkingSubnetV2(\"subnet1\", new()\n    {\n        NetworkId = network1.NetworkingNetworkV2Id,\n        Cidr = \"192.168.199.0/24\",\n        IpVersion = 4,\n    });\n\n    var router1 = new Flexibleengine.NetworkingRouterV2(\"router1\", new()\n    {\n        ExternalGateway = \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n    });\n\n    var routerInterface1 = new Flexibleengine.NetworkingRouterInterfaceV2(\"routerInterface1\", new()\n    {\n        RouterId = router1.NetworkingRouterV2Id,\n        SubnetId = subnet1.NetworkingSubnetV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := flexibleengine.NewNetworkingNetworkV2(ctx, \"network1\", &flexibleengine.NetworkingNetworkV2Args{\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := flexibleengine.NewNetworkingSubnetV2(ctx, \"subnet1\", &flexibleengine.NetworkingSubnetV2Args{\n\t\t\tNetworkId: network1.NetworkingNetworkV2Id,\n\t\t\tCidr:      pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Float64(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trouter1, err := flexibleengine.NewNetworkingRouterV2(ctx, \"router1\", &flexibleengine.NetworkingRouterV2Args{\n\t\t\tExternalGateway: pulumi.String(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewNetworkingRouterInterfaceV2(ctx, \"routerInterface1\", &flexibleengine.NetworkingRouterInterfaceV2Args{\n\t\t\tRouterId: router1.NetworkingRouterV2Id,\n\t\t\tSubnetId: subnet1.NetworkingSubnetV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NetworkingNetworkV2;\nimport com.pulumi.flexibleengine.NetworkingNetworkV2Args;\nimport com.pulumi.flexibleengine.NetworkingSubnetV2;\nimport com.pulumi.flexibleengine.NetworkingSubnetV2Args;\nimport com.pulumi.flexibleengine.NetworkingRouterV2;\nimport com.pulumi.flexibleengine.NetworkingRouterV2Args;\nimport com.pulumi.flexibleengine.NetworkingRouterInterfaceV2;\nimport com.pulumi.flexibleengine.NetworkingRouterInterfaceV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var network1 = new NetworkingNetworkV2(\"network1\", NetworkingNetworkV2Args.builder()\n            .adminStateUp(\"true\")\n            .build());\n\n        var subnet1 = new NetworkingSubnetV2(\"subnet1\", NetworkingSubnetV2Args.builder()\n            .networkId(network1.networkingNetworkV2Id())\n            .cidr(\"192.168.199.0/24\")\n            .ipVersion(4)\n            .build());\n\n        var router1 = new NetworkingRouterV2(\"router1\", NetworkingRouterV2Args.builder()\n            .externalGateway(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\n            .build());\n\n        var routerInterface1 = new NetworkingRouterInterfaceV2(\"routerInterface1\", NetworkingRouterInterfaceV2Args.builder()\n            .routerId(router1.networkingRouterV2Id())\n            .subnetId(subnet1.networkingSubnetV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  network1:\n    type: flexibleengine:NetworkingNetworkV2\n    properties:\n      adminStateUp: 'true'\n  subnet1:\n    type: flexibleengine:NetworkingSubnetV2\n    properties:\n      networkId: ${network1.networkingNetworkV2Id}\n      cidr: 192.168.199.0/24\n      ipVersion: 4\n  router1:\n    type: flexibleengine:NetworkingRouterV2\n    properties:\n      externalGateway: f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\n  routerInterface1:\n    type: flexibleengine:NetworkingRouterInterfaceV2\n    properties:\n      routerId: ${router1.networkingRouterV2Id}\n      subnetId: ${subnet1.networkingSubnetV2Id}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "networkingRouterInterfaceV2Id": {
          "type": "string"
        },
        "portId": {
          "type": "string",
          "description": "ID of the port this interface connects to. Changing\nthis creates a new router interface.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to create a router. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nrouter interface.\n"
        },
        "routerId": {
          "type": "string",
          "description": "ID of the router this interface belongs to. Changing\nthis creates a new router interface.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "ID of the subnet this interface connects to. Changing\nthis creates a new router interface.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingRouterInterfaceV2Timeouts:NetworkingRouterInterfaceV2Timeouts"
        }
      },
      "type": "object",
      "required": [
        "networkingRouterInterfaceV2Id",
        "portId",
        "region",
        "routerId",
        "subnetId"
      ],
      "inputProperties": {
        "networkingRouterInterfaceV2Id": {
          "type": "string"
        },
        "portId": {
          "type": "string",
          "description": "ID of the port this interface connects to. Changing\nthis creates a new router interface.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to create a router. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nrouter interface.\n"
        },
        "routerId": {
          "type": "string",
          "description": "ID of the router this interface belongs to. Changing\nthis creates a new router interface.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "ID of the subnet this interface connects to. Changing\nthis creates a new router interface.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingRouterInterfaceV2Timeouts:NetworkingRouterInterfaceV2Timeouts"
        }
      },
      "requiredInputs": [
        "routerId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkingRouterInterfaceV2 resources.\n",
        "properties": {
          "networkingRouterInterfaceV2Id": {
            "type": "string"
          },
          "portId": {
            "type": "string",
            "description": "ID of the port this interface connects to. Changing\nthis creates a new router interface.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to create a router. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nrouter interface.\n"
          },
          "routerId": {
            "type": "string",
            "description": "ID of the router this interface belongs to. Changing\nthis creates a new router interface.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "ID of the subnet this interface connects to. Changing\nthis creates a new router interface.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingRouterInterfaceV2Timeouts:NetworkingRouterInterfaceV2Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkingRouterRouteV2:NetworkingRouterRouteV2": {
      "description": "!> **WARNING:** It has been deprecated, use `flexibleengine.VpcRoute` instead.\n\nCreates a routing entry on a FlexibleEngine V2 router.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst router1 = new flexibleengine.NetworkingRouterV2(\"router1\", {adminStateUp: true});\nconst network1 = new flexibleengine.NetworkingNetworkV2(\"network1\", {adminStateUp: \"true\"});\nconst subnet1 = new flexibleengine.NetworkingSubnetV2(\"subnet1\", {\n    networkId: network1.networkingNetworkV2Id,\n    cidr: \"192.168.199.0/24\",\n    ipVersion: 4,\n});\nconst int1 = new flexibleengine.NetworkingRouterInterfaceV2(\"int1\", {\n    routerId: router1.networkingRouterV2Id,\n    subnetId: subnet1.networkingSubnetV2Id,\n});\nconst routerRoute1 = new flexibleengine.NetworkingRouterRouteV2(\"routerRoute1\", {\n    routerId: router1.networkingRouterV2Id,\n    destinationCidr: \"10.0.1.0/24\",\n    nextHop: \"192.168.199.254\",\n}, {\n    dependsOn: [int1],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nrouter1 = flexibleengine.NetworkingRouterV2(\"router1\", admin_state_up=True)\nnetwork1 = flexibleengine.NetworkingNetworkV2(\"network1\", admin_state_up=\"true\")\nsubnet1 = flexibleengine.NetworkingSubnetV2(\"subnet1\",\n    network_id=network1.networking_network_v2_id,\n    cidr=\"192.168.199.0/24\",\n    ip_version=4)\nint1 = flexibleengine.NetworkingRouterInterfaceV2(\"int1\",\n    router_id=router1.networking_router_v2_id,\n    subnet_id=subnet1.networking_subnet_v2_id)\nrouter_route1 = flexibleengine.NetworkingRouterRouteV2(\"routerRoute1\",\n    router_id=router1.networking_router_v2_id,\n    destination_cidr=\"10.0.1.0/24\",\n    next_hop=\"192.168.199.254\",\n    opts = pulumi.ResourceOptions(depends_on=[int1]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var router1 = new Flexibleengine.NetworkingRouterV2(\"router1\", new()\n    {\n        AdminStateUp = true,\n    });\n\n    var network1 = new Flexibleengine.NetworkingNetworkV2(\"network1\", new()\n    {\n        AdminStateUp = \"true\",\n    });\n\n    var subnet1 = new Flexibleengine.NetworkingSubnetV2(\"subnet1\", new()\n    {\n        NetworkId = network1.NetworkingNetworkV2Id,\n        Cidr = \"192.168.199.0/24\",\n        IpVersion = 4,\n    });\n\n    var int1 = new Flexibleengine.NetworkingRouterInterfaceV2(\"int1\", new()\n    {\n        RouterId = router1.NetworkingRouterV2Id,\n        SubnetId = subnet1.NetworkingSubnetV2Id,\n    });\n\n    var routerRoute1 = new Flexibleengine.NetworkingRouterRouteV2(\"routerRoute1\", new()\n    {\n        RouterId = router1.NetworkingRouterV2Id,\n        DestinationCidr = \"10.0.1.0/24\",\n        NextHop = \"192.168.199.254\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            int1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trouter1, err := flexibleengine.NewNetworkingRouterV2(ctx, \"router1\", &flexibleengine.NetworkingRouterV2Args{\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork1, err := flexibleengine.NewNetworkingNetworkV2(ctx, \"network1\", &flexibleengine.NetworkingNetworkV2Args{\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := flexibleengine.NewNetworkingSubnetV2(ctx, \"subnet1\", &flexibleengine.NetworkingSubnetV2Args{\n\t\t\tNetworkId: network1.NetworkingNetworkV2Id,\n\t\t\tCidr:      pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Float64(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tint1, err := flexibleengine.NewNetworkingRouterInterfaceV2(ctx, \"int1\", &flexibleengine.NetworkingRouterInterfaceV2Args{\n\t\t\tRouterId: router1.NetworkingRouterV2Id,\n\t\t\tSubnetId: subnet1.NetworkingSubnetV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewNetworkingRouterRouteV2(ctx, \"routerRoute1\", &flexibleengine.NetworkingRouterRouteV2Args{\n\t\t\tRouterId:        router1.NetworkingRouterV2Id,\n\t\t\tDestinationCidr: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tNextHop:         pulumi.String(\"192.168.199.254\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tint1,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NetworkingRouterV2;\nimport com.pulumi.flexibleengine.NetworkingRouterV2Args;\nimport com.pulumi.flexibleengine.NetworkingNetworkV2;\nimport com.pulumi.flexibleengine.NetworkingNetworkV2Args;\nimport com.pulumi.flexibleengine.NetworkingSubnetV2;\nimport com.pulumi.flexibleengine.NetworkingSubnetV2Args;\nimport com.pulumi.flexibleengine.NetworkingRouterInterfaceV2;\nimport com.pulumi.flexibleengine.NetworkingRouterInterfaceV2Args;\nimport com.pulumi.flexibleengine.NetworkingRouterRouteV2;\nimport com.pulumi.flexibleengine.NetworkingRouterRouteV2Args;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var router1 = new NetworkingRouterV2(\"router1\", NetworkingRouterV2Args.builder()\n            .adminStateUp(\"true\")\n            .build());\n\n        var network1 = new NetworkingNetworkV2(\"network1\", NetworkingNetworkV2Args.builder()\n            .adminStateUp(\"true\")\n            .build());\n\n        var subnet1 = new NetworkingSubnetV2(\"subnet1\", NetworkingSubnetV2Args.builder()\n            .networkId(network1.networkingNetworkV2Id())\n            .cidr(\"192.168.199.0/24\")\n            .ipVersion(4)\n            .build());\n\n        var int1 = new NetworkingRouterInterfaceV2(\"int1\", NetworkingRouterInterfaceV2Args.builder()\n            .routerId(router1.networkingRouterV2Id())\n            .subnetId(subnet1.networkingSubnetV2Id())\n            .build());\n\n        var routerRoute1 = new NetworkingRouterRouteV2(\"routerRoute1\", NetworkingRouterRouteV2Args.builder()\n            .routerId(router1.networkingRouterV2Id())\n            .destinationCidr(\"10.0.1.0/24\")\n            .nextHop(\"192.168.199.254\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(int1)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  router1:\n    type: flexibleengine:NetworkingRouterV2\n    properties:\n      adminStateUp: 'true'\n  network1:\n    type: flexibleengine:NetworkingNetworkV2\n    properties:\n      adminStateUp: 'true'\n  subnet1:\n    type: flexibleengine:NetworkingSubnetV2\n    properties:\n      networkId: ${network1.networkingNetworkV2Id}\n      cidr: 192.168.199.0/24\n      ipVersion: 4\n  int1:\n    type: flexibleengine:NetworkingRouterInterfaceV2\n    properties:\n      routerId: ${router1.networkingRouterV2Id}\n      subnetId: ${subnet1.networkingSubnetV2Id}\n  routerRoute1:\n    type: flexibleengine:NetworkingRouterRouteV2\n    properties:\n      routerId: ${router1.networkingRouterV2Id}\n      destinationCidr: 10.0.1.0/24\n      nextHop: 192.168.199.254\n    options:\n      dependsOn:\n        - ${int1}\n```\n<!--End PulumiCodeChooser -->\n\n## Notes\n\nThe `next_hop` IP address must be directly reachable from the router at the ``flexibleengine.NetworkingRouterRouteV2``\nresource creation time.  You can ensure that by explicitly specifying a dependency on the ``flexibleengine.NetworkingRouterInterfaceV2``\nresource that connects the next hop to the router, as in the example above.\n",
      "properties": {
        "destinationCidr": {
          "type": "string",
          "description": "CIDR block to match on the packet’s destination IP. Changing\nthis creates a new routing entry.\n"
        },
        "networkingRouterRouteV2Id": {
          "type": "string"
        },
        "nextHop": {
          "type": "string",
          "description": "IP address of the next hop gateway.  Changing\nthis creates a new routing entry.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to configure a routing entry on a router. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nrouting entry.\n"
        },
        "routerId": {
          "type": "string",
          "description": "ID of the router this routing entry belongs to. Changing\nthis creates a new routing entry.\n"
        }
      },
      "type": "object",
      "required": [
        "destinationCidr",
        "networkingRouterRouteV2Id",
        "nextHop",
        "region",
        "routerId"
      ],
      "inputProperties": {
        "destinationCidr": {
          "type": "string",
          "description": "CIDR block to match on the packet’s destination IP. Changing\nthis creates a new routing entry.\n"
        },
        "networkingRouterRouteV2Id": {
          "type": "string"
        },
        "nextHop": {
          "type": "string",
          "description": "IP address of the next hop gateway.  Changing\nthis creates a new routing entry.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to configure a routing entry on a router. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nrouting entry.\n"
        },
        "routerId": {
          "type": "string",
          "description": "ID of the router this routing entry belongs to. Changing\nthis creates a new routing entry.\n"
        }
      },
      "requiredInputs": [
        "destinationCidr",
        "nextHop",
        "routerId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkingRouterRouteV2 resources.\n",
        "properties": {
          "destinationCidr": {
            "type": "string",
            "description": "CIDR block to match on the packet’s destination IP. Changing\nthis creates a new routing entry.\n"
          },
          "networkingRouterRouteV2Id": {
            "type": "string"
          },
          "nextHop": {
            "type": "string",
            "description": "IP address of the next hop gateway.  Changing\nthis creates a new routing entry.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to configure a routing entry on a router. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nrouting entry.\n"
          },
          "routerId": {
            "type": "string",
            "description": "ID of the router this routing entry belongs to. Changing\nthis creates a new routing entry.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkingRouterV2:NetworkingRouterV2": {
      "description": "Manages a V2 router resource within FlexibleEngine. The router is the top-level resource for the VPC within FlexibleEngine.\n\n!> **Warning:** It has been deprecated, use `flexibleengine.VpcV1` instead.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst router1 = new flexibleengine.NetworkingRouterV2(\"router1\", {externalGateway: \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\"});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nrouter1 = flexibleengine.NetworkingRouterV2(\"router1\", external_gateway=\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var router1 = new Flexibleengine.NetworkingRouterV2(\"router1\", new()\n    {\n        ExternalGateway = \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewNetworkingRouterV2(ctx, \"router1\", &flexibleengine.NetworkingRouterV2Args{\n\t\t\tExternalGateway: pulumi.String(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NetworkingRouterV2;\nimport com.pulumi.flexibleengine.NetworkingRouterV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var router1 = new NetworkingRouterV2(\"router1\", NetworkingRouterV2Args.builder()\n            .externalGateway(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  router1:\n    type: flexibleengine:NetworkingRouterV2\n    properties:\n      externalGateway: f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "adminStateUp": {
          "type": "boolean",
          "description": "Administrative up/down status for the router\n(must be \"true\" or \"false\" if provided). Changing this updates the\n`admin_state_up` of an existing router.\n"
        },
        "distributed": {
          "type": "boolean",
          "description": "Indicates whether or not to create a\ndistributed router. The default policy setting in Neutron restricts\nusage of this property to administrative users only.\n"
        },
        "enableSnat": {
          "type": "boolean",
          "description": "Enable Source NAT for the router. Valid values are\n\"true\" or \"false\". An `external_gateway` has to be set in order to set this\nproperty. Changing this updates the `enable_snat` of the router.\n"
        },
        "externalGateway": {
          "type": "string",
          "description": "The network UUID of an external gateway for\nthe router. A router with an external gateway is required if any compute\ninstances or load balancers will be using floating IPs. Changing this\nupdates the `external_gateway` of an existing router.\n"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the router. Changing this\nupdates the `name` of an existing router.\n"
        },
        "networkingRouterV2Id": {
          "type": "string",
          "description": "ID of the router.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to create a router. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nrouter.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The owner of the floating IP. Required if admin wants\nto create a router for another tenant. Changing this creates a new router.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingRouterV2Timeouts:NetworkingRouterV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional driver-specific options.\n"
        }
      },
      "type": "object",
      "required": [
        "adminStateUp",
        "distributed",
        "enableSnat",
        "name",
        "networkingRouterV2Id",
        "region",
        "tenantId"
      ],
      "inputProperties": {
        "adminStateUp": {
          "type": "boolean",
          "description": "Administrative up/down status for the router\n(must be \"true\" or \"false\" if provided). Changing this updates the\n`admin_state_up` of an existing router.\n"
        },
        "distributed": {
          "type": "boolean",
          "description": "Indicates whether or not to create a\ndistributed router. The default policy setting in Neutron restricts\nusage of this property to administrative users only.\n"
        },
        "enableSnat": {
          "type": "boolean",
          "description": "Enable Source NAT for the router. Valid values are\n\"true\" or \"false\". An `external_gateway` has to be set in order to set this\nproperty. Changing this updates the `enable_snat` of the router.\n"
        },
        "externalGateway": {
          "type": "string",
          "description": "The network UUID of an external gateway for\nthe router. A router with an external gateway is required if any compute\ninstances or load balancers will be using floating IPs. Changing this\nupdates the `external_gateway` of an existing router.\n"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the router. Changing this\nupdates the `name` of an existing router.\n"
        },
        "networkingRouterV2Id": {
          "type": "string",
          "description": "ID of the router.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to create a router. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nrouter.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The owner of the floating IP. Required if admin wants\nto create a router for another tenant. Changing this creates a new router.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingRouterV2Timeouts:NetworkingRouterV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional driver-specific options.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkingRouterV2 resources.\n",
        "properties": {
          "adminStateUp": {
            "type": "boolean",
            "description": "Administrative up/down status for the router\n(must be \"true\" or \"false\" if provided). Changing this updates the\n`admin_state_up` of an existing router.\n"
          },
          "distributed": {
            "type": "boolean",
            "description": "Indicates whether or not to create a\ndistributed router. The default policy setting in Neutron restricts\nusage of this property to administrative users only.\n"
          },
          "enableSnat": {
            "type": "boolean",
            "description": "Enable Source NAT for the router. Valid values are\n\"true\" or \"false\". An `external_gateway` has to be set in order to set this\nproperty. Changing this updates the `enable_snat` of the router.\n"
          },
          "externalGateway": {
            "type": "string",
            "description": "The network UUID of an external gateway for\nthe router. A router with an external gateway is required if any compute\ninstances or load balancers will be using floating IPs. Changing this\nupdates the `external_gateway` of an existing router.\n"
          },
          "name": {
            "type": "string",
            "description": "A unique name for the router. Changing this\nupdates the `name` of an existing router.\n"
          },
          "networkingRouterV2Id": {
            "type": "string",
            "description": "ID of the router.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to create a router. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nrouter.\n"
          },
          "tenantId": {
            "type": "string",
            "description": "The owner of the floating IP. Required if admin wants\nto create a router for another tenant. Changing this creates a new router.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingRouterV2Timeouts:NetworkingRouterV2Timeouts"
          },
          "valueSpecs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of additional driver-specific options.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkingSecgroupRuleV2:NetworkingSecgroupRuleV2": {
      "description": "Manages a Security Group Rule resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleSecgroup = new flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", {description: \"My neutron security group\"});\nconst secgroupRule1 = new flexibleengine.NetworkingSecgroupRuleV2(\"secgroupRule1\", {\n    direction: \"ingress\",\n    ethertype: \"IPv4\",\n    protocol: \"tcp\",\n    portRangeMin: 22,\n    portRangeMax: 22,\n    remoteIpPrefix: \"0.0.0.0/0\",\n    securityGroupId: exampleSecgroup.networkingSecgroupV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_secgroup = flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", description=\"My neutron security group\")\nsecgroup_rule1 = flexibleengine.NetworkingSecgroupRuleV2(\"secgroupRule1\",\n    direction=\"ingress\",\n    ethertype=\"IPv4\",\n    protocol=\"tcp\",\n    port_range_min=22,\n    port_range_max=22,\n    remote_ip_prefix=\"0.0.0.0/0\",\n    security_group_id=example_secgroup.networking_secgroup_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleSecgroup = new Flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", new()\n    {\n        Description = \"My neutron security group\",\n    });\n\n    var secgroupRule1 = new Flexibleengine.NetworkingSecgroupRuleV2(\"secgroupRule1\", new()\n    {\n        Direction = \"ingress\",\n        Ethertype = \"IPv4\",\n        Protocol = \"tcp\",\n        PortRangeMin = 22,\n        PortRangeMax = 22,\n        RemoteIpPrefix = \"0.0.0.0/0\",\n        SecurityGroupId = exampleSecgroup.NetworkingSecgroupV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleSecgroup, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"exampleSecgroup\", &flexibleengine.NetworkingSecgroupV2Args{\n\t\t\tDescription: pulumi.String(\"My neutron security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewNetworkingSecgroupRuleV2(ctx, \"secgroupRule1\", &flexibleengine.NetworkingSecgroupRuleV2Args{\n\t\t\tDirection:       pulumi.String(\"ingress\"),\n\t\t\tEthertype:       pulumi.String(\"IPv4\"),\n\t\t\tProtocol:        pulumi.String(\"tcp\"),\n\t\t\tPortRangeMin:    pulumi.Float64(22),\n\t\t\tPortRangeMax:    pulumi.Float64(22),\n\t\t\tRemoteIpPrefix:  pulumi.String(\"0.0.0.0/0\"),\n\t\t\tSecurityGroupId: exampleSecgroup.NetworkingSecgroupV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2Args;\nimport com.pulumi.flexibleengine.NetworkingSecgroupRuleV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleSecgroup = new NetworkingSecgroupV2(\"exampleSecgroup\", NetworkingSecgroupV2Args.builder()\n            .description(\"My neutron security group\")\n            .build());\n\n        var secgroupRule1 = new NetworkingSecgroupRuleV2(\"secgroupRule1\", NetworkingSecgroupRuleV2Args.builder()\n            .direction(\"ingress\")\n            .ethertype(\"IPv4\")\n            .protocol(\"tcp\")\n            .portRangeMin(22)\n            .portRangeMax(22)\n            .remoteIpPrefix(\"0.0.0.0/0\")\n            .securityGroupId(exampleSecgroup.networkingSecgroupV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleSecgroup:\n    type: flexibleengine:NetworkingSecgroupV2\n    properties:\n      description: My neutron security group\n  secgroupRule1:\n    type: flexibleengine:NetworkingSecgroupRuleV2\n    properties:\n      direction: ingress\n      ethertype: IPv4\n      protocol: tcp\n      portRangeMin: 22\n      portRangeMax: 22\n      remoteIpPrefix: 0.0.0.0/0\n      securityGroupId: ${exampleSecgroup.networkingSecgroupV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSecurity Group Rules can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/networkingSecgroupRuleV2:NetworkingSecgroupRuleV2 secgroup_rule_1 aeb68ee3-6e9d-4256-955c-9584a6212745\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the supplementary information about the security group rule.\nThis parameter can contain a maximum of 255 characters and cannot contain angle brackets (< or >).\nChanging this creates a new security group rule.\n"
        },
        "direction": {
          "type": "string",
          "description": "The direction of the rule, valid values are **ingress**\nor **egress**. Changing this creates a new security group rule.\n"
        },
        "ethertype": {
          "type": "string",
          "description": "The layer 3 protocol type, valid values are **IPv4**\nor **IPv6**. Changing this creates a new security group rule.\n"
        },
        "networkingSecgroupRuleV2Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "portRangeMax": {
          "type": "number",
          "description": "The higher part of the allowed port range, valid\ninteger value needs to be between 1 and 65535. Changing this creates a new\nsecurity group rule.\n"
        },
        "portRangeMin": {
          "type": "number",
          "description": "The lower part of the allowed port range, valid\ninteger value needs to be between 1 and 65535. Changing this creates a new\nsecurity group rule.\n"
        },
        "protocol": {
          "type": "string",
          "description": "The layer 4 protocol type, valid values are following.\nChanging this creates a new security group rule. This is required if you want to specify a port range.\n+ **tcp**\n+ **udp**\n+ **icmp**\n+ **ah**\n+ **dccp**\n+ **egp**\n+ **esp**\n+ **gre**\n+ **igmp**\n+ **ipv6-encap**\n+ **ipv6-frag**\n+ **ipv6-icmp**\n+ **ipv6-nonxt**\n+ **ipv6-opts**\n+ **ipv6-route**\n+ **ospf**\n+ **pgm**\n+ **rsvp**\n+ **sctp**\n+ **udplite**\n+ **vrrp**\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to create a port. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nsecurity group rule.\n"
        },
        "remoteGroupId": {
          "type": "string",
          "description": "The remote group id, the value needs to be an\nFlexibleEngine ID of a security group in the same tenant. Changing this creates\na new security group rule.\n"
        },
        "remoteIpPrefix": {
          "type": "string",
          "description": "The remote CIDR, the value needs to be a valid\nCIDR (i.e. 192.168.0.0/16). Changing this creates a new security group rule.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "The security group ID the rule should belong\nto. Changing this creates a new security group rule.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The owner of the security group.\n",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingSecgroupRuleV2Timeouts:NetworkingSecgroupRuleV2Timeouts"
        }
      },
      "type": "object",
      "required": [
        "description",
        "direction",
        "ethertype",
        "networkingSecgroupRuleV2Id",
        "portRangeMax",
        "portRangeMin",
        "protocol",
        "region",
        "remoteGroupId",
        "remoteIpPrefix",
        "securityGroupId",
        "tenantId"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies the supplementary information about the security group rule.\nThis parameter can contain a maximum of 255 characters and cannot contain angle brackets (< or >).\nChanging this creates a new security group rule.\n"
        },
        "direction": {
          "type": "string",
          "description": "The direction of the rule, valid values are **ingress**\nor **egress**. Changing this creates a new security group rule.\n"
        },
        "ethertype": {
          "type": "string",
          "description": "The layer 3 protocol type, valid values are **IPv4**\nor **IPv6**. Changing this creates a new security group rule.\n"
        },
        "networkingSecgroupRuleV2Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "portRangeMax": {
          "type": "number",
          "description": "The higher part of the allowed port range, valid\ninteger value needs to be between 1 and 65535. Changing this creates a new\nsecurity group rule.\n"
        },
        "portRangeMin": {
          "type": "number",
          "description": "The lower part of the allowed port range, valid\ninteger value needs to be between 1 and 65535. Changing this creates a new\nsecurity group rule.\n"
        },
        "protocol": {
          "type": "string",
          "description": "The layer 4 protocol type, valid values are following.\nChanging this creates a new security group rule. This is required if you want to specify a port range.\n+ **tcp**\n+ **udp**\n+ **icmp**\n+ **ah**\n+ **dccp**\n+ **egp**\n+ **esp**\n+ **gre**\n+ **igmp**\n+ **ipv6-encap**\n+ **ipv6-frag**\n+ **ipv6-icmp**\n+ **ipv6-nonxt**\n+ **ipv6-opts**\n+ **ipv6-route**\n+ **ospf**\n+ **pgm**\n+ **rsvp**\n+ **sctp**\n+ **udplite**\n+ **vrrp**\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to create a port. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nsecurity group rule.\n"
        },
        "remoteGroupId": {
          "type": "string",
          "description": "The remote group id, the value needs to be an\nFlexibleEngine ID of a security group in the same tenant. Changing this creates\na new security group rule.\n"
        },
        "remoteIpPrefix": {
          "type": "string",
          "description": "The remote CIDR, the value needs to be a valid\nCIDR (i.e. 192.168.0.0/16). Changing this creates a new security group rule.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "The security group ID the rule should belong\nto. Changing this creates a new security group rule.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The owner of the security group.\n",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingSecgroupRuleV2Timeouts:NetworkingSecgroupRuleV2Timeouts"
        }
      },
      "requiredInputs": [
        "direction",
        "ethertype",
        "securityGroupId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkingSecgroupRuleV2 resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies the supplementary information about the security group rule.\nThis parameter can contain a maximum of 255 characters and cannot contain angle brackets (< or >).\nChanging this creates a new security group rule.\n"
          },
          "direction": {
            "type": "string",
            "description": "The direction of the rule, valid values are **ingress**\nor **egress**. Changing this creates a new security group rule.\n"
          },
          "ethertype": {
            "type": "string",
            "description": "The layer 3 protocol type, valid values are **IPv4**\nor **IPv6**. Changing this creates a new security group rule.\n"
          },
          "networkingSecgroupRuleV2Id": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "portRangeMax": {
            "type": "number",
            "description": "The higher part of the allowed port range, valid\ninteger value needs to be between 1 and 65535. Changing this creates a new\nsecurity group rule.\n"
          },
          "portRangeMin": {
            "type": "number",
            "description": "The lower part of the allowed port range, valid\ninteger value needs to be between 1 and 65535. Changing this creates a new\nsecurity group rule.\n"
          },
          "protocol": {
            "type": "string",
            "description": "The layer 4 protocol type, valid values are following.\nChanging this creates a new security group rule. This is required if you want to specify a port range.\n+ **tcp**\n+ **udp**\n+ **icmp**\n+ **ah**\n+ **dccp**\n+ **egp**\n+ **esp**\n+ **gre**\n+ **igmp**\n+ **ipv6-encap**\n+ **ipv6-frag**\n+ **ipv6-icmp**\n+ **ipv6-nonxt**\n+ **ipv6-opts**\n+ **ipv6-route**\n+ **ospf**\n+ **pgm**\n+ **rsvp**\n+ **sctp**\n+ **udplite**\n+ **vrrp**\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to create a port. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nsecurity group rule.\n"
          },
          "remoteGroupId": {
            "type": "string",
            "description": "The remote group id, the value needs to be an\nFlexibleEngine ID of a security group in the same tenant. Changing this creates\na new security group rule.\n"
          },
          "remoteIpPrefix": {
            "type": "string",
            "description": "The remote CIDR, the value needs to be a valid\nCIDR (i.e. 192.168.0.0/16). Changing this creates a new security group rule.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "The security group ID the rule should belong\nto. Changing this creates a new security group rule.\n"
          },
          "tenantId": {
            "type": "string",
            "description": "The owner of the security group.\n",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingSecgroupRuleV2Timeouts:NetworkingSecgroupRuleV2Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkingSecgroupV2:NetworkingSecgroupV2": {
      "description": "\n\n## Import\n\nSecurity Groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/networkingSecgroupV2:NetworkingSecgroupV2 example_secgroup 38809219-5e8a-4852-9139-6f461c90e8bc\n```\n\n",
      "properties": {
        "deleteDefaultRules": {
          "type": "boolean",
          "description": "Whether or not to delete the default\negress security rules. This is `false` by default. See the below note\nfor more information.\n"
        },
        "description": {
          "type": "string",
          "description": "A unique name for the security group.\n"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the security group.\n"
        },
        "networkingSecgroupV2Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to create a port. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nsecurity group.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The owner of the security group.\n",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingSecgroupV2Timeouts:NetworkingSecgroupV2Timeouts"
        }
      },
      "type": "object",
      "required": [
        "description",
        "name",
        "networkingSecgroupV2Id",
        "region",
        "tenantId"
      ],
      "inputProperties": {
        "deleteDefaultRules": {
          "type": "boolean",
          "description": "Whether or not to delete the default\negress security rules. This is `false` by default. See the below note\nfor more information.\n"
        },
        "description": {
          "type": "string",
          "description": "A unique name for the security group.\n"
        },
        "name": {
          "type": "string",
          "description": "A unique name for the security group.\n"
        },
        "networkingSecgroupV2Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to create a port. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nsecurity group.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The owner of the security group.\n",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingSecgroupV2Timeouts:NetworkingSecgroupV2Timeouts"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkingSecgroupV2 resources.\n",
        "properties": {
          "deleteDefaultRules": {
            "type": "boolean",
            "description": "Whether or not to delete the default\negress security rules. This is `false` by default. See the below note\nfor more information.\n"
          },
          "description": {
            "type": "string",
            "description": "A unique name for the security group.\n"
          },
          "name": {
            "type": "string",
            "description": "A unique name for the security group.\n"
          },
          "networkingSecgroupV2Id": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 networking client.\nA networking client is needed to create a port. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nsecurity group.\n"
          },
          "tenantId": {
            "type": "string",
            "description": "The owner of the security group.\n",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingSecgroupV2Timeouts:NetworkingSecgroupV2Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkingSubnetV2:NetworkingSubnetV2": {
      "description": "Manages a V2 Neutron subnet resource within FlexibleEngine.\n\n!> **Warning:** It has been deprecated, use `flexibleengine.VpcSubnetV1` instead.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst network1 = new flexibleengine.NetworkingNetworkV2(\"network1\", {adminStateUp: \"true\"});\nconst subnet1 = new flexibleengine.NetworkingSubnetV2(\"subnet1\", {\n    networkId: network1.networkingNetworkV2Id,\n    cidr: \"192.168.199.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nnetwork1 = flexibleengine.NetworkingNetworkV2(\"network1\", admin_state_up=\"true\")\nsubnet1 = flexibleengine.NetworkingSubnetV2(\"subnet1\",\n    network_id=network1.networking_network_v2_id,\n    cidr=\"192.168.199.0/24\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var network1 = new Flexibleengine.NetworkingNetworkV2(\"network1\", new()\n    {\n        AdminStateUp = \"true\",\n    });\n\n    var subnet1 = new Flexibleengine.NetworkingSubnetV2(\"subnet1\", new()\n    {\n        NetworkId = network1.NetworkingNetworkV2Id,\n        Cidr = \"192.168.199.0/24\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := flexibleengine.NewNetworkingNetworkV2(ctx, \"network1\", &flexibleengine.NetworkingNetworkV2Args{\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewNetworkingSubnetV2(ctx, \"subnet1\", &flexibleengine.NetworkingSubnetV2Args{\n\t\t\tNetworkId: network1.NetworkingNetworkV2Id,\n\t\t\tCidr:      pulumi.String(\"192.168.199.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.NetworkingNetworkV2;\nimport com.pulumi.flexibleengine.NetworkingNetworkV2Args;\nimport com.pulumi.flexibleengine.NetworkingSubnetV2;\nimport com.pulumi.flexibleengine.NetworkingSubnetV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var network1 = new NetworkingNetworkV2(\"network1\", NetworkingNetworkV2Args.builder()\n            .adminStateUp(\"true\")\n            .build());\n\n        var subnet1 = new NetworkingSubnetV2(\"subnet1\", NetworkingSubnetV2Args.builder()\n            .networkId(network1.networkingNetworkV2Id())\n            .cidr(\"192.168.199.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  network1:\n    type: flexibleengine:NetworkingNetworkV2\n    properties:\n      adminStateUp: 'true'\n  subnet1:\n    type: flexibleengine:NetworkingSubnetV2\n    properties:\n      networkId: ${network1.networkingNetworkV2Id}\n      cidr: 192.168.199.0/24\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSubnets can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/networkingSubnetV2:NetworkingSubnetV2 subnet_1 da4faf16-5546-41e4-8330-4d0002b74048\n```\n\n",
      "properties": {
        "allocationPools": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingSubnetV2AllocationPool:NetworkingSubnetV2AllocationPool"
          },
          "description": "An array of sub-ranges of CIDR available for\ndynamic allocation to ports. The allocation_pool object structure is\ndocumented below. Changing this creates a new subnet.\n"
        },
        "cidr": {
          "type": "string",
          "description": "CIDR representing IP range for this subnet, based on IP\nversion. Changing this creates a new subnet.\n"
        },
        "dnsNameservers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of DNS name server names used by hosts\nin this subnet. Changing this updates the DNS name servers for the existing\nsubnet.\n"
        },
        "enableDhcp": {
          "type": "boolean",
          "description": "The administrative state of the network.\nAcceptable values are \"true\" and \"false\". Changing this value enables or\ndisables the DHCP capabilities of the existing subnet. Defaults to true.\n"
        },
        "gatewayIp": {
          "type": "string",
          "description": "Default gateway used by devices in this subnet.\nLeaving this blank and not setting `no_gateway` will cause a default\ngateway of `.1` to be used. Changing this updates the gateway IP of the\nexisting subnet.\n"
        },
        "hostRoutes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingSubnetV2HostRoute:NetworkingSubnetV2HostRoute"
          },
          "description": "An array of routes that should be used by devices\nwith IPs from this subnet (not including local subnet route). The host_route\nobject structure is documented below. Changing this updates the host routes\nfor the existing subnet.\n"
        },
        "ipVersion": {
          "type": "number",
          "description": "IP version, either 4 (default) or 6. Changing this creates a\nnew subnet.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the subnet. Changing this updates the name of\nthe existing subnet.\n"
        },
        "networkId": {
          "type": "string",
          "description": "The UUID of the parent network. Changing this\ncreates a new subnet.\n"
        },
        "networkingSubnetV2Id": {
          "type": "string"
        },
        "noGateway": {
          "type": "boolean",
          "description": "Do not set a gateway IP on this subnet. Changing\nthis removes or adds a default gateway IP of the existing subnet.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create a Neutron subnet. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nsubnet.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The owner of the subnet. Required if admin wants to\ncreate a subnet for another tenant. Changing this creates a new subnet.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingSubnetV2Timeouts:NetworkingSubnetV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\n"
        }
      },
      "type": "object",
      "required": [
        "cidr",
        "gatewayIp",
        "name",
        "networkId",
        "networkingSubnetV2Id",
        "region",
        "tenantId"
      ],
      "inputProperties": {
        "allocationPools": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingSubnetV2AllocationPool:NetworkingSubnetV2AllocationPool"
          },
          "description": "An array of sub-ranges of CIDR available for\ndynamic allocation to ports. The allocation_pool object structure is\ndocumented below. Changing this creates a new subnet.\n"
        },
        "cidr": {
          "type": "string",
          "description": "CIDR representing IP range for this subnet, based on IP\nversion. Changing this creates a new subnet.\n"
        },
        "dnsNameservers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of DNS name server names used by hosts\nin this subnet. Changing this updates the DNS name servers for the existing\nsubnet.\n"
        },
        "enableDhcp": {
          "type": "boolean",
          "description": "The administrative state of the network.\nAcceptable values are \"true\" and \"false\". Changing this value enables or\ndisables the DHCP capabilities of the existing subnet. Defaults to true.\n"
        },
        "gatewayIp": {
          "type": "string",
          "description": "Default gateway used by devices in this subnet.\nLeaving this blank and not setting `no_gateway` will cause a default\ngateway of `.1` to be used. Changing this updates the gateway IP of the\nexisting subnet.\n"
        },
        "hostRoutes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingSubnetV2HostRoute:NetworkingSubnetV2HostRoute"
          },
          "description": "An array of routes that should be used by devices\nwith IPs from this subnet (not including local subnet route). The host_route\nobject structure is documented below. Changing this updates the host routes\nfor the existing subnet.\n"
        },
        "ipVersion": {
          "type": "number",
          "description": "IP version, either 4 (default) or 6. Changing this creates a\nnew subnet.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the subnet. Changing this updates the name of\nthe existing subnet.\n"
        },
        "networkId": {
          "type": "string",
          "description": "The UUID of the parent network. Changing this\ncreates a new subnet.\n"
        },
        "networkingSubnetV2Id": {
          "type": "string"
        },
        "noGateway": {
          "type": "boolean",
          "description": "Do not set a gateway IP on this subnet. Changing\nthis removes or adds a default gateway IP of the existing subnet.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create a Neutron subnet. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nsubnet.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "The owner of the subnet. Required if admin wants to\ncreate a subnet for another tenant. Changing this creates a new subnet.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingSubnetV2Timeouts:NetworkingSubnetV2Timeouts"
        },
        "valueSpecs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of additional options.\n"
        }
      },
      "requiredInputs": [
        "cidr",
        "networkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkingSubnetV2 resources.\n",
        "properties": {
          "allocationPools": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FNetworkingSubnetV2AllocationPool:NetworkingSubnetV2AllocationPool"
            },
            "description": "An array of sub-ranges of CIDR available for\ndynamic allocation to ports. The allocation_pool object structure is\ndocumented below. Changing this creates a new subnet.\n"
          },
          "cidr": {
            "type": "string",
            "description": "CIDR representing IP range for this subnet, based on IP\nversion. Changing this creates a new subnet.\n"
          },
          "dnsNameservers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of DNS name server names used by hosts\nin this subnet. Changing this updates the DNS name servers for the existing\nsubnet.\n"
          },
          "enableDhcp": {
            "type": "boolean",
            "description": "The administrative state of the network.\nAcceptable values are \"true\" and \"false\". Changing this value enables or\ndisables the DHCP capabilities of the existing subnet. Defaults to true.\n"
          },
          "gatewayIp": {
            "type": "string",
            "description": "Default gateway used by devices in this subnet.\nLeaving this blank and not setting `no_gateway` will cause a default\ngateway of `.1` to be used. Changing this updates the gateway IP of the\nexisting subnet.\n"
          },
          "hostRoutes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FNetworkingSubnetV2HostRoute:NetworkingSubnetV2HostRoute"
            },
            "description": "An array of routes that should be used by devices\nwith IPs from this subnet (not including local subnet route). The host_route\nobject structure is documented below. Changing this updates the host routes\nfor the existing subnet.\n"
          },
          "ipVersion": {
            "type": "number",
            "description": "IP version, either 4 (default) or 6. Changing this creates a\nnew subnet.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the subnet. Changing this updates the name of\nthe existing subnet.\n"
          },
          "networkId": {
            "type": "string",
            "description": "The UUID of the parent network. Changing this\ncreates a new subnet.\n"
          },
          "networkingSubnetV2Id": {
            "type": "string"
          },
          "noGateway": {
            "type": "boolean",
            "description": "Do not set a gateway IP on this subnet. Changing\nthis removes or adds a default gateway IP of the existing subnet.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Networking client.\nA Networking client is needed to create a Neutron subnet. If omitted, the\n`region` argument of the provider is used. Changing this creates a new\nsubnet.\n"
          },
          "tenantId": {
            "type": "string",
            "description": "The owner of the subnet. Required if admin wants to\ncreate a subnet for another tenant. Changing this creates a new subnet.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingSubnetV2Timeouts:NetworkingSubnetV2Timeouts"
          },
          "valueSpecs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of additional options.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkingVipAssociateV2:NetworkingVipAssociateV2": {
      "description": "Manages a V2 vip associate resource within FlexibleEngine.\n\n",
      "properties": {
        "networkingVipAssociateV2Id": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "portIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more IDs of the ports to attach the vip to.\nChanging this creates a new vip associate.\n"
        },
        "vipId": {
          "type": "string",
          "description": "The ID of vip to attach the port to.\nChanging this creates a new vip associate.\n"
        },
        "vipIpAddress": {
          "type": "string",
          "description": "The IP address in the subnet for this vip.\n"
        },
        "vipSubnetId": {
          "type": "string",
          "description": "The ID of the subnet this vip connects to.\n"
        }
      },
      "type": "object",
      "required": [
        "networkingVipAssociateV2Id",
        "portIds",
        "vipId",
        "vipIpAddress",
        "vipSubnetId"
      ],
      "inputProperties": {
        "networkingVipAssociateV2Id": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "portIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of one or more IDs of the ports to attach the vip to.\nChanging this creates a new vip associate.\n"
        },
        "vipId": {
          "type": "string",
          "description": "The ID of vip to attach the port to.\nChanging this creates a new vip associate.\n"
        }
      },
      "requiredInputs": [
        "portIds",
        "vipId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkingVipAssociateV2 resources.\n",
        "properties": {
          "networkingVipAssociateV2Id": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "portIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of one or more IDs of the ports to attach the vip to.\nChanging this creates a new vip associate.\n"
          },
          "vipId": {
            "type": "string",
            "description": "The ID of vip to attach the port to.\nChanging this creates a new vip associate.\n"
          },
          "vipIpAddress": {
            "type": "string",
            "description": "The IP address in the subnet for this vip.\n"
          },
          "vipSubnetId": {
            "type": "string",
            "description": "The ID of the subnet this vip connects to.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/networkingVipV2:NetworkingVipV2": {
      "description": "Manages a V2 vip resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst vip1 = new flexibleengine.NetworkingVipV2(\"vip1\", {networkId: exampleSubnet.vpcSubnetV1Id});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nvip1 = flexibleengine.NetworkingVipV2(\"vip1\", network_id=example_subnet.vpc_subnet_v1_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var vip1 = new Flexibleengine.NetworkingVipV2(\"vip1\", new()\n    {\n        NetworkId = exampleSubnet.VpcSubnetV1Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewNetworkingVipV2(ctx, \"vip1\", &flexibleengine.NetworkingVipV2Args{\n\t\t\tNetworkId: exampleSubnet.VpcSubnetV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingVipV2;\nimport com.pulumi.flexibleengine.NetworkingVipV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var vip1 = new NetworkingVipV2(\"vip1\", NetworkingVipV2Args.builder()\n            .networkId(exampleSubnet.vpcSubnetV1Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  vip1:\n    type: flexibleengine:NetworkingVipV2\n    properties:\n      networkId: ${exampleSubnet.vpcSubnetV1Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nNetwork VIPs can be imported using their `id`, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/networkingVipV2:NetworkingVipV2 test ce595799-da26-4015-8db5-7733c6db292e\n```\n\n",
      "properties": {
        "deviceOwner": {
          "type": "string",
          "description": "The device owner of the VIP.\n"
        },
        "ipAddress": {
          "type": "string",
          "description": "Specifies the IP address desired in the subnet for this VIP.\nChanging this will create a new VIP resource.\n"
        },
        "ipVersion": {
          "type": "number",
          "description": "Specifies the IP version, either `4` (default) or `6`.\nChanging this will create a new VIP resource.\n"
        },
        "macAddress": {
          "type": "string",
          "description": "The MAC address of the VIP.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies a unique name for the VIP.\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet to which the VIP belongs.\nChanging this will create a new VIP resource.\n"
        },
        "networkingVipV2Id": {
          "type": "string",
          "description": "The VIP ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the VIP.\nIf omitted, the provider-level region will be used. Changing this will create a new VIP resource.\n"
        },
        "status": {
          "type": "string",
          "description": "The VIP status.\n"
        },
        "subnetId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingVipV2Timeouts:NetworkingVipV2Timeouts"
        }
      },
      "type": "object",
      "required": [
        "deviceOwner",
        "ipAddress",
        "ipVersion",
        "macAddress",
        "name",
        "networkId",
        "networkingVipV2Id",
        "region",
        "status",
        "subnetId"
      ],
      "inputProperties": {
        "ipAddress": {
          "type": "string",
          "description": "Specifies the IP address desired in the subnet for this VIP.\nChanging this will create a new VIP resource.\n"
        },
        "ipVersion": {
          "type": "number",
          "description": "Specifies the IP version, either `4` (default) or `6`.\nChanging this will create a new VIP resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies a unique name for the VIP.\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet to which the VIP belongs.\nChanging this will create a new VIP resource.\n"
        },
        "networkingVipV2Id": {
          "type": "string",
          "description": "The VIP ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the VIP.\nIf omitted, the provider-level region will be used. Changing this will create a new VIP resource.\n"
        },
        "subnetId": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FNetworkingVipV2Timeouts:NetworkingVipV2Timeouts"
        }
      },
      "requiredInputs": [
        "networkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkingVipV2 resources.\n",
        "properties": {
          "deviceOwner": {
            "type": "string",
            "description": "The device owner of the VIP.\n"
          },
          "ipAddress": {
            "type": "string",
            "description": "Specifies the IP address desired in the subnet for this VIP.\nChanging this will create a new VIP resource.\n"
          },
          "ipVersion": {
            "type": "number",
            "description": "Specifies the IP version, either `4` (default) or `6`.\nChanging this will create a new VIP resource.\n"
          },
          "macAddress": {
            "type": "string",
            "description": "The MAC address of the VIP.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies a unique name for the VIP.\n"
          },
          "networkId": {
            "type": "string",
            "description": "Specifies the ID of the VPC Subnet to which the VIP belongs.\nChanging this will create a new VIP resource.\n"
          },
          "networkingVipV2Id": {
            "type": "string",
            "description": "The VIP ID.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the VIP.\nIf omitted, the provider-level region will be used. Changing this will create a new VIP resource.\n"
          },
          "status": {
            "type": "string",
            "description": "The VIP status.\n"
          },
          "subnetId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FNetworkingVipV2Timeouts:NetworkingVipV2Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/obsBucket:ObsBucket": {
      "description": "Manages an OBS bucket resource within FlexibleEngine.\n\n## Example Usage\n\n### Basic Bucket\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst obsBucket = new flexibleengine.ObsBucket(\"obsBucket\", {\n    acl: \"private\",\n    bucket: \"my-tf-test-bucket\",\n    storageClass: \"STANDARD\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nobs_bucket = flexibleengine.ObsBucket(\"obsBucket\",\n    acl=\"private\",\n    bucket=\"my-tf-test-bucket\",\n    storage_class=\"STANDARD\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var obsBucket = new Flexibleengine.ObsBucket(\"obsBucket\", new()\n    {\n        Acl = \"private\",\n        Bucket = \"my-tf-test-bucket\",\n        StorageClass = \"STANDARD\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewObsBucket(ctx, \"obsBucket\", &flexibleengine.ObsBucketArgs{\n\t\t\tAcl:          pulumi.String(\"private\"),\n\t\t\tBucket:       pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tStorageClass: pulumi.String(\"STANDARD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucket;\nimport com.pulumi.flexibleengine.ObsBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var obsBucket = new ObsBucket(\"obsBucket\", ObsBucketArgs.builder()\n            .acl(\"private\")\n            .bucket(\"my-tf-test-bucket\")\n            .storageClass(\"STANDARD\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  obsBucket:\n    type: flexibleengine:ObsBucket\n    properties:\n      acl: private\n      bucket: my-tf-test-bucket\n      storageClass: STANDARD\n```\n<!--End PulumiCodeChooser -->\n\n### Enable versioning\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst obsBucket = new flexibleengine.ObsBucket(\"obsBucket\", {\n    acl: \"private\",\n    bucket: \"my-tf-test-bucket\",\n    versioning: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nobs_bucket = flexibleengine.ObsBucket(\"obsBucket\",\n    acl=\"private\",\n    bucket=\"my-tf-test-bucket\",\n    versioning=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var obsBucket = new Flexibleengine.ObsBucket(\"obsBucket\", new()\n    {\n        Acl = \"private\",\n        Bucket = \"my-tf-test-bucket\",\n        Versioning = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewObsBucket(ctx, \"obsBucket\", &flexibleengine.ObsBucketArgs{\n\t\t\tAcl:        pulumi.String(\"private\"),\n\t\t\tBucket:     pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tVersioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucket;\nimport com.pulumi.flexibleengine.ObsBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var obsBucket = new ObsBucket(\"obsBucket\", ObsBucketArgs.builder()\n            .acl(\"private\")\n            .bucket(\"my-tf-test-bucket\")\n            .versioning(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  obsBucket:\n    type: flexibleengine:ObsBucket\n    properties:\n      acl: private\n      bucket: my-tf-test-bucket\n      versioning: true\n```\n<!--End PulumiCodeChooser -->\n\n### Enable Logging\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst agencyName = config.requireObject(\"agencyName\");\nconst logBucket = new flexibleengine.ObsBucket(\"logBucket\", {\n    bucket: \"my-tf-log-bucket\",\n    acl: \"log-delivery-write\",\n});\nconst obsBucket = new flexibleengine.ObsBucket(\"obsBucket\", {\n    bucket: \"my-tf-test-bucket\",\n    acl: \"private\",\n    loggings: [{\n        targetBucket: logBucket.obsBucketId,\n        targetPrefix: \"log/\",\n        agency: agencyName,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nagency_name = config.require_object(\"agencyName\")\nlog_bucket = flexibleengine.ObsBucket(\"logBucket\",\n    bucket=\"my-tf-log-bucket\",\n    acl=\"log-delivery-write\")\nobs_bucket = flexibleengine.ObsBucket(\"obsBucket\",\n    bucket=\"my-tf-test-bucket\",\n    acl=\"private\",\n    loggings=[{\n        \"target_bucket\": log_bucket.obs_bucket_id,\n        \"target_prefix\": \"log/\",\n        \"agency\": agency_name,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var agencyName = config.RequireObject<dynamic>(\"agencyName\");\n    var logBucket = new Flexibleengine.ObsBucket(\"logBucket\", new()\n    {\n        Bucket = \"my-tf-log-bucket\",\n        Acl = \"log-delivery-write\",\n    });\n\n    var obsBucket = new Flexibleengine.ObsBucket(\"obsBucket\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n        Acl = \"private\",\n        Loggings = new[]\n        {\n            new Flexibleengine.Inputs.ObsBucketLoggingArgs\n            {\n                TargetBucket = logBucket.ObsBucketId,\n                TargetPrefix = \"log/\",\n                Agency = agencyName,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tagencyName := cfg.RequireObject(\"agencyName\")\n\t\tlogBucket, err := flexibleengine.NewObsBucket(ctx, \"logBucket\", &flexibleengine.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-log-bucket\"),\n\t\t\tAcl:    pulumi.String(\"log-delivery-write\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewObsBucket(ctx, \"obsBucket\", &flexibleengine.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tLoggings: flexibleengine.ObsBucketLoggingArray{\n\t\t\t\t&flexibleengine.ObsBucketLoggingArgs{\n\t\t\t\t\tTargetBucket: logBucket.ObsBucketId,\n\t\t\t\t\tTargetPrefix: pulumi.String(\"log/\"),\n\t\t\t\t\tAgency:       pulumi.Any(agencyName),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucket;\nimport com.pulumi.flexibleengine.ObsBucketArgs;\nimport com.pulumi.flexibleengine.inputs.ObsBucketLoggingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var agencyName = config.get(\"agencyName\");\n        var logBucket = new ObsBucket(\"logBucket\", ObsBucketArgs.builder()\n            .bucket(\"my-tf-log-bucket\")\n            .acl(\"log-delivery-write\")\n            .build());\n\n        var obsBucket = new ObsBucket(\"obsBucket\", ObsBucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .acl(\"private\")\n            .loggings(ObsBucketLoggingArgs.builder()\n                .targetBucket(logBucket.obsBucketId())\n                .targetPrefix(\"log/\")\n                .agency(agencyName)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  # The agency must be an OBS cloud service agency with the `PutObject` permission.\n  agencyName:\n    type: dynamic\nresources:\n  logBucket:\n    type: flexibleengine:ObsBucket\n    properties:\n      bucket: my-tf-log-bucket\n      acl: log-delivery-write\n  obsBucket:\n    type: flexibleengine:ObsBucket\n    properties:\n      bucket: my-tf-test-bucket\n      acl: private\n      loggings:\n        - targetBucket: ${logBucket.obsBucketId}\n          targetPrefix: log/\n          agency: ${agencyName}\n```\n<!--End PulumiCodeChooser -->\n\n### Static Website Hosting\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst obsBucket = new flexibleengine.ObsBucket(\"obsBucket\", {\n    acl: \"public-read\",\n    bucket: \"obs-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```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nobs_bucket = flexibleengine.ObsBucket(\"obsBucket\",\n    acl=\"public-read\",\n    bucket=\"obs-website-test.hashicorp.com\",\n    website={\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 System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var obsBucket = new Flexibleengine.ObsBucket(\"obsBucket\", new()\n    {\n        Acl = \"public-read\",\n        Bucket = \"obs-website-test.hashicorp.com\",\n        Website = new Flexibleengine.Inputs.ObsBucketWebsiteArgs\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```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewObsBucket(ctx, \"obsBucket\", &flexibleengine.ObsBucketArgs{\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t\tBucket: pulumi.String(\"obs-website-test.hashicorp.com\"),\n\t\t\tWebsite: &flexibleengine.ObsBucketWebsiteArgs{\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(`[{\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucket;\nimport com.pulumi.flexibleengine.ObsBucketArgs;\nimport com.pulumi.flexibleengine.inputs.ObsBucketWebsiteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var obsBucket = new ObsBucket(\"obsBucket\", ObsBucketArgs.builder()\n            .acl(\"public-read\")\n            .bucket(\"obs-website-test.hashicorp.com\")\n            .website(ObsBucketWebsiteArgs.builder()\n                .errorDocument(\"error.html\")\n                .indexDocument(\"index.html\")\n                .routingRules(\"\"\"\n[{\n    \"Condition\": {\n        \"KeyPrefixEquals\": \"docs/\"\n    },\n    \"Redirect\": {\n        \"ReplaceKeyPrefixWith\": \"documents/\"\n    }\n}]\n\n                \"\"\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  obsBucket:\n    type: flexibleengine:ObsBucket\n    properties:\n      acl: public-read\n      bucket: obs-website-test.hashicorp.com\n      website:\n        errorDocument: error.html\n        indexDocument: index.html\n        routingRules: |+\n          [{\n              \"Condition\": {\n                  \"KeyPrefixEquals\": \"docs/\"\n              },\n              \"Redirect\": {\n                  \"ReplaceKeyPrefixWith\": \"documents/\"\n              }\n          }]\n```\n<!--End PulumiCodeChooser -->\n\n### Using CORS\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst obsBucket = new flexibleengine.ObsBucket(\"obsBucket\", {\n    acl: \"public-read\",\n    bucket: \"obs-website-test.hashicorp.com\",\n    corsRules: [{\n        allowedHeaders: [\"*\"],\n        allowedMethods: [\n            \"PUT\",\n            \"POST\",\n        ],\n        allowedOrigins: [\"https://obs-website-test.hashicorp.com\"],\n        exposeHeaders: [\"ETag\"],\n        maxAgeSeconds: 3000,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nobs_bucket = flexibleengine.ObsBucket(\"obsBucket\",\n    acl=\"public-read\",\n    bucket=\"obs-website-test.hashicorp.com\",\n    cors_rules=[{\n        \"allowed_headers\": [\"*\"],\n        \"allowed_methods\": [\n            \"PUT\",\n            \"POST\",\n        ],\n        \"allowed_origins\": [\"https://obs-website-test.hashicorp.com\"],\n        \"expose_headers\": [\"ETag\"],\n        \"max_age_seconds\": 3000,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var obsBucket = new Flexibleengine.ObsBucket(\"obsBucket\", new()\n    {\n        Acl = \"public-read\",\n        Bucket = \"obs-website-test.hashicorp.com\",\n        CorsRules = new[]\n        {\n            new Flexibleengine.Inputs.ObsBucketCorsRuleArgs\n            {\n                AllowedHeaders = new[]\n                {\n                    \"*\",\n                },\n                AllowedMethods = new[]\n                {\n                    \"PUT\",\n                    \"POST\",\n                },\n                AllowedOrigins = new[]\n                {\n                    \"https://obs-website-test.hashicorp.com\",\n                },\n                ExposeHeaders = new[]\n                {\n                    \"ETag\",\n                },\n                MaxAgeSeconds = 3000,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewObsBucket(ctx, \"obsBucket\", &flexibleengine.ObsBucketArgs{\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t\tBucket: pulumi.String(\"obs-website-test.hashicorp.com\"),\n\t\t\tCorsRules: flexibleengine.ObsBucketCorsRuleArray{\n\t\t\t\t&flexibleengine.ObsBucketCorsRuleArgs{\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://obs-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.Float64(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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucket;\nimport com.pulumi.flexibleengine.ObsBucketArgs;\nimport com.pulumi.flexibleengine.inputs.ObsBucketCorsRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var obsBucket = new ObsBucket(\"obsBucket\", ObsBucketArgs.builder()\n            .acl(\"public-read\")\n            .bucket(\"obs-website-test.hashicorp.com\")\n            .corsRules(ObsBucketCorsRuleArgs.builder()\n                .allowedHeaders(\"*\")\n                .allowedMethods(                \n                    \"PUT\",\n                    \"POST\")\n                .allowedOrigins(\"https://obs-website-test.hashicorp.com\")\n                .exposeHeaders(\"ETag\")\n                .maxAgeSeconds(3000)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  obsBucket:\n    type: flexibleengine:ObsBucket\n    properties:\n      acl: public-read\n      bucket: obs-website-test.hashicorp.com\n      corsRules:\n        - allowedHeaders:\n            - '*'\n          allowedMethods:\n            - PUT\n            - POST\n          allowedOrigins:\n            - https://obs-website-test.hashicorp.com\n          exposeHeaders:\n            - ETag\n          maxAgeSeconds: 3000\n```\n<!--End PulumiCodeChooser -->\n\n### Using object lifecycle\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst bucket = new flexibleengine.ObsBucket(\"bucket\", {\n    acl: \"private\",\n    bucket: \"my-bucket\",\n    lifecycleRules: [\n        {\n            enabled: true,\n            expirations: [{\n                days: 365,\n            }],\n            name: \"log\",\n            prefix: \"log/\",\n            transitions: [\n                {\n                    days: 60,\n                    storageClass: \"STANDARD_IA\",\n                },\n                {\n                    days: 180,\n                    storageClass: \"GLACIER\",\n                },\n            ],\n        },\n        {\n            enabled: true,\n            name: \"tmp\",\n            noncurrentVersionExpirations: [{\n                days: 180,\n            }],\n            noncurrentVersionTransitions: [\n                {\n                    days: 30,\n                    storageClass: \"STANDARD_IA\",\n                },\n                {\n                    days: 60,\n                    storageClass: \"GLACIER\",\n                },\n            ],\n            prefix: \"tmp/\",\n        },\n    ],\n    versioning: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nbucket = flexibleengine.ObsBucket(\"bucket\",\n    acl=\"private\",\n    bucket=\"my-bucket\",\n    lifecycle_rules=[\n        {\n            \"enabled\": True,\n            \"expirations\": [{\n                \"days\": 365,\n            }],\n            \"name\": \"log\",\n            \"prefix\": \"log/\",\n            \"transitions\": [\n                {\n                    \"days\": 60,\n                    \"storage_class\": \"STANDARD_IA\",\n                },\n                {\n                    \"days\": 180,\n                    \"storage_class\": \"GLACIER\",\n                },\n            ],\n        },\n        {\n            \"enabled\": True,\n            \"name\": \"tmp\",\n            \"noncurrent_version_expirations\": [{\n                \"days\": 180,\n            }],\n            \"noncurrent_version_transitions\": [\n                {\n                    \"days\": 30,\n                    \"storage_class\": \"STANDARD_IA\",\n                },\n                {\n                    \"days\": 60,\n                    \"storage_class\": \"GLACIER\",\n                },\n            ],\n            \"prefix\": \"tmp/\",\n        },\n    ],\n    versioning=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = new Flexibleengine.ObsBucket(\"bucket\", new()\n    {\n        Acl = \"private\",\n        Bucket = \"my-bucket\",\n        LifecycleRules = new[]\n        {\n            new Flexibleengine.Inputs.ObsBucketLifecycleRuleArgs\n            {\n                Enabled = true,\n                Expirations = new[]\n                {\n                    new Flexibleengine.Inputs.ObsBucketLifecycleRuleExpirationArgs\n                    {\n                        Days = 365,\n                    },\n                },\n                Name = \"log\",\n                Prefix = \"log/\",\n                Transitions = new[]\n                {\n                    new Flexibleengine.Inputs.ObsBucketLifecycleRuleTransitionArgs\n                    {\n                        Days = 60,\n                        StorageClass = \"STANDARD_IA\",\n                    },\n                    new Flexibleengine.Inputs.ObsBucketLifecycleRuleTransitionArgs\n                    {\n                        Days = 180,\n                        StorageClass = \"GLACIER\",\n                    },\n                },\n            },\n            new Flexibleengine.Inputs.ObsBucketLifecycleRuleArgs\n            {\n                Enabled = true,\n                Name = \"tmp\",\n                NoncurrentVersionExpirations = new[]\n                {\n                    new Flexibleengine.Inputs.ObsBucketLifecycleRuleNoncurrentVersionExpirationArgs\n                    {\n                        Days = 180,\n                    },\n                },\n                NoncurrentVersionTransitions = new[]\n                {\n                    new Flexibleengine.Inputs.ObsBucketLifecycleRuleNoncurrentVersionTransitionArgs\n                    {\n                        Days = 30,\n                        StorageClass = \"STANDARD_IA\",\n                    },\n                    new Flexibleengine.Inputs.ObsBucketLifecycleRuleNoncurrentVersionTransitionArgs\n                    {\n                        Days = 60,\n                        StorageClass = \"GLACIER\",\n                    },\n                },\n                Prefix = \"tmp/\",\n            },\n        },\n        Versioning = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewObsBucket(ctx, \"bucket\", &flexibleengine.ObsBucketArgs{\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tBucket: pulumi.String(\"my-bucket\"),\n\t\t\tLifecycleRules: flexibleengine.ObsBucketLifecycleRuleArray{\n\t\t\t\t&flexibleengine.ObsBucketLifecycleRuleArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpirations: flexibleengine.ObsBucketLifecycleRuleExpirationArray{\n\t\t\t\t\t\t&flexibleengine.ObsBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\t\tDays: pulumi.Float64(365),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tName:   pulumi.String(\"log\"),\n\t\t\t\t\tPrefix: pulumi.String(\"log/\"),\n\t\t\t\t\tTransitions: flexibleengine.ObsBucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t&flexibleengine.ObsBucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Float64(60),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"STANDARD_IA\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&flexibleengine.ObsBucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Float64(180),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"GLACIER\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&flexibleengine.ObsBucketLifecycleRuleArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tName:    pulumi.String(\"tmp\"),\n\t\t\t\t\tNoncurrentVersionExpirations: flexibleengine.ObsBucketLifecycleRuleNoncurrentVersionExpirationArray{\n\t\t\t\t\t\t&flexibleengine.ObsBucketLifecycleRuleNoncurrentVersionExpirationArgs{\n\t\t\t\t\t\t\tDays: pulumi.Float64(180),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNoncurrentVersionTransitions: flexibleengine.ObsBucketLifecycleRuleNoncurrentVersionTransitionArray{\n\t\t\t\t\t\t&flexibleengine.ObsBucketLifecycleRuleNoncurrentVersionTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Float64(30),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"STANDARD_IA\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&flexibleengine.ObsBucketLifecycleRuleNoncurrentVersionTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Float64(60),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"GLACIER\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tPrefix: pulumi.String(\"tmp/\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVersioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucket;\nimport com.pulumi.flexibleengine.ObsBucketArgs;\nimport com.pulumi.flexibleengine.inputs.ObsBucketLifecycleRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new ObsBucket(\"bucket\", ObsBucketArgs.builder()\n            .acl(\"private\")\n            .bucket(\"my-bucket\")\n            .lifecycleRules(            \n                ObsBucketLifecycleRuleArgs.builder()\n                    .enabled(true)\n                    .expirations(ObsBucketLifecycleRuleExpirationArgs.builder()\n                        .days(365)\n                        .build())\n                    .name(\"log\")\n                    .prefix(\"log/\")\n                    .transitions(                    \n                        ObsBucketLifecycleRuleTransitionArgs.builder()\n                            .days(60)\n                            .storageClass(\"STANDARD_IA\")\n                            .build(),\n                        ObsBucketLifecycleRuleTransitionArgs.builder()\n                            .days(180)\n                            .storageClass(\"GLACIER\")\n                            .build())\n                    .build(),\n                ObsBucketLifecycleRuleArgs.builder()\n                    .enabled(true)\n                    .name(\"tmp\")\n                    .noncurrentVersionExpirations(ObsBucketLifecycleRuleNoncurrentVersionExpirationArgs.builder()\n                        .days(180)\n                        .build())\n                    .noncurrentVersionTransitions(                    \n                        ObsBucketLifecycleRuleNoncurrentVersionTransitionArgs.builder()\n                            .days(30)\n                            .storageClass(\"STANDARD_IA\")\n                            .build(),\n                        ObsBucketLifecycleRuleNoncurrentVersionTransitionArgs.builder()\n                            .days(60)\n                            .storageClass(\"GLACIER\")\n                            .build())\n                    .prefix(\"tmp/\")\n                    .build())\n            .versioning(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: flexibleengine:ObsBucket\n    properties:\n      acl: private\n      bucket: my-bucket\n      lifecycleRules:\n        - enabled: true\n          expirations:\n            - days: 365\n          name: log\n          prefix: log/\n          transitions:\n            - days: 60\n              storageClass: STANDARD_IA\n            - days: 180\n              storageClass: GLACIER\n        - enabled: true\n          name: tmp\n          noncurrentVersionExpirations:\n            - days: 180\n          noncurrentVersionTransitions:\n            - days: 30\n              storageClass: STANDARD_IA\n            - days: 60\n              storageClass: GLACIER\n          prefix: tmp/\n      versioning: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nOBS bucket can be imported using the `bucket`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/obsBucket:ObsBucket bucket bucket-name\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes\n\nmissing from the API response. The missing attributes include `acl` and `force_destroy`.\n\nIt is generally recommended running `pulumi preview` after importing an OBS bucket.\n\nAlso, you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_obs_bucket\" \"bucket\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      acl, force_destroy,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "acl": {
          "type": "string",
          "description": "Specifies the ACL policy for a bucket. The predefined common policies are as follows:\n\"private\", \"public-read\", \"public-read-write\" and \"log-delivery-write\". Defaults to `private`.\n"
        },
        "bucket": {
          "type": "string",
          "description": "Specifies the name of the bucket. Changing this parameter will create a new\nresource. A bucket must be named according to the globally applied DNS naming regulations as follows:\n+ The name must be globally unique in OBS.\n+ The name must contain 3 to 63 characters. Only lowercase letters, digits, hyphens (-), and periods (.) are allowed.\n+ The name cannot start or end with a period (.) or hyphen (-), and cannot contain two consecutive periods (.) or\ncontain a period (.) and a hyphen (-) adjacent to each other.\n+ The name cannot be an IP address.\n+ If the name contains any periods (.), a security certificate verification message may appear when you access\nthe bucket or its objects by entering a domain name.\n"
        },
        "bucketDomainName": {
          "type": "string",
          "description": "The bucket domain name. Will be of format `bucketname.oss.region.prod-cloud-ocb.orange-business.com`.\n"
        },
        "corsRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketCorsRule:ObsBucketCorsRule"
          },
          "description": "A rule of Cross-Origin Resource Sharing. The cors_rule object\nstructure is documented below.\n"
        },
        "encryption": {
          "type": "boolean",
          "description": "Whether enable default server-side encryption of the bucket in SSE-KMS mode.\n"
        },
        "forceDestroy": {
          "type": "boolean",
          "description": "A boolean that indicates all objects should be deleted from the bucket so that\nthe bucket can be destroyed without error. Default to `false`.\n"
        },
        "kmsKeyId": {
          "type": "string",
          "description": "Specifies the ID of a KMS key. If omitted, the default master key will be used.\n"
        },
        "kmsKeyProjectId": {
          "type": "string",
          "description": "Specifies the project ID to which the KMS key belongs. This field is valid\nonly when `kms_key_id` is specified.\n"
        },
        "lifecycleRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketLifecycleRule:ObsBucketLifecycleRule"
          },
          "description": "A configuration of object lifecycle management. The lifecycle_rule\nobject structure is documented below.\n"
        },
        "loggings": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketLogging:ObsBucketLogging"
          },
          "description": "A settings of bucket logging. The logging object structure is documented\nbelow.\n"
        },
        "multiAz": {
          "type": "boolean",
          "description": "Whether enable the multi-AZ mode for the bucket. When the multi-AZ mode is\nenabled, data in the bucket is duplicated and stored in multiple AZs. Changing this creates a new bucket.\n"
        },
        "obsBucketId": {
          "type": "string",
          "description": "The name of the bucket.\n"
        },
        "parallelFs": {
          "type": "boolean",
          "description": "Whether enable a bucket as a parallel file system. Changing this will\ncreate a new bucket.\n\n<a name=\"obs_logging\"></a>\nThe `logging` object supports:\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the bucket resource.\nIf omitted, the provider-level region will be used. Changing this will create a new bucket resource.\n"
        },
        "storageClass": {
          "type": "string",
          "description": "The class of storage used to store the object. Only \"STANDARD_IA\" and \"GLACIER\"\nare supported.\n"
        },
        "versioning": {
          "type": "boolean",
          "description": "Whether enable versioning. Once you version-enable a bucket,\nit can never return to an unversioned state. You can, however, suspend versioning on that bucket.\n"
        },
        "website": {
          "$ref": "#/types/flexibleengine:index%2FObsBucketWebsite:ObsBucketWebsite",
          "description": "A website object. The website object structure is documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "bucket",
        "bucketDomainName",
        "kmsKeyProjectId",
        "multiAz",
        "obsBucketId",
        "region"
      ],
      "inputProperties": {
        "acl": {
          "type": "string",
          "description": "Specifies the ACL policy for a bucket. The predefined common policies are as follows:\n\"private\", \"public-read\", \"public-read-write\" and \"log-delivery-write\". Defaults to `private`.\n"
        },
        "bucket": {
          "type": "string",
          "description": "Specifies the name of the bucket. Changing this parameter will create a new\nresource. A bucket must be named according to the globally applied DNS naming regulations as follows:\n+ The name must be globally unique in OBS.\n+ The name must contain 3 to 63 characters. Only lowercase letters, digits, hyphens (-), and periods (.) are allowed.\n+ The name cannot start or end with a period (.) or hyphen (-), and cannot contain two consecutive periods (.) or\ncontain a period (.) and a hyphen (-) adjacent to each other.\n+ The name cannot be an IP address.\n+ If the name contains any periods (.), a security certificate verification message may appear when you access\nthe bucket or its objects by entering a domain name.\n"
        },
        "corsRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketCorsRule:ObsBucketCorsRule"
          },
          "description": "A rule of Cross-Origin Resource Sharing. The cors_rule object\nstructure is documented below.\n"
        },
        "encryption": {
          "type": "boolean",
          "description": "Whether enable default server-side encryption of the bucket in SSE-KMS mode.\n"
        },
        "forceDestroy": {
          "type": "boolean",
          "description": "A boolean that indicates all objects should be deleted from the bucket so that\nthe bucket can be destroyed without error. Default to `false`.\n"
        },
        "kmsKeyId": {
          "type": "string",
          "description": "Specifies the ID of a KMS key. If omitted, the default master key will be used.\n"
        },
        "kmsKeyProjectId": {
          "type": "string",
          "description": "Specifies the project ID to which the KMS key belongs. This field is valid\nonly when `kms_key_id` is specified.\n"
        },
        "lifecycleRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketLifecycleRule:ObsBucketLifecycleRule"
          },
          "description": "A configuration of object lifecycle management. The lifecycle_rule\nobject structure is documented below.\n"
        },
        "loggings": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketLogging:ObsBucketLogging"
          },
          "description": "A settings of bucket logging. The logging object structure is documented\nbelow.\n"
        },
        "multiAz": {
          "type": "boolean",
          "description": "Whether enable the multi-AZ mode for the bucket. When the multi-AZ mode is\nenabled, data in the bucket is duplicated and stored in multiple AZs. Changing this creates a new bucket.\n"
        },
        "obsBucketId": {
          "type": "string",
          "description": "The name of the bucket.\n"
        },
        "parallelFs": {
          "type": "boolean",
          "description": "Whether enable a bucket as a parallel file system. Changing this will\ncreate a new bucket.\n\n<a name=\"obs_logging\"></a>\nThe `logging` object supports:\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the bucket resource.\nIf omitted, the provider-level region will be used. Changing this will create a new bucket resource.\n"
        },
        "storageClass": {
          "type": "string",
          "description": "The class of storage used to store the object. Only \"STANDARD_IA\" and \"GLACIER\"\nare supported.\n"
        },
        "versioning": {
          "type": "boolean",
          "description": "Whether enable versioning. Once you version-enable a bucket,\nit can never return to an unversioned state. You can, however, suspend versioning on that bucket.\n"
        },
        "website": {
          "$ref": "#/types/flexibleengine:index%2FObsBucketWebsite:ObsBucketWebsite",
          "description": "A website object. The website object structure is documented below.\n"
        }
      },
      "requiredInputs": [
        "bucket"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ObsBucket resources.\n",
        "properties": {
          "acl": {
            "type": "string",
            "description": "Specifies the ACL policy for a bucket. The predefined common policies are as follows:\n\"private\", \"public-read\", \"public-read-write\" and \"log-delivery-write\". Defaults to `private`.\n"
          },
          "bucket": {
            "type": "string",
            "description": "Specifies the name of the bucket. Changing this parameter will create a new\nresource. A bucket must be named according to the globally applied DNS naming regulations as follows:\n+ The name must be globally unique in OBS.\n+ The name must contain 3 to 63 characters. Only lowercase letters, digits, hyphens (-), and periods (.) are allowed.\n+ The name cannot start or end with a period (.) or hyphen (-), and cannot contain two consecutive periods (.) or\ncontain a period (.) and a hyphen (-) adjacent to each other.\n+ The name cannot be an IP address.\n+ If the name contains any periods (.), a security certificate verification message may appear when you access\nthe bucket or its objects by entering a domain name.\n"
          },
          "bucketDomainName": {
            "type": "string",
            "description": "The bucket domain name. Will be of format `bucketname.oss.region.prod-cloud-ocb.orange-business.com`.\n"
          },
          "corsRules": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FObsBucketCorsRule:ObsBucketCorsRule"
            },
            "description": "A rule of Cross-Origin Resource Sharing. The cors_rule object\nstructure is documented below.\n"
          },
          "encryption": {
            "type": "boolean",
            "description": "Whether enable default server-side encryption of the bucket in SSE-KMS mode.\n"
          },
          "forceDestroy": {
            "type": "boolean",
            "description": "A boolean that indicates all objects should be deleted from the bucket so that\nthe bucket can be destroyed without error. Default to `false`.\n"
          },
          "kmsKeyId": {
            "type": "string",
            "description": "Specifies the ID of a KMS key. If omitted, the default master key will be used.\n"
          },
          "kmsKeyProjectId": {
            "type": "string",
            "description": "Specifies the project ID to which the KMS key belongs. This field is valid\nonly when `kms_key_id` is specified.\n"
          },
          "lifecycleRules": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FObsBucketLifecycleRule:ObsBucketLifecycleRule"
            },
            "description": "A configuration of object lifecycle management. The lifecycle_rule\nobject structure is documented below.\n"
          },
          "loggings": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FObsBucketLogging:ObsBucketLogging"
            },
            "description": "A settings of bucket logging. The logging object structure is documented\nbelow.\n"
          },
          "multiAz": {
            "type": "boolean",
            "description": "Whether enable the multi-AZ mode for the bucket. When the multi-AZ mode is\nenabled, data in the bucket is duplicated and stored in multiple AZs. Changing this creates a new bucket.\n"
          },
          "obsBucketId": {
            "type": "string",
            "description": "The name of the bucket.\n"
          },
          "parallelFs": {
            "type": "boolean",
            "description": "Whether enable a bucket as a parallel file system. Changing this will\ncreate a new bucket.\n\n<a name=\"obs_logging\"></a>\nThe `logging` object supports:\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the bucket resource.\nIf omitted, the provider-level region will be used. Changing this will create a new bucket resource.\n"
          },
          "storageClass": {
            "type": "string",
            "description": "The class of storage used to store the object. Only \"STANDARD_IA\" and \"GLACIER\"\nare supported.\n"
          },
          "versioning": {
            "type": "boolean",
            "description": "Whether enable versioning. Once you version-enable a bucket,\nit can never return to an unversioned state. You can, however, suspend versioning on that bucket.\n"
          },
          "website": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketWebsite:ObsBucketWebsite",
            "description": "A website object. The website object structure is documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/obsBucketAcl:ObsBucketAcl": {
      "description": "Manages an OBS bucket acl resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst bucket = config.requireObject(\"bucket\");\nconst account1 = config.requireObject(\"account1\");\nconst account2 = config.requireObject(\"account2\");\nconst test = new flexibleengine.ObsBucketAcl(\"test\", {\n    bucket: bucket,\n    ownerPermission: {\n        accessToBuckets: [\n            \"READ\",\n            \"WRITE\",\n        ],\n        accessToAcls: [\n            \"READ_ACP\",\n            \"WRITE_ACP\",\n        ],\n    },\n    accountPermissions: [\n        {\n            accessToBuckets: [\n                \"READ\",\n                \"WRITE\",\n            ],\n            accessToAcls: [\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            ],\n            accountId: account1,\n        },\n        {\n            accessToBuckets: [\"READ\"],\n            accessToAcls: [\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            ],\n            accountId: account2,\n        },\n    ],\n    publicPermission: {\n        accessToBuckets: [\n            \"READ\",\n            \"WRITE\",\n        ],\n    },\n    logDeliveryUserPermission: {\n        accessToBuckets: [\n            \"READ\",\n            \"WRITE\",\n        ],\n        accessToAcls: [\n            \"READ_ACP\",\n            \"WRITE_ACP\",\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nbucket = config.require_object(\"bucket\")\naccount1 = config.require_object(\"account1\")\naccount2 = config.require_object(\"account2\")\ntest = flexibleengine.ObsBucketAcl(\"test\",\n    bucket=bucket,\n    owner_permission={\n        \"access_to_buckets\": [\n            \"READ\",\n            \"WRITE\",\n        ],\n        \"access_to_acls\": [\n            \"READ_ACP\",\n            \"WRITE_ACP\",\n        ],\n    },\n    account_permissions=[\n        {\n            \"access_to_buckets\": [\n                \"READ\",\n                \"WRITE\",\n            ],\n            \"access_to_acls\": [\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            ],\n            \"account_id\": account1,\n        },\n        {\n            \"access_to_buckets\": [\"READ\"],\n            \"access_to_acls\": [\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            ],\n            \"account_id\": account2,\n        },\n    ],\n    public_permission={\n        \"access_to_buckets\": [\n            \"READ\",\n            \"WRITE\",\n        ],\n    },\n    log_delivery_user_permission={\n        \"access_to_buckets\": [\n            \"READ\",\n            \"WRITE\",\n        ],\n        \"access_to_acls\": [\n            \"READ_ACP\",\n            \"WRITE_ACP\",\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bucket = config.RequireObject<dynamic>(\"bucket\");\n    var account1 = config.RequireObject<dynamic>(\"account1\");\n    var account2 = config.RequireObject<dynamic>(\"account2\");\n    var test = new Flexibleengine.ObsBucketAcl(\"test\", new()\n    {\n        Bucket = bucket,\n        OwnerPermission = new Flexibleengine.Inputs.ObsBucketAclOwnerPermissionArgs\n        {\n            AccessToBuckets = new[]\n            {\n                \"READ\",\n                \"WRITE\",\n            },\n            AccessToAcls = new[]\n            {\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            },\n        },\n        AccountPermissions = new[]\n        {\n            new Flexibleengine.Inputs.ObsBucketAclAccountPermissionArgs\n            {\n                AccessToBuckets = new[]\n                {\n                    \"READ\",\n                    \"WRITE\",\n                },\n                AccessToAcls = new[]\n                {\n                    \"READ_ACP\",\n                    \"WRITE_ACP\",\n                },\n                AccountId = account1,\n            },\n            new Flexibleengine.Inputs.ObsBucketAclAccountPermissionArgs\n            {\n                AccessToBuckets = new[]\n                {\n                    \"READ\",\n                },\n                AccessToAcls = new[]\n                {\n                    \"READ_ACP\",\n                    \"WRITE_ACP\",\n                },\n                AccountId = account2,\n            },\n        },\n        PublicPermission = new Flexibleengine.Inputs.ObsBucketAclPublicPermissionArgs\n        {\n            AccessToBuckets = new[]\n            {\n                \"READ\",\n                \"WRITE\",\n            },\n        },\n        LogDeliveryUserPermission = new Flexibleengine.Inputs.ObsBucketAclLogDeliveryUserPermissionArgs\n        {\n            AccessToBuckets = new[]\n            {\n                \"READ\",\n                \"WRITE\",\n            },\n            AccessToAcls = new[]\n            {\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbucket := cfg.RequireObject(\"bucket\")\n\t\taccount1 := cfg.RequireObject(\"account1\")\n\t\taccount2 := cfg.RequireObject(\"account2\")\n\t\t_, err := flexibleengine.NewObsBucketAcl(ctx, \"test\", &flexibleengine.ObsBucketAclArgs{\n\t\t\tBucket: pulumi.Any(bucket),\n\t\t\tOwnerPermission: &flexibleengine.ObsBucketAclOwnerPermissionArgs{\n\t\t\t\tAccessToBuckets: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\tpulumi.String(\"WRITE\"),\n\t\t\t\t},\n\t\t\t\tAccessToAcls: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"READ_ACP\"),\n\t\t\t\t\tpulumi.String(\"WRITE_ACP\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAccountPermissions: flexibleengine.ObsBucketAclAccountPermissionArray{\n\t\t\t\t&flexibleengine.ObsBucketAclAccountPermissionArgs{\n\t\t\t\t\tAccessToBuckets: 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\tAccessToAcls: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ_ACP\"),\n\t\t\t\t\t\tpulumi.String(\"WRITE_ACP\"),\n\t\t\t\t\t},\n\t\t\t\t\tAccountId: pulumi.Any(account1),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.ObsBucketAclAccountPermissionArgs{\n\t\t\t\t\tAccessToBuckets: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t},\n\t\t\t\t\tAccessToAcls: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ_ACP\"),\n\t\t\t\t\t\tpulumi.String(\"WRITE_ACP\"),\n\t\t\t\t\t},\n\t\t\t\t\tAccountId: pulumi.Any(account2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPublicPermission: &flexibleengine.ObsBucketAclPublicPermissionArgs{\n\t\t\t\tAccessToBuckets: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\tpulumi.String(\"WRITE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLogDeliveryUserPermission: &flexibleengine.ObsBucketAclLogDeliveryUserPermissionArgs{\n\t\t\t\tAccessToBuckets: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\tpulumi.String(\"WRITE\"),\n\t\t\t\t},\n\t\t\t\tAccessToAcls: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"READ_ACP\"),\n\t\t\t\t\tpulumi.String(\"WRITE_ACP\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucketAcl;\nimport com.pulumi.flexibleengine.ObsBucketAclArgs;\nimport com.pulumi.flexibleengine.inputs.ObsBucketAclOwnerPermissionArgs;\nimport com.pulumi.flexibleengine.inputs.ObsBucketAclAccountPermissionArgs;\nimport com.pulumi.flexibleengine.inputs.ObsBucketAclPublicPermissionArgs;\nimport com.pulumi.flexibleengine.inputs.ObsBucketAclLogDeliveryUserPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bucket = config.get(\"bucket\");\n        final var account1 = config.get(\"account1\");\n        final var account2 = config.get(\"account2\");\n        var test = new ObsBucketAcl(\"test\", ObsBucketAclArgs.builder()\n            .bucket(bucket)\n            .ownerPermission(ObsBucketAclOwnerPermissionArgs.builder()\n                .accessToBuckets(                \n                    \"READ\",\n                    \"WRITE\")\n                .accessToAcls(                \n                    \"READ_ACP\",\n                    \"WRITE_ACP\")\n                .build())\n            .accountPermissions(            \n                ObsBucketAclAccountPermissionArgs.builder()\n                    .accessToBuckets(                    \n                        \"READ\",\n                        \"WRITE\")\n                    .accessToAcls(                    \n                        \"READ_ACP\",\n                        \"WRITE_ACP\")\n                    .accountId(account1)\n                    .build(),\n                ObsBucketAclAccountPermissionArgs.builder()\n                    .accessToBuckets(\"READ\")\n                    .accessToAcls(                    \n                        \"READ_ACP\",\n                        \"WRITE_ACP\")\n                    .accountId(account2)\n                    .build())\n            .publicPermission(ObsBucketAclPublicPermissionArgs.builder()\n                .accessToBuckets(                \n                    \"READ\",\n                    \"WRITE\")\n                .build())\n            .logDeliveryUserPermission(ObsBucketAclLogDeliveryUserPermissionArgs.builder()\n                .accessToBuckets(                \n                    \"READ\",\n                    \"WRITE\")\n                .accessToAcls(                \n                    \"READ_ACP\",\n                    \"WRITE_ACP\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bucket:\n    type: dynamic\n  account1:\n    type: dynamic\n  account2:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ObsBucketAcl\n    properties:\n      bucket: ${bucket}\n      ownerPermission:\n        accessToBuckets:\n          - READ\n          - WRITE\n        accessToAcls:\n          - READ_ACP\n          - WRITE_ACP\n      accountPermissions:\n        - accessToBuckets:\n            - READ\n            - WRITE\n          accessToAcls:\n            - READ_ACP\n            - WRITE_ACP\n          accountId: ${account1}\n        - accessToBuckets:\n            - READ\n          accessToAcls:\n            - READ_ACP\n            - WRITE_ACP\n          accountId: ${account2}\n      publicPermission:\n        accessToBuckets:\n          - READ\n          - WRITE\n      logDeliveryUserPermission:\n        accessToBuckets:\n          - READ\n          - WRITE\n        accessToAcls:\n          - READ_ACP\n          - WRITE_ACP\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe obs bucket acl can be imported using the `bucket`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/obsBucketAcl:ObsBucketAcl test <bucket-name>\n```\n\n",
      "properties": {
        "accountPermissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketAclAccountPermission:ObsBucketAclAccountPermission"
          },
          "description": "Specifies the account permissions.\nThe account_permission_struct structure is documented below.\n\n<a name=\"OBSBucketAcl_permission_struct\"></a>\nThe `permission_struct` block supports:\n"
        },
        "bucket": {
          "type": "string",
          "description": "Specifies the name of the bucket to which to set the acl.\nChanging this parameter will create a new resource.\n"
        },
        "logDeliveryUserPermission": {
          "$ref": "#/types/flexibleengine:index%2FObsBucketAclLogDeliveryUserPermission:ObsBucketAclLogDeliveryUserPermission",
          "description": "Specifies the log delivery user permission.\nThe permission_struct structure is documented below.\n"
        },
        "obsBucketAclId": {
          "type": "string",
          "description": "The name of the bucket.\n"
        },
        "ownerPermission": {
          "$ref": "#/types/flexibleengine:index%2FObsBucketAclOwnerPermission:ObsBucketAclOwnerPermission",
          "description": "Specifies the bucket owner permission. If omitted, the current obs bucket acl\nowner permission will not be changed.\nThe permission_struct structure is documented below.\n"
        },
        "publicPermission": {
          "$ref": "#/types/flexibleengine:index%2FObsBucketAclPublicPermission:ObsBucketAclPublicPermission",
          "description": "Specifies the public permission.\nThe permission_struct structure is documented below.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the bucket acl resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "bucket",
        "obsBucketAclId",
        "region"
      ],
      "inputProperties": {
        "accountPermissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketAclAccountPermission:ObsBucketAclAccountPermission"
          },
          "description": "Specifies the account permissions.\nThe account_permission_struct structure is documented below.\n\n<a name=\"OBSBucketAcl_permission_struct\"></a>\nThe `permission_struct` block supports:\n"
        },
        "bucket": {
          "type": "string",
          "description": "Specifies the name of the bucket to which to set the acl.\nChanging this parameter will create a new resource.\n"
        },
        "logDeliveryUserPermission": {
          "$ref": "#/types/flexibleengine:index%2FObsBucketAclLogDeliveryUserPermission:ObsBucketAclLogDeliveryUserPermission",
          "description": "Specifies the log delivery user permission.\nThe permission_struct structure is documented below.\n"
        },
        "obsBucketAclId": {
          "type": "string",
          "description": "The name of the bucket.\n"
        },
        "ownerPermission": {
          "$ref": "#/types/flexibleengine:index%2FObsBucketAclOwnerPermission:ObsBucketAclOwnerPermission",
          "description": "Specifies the bucket owner permission. If omitted, the current obs bucket acl\nowner permission will not be changed.\nThe permission_struct structure is documented below.\n"
        },
        "publicPermission": {
          "$ref": "#/types/flexibleengine:index%2FObsBucketAclPublicPermission:ObsBucketAclPublicPermission",
          "description": "Specifies the public permission.\nThe permission_struct structure is documented below.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the bucket acl resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "bucket"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ObsBucketAcl resources.\n",
        "properties": {
          "accountPermissions": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FObsBucketAclAccountPermission:ObsBucketAclAccountPermission"
            },
            "description": "Specifies the account permissions.\nThe account_permission_struct structure is documented below.\n\n<a name=\"OBSBucketAcl_permission_struct\"></a>\nThe `permission_struct` block supports:\n"
          },
          "bucket": {
            "type": "string",
            "description": "Specifies the name of the bucket to which to set the acl.\nChanging this parameter will create a new resource.\n"
          },
          "logDeliveryUserPermission": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketAclLogDeliveryUserPermission:ObsBucketAclLogDeliveryUserPermission",
            "description": "Specifies the log delivery user permission.\nThe permission_struct structure is documented below.\n"
          },
          "obsBucketAclId": {
            "type": "string",
            "description": "The name of the bucket.\n"
          },
          "ownerPermission": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketAclOwnerPermission:ObsBucketAclOwnerPermission",
            "description": "Specifies the bucket owner permission. If omitted, the current obs bucket acl\nowner permission will not be changed.\nThe permission_struct structure is documented below.\n"
          },
          "publicPermission": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketAclPublicPermission:ObsBucketAclPublicPermission",
            "description": "Specifies the public permission.\nThe permission_struct structure is documented below.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the bucket acl resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/obsBucketNotifications:ObsBucketNotifications": {
      "description": "Manages an OBS bucket **Notification Configuration** resource within FlexibleEngine.\n\n**The resource overwrites an existing configuration**.\n\n[Notification Configuration](https://docs.prod-cloud-ocb.orange-business.com/usermanual/obs/en-us_topic_0045853816.html)\nOBS leverages SMN to provide the event notification function. In OBS, you can use SMN to send event notifications to\nspecified subscribers, so that you will be informed of any critical operations (such as upload and deletion)\nthat occur on specified buckets in real time.\n\n## Example Usage\n\n### OBS Notification Configuration\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst bucket = new flexibleengine.ObsBucket(\"bucket\", {\n    bucket: \"my-test-bucket\",\n    acl: \"public-read\",\n});\nconst notification = new flexibleengine.ObsBucketNotifications(\"notification\", {\n    bucket: bucket.bucket,\n    notifications: [{\n        name: \"notification_name\",\n        events: [\"ObjectCreated:*\"],\n        prefix: \"tf\",\n        suffix: \".jpg\",\n        topicUrn: \"urn:smn:eu-west-0:d8cb0fdcf29b4badb9ed8b2525a3286f:topic\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nbucket = flexibleengine.ObsBucket(\"bucket\",\n    bucket=\"my-test-bucket\",\n    acl=\"public-read\")\nnotification = flexibleengine.ObsBucketNotifications(\"notification\",\n    bucket=bucket.bucket,\n    notifications=[{\n        \"name\": \"notification_name\",\n        \"events\": [\"ObjectCreated:*\"],\n        \"prefix\": \"tf\",\n        \"suffix\": \".jpg\",\n        \"topic_urn\": \"urn:smn:eu-west-0:d8cb0fdcf29b4badb9ed8b2525a3286f:topic\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = new Flexibleengine.ObsBucket(\"bucket\", new()\n    {\n        Bucket = \"my-test-bucket\",\n        Acl = \"public-read\",\n    });\n\n    var notification = new Flexibleengine.ObsBucketNotifications(\"notification\", new()\n    {\n        Bucket = bucket.Bucket,\n        Notifications = new[]\n        {\n            new Flexibleengine.Inputs.ObsBucketNotificationsNotificationArgs\n            {\n                Name = \"notification_name\",\n                Events = new[]\n                {\n                    \"ObjectCreated:*\",\n                },\n                Prefix = \"tf\",\n                Suffix = \".jpg\",\n                TopicUrn = \"urn:smn:eu-west-0:d8cb0fdcf29b4badb9ed8b2525a3286f:topic\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := flexibleengine.NewObsBucket(ctx, \"bucket\", &flexibleengine.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-test-bucket\"),\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewObsBucketNotifications(ctx, \"notification\", &flexibleengine.ObsBucketNotificationsArgs{\n\t\t\tBucket: bucket.Bucket,\n\t\t\tNotifications: flexibleengine.ObsBucketNotificationsNotificationArray{\n\t\t\t\t&flexibleengine.ObsBucketNotificationsNotificationArgs{\n\t\t\t\t\tName: pulumi.String(\"notification_name\"),\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrefix:   pulumi.String(\"tf\"),\n\t\t\t\t\tSuffix:   pulumi.String(\".jpg\"),\n\t\t\t\t\tTopicUrn: pulumi.String(\"urn:smn:eu-west-0:d8cb0fdcf29b4badb9ed8b2525a3286f:topic\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucket;\nimport com.pulumi.flexibleengine.ObsBucketArgs;\nimport com.pulumi.flexibleengine.ObsBucketNotifications;\nimport com.pulumi.flexibleengine.ObsBucketNotificationsArgs;\nimport com.pulumi.flexibleengine.inputs.ObsBucketNotificationsNotificationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new ObsBucket(\"bucket\", ObsBucketArgs.builder()\n            .bucket(\"my-test-bucket\")\n            .acl(\"public-read\")\n            .build());\n\n        var notification = new ObsBucketNotifications(\"notification\", ObsBucketNotificationsArgs.builder()\n            .bucket(bucket.bucket())\n            .notifications(ObsBucketNotificationsNotificationArgs.builder()\n                .name(\"notification_name\")\n                .events(\"ObjectCreated:*\")\n                .prefix(\"tf\")\n                .suffix(\".jpg\")\n                .topicUrn(\"urn:smn:eu-west-0:d8cb0fdcf29b4badb9ed8b2525a3286f:topic\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: flexibleengine:ObsBucket\n    properties:\n      bucket: my-test-bucket\n      acl: public-read\n  notification:\n    type: flexibleengine:ObsBucketNotifications\n    properties:\n      bucket: ${bucket.bucket}\n      notifications:\n        - name: notification_name\n          events:\n            - ObjectCreated:*\n          prefix: tf\n          suffix: .jpg\n          topicUrn: urn:smn:eu-west-0:d8cb0fdcf29b4badb9ed8b2525a3286f:topic\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nOBS bucket notification configuration can be imported using the `bucket`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/obsBucketNotifications:ObsBucketNotifications instance <bucket-name>\n```\n\n",
      "properties": {
        "bucket": {
          "type": "string",
          "description": "Specifies the name of the source bucket.\nChanging this parameter will create a new resource.\n"
        },
        "notifications": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketNotificationsNotification:ObsBucketNotificationsNotification"
          },
          "description": "Specifies the list of OBS bucket Notification Configurations. The\nnotifications object structure is documented below.\n\n<a name=\"obs_notifications\"></a>\nThe `notifications` block supports:\n"
        },
        "obsBucketNotificationsId": {
          "type": "string",
          "description": "The name of the bucket.\n"
        }
      },
      "type": "object",
      "required": [
        "bucket",
        "obsBucketNotificationsId"
      ],
      "inputProperties": {
        "bucket": {
          "type": "string",
          "description": "Specifies the name of the source bucket.\nChanging this parameter will create a new resource.\n"
        },
        "notifications": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketNotificationsNotification:ObsBucketNotificationsNotification"
          },
          "description": "Specifies the list of OBS bucket Notification Configurations. The\nnotifications object structure is documented below.\n\n<a name=\"obs_notifications\"></a>\nThe `notifications` block supports:\n"
        },
        "obsBucketNotificationsId": {
          "type": "string",
          "description": "The name of the bucket.\n"
        }
      },
      "requiredInputs": [
        "bucket"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ObsBucketNotifications resources.\n",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "Specifies the name of the source bucket.\nChanging this parameter will create a new resource.\n"
          },
          "notifications": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FObsBucketNotificationsNotification:ObsBucketNotificationsNotification"
            },
            "description": "Specifies the list of OBS bucket Notification Configurations. The\nnotifications object structure is documented below.\n\n<a name=\"obs_notifications\"></a>\nThe `notifications` block supports:\n"
          },
          "obsBucketNotificationsId": {
            "type": "string",
            "description": "The name of the bucket.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/obsBucketObject:ObsBucketObject": {
      "description": "Manages an OBS bucket object resource within FlexibleEngine.\n\n## Example Usage\n\n### Uploading to a bucket\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst object = new flexibleengine.ObsBucketObject(\"object\", {\n    bucket: \"your_bucket_name\",\n    content: \"some object content\",\n    contentType: \"application/xml\",\n    key: \"new_key_from_content\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nobject = flexibleengine.ObsBucketObject(\"object\",\n    bucket=\"your_bucket_name\",\n    content=\"some object content\",\n    content_type=\"application/xml\",\n    key=\"new_key_from_content\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @object = new Flexibleengine.ObsBucketObject(\"object\", new()\n    {\n        Bucket = \"your_bucket_name\",\n        Content = \"some object content\",\n        ContentType = \"application/xml\",\n        Key = \"new_key_from_content\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewObsBucketObject(ctx, \"object\", &flexibleengine.ObsBucketObjectArgs{\n\t\t\tBucket:      pulumi.String(\"your_bucket_name\"),\n\t\t\tContent:     pulumi.String(\"some object content\"),\n\t\t\tContentType: pulumi.String(\"application/xml\"),\n\t\t\tKey:         pulumi.String(\"new_key_from_content\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucketObject;\nimport com.pulumi.flexibleengine.ObsBucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var object = new ObsBucketObject(\"object\", ObsBucketObjectArgs.builder()\n            .bucket(\"your_bucket_name\")\n            .content(\"some object content\")\n            .contentType(\"application/xml\")\n            .key(\"new_key_from_content\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  object:\n    type: flexibleengine:ObsBucketObject\n    properties:\n      bucket: your_bucket_name\n      content: some object content\n      contentType: application/xml\n      key: new_key_from_content\n```\n<!--End PulumiCodeChooser -->\n\n### Uploading a file to a bucket\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst examplebucket = new flexibleengine.ObsBucket(\"examplebucket\", {\n    bucket: \"examplebuckettftest\",\n    acl: \"private\",\n});\nconst object = new flexibleengine.ObsBucketObject(\"object\", {\n    bucket: examplebucket.bucket,\n    key: \"new_key_from_file\",\n    source: \"index.html\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexamplebucket = flexibleengine.ObsBucket(\"examplebucket\",\n    bucket=\"examplebuckettftest\",\n    acl=\"private\")\nobject = flexibleengine.ObsBucketObject(\"object\",\n    bucket=examplebucket.bucket,\n    key=\"new_key_from_file\",\n    source=\"index.html\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var examplebucket = new Flexibleengine.ObsBucket(\"examplebucket\", new()\n    {\n        Bucket = \"examplebuckettftest\",\n        Acl = \"private\",\n    });\n\n    var @object = new Flexibleengine.ObsBucketObject(\"object\", new()\n    {\n        Bucket = examplebucket.Bucket,\n        Key = \"new_key_from_file\",\n        Source = \"index.html\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texamplebucket, err := flexibleengine.NewObsBucket(ctx, \"examplebucket\", &flexibleengine.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"examplebuckettftest\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewObsBucketObject(ctx, \"object\", &flexibleengine.ObsBucketObjectArgs{\n\t\t\tBucket: examplebucket.Bucket,\n\t\t\tKey:    pulumi.String(\"new_key_from_file\"),\n\t\t\tSource: pulumi.String(\"index.html\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucket;\nimport com.pulumi.flexibleengine.ObsBucketArgs;\nimport com.pulumi.flexibleengine.ObsBucketObject;\nimport com.pulumi.flexibleengine.ObsBucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var examplebucket = new ObsBucket(\"examplebucket\", ObsBucketArgs.builder()\n            .bucket(\"examplebuckettftest\")\n            .acl(\"private\")\n            .build());\n\n        var object = new ObsBucketObject(\"object\", ObsBucketObjectArgs.builder()\n            .bucket(examplebucket.bucket())\n            .key(\"new_key_from_file\")\n            .source(\"index.html\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  examplebucket:\n    type: flexibleengine:ObsBucket\n    properties:\n      bucket: examplebuckettftest\n      acl: private\n  object:\n    type: flexibleengine:ObsBucketObject\n    properties:\n      bucket: ${examplebucket.bucket}\n      key: new_key_from_file\n      source: index.html\n```\n<!--End PulumiCodeChooser -->\n\n### Server Side Encryption with OBS Default Master Key\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst examplebucketObject = new flexibleengine.ObsBucketObject(\"examplebucketObject\", {\n    bucket: \"your_bucket_name\",\n    encryption: true,\n    key: \"someobject\",\n    source: \"index.html\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexamplebucket_object = flexibleengine.ObsBucketObject(\"examplebucketObject\",\n    bucket=\"your_bucket_name\",\n    encryption=True,\n    key=\"someobject\",\n    source=\"index.html\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var examplebucketObject = new Flexibleengine.ObsBucketObject(\"examplebucketObject\", new()\n    {\n        Bucket = \"your_bucket_name\",\n        Encryption = true,\n        Key = \"someobject\",\n        Source = \"index.html\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewObsBucketObject(ctx, \"examplebucketObject\", &flexibleengine.ObsBucketObjectArgs{\n\t\t\tBucket:     pulumi.String(\"your_bucket_name\"),\n\t\t\tEncryption: pulumi.Bool(true),\n\t\t\tKey:        pulumi.String(\"someobject\"),\n\t\t\tSource:     pulumi.String(\"index.html\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucketObject;\nimport com.pulumi.flexibleengine.ObsBucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var examplebucketObject = new ObsBucketObject(\"examplebucketObject\", ObsBucketObjectArgs.builder()\n            .bucket(\"your_bucket_name\")\n            .encryption(true)\n            .key(\"someobject\")\n            .source(\"index.html\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  examplebucketObject:\n    type: flexibleengine:ObsBucketObject\n    properties:\n      bucket: your_bucket_name\n      encryption: true\n      key: someobject\n      source: index.html\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "acl": {
          "type": "string",
          "description": "The ACL policy to apply. Defaults to `private`.\n"
        },
        "bucket": {
          "type": "string",
          "description": "The name of the bucket to put the file in. Changing this will create a\nnew resource.\n"
        },
        "content": {
          "type": "string",
          "description": "The literal content being uploaded to the bucket.\n"
        },
        "contentType": {
          "type": "string",
          "description": "A standard MIME type describing the format of the object data,\ne.g. application/octet-stream. All Valid MIME Types are valid for this input.\n"
        },
        "encryption": {
          "type": "boolean",
          "description": "Whether enable server-side encryption of the object in SSE-KMS mode.\n"
        },
        "etag": {
          "type": "string",
          "description": "Specifies the unique identifier of the object content. It can be used to trigger updates.\nThe only meaningful value is `md5(file(\"path_to_file\"))`.\n\nEither `source` or `content` must be provided to specify the bucket content.\nThese two arguments are mutually-exclusive.\n"
        },
        "key": {
          "type": "string",
          "description": "The name of the object once it is in the bucket. Changing this will create a\nnew resource.\n"
        },
        "kmsKeyId": {
          "type": "string",
          "description": "The ID of the kms key. If omitted, the default master key will be used.\n"
        },
        "obsBucketObjectId": {
          "type": "string",
          "description": "the `key` of the resource supplied above.\n"
        },
        "size": {
          "type": "number",
          "description": "the size of the object in bytes.\n"
        },
        "source": {
          "type": "string",
          "description": "The path to the source file being uploaded to the bucket.\n"
        },
        "storageClass": {
          "type": "string",
          "description": "Specifies the storage class of the object. Defaults to `STANDARD`.\n"
        },
        "versionId": {
          "type": "string",
          "description": "A unique version ID value for the object, if bucket versioning is enabled.\n"
        }
      },
      "type": "object",
      "required": [
        "bucket",
        "etag",
        "key",
        "obsBucketObjectId",
        "size",
        "storageClass",
        "versionId"
      ],
      "inputProperties": {
        "acl": {
          "type": "string",
          "description": "The ACL policy to apply. Defaults to `private`.\n"
        },
        "bucket": {
          "type": "string",
          "description": "The name of the bucket to put the file in. Changing this will create a\nnew resource.\n"
        },
        "content": {
          "type": "string",
          "description": "The literal content being uploaded to the bucket.\n"
        },
        "contentType": {
          "type": "string",
          "description": "A standard MIME type describing the format of the object data,\ne.g. application/octet-stream. All Valid MIME Types are valid for this input.\n"
        },
        "encryption": {
          "type": "boolean",
          "description": "Whether enable server-side encryption of the object in SSE-KMS mode.\n"
        },
        "etag": {
          "type": "string",
          "description": "Specifies the unique identifier of the object content. It can be used to trigger updates.\nThe only meaningful value is `md5(file(\"path_to_file\"))`.\n\nEither `source` or `content` must be provided to specify the bucket content.\nThese two arguments are mutually-exclusive.\n"
        },
        "key": {
          "type": "string",
          "description": "The name of the object once it is in the bucket. Changing this will create a\nnew resource.\n"
        },
        "kmsKeyId": {
          "type": "string",
          "description": "The ID of the kms key. If omitted, the default master key will be used.\n"
        },
        "obsBucketObjectId": {
          "type": "string",
          "description": "the `key` of the resource supplied above.\n"
        },
        "source": {
          "type": "string",
          "description": "The path to the source file being uploaded to the bucket.\n"
        },
        "storageClass": {
          "type": "string",
          "description": "Specifies the storage class of the object. Defaults to `STANDARD`.\n"
        }
      },
      "requiredInputs": [
        "bucket",
        "key"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ObsBucketObject resources.\n",
        "properties": {
          "acl": {
            "type": "string",
            "description": "The ACL policy to apply. Defaults to `private`.\n"
          },
          "bucket": {
            "type": "string",
            "description": "The name of the bucket to put the file in. Changing this will create a\nnew resource.\n"
          },
          "content": {
            "type": "string",
            "description": "The literal content being uploaded to the bucket.\n"
          },
          "contentType": {
            "type": "string",
            "description": "A standard MIME type describing the format of the object data,\ne.g. application/octet-stream. All Valid MIME Types are valid for this input.\n"
          },
          "encryption": {
            "type": "boolean",
            "description": "Whether enable server-side encryption of the object in SSE-KMS mode.\n"
          },
          "etag": {
            "type": "string",
            "description": "Specifies the unique identifier of the object content. It can be used to trigger updates.\nThe only meaningful value is `md5(file(\"path_to_file\"))`.\n\nEither `source` or `content` must be provided to specify the bucket content.\nThese two arguments are mutually-exclusive.\n"
          },
          "key": {
            "type": "string",
            "description": "The name of the object once it is in the bucket. Changing this will create a\nnew resource.\n"
          },
          "kmsKeyId": {
            "type": "string",
            "description": "The ID of the kms key. If omitted, the default master key will be used.\n"
          },
          "obsBucketObjectId": {
            "type": "string",
            "description": "the `key` of the resource supplied above.\n"
          },
          "size": {
            "type": "number",
            "description": "the size of the object in bytes.\n"
          },
          "source": {
            "type": "string",
            "description": "The path to the source file being uploaded to the bucket.\n"
          },
          "storageClass": {
            "type": "string",
            "description": "Specifies the storage class of the object. Defaults to `STANDARD`.\n"
          },
          "versionId": {
            "type": "string",
            "description": "A unique version ID value for the object, if bucket versioning is enabled.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/obsBucketObjectAcl:ObsBucketObjectAcl": {
      "description": "Manages an OBS bucket object acl resource within FlexibleEngine.\n\n> **NOTE:** When creating or updating the OBS bucket object acl, the original object acl will be overwritten. When\ndeleting the OBS bucket object acl, only the owner permissions will be retained, and the other permissions will be\nremoved.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst bucket = config.requireObject(\"bucket\");\nconst key = config.requireObject(\"key\");\nconst account1 = config.requireObject(\"account1\");\nconst account2 = config.requireObject(\"account2\");\nconst test = new flexibleengine.ObsBucketObjectAcl(\"test\", {\n    bucket: bucket,\n    key: key,\n    accountPermissions: [\n        {\n            accessToObjects: [\"READ\"],\n            accessToAcls: [\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            ],\n            accountId: account1,\n        },\n        {\n            accessToObjects: [\"READ\"],\n            accessToAcls: [\"READ_ACP\"],\n            accountId: account2,\n        },\n    ],\n    publicPermission: {\n        accessToAcls: [\n            \"READ_ACP\",\n            \"WRITE_ACP\",\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nbucket = config.require_object(\"bucket\")\nkey = config.require_object(\"key\")\naccount1 = config.require_object(\"account1\")\naccount2 = config.require_object(\"account2\")\ntest = flexibleengine.ObsBucketObjectAcl(\"test\",\n    bucket=bucket,\n    key=key,\n    account_permissions=[\n        {\n            \"access_to_objects\": [\"READ\"],\n            \"access_to_acls\": [\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            ],\n            \"account_id\": account1,\n        },\n        {\n            \"access_to_objects\": [\"READ\"],\n            \"access_to_acls\": [\"READ_ACP\"],\n            \"account_id\": account2,\n        },\n    ],\n    public_permission={\n        \"access_to_acls\": [\n            \"READ_ACP\",\n            \"WRITE_ACP\",\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bucket = config.RequireObject<dynamic>(\"bucket\");\n    var key = config.RequireObject<dynamic>(\"key\");\n    var account1 = config.RequireObject<dynamic>(\"account1\");\n    var account2 = config.RequireObject<dynamic>(\"account2\");\n    var test = new Flexibleengine.ObsBucketObjectAcl(\"test\", new()\n    {\n        Bucket = bucket,\n        Key = key,\n        AccountPermissions = new[]\n        {\n            new Flexibleengine.Inputs.ObsBucketObjectAclAccountPermissionArgs\n            {\n                AccessToObjects = new[]\n                {\n                    \"READ\",\n                },\n                AccessToAcls = new[]\n                {\n                    \"READ_ACP\",\n                    \"WRITE_ACP\",\n                },\n                AccountId = account1,\n            },\n            new Flexibleengine.Inputs.ObsBucketObjectAclAccountPermissionArgs\n            {\n                AccessToObjects = new[]\n                {\n                    \"READ\",\n                },\n                AccessToAcls = new[]\n                {\n                    \"READ_ACP\",\n                },\n                AccountId = account2,\n            },\n        },\n        PublicPermission = new Flexibleengine.Inputs.ObsBucketObjectAclPublicPermissionArgs\n        {\n            AccessToAcls = new[]\n            {\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbucket := cfg.RequireObject(\"bucket\")\n\t\tkey := cfg.RequireObject(\"key\")\n\t\taccount1 := cfg.RequireObject(\"account1\")\n\t\taccount2 := cfg.RequireObject(\"account2\")\n\t\t_, err := flexibleengine.NewObsBucketObjectAcl(ctx, \"test\", &flexibleengine.ObsBucketObjectAclArgs{\n\t\t\tBucket: pulumi.Any(bucket),\n\t\t\tKey:    pulumi.Any(key),\n\t\t\tAccountPermissions: flexibleengine.ObsBucketObjectAclAccountPermissionArray{\n\t\t\t\t&flexibleengine.ObsBucketObjectAclAccountPermissionArgs{\n\t\t\t\t\tAccessToObjects: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t},\n\t\t\t\t\tAccessToAcls: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ_ACP\"),\n\t\t\t\t\t\tpulumi.String(\"WRITE_ACP\"),\n\t\t\t\t\t},\n\t\t\t\t\tAccountId: pulumi.Any(account1),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.ObsBucketObjectAclAccountPermissionArgs{\n\t\t\t\t\tAccessToObjects: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t},\n\t\t\t\t\tAccessToAcls: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ_ACP\"),\n\t\t\t\t\t},\n\t\t\t\t\tAccountId: pulumi.Any(account2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPublicPermission: &flexibleengine.ObsBucketObjectAclPublicPermissionArgs{\n\t\t\t\tAccessToAcls: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"READ_ACP\"),\n\t\t\t\t\tpulumi.String(\"WRITE_ACP\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucketObjectAcl;\nimport com.pulumi.flexibleengine.ObsBucketObjectAclArgs;\nimport com.pulumi.flexibleengine.inputs.ObsBucketObjectAclAccountPermissionArgs;\nimport com.pulumi.flexibleengine.inputs.ObsBucketObjectAclPublicPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bucket = config.get(\"bucket\");\n        final var key = config.get(\"key\");\n        final var account1 = config.get(\"account1\");\n        final var account2 = config.get(\"account2\");\n        var test = new ObsBucketObjectAcl(\"test\", ObsBucketObjectAclArgs.builder()\n            .bucket(bucket)\n            .key(key)\n            .accountPermissions(            \n                ObsBucketObjectAclAccountPermissionArgs.builder()\n                    .accessToObjects(\"READ\")\n                    .accessToAcls(                    \n                        \"READ_ACP\",\n                        \"WRITE_ACP\")\n                    .accountId(account1)\n                    .build(),\n                ObsBucketObjectAclAccountPermissionArgs.builder()\n                    .accessToObjects(\"READ\")\n                    .accessToAcls(\"READ_ACP\")\n                    .accountId(account2)\n                    .build())\n            .publicPermission(ObsBucketObjectAclPublicPermissionArgs.builder()\n                .accessToAcls(                \n                    \"READ_ACP\",\n                    \"WRITE_ACP\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bucket:\n    type: dynamic\n  key:\n    type: dynamic\n  account1:\n    type: dynamic\n  account2:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:ObsBucketObjectAcl\n    properties:\n      bucket: ${bucket}\n      key: ${key}\n      accountPermissions:\n        - accessToObjects:\n            - READ\n          accessToAcls:\n            - READ_ACP\n            - WRITE_ACP\n          accountId: ${account1}\n        - accessToObjects:\n            - READ\n          accessToAcls:\n            - READ_ACP\n          accountId: ${account2}\n      publicPermission:\n        accessToAcls:\n          - READ_ACP\n          - WRITE_ACP\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe obs bucket object acl can be imported using `bucket` and `key`, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/obsBucketObjectAcl:ObsBucketObjectAcl test <bucket>/<key>\n```\n\n",
      "properties": {
        "accountPermissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketObjectAclAccountPermission:ObsBucketObjectAclAccountPermission"
          },
          "description": "Specifies the object account permissions.\nThe account_permission structure is documented below.\n\n<a name=\"permission_struct\"></a>\nThe `public_permission` block supports:\n"
        },
        "bucket": {
          "type": "string",
          "description": "Specifies the name of the bucket which the object belongs to.\n\nChanging this parameter will create a new resource.\n"
        },
        "key": {
          "type": "string",
          "description": "Specifies the name of the object to which to set the acl.\n\nChanging this parameter will create a new resource.\n"
        },
        "obsBucketObjectAclId": {
          "type": "string",
          "description": "The name of the bucket object key.\n"
        },
        "ownerPermissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketObjectAclOwnerPermission:ObsBucketObjectAclOwnerPermission"
          },
          "description": "The object owner permission information.\nThe owner_permission_struct structure is documented below.\n"
        },
        "publicPermission": {
          "$ref": "#/types/flexibleengine:index%2FObsBucketObjectAclPublicPermission:ObsBucketObjectAclPublicPermission",
          "description": "Specifies the object public permission.\nThe public_permission structure is documented below.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "bucket",
        "key",
        "obsBucketObjectAclId",
        "ownerPermissions",
        "region"
      ],
      "inputProperties": {
        "accountPermissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketObjectAclAccountPermission:ObsBucketObjectAclAccountPermission"
          },
          "description": "Specifies the object account permissions.\nThe account_permission structure is documented below.\n\n<a name=\"permission_struct\"></a>\nThe `public_permission` block supports:\n"
        },
        "bucket": {
          "type": "string",
          "description": "Specifies the name of the bucket which the object belongs to.\n\nChanging this parameter will create a new resource.\n"
        },
        "key": {
          "type": "string",
          "description": "Specifies the name of the object to which to set the acl.\n\nChanging this parameter will create a new resource.\n"
        },
        "obsBucketObjectAclId": {
          "type": "string",
          "description": "The name of the bucket object key.\n"
        },
        "publicPermission": {
          "$ref": "#/types/flexibleengine:index%2FObsBucketObjectAclPublicPermission:ObsBucketObjectAclPublicPermission",
          "description": "Specifies the object public permission.\nThe public_permission structure is documented below.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used.\n\nChanging this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "bucket",
        "key"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ObsBucketObjectAcl resources.\n",
        "properties": {
          "accountPermissions": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FObsBucketObjectAclAccountPermission:ObsBucketObjectAclAccountPermission"
            },
            "description": "Specifies the object account permissions.\nThe account_permission structure is documented below.\n\n<a name=\"permission_struct\"></a>\nThe `public_permission` block supports:\n"
          },
          "bucket": {
            "type": "string",
            "description": "Specifies the name of the bucket which the object belongs to.\n\nChanging this parameter will create a new resource.\n"
          },
          "key": {
            "type": "string",
            "description": "Specifies the name of the object to which to set the acl.\n\nChanging this parameter will create a new resource.\n"
          },
          "obsBucketObjectAclId": {
            "type": "string",
            "description": "The name of the bucket object key.\n"
          },
          "ownerPermissions": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FObsBucketObjectAclOwnerPermission:ObsBucketObjectAclOwnerPermission"
            },
            "description": "The object owner permission information.\nThe owner_permission_struct structure is documented below.\n"
          },
          "publicPermission": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketObjectAclPublicPermission:ObsBucketObjectAclPublicPermission",
            "description": "Specifies the object public permission.\nThe public_permission structure is documented below.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used.\n\nChanging this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/obsBucketPolicy:ObsBucketPolicy": {
      "description": "Attaches a policy to an OBS bucket resource.\n\n> **NOTE:** When creating or updating the OBS bucket policy, the original policy will be overwritten.\n\n## Example Usage\n\n### Policy with OBS format\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst bucket = new flexibleengine.ObsBucket(\"bucket\", {bucket: \"my-test-bucket\"});\nconst policy = new flexibleengine.ObsBucketPolicy(\"policy\", {\n    bucket: bucket.obsBucketId,\n    policy: `{\n  \"Statement\": [\n    {\n      \"Sid\": \"AddPerm\",\n      \"Effect\": \"Allow\",\n      \"Principal\": {\"ID\": \"*\"},\n      \"Action\": [\"GetObject\"],\n      \"Resource\": \"my-test-bucket/*\"\n    }\n  ]\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nbucket = flexibleengine.ObsBucket(\"bucket\", bucket=\"my-test-bucket\")\npolicy = flexibleengine.ObsBucketPolicy(\"policy\",\n    bucket=bucket.obs_bucket_id,\n    policy=\"\"\"{\n  \"Statement\": [\n    {\n      \"Sid\": \"AddPerm\",\n      \"Effect\": \"Allow\",\n      \"Principal\": {\"ID\": \"*\"},\n      \"Action\": [\"GetObject\"],\n      \"Resource\": \"my-test-bucket/*\"\n    }\n  ]\n}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = new Flexibleengine.ObsBucket(\"bucket\", new()\n    {\n        Bucket = \"my-test-bucket\",\n    });\n\n    var policy = new Flexibleengine.ObsBucketPolicy(\"policy\", new()\n    {\n        Bucket = bucket.ObsBucketId,\n        Policy = @\"{\n  \"\"Statement\"\": [\n    {\n      \"\"Sid\"\": \"\"AddPerm\"\",\n      \"\"Effect\"\": \"\"Allow\"\",\n      \"\"Principal\"\": {\"\"ID\"\": \"\"*\"\"},\n      \"\"Action\"\": [\"\"GetObject\"\"],\n      \"\"Resource\"\": \"\"my-test-bucket/*\"\"\n    }\n  ]\n}\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := flexibleengine.NewObsBucket(ctx, \"bucket\", &flexibleengine.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-test-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewObsBucketPolicy(ctx, \"policy\", &flexibleengine.ObsBucketPolicyArgs{\n\t\t\tBucket: bucket.ObsBucketId,\n\t\t\tPolicy: pulumi.String(`{\n  \"Statement\": [\n    {\n      \"Sid\": \"AddPerm\",\n      \"Effect\": \"Allow\",\n      \"Principal\": {\"ID\": \"*\"},\n      \"Action\": [\"GetObject\"],\n      \"Resource\": \"my-test-bucket/*\"\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucket;\nimport com.pulumi.flexibleengine.ObsBucketArgs;\nimport com.pulumi.flexibleengine.ObsBucketPolicy;\nimport com.pulumi.flexibleengine.ObsBucketPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new ObsBucket(\"bucket\", ObsBucketArgs.builder()\n            .bucket(\"my-test-bucket\")\n            .build());\n\n        var policy = new ObsBucketPolicy(\"policy\", ObsBucketPolicyArgs.builder()\n            .bucket(bucket.obsBucketId())\n            .policy(\"\"\"\n{\n  \"Statement\": [\n    {\n      \"Sid\": \"AddPerm\",\n      \"Effect\": \"Allow\",\n      \"Principal\": {\"ID\": \"*\"},\n      \"Action\": [\"GetObject\"],\n      \"Resource\": \"my-test-bucket/*\"\n    }\n  ]\n}\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: flexibleengine:ObsBucket\n    properties:\n      bucket: my-test-bucket\n  policy:\n    type: flexibleengine:ObsBucketPolicy\n    properties:\n      bucket: ${bucket.obsBucketId}\n      policy: |\n        {\n          \"Statement\": [\n            {\n              \"Sid\": \"AddPerm\",\n              \"Effect\": \"Allow\",\n              \"Principal\": {\"ID\": \"*\"},\n              \"Action\": [\"GetObject\"],\n              \"Resource\": \"my-test-bucket/*\"\n            }\n          ]\n        }\n```\n<!--End PulumiCodeChooser -->\n\n### Policy with S3 format\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst bucket = new flexibleengine.ObsBucket(\"bucket\", {bucket: \"my-test-bucket\"});\nconst s3Policy = new flexibleengine.ObsBucketPolicy(\"s3Policy\", {\n    bucket: bucket.obsBucketId,\n    policyFormat: \"s3\",\n    policy: `{\n  \"Version\": \"2008-10-17\",\n  \"Id\": \"MYBUCKETPOLICY\",\n  \"Statement\": [\n    {\n      \"Sid\": \"IPAllow\",\n      \"Effect\": \"Allow\",\n      \"Principal\": \"*\",\n      \"Action\": \"s3:*\",\n      \"Resource\": \"arn:aws:s3:::my-test-bucket/*\",\n      \"Condition\": {\n        \"IpAddress\": {\"aws:SourceIp\": \"8.8.8.8/32\"}\n      }\n    }\n  ]\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nbucket = flexibleengine.ObsBucket(\"bucket\", bucket=\"my-test-bucket\")\ns3_policy = flexibleengine.ObsBucketPolicy(\"s3Policy\",\n    bucket=bucket.obs_bucket_id,\n    policy_format=\"s3\",\n    policy=\"\"\"{\n  \"Version\": \"2008-10-17\",\n  \"Id\": \"MYBUCKETPOLICY\",\n  \"Statement\": [\n    {\n      \"Sid\": \"IPAllow\",\n      \"Effect\": \"Allow\",\n      \"Principal\": \"*\",\n      \"Action\": \"s3:*\",\n      \"Resource\": \"arn:aws:s3:::my-test-bucket/*\",\n      \"Condition\": {\n        \"IpAddress\": {\"aws:SourceIp\": \"8.8.8.8/32\"}\n      }\n    }\n  ]\n}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = new Flexibleengine.ObsBucket(\"bucket\", new()\n    {\n        Bucket = \"my-test-bucket\",\n    });\n\n    var s3Policy = new Flexibleengine.ObsBucketPolicy(\"s3Policy\", new()\n    {\n        Bucket = bucket.ObsBucketId,\n        PolicyFormat = \"s3\",\n        Policy = @\"{\n  \"\"Version\"\": \"\"2008-10-17\"\",\n  \"\"Id\"\": \"\"MYBUCKETPOLICY\"\",\n  \"\"Statement\"\": [\n    {\n      \"\"Sid\"\": \"\"IPAllow\"\",\n      \"\"Effect\"\": \"\"Allow\"\",\n      \"\"Principal\"\": \"\"*\"\",\n      \"\"Action\"\": \"\"s3:*\"\",\n      \"\"Resource\"\": \"\"arn:aws:s3:::my-test-bucket/*\"\",\n      \"\"Condition\"\": {\n        \"\"IpAddress\"\": {\"\"aws:SourceIp\"\": \"\"8.8.8.8/32\"\"}\n      }\n    }\n  ]\n}\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := flexibleengine.NewObsBucket(ctx, \"bucket\", &flexibleengine.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-test-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewObsBucketPolicy(ctx, \"s3Policy\", &flexibleengine.ObsBucketPolicyArgs{\n\t\t\tBucket:       bucket.ObsBucketId,\n\t\t\tPolicyFormat: pulumi.String(\"s3\"),\n\t\t\tPolicy: pulumi.String(`{\n  \"Version\": \"2008-10-17\",\n  \"Id\": \"MYBUCKETPOLICY\",\n  \"Statement\": [\n    {\n      \"Sid\": \"IPAllow\",\n      \"Effect\": \"Allow\",\n      \"Principal\": \"*\",\n      \"Action\": \"s3:*\",\n      \"Resource\": \"arn:aws:s3:::my-test-bucket/*\",\n      \"Condition\": {\n        \"IpAddress\": {\"aws:SourceIp\": \"8.8.8.8/32\"}\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucket;\nimport com.pulumi.flexibleengine.ObsBucketArgs;\nimport com.pulumi.flexibleengine.ObsBucketPolicy;\nimport com.pulumi.flexibleengine.ObsBucketPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new ObsBucket(\"bucket\", ObsBucketArgs.builder()\n            .bucket(\"my-test-bucket\")\n            .build());\n\n        var s3Policy = new ObsBucketPolicy(\"s3Policy\", ObsBucketPolicyArgs.builder()\n            .bucket(bucket.obsBucketId())\n            .policyFormat(\"s3\")\n            .policy(\"\"\"\n{\n  \"Version\": \"2008-10-17\",\n  \"Id\": \"MYBUCKETPOLICY\",\n  \"Statement\": [\n    {\n      \"Sid\": \"IPAllow\",\n      \"Effect\": \"Allow\",\n      \"Principal\": \"*\",\n      \"Action\": \"s3:*\",\n      \"Resource\": \"arn:aws:s3:::my-test-bucket/*\",\n      \"Condition\": {\n        \"IpAddress\": {\"aws:SourceIp\": \"8.8.8.8/32\"}\n      }\n    }\n  ]\n}\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: flexibleengine:ObsBucket\n    properties:\n      bucket: my-test-bucket\n  s3Policy:\n    type: flexibleengine:ObsBucketPolicy\n    properties:\n      bucket: ${bucket.obsBucketId}\n      policyFormat: s3\n      policy: |\n        {\n          \"Version\": \"2008-10-17\",\n          \"Id\": \"MYBUCKETPOLICY\",\n          \"Statement\": [\n            {\n              \"Sid\": \"IPAllow\",\n              \"Effect\": \"Allow\",\n              \"Principal\": \"*\",\n              \"Action\": \"s3:*\",\n              \"Resource\": \"arn:aws:s3:::my-test-bucket/*\",\n              \"Condition\": {\n                \"IpAddress\": {\"aws:SourceIp\": \"8.8.8.8/32\"}\n              }\n            }\n          ]\n        }\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nOBS format bucket policy can be imported using the `<bucket>`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/obsBucketPolicy:ObsBucketPolicy policy <bucket-name>\n```\n\nS3 foramt bucket policy can be imported using the `<bucket>` and \"s3\" by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/obsBucketPolicy:ObsBucketPolicy s3_policy <bucket-name>/s3\n```\n\n",
      "properties": {
        "bucket": {
          "type": "string",
          "description": "Specifies the name of the bucket to which to apply the policy.\nChanging this creates a new obs bucket policy resource.\n"
        },
        "obsBucketPolicyId": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "policy": {
          "type": "string",
          "description": "Specifies the text of the bucket policy in JSON format. For more information about obs\nformat bucket policy,\nsee the [Developer Guide](https://docs.prod-cloud-ocb.orange-business.com/usermanual/obs/en-us_topic_0045853745.html).\n"
        },
        "policyFormat": {
          "type": "string",
          "description": "Specifies the policy format, the supported values are *obs* and *s3*. Defaults\nto *obs* .\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the OBS bucket policy resource. If omitted, the\nprovider-level region will be used. Changing this creates a new OBS bucket policy resource.\n"
        }
      },
      "type": "object",
      "required": [
        "bucket",
        "obsBucketPolicyId",
        "policy",
        "region"
      ],
      "inputProperties": {
        "bucket": {
          "type": "string",
          "description": "Specifies the name of the bucket to which to apply the policy.\nChanging this creates a new obs bucket policy resource.\n"
        },
        "obsBucketPolicyId": {
          "type": "string",
          "description": "Specifies a resource ID in UUID format.\n"
        },
        "policy": {
          "type": "string",
          "description": "Specifies the text of the bucket policy in JSON format. For more information about obs\nformat bucket policy,\nsee the [Developer Guide](https://docs.prod-cloud-ocb.orange-business.com/usermanual/obs/en-us_topic_0045853745.html).\n"
        },
        "policyFormat": {
          "type": "string",
          "description": "Specifies the policy format, the supported values are *obs* and *s3*. Defaults\nto *obs* .\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the OBS bucket policy resource. If omitted, the\nprovider-level region will be used. Changing this creates a new OBS bucket policy resource.\n"
        }
      },
      "requiredInputs": [
        "bucket",
        "policy"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ObsBucketPolicy resources.\n",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "Specifies the name of the bucket to which to apply the policy.\nChanging this creates a new obs bucket policy resource.\n"
          },
          "obsBucketPolicyId": {
            "type": "string",
            "description": "Specifies a resource ID in UUID format.\n"
          },
          "policy": {
            "type": "string",
            "description": "Specifies the text of the bucket policy in JSON format. For more information about obs\nformat bucket policy,\nsee the [Developer Guide](https://docs.prod-cloud-ocb.orange-business.com/usermanual/obs/en-us_topic_0045853745.html).\n"
          },
          "policyFormat": {
            "type": "string",
            "description": "Specifies the policy format, the supported values are *obs* and *s3*. Defaults\nto *obs* .\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the OBS bucket policy resource. If omitted, the\nprovider-level region will be used. Changing this creates a new OBS bucket policy resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/obsBucketReplication:ObsBucketReplication": {
      "description": "Manages an OBS bucket **Cross-Region Replication** resource within FlexibleEngine.\n\n[Cross-Region replication](https://docs.prod-cloud-ocb.orange-business.com/usermanual/obs/obs_03_0002.html)\nprovides the capability for data disaster recovery across regions, catering to your needs for off-site data backup.\n\n## Example Usage\n\n### Replicate all objects\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst replica = new flexibleengine.ObsBucketReplication(\"replica\", {\n    agency: \"obs-fullaccess\",\n    bucket: \"my-source-bucket\",\n    destinationBucket: \"my-target-bucket\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nreplica = flexibleengine.ObsBucketReplication(\"replica\",\n    agency=\"obs-fullaccess\",\n    bucket=\"my-source-bucket\",\n    destination_bucket=\"my-target-bucket\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var replica = new Flexibleengine.ObsBucketReplication(\"replica\", new()\n    {\n        Agency = \"obs-fullaccess\",\n        Bucket = \"my-source-bucket\",\n        DestinationBucket = \"my-target-bucket\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewObsBucketReplication(ctx, \"replica\", &flexibleengine.ObsBucketReplicationArgs{\n\t\t\tAgency:            pulumi.String(\"obs-fullaccess\"),\n\t\t\tBucket:            pulumi.String(\"my-source-bucket\"),\n\t\t\tDestinationBucket: pulumi.String(\"my-target-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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucketReplication;\nimport com.pulumi.flexibleengine.ObsBucketReplicationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var replica = new ObsBucketReplication(\"replica\", ObsBucketReplicationArgs.builder()\n            .agency(\"obs-fullaccess\")\n            .bucket(\"my-source-bucket\")\n            .destinationBucket(\"my-target-bucket\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  replica:\n    type: flexibleengine:ObsBucketReplication\n    properties:\n      agency: obs-fullaccess\n      bucket: my-source-bucket\n      destinationBucket: my-target-bucket\n```\n<!--End PulumiCodeChooser -->\n\n### Replicate objects matched by prefix\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst replica = new flexibleengine.ObsBucketReplication(\"replica\", {\n    agency: \"obs-fullaccess\",\n    bucket: \"my-source-bucket\",\n    destinationBucket: \"my-target-bucket\",\n    rules: [\n        {\n            enabled: true,\n            prefix: \"log\",\n        },\n        {\n            enabled: false,\n            prefix: \"imgs/\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nreplica = flexibleengine.ObsBucketReplication(\"replica\",\n    agency=\"obs-fullaccess\",\n    bucket=\"my-source-bucket\",\n    destination_bucket=\"my-target-bucket\",\n    rules=[\n        {\n            \"enabled\": True,\n            \"prefix\": \"log\",\n        },\n        {\n            \"enabled\": False,\n            \"prefix\": \"imgs/\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var replica = new Flexibleengine.ObsBucketReplication(\"replica\", new()\n    {\n        Agency = \"obs-fullaccess\",\n        Bucket = \"my-source-bucket\",\n        DestinationBucket = \"my-target-bucket\",\n        Rules = new[]\n        {\n            new Flexibleengine.Inputs.ObsBucketReplicationRuleArgs\n            {\n                Enabled = true,\n                Prefix = \"log\",\n            },\n            new Flexibleengine.Inputs.ObsBucketReplicationRuleArgs\n            {\n                Enabled = false,\n                Prefix = \"imgs/\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewObsBucketReplication(ctx, \"replica\", &flexibleengine.ObsBucketReplicationArgs{\n\t\t\tAgency:            pulumi.String(\"obs-fullaccess\"),\n\t\t\tBucket:            pulumi.String(\"my-source-bucket\"),\n\t\t\tDestinationBucket: pulumi.String(\"my-target-bucket\"),\n\t\t\tRules: flexibleengine.ObsBucketReplicationRuleArray{\n\t\t\t\t&flexibleengine.ObsBucketReplicationRuleArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tPrefix:  pulumi.String(\"log\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.ObsBucketReplicationRuleArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tPrefix:  pulumi.String(\"imgs/\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.ObsBucketReplication;\nimport com.pulumi.flexibleengine.ObsBucketReplicationArgs;\nimport com.pulumi.flexibleengine.inputs.ObsBucketReplicationRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var replica = new ObsBucketReplication(\"replica\", ObsBucketReplicationArgs.builder()\n            .agency(\"obs-fullaccess\")\n            .bucket(\"my-source-bucket\")\n            .destinationBucket(\"my-target-bucket\")\n            .rules(            \n                ObsBucketReplicationRuleArgs.builder()\n                    .enabled(true)\n                    .prefix(\"log\")\n                    .build(),\n                ObsBucketReplicationRuleArgs.builder()\n                    .enabled(false)\n                    .prefix(\"imgs/\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  replica:\n    type: flexibleengine:ObsBucketReplication\n    properties:\n      agency: obs-fullaccess\n      bucket: my-source-bucket\n      destinationBucket: my-target-bucket\n      rules:\n        - enabled: true\n          prefix: log\n        - enabled: false\n          prefix: imgs/\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nOBS bucket cross-region replication can be imported using the *source bucket name*, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/obsBucketReplication:ObsBucketReplication replica my-source-bucket\n```\n\n",
      "properties": {
        "agency": {
          "type": "string",
          "description": "Specifies the IAM agency applied to the cross-region replication function.\n\n> The IAM agency is a cloud service agency of OBS. The OBS project must have the **OBS FullAccess** permissions.\n"
        },
        "bucket": {
          "type": "string",
          "description": "Specifies the name of the source bucket. Changing this parameter will create\na new resource.\n"
        },
        "destinationBucket": {
          "type": "string",
          "description": "Specifies the name of the destination bucket.\n\n> The destination bucket cannot be in the region where the source bucket resides.\n"
        },
        "obsBucketReplicationId": {
          "type": "string",
          "description": "The ID of a rule in UUID format.\n"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketReplicationRule:ObsBucketReplicationRule"
          },
          "description": "A configuration of object cross-region replication management.\nThe rule object structure is documented below.\n\n<a name=\"obs_arg_rule\"></a>\nThe `rule` block supports:\n"
        }
      },
      "type": "object",
      "required": [
        "agency",
        "bucket",
        "destinationBucket",
        "obsBucketReplicationId"
      ],
      "inputProperties": {
        "agency": {
          "type": "string",
          "description": "Specifies the IAM agency applied to the cross-region replication function.\n\n> The IAM agency is a cloud service agency of OBS. The OBS project must have the **OBS FullAccess** permissions.\n"
        },
        "bucket": {
          "type": "string",
          "description": "Specifies the name of the source bucket. Changing this parameter will create\na new resource.\n"
        },
        "destinationBucket": {
          "type": "string",
          "description": "Specifies the name of the destination bucket.\n\n> The destination bucket cannot be in the region where the source bucket resides.\n"
        },
        "obsBucketReplicationId": {
          "type": "string",
          "description": "The ID of a rule in UUID format.\n"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FObsBucketReplicationRule:ObsBucketReplicationRule"
          },
          "description": "A configuration of object cross-region replication management.\nThe rule object structure is documented below.\n\n<a name=\"obs_arg_rule\"></a>\nThe `rule` block supports:\n"
        }
      },
      "requiredInputs": [
        "agency",
        "bucket",
        "destinationBucket"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ObsBucketReplication resources.\n",
        "properties": {
          "agency": {
            "type": "string",
            "description": "Specifies the IAM agency applied to the cross-region replication function.\n\n> The IAM agency is a cloud service agency of OBS. The OBS project must have the **OBS FullAccess** permissions.\n"
          },
          "bucket": {
            "type": "string",
            "description": "Specifies the name of the source bucket. Changing this parameter will create\na new resource.\n"
          },
          "destinationBucket": {
            "type": "string",
            "description": "Specifies the name of the destination bucket.\n\n> The destination bucket cannot be in the region where the source bucket resides.\n"
          },
          "obsBucketReplicationId": {
            "type": "string",
            "description": "The ID of a rule in UUID format.\n"
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FObsBucketReplicationRule:ObsBucketReplicationRule"
            },
            "description": "A configuration of object cross-region replication management.\nThe rule object structure is documented below.\n\n<a name=\"obs_arg_rule\"></a>\nThe `rule` block supports:\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/rdsAccount:RdsAccount": {
      "description": "Manages RDS Mysql account resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst test = new flexibleengine.RdsAccount(\"test\", {\n    instanceId: instanceId,\n    password: \"Test@12345678\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = flexibleengine.RdsAccount(\"test\",\n    instance_id=instance_id,\n    password=\"Test@12345678\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = new Flexibleengine.RdsAccount(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Password = \"Test@12345678\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := flexibleengine.NewRdsAccount(ctx, \"test\", &flexibleengine.RdsAccountArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tPassword:   pulumi.String(\"Test@12345678\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.RdsAccount;\nimport com.pulumi.flexibleengine.RdsAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var test = new RdsAccount(\"test\", RdsAccountArgs.builder()\n            .instanceId(instanceId)\n            .password(\"Test@12345678\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:RdsAccount\n    properties:\n      instanceId: ${instanceId}\n      password: Test@12345678\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRDS account can be imported using the `instance id` and `account name`, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/rdsAccount:RdsAccount user_1 instance_id/account_name\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies remarks of the DB account.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the IP addresses that are allowed to access your DB instance.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the rds instance id. Changing this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the username of the db account. Only lowercase letters, digits,\nhyphens (-), and userscores (_) are allowed. Changing this will create a new resource.\n+ If the database version is MySQL 5.6, the username consists of 1 to 16 characters.\n+ If the database version is MySQL 5.7 or 8.0, the username consists of 1 to 32 characters.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the password of the db account. The parameter must be 8 to 32 characters\nlong and contain only letters(case-sensitive), digits, and special characters(~!@#$%^*-_=+?,()&). The value must be\ndifferent from name or name spelled backwards.\n",
          "secret": true
        },
        "rdsAccountId": {
          "type": "string",
          "description": "The resource ID of account which is formatted `<instance_id>/<account_name>`.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RDS account resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS account resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsAccountTimeouts:RdsAccountTimeouts"
        }
      },
      "type": "object",
      "required": [
        "hosts",
        "instanceId",
        "name",
        "password",
        "rdsAccountId",
        "region"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies remarks of the DB account.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the IP addresses that are allowed to access your DB instance.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the rds instance id. Changing this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the username of the db account. Only lowercase letters, digits,\nhyphens (-), and userscores (_) are allowed. Changing this will create a new resource.\n+ If the database version is MySQL 5.6, the username consists of 1 to 16 characters.\n+ If the database version is MySQL 5.7 or 8.0, the username consists of 1 to 32 characters.\n"
        },
        "password": {
          "type": "string",
          "description": "Specifies the password of the db account. The parameter must be 8 to 32 characters\nlong and contain only letters(case-sensitive), digits, and special characters(~!@#$%^*-_=+?,()&). The value must be\ndifferent from name or name spelled backwards.\n",
          "secret": true
        },
        "rdsAccountId": {
          "type": "string",
          "description": "The resource ID of account which is formatted `<instance_id>/<account_name>`.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RDS account resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS account resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsAccountTimeouts:RdsAccountTimeouts"
        }
      },
      "requiredInputs": [
        "instanceId",
        "password"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RdsAccount resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies remarks of the DB account.\n"
          },
          "hosts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the IP addresses that are allowed to access your DB instance.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the rds instance id. Changing this will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the username of the db account. Only lowercase letters, digits,\nhyphens (-), and userscores (_) are allowed. Changing this will create a new resource.\n+ If the database version is MySQL 5.6, the username consists of 1 to 16 characters.\n+ If the database version is MySQL 5.7 or 8.0, the username consists of 1 to 32 characters.\n"
          },
          "password": {
            "type": "string",
            "description": "Specifies the password of the db account. The parameter must be 8 to 32 characters\nlong and contain only letters(case-sensitive), digits, and special characters(~!@#$%^*-_=+?,()&). The value must be\ndifferent from name or name spelled backwards.\n",
            "secret": true
          },
          "rdsAccountId": {
            "type": "string",
            "description": "The resource ID of account which is formatted `<instance_id>/<account_name>`.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the RDS account resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS account resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FRdsAccountTimeouts:RdsAccountTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/rdsBackup:RdsBackup": {
      "description": "Manages a RDS manual backup resource within FlexibleEngine.  \n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst backupName = config.requireObject(\"backupName\");\nconst test = new flexibleengine.RdsBackup(\"test\", {instanceId: instanceId});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nbackup_name = config.require_object(\"backupName\")\ntest = flexibleengine.RdsBackup(\"test\", instance_id=instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var backupName = config.RequireObject<dynamic>(\"backupName\");\n    var test = new Flexibleengine.RdsBackup(\"test\", new()\n    {\n        InstanceId = instanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tbackupName := cfg.RequireObject(\"backupName\")\n\t\t_, err := flexibleengine.NewRdsBackup(ctx, \"test\", &flexibleengine.RdsBackupArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.RdsBackup;\nimport com.pulumi.flexibleengine.RdsBackupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var backupName = config.get(\"backupName\");\n        var test = new RdsBackup(\"test\", RdsBackupArgs.builder()\n            .instanceId(instanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  backupName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:RdsBackup\n    properties:\n      instanceId: ${instanceId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe rds manual backup can be imported using the instance ID and the backup ID separated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/rdsBackup:RdsBackup test 1ce123456a00f2591fabc00385ff1235/0ce123456a00f2591fabc00385ff1234\n```\n\n",
      "properties": {
        "associatedWithDdm": {
          "type": "boolean",
          "description": "Whether a DDM instance has been associated.\n"
        },
        "beginTime": {
          "type": "string",
          "description": "Backup start time in the \"yyyy-mm-ddThh:mm:ssZ\" format.\n"
        },
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FRdsBackupDatabase:RdsBackupDatabase"
          },
          "description": "List of self-built Microsoft SQL Server databases that are partially\nbacked up. (Only Microsoft SQL Server supports partial backups). The databases structure is\ndocumented below. Changing this parameter will create a new resource.\n\n<a name=\"rds_databases\"></a>\nThe `databases` block supports:\n"
        },
        "description": {
          "type": "string",
          "description": "The description about the backup.  \nIt contains a maximum of 256 characters and cannot contain the following special characters: **> ! < \" & ' =**.\nChanging this parameter will create a new resource.\n"
        },
        "endTime": {
          "type": "string",
          "description": "Backup end time in the \"yyyy-mm-ddThh:mm:ssZ\" format.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the instance id.\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Database to be backed up for Microsoft SQL Server.\nChanging this parameter will create a new resource.\n"
        },
        "rdsBackupId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "size": {
          "type": "number",
          "description": "Backup size in KB.\n"
        },
        "status": {
          "type": "string",
          "description": "Backup status. The options are as follows:\n+ **BUILDING**: Backup in progress.\n+ **COMPLETED**: Backup completed.\n+ **FAILED**: Backup failed.\n+ **DELETING**: Backup being deleted.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsBackupTimeouts:RdsBackupTimeouts"
        }
      },
      "type": "object",
      "required": [
        "associatedWithDdm",
        "beginTime",
        "description",
        "endTime",
        "instanceId",
        "name",
        "rdsBackupId",
        "region",
        "size",
        "status"
      ],
      "inputProperties": {
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FRdsBackupDatabase:RdsBackupDatabase"
          },
          "description": "List of self-built Microsoft SQL Server databases that are partially\nbacked up. (Only Microsoft SQL Server supports partial backups). The databases structure is\ndocumented below. Changing this parameter will create a new resource.\n\n<a name=\"rds_databases\"></a>\nThe `databases` block supports:\n"
        },
        "description": {
          "type": "string",
          "description": "The description about the backup.  \nIt contains a maximum of 256 characters and cannot contain the following special characters: **> ! < \" & ' =**.\nChanging this parameter will create a new resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the instance id.\nChanging this parameter will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Database to be backed up for Microsoft SQL Server.\nChanging this parameter will create a new resource.\n"
        },
        "rdsBackupId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsBackupTimeouts:RdsBackupTimeouts"
        }
      },
      "requiredInputs": [
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RdsBackup resources.\n",
        "properties": {
          "associatedWithDdm": {
            "type": "boolean",
            "description": "Whether a DDM instance has been associated.\n"
          },
          "beginTime": {
            "type": "string",
            "description": "Backup start time in the \"yyyy-mm-ddThh:mm:ssZ\" format.\n"
          },
          "databases": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FRdsBackupDatabase:RdsBackupDatabase"
            },
            "description": "List of self-built Microsoft SQL Server databases that are partially\nbacked up. (Only Microsoft SQL Server supports partial backups). The databases structure is\ndocumented below. Changing this parameter will create a new resource.\n\n<a name=\"rds_databases\"></a>\nThe `databases` block supports:\n"
          },
          "description": {
            "type": "string",
            "description": "The description about the backup.  \nIt contains a maximum of 256 characters and cannot contain the following special characters: **> ! < \" & ' =**.\nChanging this parameter will create a new resource.\n"
          },
          "endTime": {
            "type": "string",
            "description": "Backup end time in the \"yyyy-mm-ddThh:mm:ssZ\" format.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the instance id.\nChanging this parameter will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Database to be backed up for Microsoft SQL Server.\nChanging this parameter will create a new resource.\n"
          },
          "rdsBackupId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "size": {
            "type": "number",
            "description": "Backup size in KB.\n"
          },
          "status": {
            "type": "string",
            "description": "Backup status. The options are as follows:\n+ **BUILDING**: Backup in progress.\n+ **COMPLETED**: Backup completed.\n+ **FAILED**: Backup failed.\n+ **DELETING**: Backup being deleted.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FRdsBackupTimeouts:RdsBackupTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/rdsCrossRegionBackupStrategy:RdsCrossRegionBackupStrategy": {
      "description": "Manages RDS cross-region backup strategy resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst destinationRegion = config.requireObject(\"destinationRegion\");\nconst destinationProjectId = config.requireObject(\"destinationProjectId\");\nconst test = new flexibleengine.RdsCrossRegionBackupStrategy(\"test\", {\n    instanceId: instanceId,\n    backupType: \"all\",\n    keepDays: 5,\n    destinationRegion: destinationRegion,\n    destinationProjectId: destinationProjectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ndestination_region = config.require_object(\"destinationRegion\")\ndestination_project_id = config.require_object(\"destinationProjectId\")\ntest = flexibleengine.RdsCrossRegionBackupStrategy(\"test\",\n    instance_id=instance_id,\n    backup_type=\"all\",\n    keep_days=5,\n    destination_region=destination_region,\n    destination_project_id=destination_project_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var destinationRegion = config.RequireObject<dynamic>(\"destinationRegion\");\n    var destinationProjectId = config.RequireObject<dynamic>(\"destinationProjectId\");\n    var test = new Flexibleengine.RdsCrossRegionBackupStrategy(\"test\", new()\n    {\n        InstanceId = instanceId,\n        BackupType = \"all\",\n        KeepDays = 5,\n        DestinationRegion = destinationRegion,\n        DestinationProjectId = destinationProjectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tdestinationRegion := cfg.RequireObject(\"destinationRegion\")\n\t\tdestinationProjectId := cfg.RequireObject(\"destinationProjectId\")\n\t\t_, err := flexibleengine.NewRdsCrossRegionBackupStrategy(ctx, \"test\", &flexibleengine.RdsCrossRegionBackupStrategyArgs{\n\t\t\tInstanceId:           pulumi.Any(instanceId),\n\t\t\tBackupType:           pulumi.String(\"all\"),\n\t\t\tKeepDays:             pulumi.Float64(5),\n\t\t\tDestinationRegion:    pulumi.Any(destinationRegion),\n\t\t\tDestinationProjectId: pulumi.Any(destinationProjectId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.RdsCrossRegionBackupStrategy;\nimport com.pulumi.flexibleengine.RdsCrossRegionBackupStrategyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var destinationRegion = config.get(\"destinationRegion\");\n        final var destinationProjectId = config.get(\"destinationProjectId\");\n        var test = new RdsCrossRegionBackupStrategy(\"test\", RdsCrossRegionBackupStrategyArgs.builder()\n            .instanceId(instanceId)\n            .backupType(\"all\")\n            .keepDays(5)\n            .destinationRegion(destinationRegion)\n            .destinationProjectId(destinationProjectId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  destinationRegion:\n    type: dynamic\n  destinationProjectId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:RdsCrossRegionBackupStrategy\n    properties:\n      instanceId: ${instanceId}\n      backupType: all\n      keepDays: 5\n      destinationRegion: ${destinationRegion}\n      destinationProjectId: ${destinationProjectId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe RDS cross-region backup strategy can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/rdsCrossRegionBackupStrategy:RdsCrossRegionBackupStrategy test <id>\n```\n\n",
      "properties": {
        "backupType": {
          "type": "string",
          "description": "Specifies the backup type. Value options:\n+ **auto**: open automated full backup.\n+ **all**: open both automated full backup and automated incremental backup.\n\nOnly **all** is supported for SQL server.\n"
        },
        "destinationProjectId": {
          "type": "string",
          "description": "Specifies the target project ID for the cross-region backup\npolicy.\n\nChanging this parameter will create a new resource.\n"
        },
        "destinationRegion": {
          "type": "string",
          "description": "Specifies the target region ID for the cross-region backup policy.\n\nChanging this parameter will create a new resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the RDS instance.\n\nChanging this parameter will create a new resource.\n"
        },
        "keepDays": {
          "type": "number",
          "description": "Specifies the number of days to retain the generated backup files.\nValue ranges from `1` to `1825`.\n"
        },
        "rdsCrossRegionBackupStrategyId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsCrossRegionBackupStrategyTimeouts:RdsCrossRegionBackupStrategyTimeouts"
        }
      },
      "type": "object",
      "required": [
        "backupType",
        "destinationProjectId",
        "destinationRegion",
        "instanceId",
        "keepDays",
        "rdsCrossRegionBackupStrategyId",
        "region"
      ],
      "inputProperties": {
        "backupType": {
          "type": "string",
          "description": "Specifies the backup type. Value options:\n+ **auto**: open automated full backup.\n+ **all**: open both automated full backup and automated incremental backup.\n\nOnly **all** is supported for SQL server.\n"
        },
        "destinationProjectId": {
          "type": "string",
          "description": "Specifies the target project ID for the cross-region backup\npolicy.\n\nChanging this parameter will create a new resource.\n"
        },
        "destinationRegion": {
          "type": "string",
          "description": "Specifies the target region ID for the cross-region backup policy.\n\nChanging this parameter will create a new resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the RDS instance.\n\nChanging this parameter will create a new resource.\n"
        },
        "keepDays": {
          "type": "number",
          "description": "Specifies the number of days to retain the generated backup files.\nValue ranges from `1` to `1825`.\n"
        },
        "rdsCrossRegionBackupStrategyId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsCrossRegionBackupStrategyTimeouts:RdsCrossRegionBackupStrategyTimeouts"
        }
      },
      "requiredInputs": [
        "backupType",
        "destinationProjectId",
        "destinationRegion",
        "instanceId",
        "keepDays"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RdsCrossRegionBackupStrategy resources.\n",
        "properties": {
          "backupType": {
            "type": "string",
            "description": "Specifies the backup type. Value options:\n+ **auto**: open automated full backup.\n+ **all**: open both automated full backup and automated incremental backup.\n\nOnly **all** is supported for SQL server.\n"
          },
          "destinationProjectId": {
            "type": "string",
            "description": "Specifies the target project ID for the cross-region backup\npolicy.\n\nChanging this parameter will create a new resource.\n"
          },
          "destinationRegion": {
            "type": "string",
            "description": "Specifies the target region ID for the cross-region backup policy.\n\nChanging this parameter will create a new resource.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the RDS instance.\n\nChanging this parameter will create a new resource.\n"
          },
          "keepDays": {
            "type": "number",
            "description": "Specifies the number of days to retain the generated backup files.\nValue ranges from `1` to `1825`.\n"
          },
          "rdsCrossRegionBackupStrategyId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FRdsCrossRegionBackupStrategyTimeouts:RdsCrossRegionBackupStrategyTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/rdsDatabase:RdsDatabase": {
      "description": "Manages RDS Mysql database resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst test = new flexibleengine.RdsDatabase(\"test\", {\n    instanceId: instanceId,\n    characterSet: \"utf8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = flexibleengine.RdsDatabase(\"test\",\n    instance_id=instance_id,\n    character_set=\"utf8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = new Flexibleengine.RdsDatabase(\"test\", new()\n    {\n        InstanceId = instanceId,\n        CharacterSet = \"utf8\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := flexibleengine.NewRdsDatabase(ctx, \"test\", &flexibleengine.RdsDatabaseArgs{\n\t\t\tInstanceId:   pulumi.Any(instanceId),\n\t\t\tCharacterSet: pulumi.String(\"utf8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.RdsDatabase;\nimport com.pulumi.flexibleengine.RdsDatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var test = new RdsDatabase(\"test\", RdsDatabaseArgs.builder()\n            .instanceId(instanceId)\n            .characterSet(\"utf8\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:RdsDatabase\n    properties:\n      instanceId: ${instanceId}\n      characterSet: utf8\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRDS database can be imported using the `instance id` and `database name`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/rdsDatabase:RdsDatabase database_1 instance_id/database_name\n```\n\n",
      "properties": {
        "characterSet": {
          "type": "string",
          "description": "Specifies the character set used by the database, For example **utf8**,\n**gbk**, **ascii**, etc. Changing this will create a new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the database description. The value can contain **0** to **512**\ncharacters. This parameter takes effect only for DB instances whose kernel versions are at least **5.6.51.3**,\n**5.7.33.1**, or **8.0.21.4**.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the RDS instance ID. Changing this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the database name. The database name contains **1** to **64**\ncharacters. The name can only consist of lowercase letters, digits, hyphens (-), underscores (_) and dollar signs\n($). The total number of hyphens (-) and dollar signs ($) cannot exceed **10**. RDS for **MySQL 8.0** does not\nsupport dollar signs ($). Changing this will create a new resource.\n"
        },
        "rdsDatabaseId": {
          "type": "string",
          "description": "The resource ID of database which is formatted `<instance_id>/<database_name>`.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RDS database resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS database resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsDatabaseTimeouts:RdsDatabaseTimeouts"
        }
      },
      "type": "object",
      "required": [
        "characterSet",
        "instanceId",
        "name",
        "rdsDatabaseId",
        "region"
      ],
      "inputProperties": {
        "characterSet": {
          "type": "string",
          "description": "Specifies the character set used by the database, For example **utf8**,\n**gbk**, **ascii**, etc. Changing this will create a new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the database description. The value can contain **0** to **512**\ncharacters. This parameter takes effect only for DB instances whose kernel versions are at least **5.6.51.3**,\n**5.7.33.1**, or **8.0.21.4**.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the RDS instance ID. Changing this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the database name. The database name contains **1** to **64**\ncharacters. The name can only consist of lowercase letters, digits, hyphens (-), underscores (_) and dollar signs\n($). The total number of hyphens (-) and dollar signs ($) cannot exceed **10**. RDS for **MySQL 8.0** does not\nsupport dollar signs ($). Changing this will create a new resource.\n"
        },
        "rdsDatabaseId": {
          "type": "string",
          "description": "The resource ID of database which is formatted `<instance_id>/<database_name>`.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RDS database resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS database resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsDatabaseTimeouts:RdsDatabaseTimeouts"
        }
      },
      "requiredInputs": [
        "characterSet",
        "instanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RdsDatabase resources.\n",
        "properties": {
          "characterSet": {
            "type": "string",
            "description": "Specifies the character set used by the database, For example **utf8**,\n**gbk**, **ascii**, etc. Changing this will create a new resource.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the database description. The value can contain **0** to **512**\ncharacters. This parameter takes effect only for DB instances whose kernel versions are at least **5.6.51.3**,\n**5.7.33.1**, or **8.0.21.4**.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the RDS instance ID. Changing this will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the database name. The database name contains **1** to **64**\ncharacters. The name can only consist of lowercase letters, digits, hyphens (-), underscores (_) and dollar signs\n($). The total number of hyphens (-) and dollar signs ($) cannot exceed **10**. RDS for **MySQL 8.0** does not\nsupport dollar signs ($). Changing this will create a new resource.\n"
          },
          "rdsDatabaseId": {
            "type": "string",
            "description": "The resource ID of database which is formatted `<instance_id>/<database_name>`.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the RDS database resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS database resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FRdsDatabaseTimeouts:RdsDatabaseTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/rdsDatabasePrivilege:RdsDatabasePrivilege": {
      "description": "Manages RDS Mysql database privilege resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst dbName = config.requireObject(\"dbName\");\nconst userName1 = config.requireObject(\"userName1\");\nconst userName2 = config.requireObject(\"userName2\");\nconst test = new flexibleengine.RdsDatabasePrivilege(\"test\", {\n    instanceId: instanceId,\n    dbName: dbName,\n    users: [\n        {\n            name: userName1,\n            readonly: true,\n        },\n        {\n            name: userName2,\n            readonly: false,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ndb_name = config.require_object(\"dbName\")\nuser_name1 = config.require_object(\"userName1\")\nuser_name2 = config.require_object(\"userName2\")\ntest = flexibleengine.RdsDatabasePrivilege(\"test\",\n    instance_id=instance_id,\n    db_name=db_name,\n    users=[\n        {\n            \"name\": user_name1,\n            \"readonly\": True,\n        },\n        {\n            \"name\": user_name2,\n            \"readonly\": False,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var dbName = config.RequireObject<dynamic>(\"dbName\");\n    var userName1 = config.RequireObject<dynamic>(\"userName1\");\n    var userName2 = config.RequireObject<dynamic>(\"userName2\");\n    var test = new Flexibleengine.RdsDatabasePrivilege(\"test\", new()\n    {\n        InstanceId = instanceId,\n        DbName = dbName,\n        Users = new[]\n        {\n            new Flexibleengine.Inputs.RdsDatabasePrivilegeUserArgs\n            {\n                Name = userName1,\n                Readonly = true,\n            },\n            new Flexibleengine.Inputs.RdsDatabasePrivilegeUserArgs\n            {\n                Name = userName2,\n                Readonly = false,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tdbName := cfg.RequireObject(\"dbName\")\n\t\tuserName1 := cfg.RequireObject(\"userName1\")\n\t\tuserName2 := cfg.RequireObject(\"userName2\")\n\t\t_, err := flexibleengine.NewRdsDatabasePrivilege(ctx, \"test\", &flexibleengine.RdsDatabasePrivilegeArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tDbName:     pulumi.Any(dbName),\n\t\t\tUsers: flexibleengine.RdsDatabasePrivilegeUserArray{\n\t\t\t\t&flexibleengine.RdsDatabasePrivilegeUserArgs{\n\t\t\t\t\tName:     pulumi.Any(userName1),\n\t\t\t\t\tReadonly: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.RdsDatabasePrivilegeUserArgs{\n\t\t\t\t\tName:     pulumi.Any(userName2),\n\t\t\t\t\tReadonly: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.RdsDatabasePrivilege;\nimport com.pulumi.flexibleengine.RdsDatabasePrivilegeArgs;\nimport com.pulumi.flexibleengine.inputs.RdsDatabasePrivilegeUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var dbName = config.get(\"dbName\");\n        final var userName1 = config.get(\"userName1\");\n        final var userName2 = config.get(\"userName2\");\n        var test = new RdsDatabasePrivilege(\"test\", RdsDatabasePrivilegeArgs.builder()\n            .instanceId(instanceId)\n            .dbName(dbName)\n            .users(            \n                RdsDatabasePrivilegeUserArgs.builder()\n                    .name(userName1)\n                    .readonly(true)\n                    .build(),\n                RdsDatabasePrivilegeUserArgs.builder()\n                    .name(userName2)\n                    .readonly(false)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  dbName:\n    type: dynamic\n  userName1:\n    type: dynamic\n  userName2:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:RdsDatabasePrivilege\n    properties:\n      instanceId: ${instanceId}\n      dbName: ${dbName}\n      users:\n        - name: ${userName1}\n          readonly: true\n        - name: ${userName2}\n          readonly: false\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRDS database privilege can be imported using the `instance id` and `database name`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/rdsDatabasePrivilege:RdsDatabasePrivilege test instance_id/database_name\n```\n\n",
      "properties": {
        "dbName": {
          "type": "string",
          "description": "Specifies the database name. Changing this creates a new resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the RDS instance ID. Changing this will create a new resource.\n"
        },
        "rdsDatabasePrivilegeId": {
          "type": "string",
          "description": "The resource ID of database privilege which is formatted `<instance_id>/<database_name>`.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RDS database privilege resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS database privilege resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsDatabasePrivilegeTimeouts:RdsDatabasePrivilegeTimeouts"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FRdsDatabasePrivilegeUser:RdsDatabasePrivilegeUser"
          },
          "description": "Specifies the account that associated with the database. This parameter supports\na maximum of 50 elements. The users object structure is documented below.\nChanging this creates a new resource.\n\n<a name=\"rds_users\"></a>\nThe `users` block supports:\n"
        }
      },
      "type": "object",
      "required": [
        "dbName",
        "instanceId",
        "rdsDatabasePrivilegeId",
        "region",
        "users"
      ],
      "inputProperties": {
        "dbName": {
          "type": "string",
          "description": "Specifies the database name. Changing this creates a new resource.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the RDS instance ID. Changing this will create a new resource.\n"
        },
        "rdsDatabasePrivilegeId": {
          "type": "string",
          "description": "The resource ID of database privilege which is formatted `<instance_id>/<database_name>`.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RDS database privilege resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS database privilege resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsDatabasePrivilegeTimeouts:RdsDatabasePrivilegeTimeouts"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FRdsDatabasePrivilegeUser:RdsDatabasePrivilegeUser"
          },
          "description": "Specifies the account that associated with the database. This parameter supports\na maximum of 50 elements. The users object structure is documented below.\nChanging this creates a new resource.\n\n<a name=\"rds_users\"></a>\nThe `users` block supports:\n"
        }
      },
      "requiredInputs": [
        "dbName",
        "instanceId",
        "users"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RdsDatabasePrivilege resources.\n",
        "properties": {
          "dbName": {
            "type": "string",
            "description": "Specifies the database name. Changing this creates a new resource.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the RDS instance ID. Changing this will create a new resource.\n"
          },
          "rdsDatabasePrivilegeId": {
            "type": "string",
            "description": "The resource ID of database privilege which is formatted `<instance_id>/<database_name>`.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the RDS database privilege resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS database privilege resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FRdsDatabasePrivilegeTimeouts:RdsDatabasePrivilegeTimeouts"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FRdsDatabasePrivilegeUser:RdsDatabasePrivilegeUser"
            },
            "description": "Specifies the account that associated with the database. This parameter supports\na maximum of 50 elements. The users object structure is documented below.\nChanging this creates a new resource.\n\n<a name=\"rds_users\"></a>\nThe `users` block supports:\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/rdsInstanceV1:RdsInstanceV1": {
      "description": "Manages rds instance resource within FlexibleEngine\n\n!> **Warning:** It has been deprecated, using `flexibleengine.RdsInstanceV3` instead.\n\n## Example Usage\n\n",
      "properties": {
        "availabilityzone": {
          "type": "string",
          "description": "Specifies the ID of the AZ.\n"
        },
        "backupstrategy": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Backupstrategy:RdsInstanceV1Backupstrategy",
          "description": "Specifies the advanced backup policy. The structure\nis described below.\n"
        },
        "created": {
          "type": "string",
          "description": "Indicates the creation time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n"
        },
        "datastore": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Datastore:RdsInstanceV1Datastore",
          "description": "Specifies database information. The structure is\ndescribed below.\n"
        },
        "dbport": {
          "type": "string",
          "description": "Specifies the database port number.\n"
        },
        "dbrtpd": {
          "type": "string",
          "description": "Specifies the password for user root of the database.\n"
        },
        "flavorref": {
          "type": "string",
          "description": "Specifies the specification ID (flavors.id in the\nresponse message in Obtaining All DB Instance Specifications). If you want\nto enable ha for the rds instance, a flavor with ha speccode is required.\n"
        },
        "ha": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Ha:RdsInstanceV1Ha",
          "description": "Specifies the parameters configured on HA and is used when\ncreating HA DB instances. The structure is described below. NOTICE:\nRDS for Microsoft SQL Server does not support creating HA DB instances and\nthis parameter is not involved.\n"
        },
        "hostname": {
          "type": "string",
          "description": "Indicates the instance connection address. It is a blank string.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the DB instance name. The DB instance name of\nthe same type is unique in the same tenant. The changes of the instance name\nwill be suppressed in HA scenario.\n"
        },
        "nics": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Nics:RdsInstanceV1Nics",
          "description": "Specifies the nics information. For details about how\nto obtain this parameter value, see section \"Subnet\" in the Virtual Private\nCloud API Reference. The structure is described below.\n"
        },
        "rdsInstanceV1Id": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region ID.\n"
        },
        "securitygroup": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Securitygroup:RdsInstanceV1Securitygroup",
          "description": "Specifies the security group which the RDS DB\ninstance belongs to. The structure is described below.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the DB instance status.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Timeouts:RdsInstanceV1Timeouts"
        },
        "type": {
          "type": "string",
          "description": "Indicates the DB instance type, which can be master or readreplica.\n"
        },
        "updated": {
          "type": "string",
          "description": "Indicates the update time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n"
        },
        "volume": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Volume:RdsInstanceV1Volume",
          "description": "Specifies the volume information. The structure is described\nbelow.\n"
        },
        "vpc": {
          "type": "string",
          "description": "Specifies the VPC ID. For details about how to obtain this\nparameter value, see section \"Virtual Private Cloud\" in the Virtual Private\nCloud API Reference.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityzone",
        "created",
        "datastore",
        "dbrtpd",
        "flavorref",
        "hostname",
        "name",
        "nics",
        "rdsInstanceV1Id",
        "region",
        "securitygroup",
        "status",
        "type",
        "updated",
        "volume",
        "vpc"
      ],
      "inputProperties": {
        "availabilityzone": {
          "type": "string",
          "description": "Specifies the ID of the AZ.\n"
        },
        "backupstrategy": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Backupstrategy:RdsInstanceV1Backupstrategy",
          "description": "Specifies the advanced backup policy. The structure\nis described below.\n"
        },
        "created": {
          "type": "string",
          "description": "Indicates the creation time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n"
        },
        "datastore": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Datastore:RdsInstanceV1Datastore",
          "description": "Specifies database information. The structure is\ndescribed below.\n"
        },
        "dbport": {
          "type": "string",
          "description": "Specifies the database port number.\n"
        },
        "dbrtpd": {
          "type": "string",
          "description": "Specifies the password for user root of the database.\n"
        },
        "flavorref": {
          "type": "string",
          "description": "Specifies the specification ID (flavors.id in the\nresponse message in Obtaining All DB Instance Specifications). If you want\nto enable ha for the rds instance, a flavor with ha speccode is required.\n"
        },
        "ha": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Ha:RdsInstanceV1Ha",
          "description": "Specifies the parameters configured on HA and is used when\ncreating HA DB instances. The structure is described below. NOTICE:\nRDS for Microsoft SQL Server does not support creating HA DB instances and\nthis parameter is not involved.\n"
        },
        "hostname": {
          "type": "string",
          "description": "Indicates the instance connection address. It is a blank string.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the DB instance name. The DB instance name of\nthe same type is unique in the same tenant. The changes of the instance name\nwill be suppressed in HA scenario.\n"
        },
        "nics": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Nics:RdsInstanceV1Nics",
          "description": "Specifies the nics information. For details about how\nto obtain this parameter value, see section \"Subnet\" in the Virtual Private\nCloud API Reference. The structure is described below.\n"
        },
        "rdsInstanceV1Id": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region ID.\n"
        },
        "securitygroup": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Securitygroup:RdsInstanceV1Securitygroup",
          "description": "Specifies the security group which the RDS DB\ninstance belongs to. The structure is described below.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the DB instance status.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Timeouts:RdsInstanceV1Timeouts"
        },
        "type": {
          "type": "string",
          "description": "Indicates the DB instance type, which can be master or readreplica.\n"
        },
        "updated": {
          "type": "string",
          "description": "Indicates the update time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n"
        },
        "volume": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Volume:RdsInstanceV1Volume",
          "description": "Specifies the volume information. The structure is described\nbelow.\n"
        },
        "vpc": {
          "type": "string",
          "description": "Specifies the VPC ID. For details about how to obtain this\nparameter value, see section \"Virtual Private Cloud\" in the Virtual Private\nCloud API Reference.\n"
        }
      },
      "requiredInputs": [
        "availabilityzone",
        "datastore",
        "dbrtpd",
        "flavorref",
        "nics",
        "securitygroup",
        "volume",
        "vpc"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RdsInstanceV1 resources.\n",
        "properties": {
          "availabilityzone": {
            "type": "string",
            "description": "Specifies the ID of the AZ.\n"
          },
          "backupstrategy": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Backupstrategy:RdsInstanceV1Backupstrategy",
            "description": "Specifies the advanced backup policy. The structure\nis described below.\n"
          },
          "created": {
            "type": "string",
            "description": "Indicates the creation time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n"
          },
          "datastore": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Datastore:RdsInstanceV1Datastore",
            "description": "Specifies database information. The structure is\ndescribed below.\n"
          },
          "dbport": {
            "type": "string",
            "description": "Specifies the database port number.\n"
          },
          "dbrtpd": {
            "type": "string",
            "description": "Specifies the password for user root of the database.\n"
          },
          "flavorref": {
            "type": "string",
            "description": "Specifies the specification ID (flavors.id in the\nresponse message in Obtaining All DB Instance Specifications). If you want\nto enable ha for the rds instance, a flavor with ha speccode is required.\n"
          },
          "ha": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Ha:RdsInstanceV1Ha",
            "description": "Specifies the parameters configured on HA and is used when\ncreating HA DB instances. The structure is described below. NOTICE:\nRDS for Microsoft SQL Server does not support creating HA DB instances and\nthis parameter is not involved.\n"
          },
          "hostname": {
            "type": "string",
            "description": "Indicates the instance connection address. It is a blank string.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the DB instance name. The DB instance name of\nthe same type is unique in the same tenant. The changes of the instance name\nwill be suppressed in HA scenario.\n"
          },
          "nics": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Nics:RdsInstanceV1Nics",
            "description": "Specifies the nics information. For details about how\nto obtain this parameter value, see section \"Subnet\" in the Virtual Private\nCloud API Reference. The structure is described below.\n"
          },
          "rdsInstanceV1Id": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region ID.\n"
          },
          "securitygroup": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Securitygroup:RdsInstanceV1Securitygroup",
            "description": "Specifies the security group which the RDS DB\ninstance belongs to. The structure is described below.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the DB instance status.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Timeouts:RdsInstanceV1Timeouts"
          },
          "type": {
            "type": "string",
            "description": "Indicates the DB instance type, which can be master or readreplica.\n"
          },
          "updated": {
            "type": "string",
            "description": "Indicates the update time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n"
          },
          "volume": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV1Volume:RdsInstanceV1Volume",
            "description": "Specifies the volume information. The structure is described\nbelow.\n"
          },
          "vpc": {
            "type": "string",
            "description": "Specifies the VPC ID. For details about how to obtain this\nparameter value, see section \"Virtual Private Cloud\" in the Virtual Private\nCloud API Reference.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/rdsInstanceV3:RdsInstanceV3": {
      "description": "Manage RDS instance resource within FlexibleEngine.\n\n## Example Usage\n\n### create a single db instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst exampleSecgroup = new flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", {description: \"terraform security group acceptance test\"});\nconst instance = new flexibleengine.RdsInstanceV3(\"instance\", {\n    flavor: \"rds.pg.s3.medium.4\",\n    availabilityZones: [_var.primary_az],\n    securityGroupId: exampleSecgroup.networkingSecgroupV2Id,\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    db: {\n        type: \"PostgreSQL\",\n        version: \"11\",\n        password: _var.db_password,\n        port: 8635,\n    },\n    volume: {\n        type: \"COMMON\",\n        size: 100,\n    },\n    backupStrategy: {\n        startTime: \"08:00-09:00\",\n        keepDays: 1,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nexample_secgroup = flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", description=\"terraform security group acceptance test\")\ninstance = flexibleengine.RdsInstanceV3(\"instance\",\n    flavor=\"rds.pg.s3.medium.4\",\n    availability_zones=[var[\"primary_az\"]],\n    security_group_id=example_secgroup.networking_secgroup_v2_id,\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    db={\n        \"type\": \"PostgreSQL\",\n        \"version\": \"11\",\n        \"password\": var[\"db_password\"],\n        \"port\": 8635,\n    },\n    volume={\n        \"type\": \"COMMON\",\n        \"size\": 100,\n    },\n    backup_strategy={\n        \"start_time\": \"08:00-09:00\",\n        \"keep_days\": 1,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var exampleSecgroup = new Flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", new()\n    {\n        Description = \"terraform security group acceptance test\",\n    });\n\n    var instance = new Flexibleengine.RdsInstanceV3(\"instance\", new()\n    {\n        Flavor = \"rds.pg.s3.medium.4\",\n        AvailabilityZones = new[]\n        {\n            @var.Primary_az,\n        },\n        SecurityGroupId = exampleSecgroup.NetworkingSecgroupV2Id,\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        Db = new Flexibleengine.Inputs.RdsInstanceV3DbArgs\n        {\n            Type = \"PostgreSQL\",\n            Version = \"11\",\n            Password = @var.Db_password,\n            Port = 8635,\n        },\n        Volume = new Flexibleengine.Inputs.RdsInstanceV3VolumeArgs\n        {\n            Type = \"COMMON\",\n            Size = 100,\n        },\n        BackupStrategy = new Flexibleengine.Inputs.RdsInstanceV3BackupStrategyArgs\n        {\n            StartTime = \"08:00-09:00\",\n            KeepDays = 1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecgroup, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"exampleSecgroup\", &flexibleengine.NetworkingSecgroupV2Args{\n\t\t\tDescription: pulumi.String(\"terraform security group acceptance test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewRdsInstanceV3(ctx, \"instance\", &flexibleengine.RdsInstanceV3Args{\n\t\t\tFlavor: pulumi.String(\"rds.pg.s3.medium.4\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\t_var.Primary_az,\n\t\t\t},\n\t\t\tSecurityGroupId: exampleSecgroup.NetworkingSecgroupV2Id,\n\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\tSubnetId:        exampleSubnet.VpcSubnetV1Id,\n\t\t\tDb: &flexibleengine.RdsInstanceV3DbArgs{\n\t\t\t\tType:     pulumi.String(\"PostgreSQL\"),\n\t\t\t\tVersion:  pulumi.String(\"11\"),\n\t\t\t\tPassword: pulumi.Any(_var.Db_password),\n\t\t\t\tPort:     pulumi.Float64(8635),\n\t\t\t},\n\t\t\tVolume: &flexibleengine.RdsInstanceV3VolumeArgs{\n\t\t\t\tType: pulumi.String(\"COMMON\"),\n\t\t\t\tSize: pulumi.Float64(100),\n\t\t\t},\n\t\t\tBackupStrategy: &flexibleengine.RdsInstanceV3BackupStrategyArgs{\n\t\t\t\tStartTime: pulumi.String(\"08:00-09:00\"),\n\t\t\t\tKeepDays:  pulumi.Float64(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2Args;\nimport com.pulumi.flexibleengine.RdsInstanceV3;\nimport com.pulumi.flexibleengine.RdsInstanceV3Args;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3DbArgs;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3VolumeArgs;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3BackupStrategyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var exampleSecgroup = new NetworkingSecgroupV2(\"exampleSecgroup\", NetworkingSecgroupV2Args.builder()\n            .description(\"terraform security group acceptance test\")\n            .build());\n\n        var instance = new RdsInstanceV3(\"instance\", RdsInstanceV3Args.builder()\n            .flavor(\"rds.pg.s3.medium.4\")\n            .availabilityZones(var_.primary_az())\n            .securityGroupId(exampleSecgroup.networkingSecgroupV2Id())\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .db(RdsInstanceV3DbArgs.builder()\n                .type(\"PostgreSQL\")\n                .version(\"11\")\n                .password(var_.db_password())\n                .port(\"8635\")\n                .build())\n            .volume(RdsInstanceV3VolumeArgs.builder()\n                .type(\"COMMON\")\n                .size(100)\n                .build())\n            .backupStrategy(RdsInstanceV3BackupStrategyArgs.builder()\n                .startTime(\"08:00-09:00\")\n                .keepDays(1)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  exampleSecgroup:\n    type: flexibleengine:NetworkingSecgroupV2\n    properties:\n      description: terraform security group acceptance test\n  instance:\n    type: flexibleengine:RdsInstanceV3\n    properties:\n      flavor: rds.pg.s3.medium.4\n      availabilityZones:\n        - ${var.primary_az}\n      securityGroupId: ${exampleSecgroup.networkingSecgroupV2Id}\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      db:\n        type: PostgreSQL\n        version: '11'\n        password: ${var.db_password}\n        port: '8635'\n      volume:\n        type: COMMON\n        size: 100\n      backupStrategy:\n        startTime: 08:00-09:00\n        keepDays: 1\n```\n<!--End PulumiCodeChooser -->\n\n### create a primary/standby db instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst exampleSecgroup = new flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", {description: \"terraform security group acceptance test\"});\nconst instance = new flexibleengine.RdsInstanceV3(\"instance\", {\n    flavor: \"rds.pg.s3.large.4.ha\",\n    haReplicationMode: \"async\",\n    availabilityZones: [\n        _var.primary_az,\n        _var.standby_az,\n    ],\n    securityGroupId: exampleSecgroup.networkingSecgroupV2Id,\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    db: {\n        type: \"PostgreSQL\",\n        version: \"11\",\n        password: _var.db_password,\n        port: 8635,\n    },\n    volume: {\n        type: \"COMMON\",\n        size: 100,\n    },\n    backupStrategy: {\n        startTime: \"08:00-09:00\",\n        keepDays: 1,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nexample_secgroup = flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", description=\"terraform security group acceptance test\")\ninstance = flexibleengine.RdsInstanceV3(\"instance\",\n    flavor=\"rds.pg.s3.large.4.ha\",\n    ha_replication_mode=\"async\",\n    availability_zones=[\n        var[\"primary_az\"],\n        var[\"standby_az\"],\n    ],\n    security_group_id=example_secgroup.networking_secgroup_v2_id,\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    db={\n        \"type\": \"PostgreSQL\",\n        \"version\": \"11\",\n        \"password\": var[\"db_password\"],\n        \"port\": 8635,\n    },\n    volume={\n        \"type\": \"COMMON\",\n        \"size\": 100,\n    },\n    backup_strategy={\n        \"start_time\": \"08:00-09:00\",\n        \"keep_days\": 1,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var exampleSecgroup = new Flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", new()\n    {\n        Description = \"terraform security group acceptance test\",\n    });\n\n    var instance = new Flexibleengine.RdsInstanceV3(\"instance\", new()\n    {\n        Flavor = \"rds.pg.s3.large.4.ha\",\n        HaReplicationMode = \"async\",\n        AvailabilityZones = new[]\n        {\n            @var.Primary_az,\n            @var.Standby_az,\n        },\n        SecurityGroupId = exampleSecgroup.NetworkingSecgroupV2Id,\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        Db = new Flexibleengine.Inputs.RdsInstanceV3DbArgs\n        {\n            Type = \"PostgreSQL\",\n            Version = \"11\",\n            Password = @var.Db_password,\n            Port = 8635,\n        },\n        Volume = new Flexibleengine.Inputs.RdsInstanceV3VolumeArgs\n        {\n            Type = \"COMMON\",\n            Size = 100,\n        },\n        BackupStrategy = new Flexibleengine.Inputs.RdsInstanceV3BackupStrategyArgs\n        {\n            StartTime = \"08:00-09:00\",\n            KeepDays = 1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecgroup, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"exampleSecgroup\", &flexibleengine.NetworkingSecgroupV2Args{\n\t\t\tDescription: pulumi.String(\"terraform security group acceptance test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewRdsInstanceV3(ctx, \"instance\", &flexibleengine.RdsInstanceV3Args{\n\t\t\tFlavor:            pulumi.String(\"rds.pg.s3.large.4.ha\"),\n\t\t\tHaReplicationMode: pulumi.String(\"async\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\t_var.Primary_az,\n\t\t\t\t_var.Standby_az,\n\t\t\t},\n\t\t\tSecurityGroupId: exampleSecgroup.NetworkingSecgroupV2Id,\n\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\tSubnetId:        exampleSubnet.VpcSubnetV1Id,\n\t\t\tDb: &flexibleengine.RdsInstanceV3DbArgs{\n\t\t\t\tType:     pulumi.String(\"PostgreSQL\"),\n\t\t\t\tVersion:  pulumi.String(\"11\"),\n\t\t\t\tPassword: pulumi.Any(_var.Db_password),\n\t\t\t\tPort:     pulumi.Float64(8635),\n\t\t\t},\n\t\t\tVolume: &flexibleengine.RdsInstanceV3VolumeArgs{\n\t\t\t\tType: pulumi.String(\"COMMON\"),\n\t\t\t\tSize: pulumi.Float64(100),\n\t\t\t},\n\t\t\tBackupStrategy: &flexibleengine.RdsInstanceV3BackupStrategyArgs{\n\t\t\t\tStartTime: pulumi.String(\"08:00-09:00\"),\n\t\t\t\tKeepDays:  pulumi.Float64(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2Args;\nimport com.pulumi.flexibleengine.RdsInstanceV3;\nimport com.pulumi.flexibleengine.RdsInstanceV3Args;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3DbArgs;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3VolumeArgs;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3BackupStrategyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var exampleSecgroup = new NetworkingSecgroupV2(\"exampleSecgroup\", NetworkingSecgroupV2Args.builder()\n            .description(\"terraform security group acceptance test\")\n            .build());\n\n        var instance = new RdsInstanceV3(\"instance\", RdsInstanceV3Args.builder()\n            .flavor(\"rds.pg.s3.large.4.ha\")\n            .haReplicationMode(\"async\")\n            .availabilityZones(            \n                var_.primary_az(),\n                var_.standby_az())\n            .securityGroupId(exampleSecgroup.networkingSecgroupV2Id())\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .db(RdsInstanceV3DbArgs.builder()\n                .type(\"PostgreSQL\")\n                .version(\"11\")\n                .password(var_.db_password())\n                .port(\"8635\")\n                .build())\n            .volume(RdsInstanceV3VolumeArgs.builder()\n                .type(\"COMMON\")\n                .size(100)\n                .build())\n            .backupStrategy(RdsInstanceV3BackupStrategyArgs.builder()\n                .startTime(\"08:00-09:00\")\n                .keepDays(1)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  exampleSecgroup:\n    type: flexibleengine:NetworkingSecgroupV2\n    properties:\n      description: terraform security group acceptance test\n  instance:\n    type: flexibleengine:RdsInstanceV3\n    properties:\n      flavor: rds.pg.s3.large.4.ha\n      haReplicationMode: async\n      availabilityZones:\n        - ${var.primary_az}\n        - ${var.standby_az}\n      securityGroupId: ${exampleSecgroup.networkingSecgroupV2Id}\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      db:\n        type: PostgreSQL\n        version: '11'\n        password: ${var.db_password}\n        port: '8635'\n      volume:\n        type: COMMON\n        size: 100\n      backupStrategy:\n        startTime: 08:00-09:00\n        keepDays: 1\n```\n<!--End PulumiCodeChooser -->\n\n### create a single db instance with encrypted volume\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst key = new flexibleengine.KmsKeyV1(\"key\", {\n    keyAlias: \"key_1\",\n    keyDescription: \"first test key\",\n    isEnabled: true,\n});\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst exampleSecgroup = new flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", {description: \"terraform security group acceptance test\"});\nconst instance = new flexibleengine.RdsInstanceV3(\"instance\", {\n    flavor: \"rds.pg.s3.medium.4\",\n    availabilityZones: [_var.primary_az],\n    securityGroupId: exampleSecgroup.networkingSecgroupV2Id,\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    db: {\n        type: \"PostgreSQL\",\n        version: \"11\",\n        password: _var.db_password,\n        port: 8635,\n    },\n    volume: {\n        diskEncryptionId: key.kmsKeyV1Id,\n        type: \"COMMON\",\n        size: 100,\n    },\n    backupStrategy: {\n        startTime: \"08:00-09:00\",\n        keepDays: 1,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nkey = flexibleengine.KmsKeyV1(\"key\",\n    key_alias=\"key_1\",\n    key_description=\"first test key\",\n    is_enabled=True)\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nexample_secgroup = flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", description=\"terraform security group acceptance test\")\ninstance = flexibleengine.RdsInstanceV3(\"instance\",\n    flavor=\"rds.pg.s3.medium.4\",\n    availability_zones=[var[\"primary_az\"]],\n    security_group_id=example_secgroup.networking_secgroup_v2_id,\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    db={\n        \"type\": \"PostgreSQL\",\n        \"version\": \"11\",\n        \"password\": var[\"db_password\"],\n        \"port\": 8635,\n    },\n    volume={\n        \"disk_encryption_id\": key.kms_key_v1_id,\n        \"type\": \"COMMON\",\n        \"size\": 100,\n    },\n    backup_strategy={\n        \"start_time\": \"08:00-09:00\",\n        \"keep_days\": 1,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var key = new Flexibleengine.KmsKeyV1(\"key\", new()\n    {\n        KeyAlias = \"key_1\",\n        KeyDescription = \"first test key\",\n        IsEnabled = true,\n    });\n\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var exampleSecgroup = new Flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", new()\n    {\n        Description = \"terraform security group acceptance test\",\n    });\n\n    var instance = new Flexibleengine.RdsInstanceV3(\"instance\", new()\n    {\n        Flavor = \"rds.pg.s3.medium.4\",\n        AvailabilityZones = new[]\n        {\n            @var.Primary_az,\n        },\n        SecurityGroupId = exampleSecgroup.NetworkingSecgroupV2Id,\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        Db = new Flexibleengine.Inputs.RdsInstanceV3DbArgs\n        {\n            Type = \"PostgreSQL\",\n            Version = \"11\",\n            Password = @var.Db_password,\n            Port = 8635,\n        },\n        Volume = new Flexibleengine.Inputs.RdsInstanceV3VolumeArgs\n        {\n            DiskEncryptionId = key.KmsKeyV1Id,\n            Type = \"COMMON\",\n            Size = 100,\n        },\n        BackupStrategy = new Flexibleengine.Inputs.RdsInstanceV3BackupStrategyArgs\n        {\n            StartTime = \"08:00-09:00\",\n            KeepDays = 1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkey, err := flexibleengine.NewKmsKeyV1(ctx, \"key\", &flexibleengine.KmsKeyV1Args{\n\t\t\tKeyAlias:       pulumi.String(\"key_1\"),\n\t\t\tKeyDescription: pulumi.String(\"first test key\"),\n\t\t\tIsEnabled:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecgroup, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"exampleSecgroup\", &flexibleengine.NetworkingSecgroupV2Args{\n\t\t\tDescription: pulumi.String(\"terraform security group acceptance test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewRdsInstanceV3(ctx, \"instance\", &flexibleengine.RdsInstanceV3Args{\n\t\t\tFlavor: pulumi.String(\"rds.pg.s3.medium.4\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\t_var.Primary_az,\n\t\t\t},\n\t\t\tSecurityGroupId: exampleSecgroup.NetworkingSecgroupV2Id,\n\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\tSubnetId:        exampleSubnet.VpcSubnetV1Id,\n\t\t\tDb: &flexibleengine.RdsInstanceV3DbArgs{\n\t\t\t\tType:     pulumi.String(\"PostgreSQL\"),\n\t\t\t\tVersion:  pulumi.String(\"11\"),\n\t\t\t\tPassword: pulumi.Any(_var.Db_password),\n\t\t\t\tPort:     pulumi.Float64(8635),\n\t\t\t},\n\t\t\tVolume: &flexibleengine.RdsInstanceV3VolumeArgs{\n\t\t\t\tDiskEncryptionId: key.KmsKeyV1Id,\n\t\t\t\tType:             pulumi.String(\"COMMON\"),\n\t\t\t\tSize:             pulumi.Float64(100),\n\t\t\t},\n\t\t\tBackupStrategy: &flexibleengine.RdsInstanceV3BackupStrategyArgs{\n\t\t\t\tStartTime: pulumi.String(\"08:00-09:00\"),\n\t\t\t\tKeepDays:  pulumi.Float64(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.KmsKeyV1;\nimport com.pulumi.flexibleengine.KmsKeyV1Args;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2Args;\nimport com.pulumi.flexibleengine.RdsInstanceV3;\nimport com.pulumi.flexibleengine.RdsInstanceV3Args;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3DbArgs;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3VolumeArgs;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3BackupStrategyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var key = new KmsKeyV1(\"key\", KmsKeyV1Args.builder()\n            .keyAlias(\"key_1\")\n            .keyDescription(\"first test key\")\n            .isEnabled(true)\n            .build());\n\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var exampleSecgroup = new NetworkingSecgroupV2(\"exampleSecgroup\", NetworkingSecgroupV2Args.builder()\n            .description(\"terraform security group acceptance test\")\n            .build());\n\n        var instance = new RdsInstanceV3(\"instance\", RdsInstanceV3Args.builder()\n            .flavor(\"rds.pg.s3.medium.4\")\n            .availabilityZones(var_.primary_az())\n            .securityGroupId(exampleSecgroup.networkingSecgroupV2Id())\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .db(RdsInstanceV3DbArgs.builder()\n                .type(\"PostgreSQL\")\n                .version(\"11\")\n                .password(var_.db_password())\n                .port(\"8635\")\n                .build())\n            .volume(RdsInstanceV3VolumeArgs.builder()\n                .diskEncryptionId(key.kmsKeyV1Id())\n                .type(\"COMMON\")\n                .size(100)\n                .build())\n            .backupStrategy(RdsInstanceV3BackupStrategyArgs.builder()\n                .startTime(\"08:00-09:00\")\n                .keepDays(1)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  key:\n    type: flexibleengine:KmsKeyV1\n    properties:\n      keyAlias: key_1\n      keyDescription: first test key\n      isEnabled: true\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  exampleSecgroup:\n    type: flexibleengine:NetworkingSecgroupV2\n    properties:\n      description: terraform security group acceptance test\n  instance:\n    type: flexibleengine:RdsInstanceV3\n    properties:\n      flavor: rds.pg.s3.medium.4\n      availabilityZones:\n        - ${var.primary_az}\n      securityGroupId: ${exampleSecgroup.networkingSecgroupV2Id}\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      db:\n        type: PostgreSQL\n        version: '11'\n        password: ${var.db_password}\n        port: '8635'\n      volume:\n        diskEncryptionId: ${key.kmsKeyV1Id}\n        type: COMMON\n        size: 100\n      backupStrategy:\n        startTime: 08:00-09:00\n        keepDays: 1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRDS instance can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/rdsInstanceV3:RdsInstanceV3 instance_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\nBut due to some attributes missing from the API response, it's required to ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_rds_instance_v3\" \"instance_1\" {\n\n  ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      \"db\",\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "autoPay": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "autoRenew": {
          "type": "string"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of AZ name.\nChanging this parameter will create a new resource.\n"
        },
        "backupStrategy": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3BackupStrategy:RdsInstanceV3BackupStrategy",
          "description": "Specifies the advanced backup policy. The backup_strategy\nobject structure is documented below.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "collation": {
          "type": "string"
        },
        "created": {
          "type": "string",
          "description": "Indicates the creation time.\n"
        },
        "db": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Db:RdsInstanceV3Db",
          "description": "Specifies the database information. The db object structure is\ndocumented below. Changing this parameter will create a new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the instance. The value consists of 0 to 64\ncharacters, including letters, digits, periods (.), underscores (_), and hyphens (-).\n"
        },
        "dssPoolId": {
          "type": "string"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "fixedIp": {
          "type": "string",
          "description": "Specifies an intranet IP address of RDS DB instance.\nChanging this parameter will create a new resource.\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the specification code.\n\n> **NOTE:** Services will be interrupted for 5 to 10 minutes when you change RDS instance flavor.\n"
        },
        "haReplicationMode": {
          "type": "string",
          "description": "Specifies the replication mode for the standby DB instance.\nChanging this parameter will create a new resource.\n+ For MySQL, the value is *async* or *semisync*.\n+ For PostgreSQL, the value is *async* or *sync*.\n+ For SQLServer, the value is *sync*.\n+ For MariaDB, the value is *async* or *semisync*.\n\n> **NOTE:** async indicates the asynchronous replication mode. semisync indicates the semi-synchronous replication\nmode. sync indicates the synchronous replication mode.\n"
        },
        "lowerCaseTableNames": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Specifies the parameter name. Some of them needs the instance to be restarted\nto take effect.\n"
        },
        "nodes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Node:RdsInstanceV3Node"
          },
          "description": "Indicates the instance nodes information. The nodes object structure is documented below.\n"
        },
        "paramGroupId": {
          "type": "string",
          "description": "Specifies the parameter group ID.\nChanging this parameter will create a new resource.\n"
        },
        "parameters": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Parameter:RdsInstanceV3Parameter"
          },
          "description": "Specify an array of one or more parameters to be set to the RDS instance after\nlaunched. You can check on console to see which parameters supported. The parameters object\nstructure is documented below.\n\n<a name=\"rds_db\"></a>\nThe `db` block supports:\n"
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "privateIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the private IP address list.\nIt is a blank string until an ECS is created.\n"
        },
        "publicIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the public IP address list.\n"
        },
        "rdsInstanceV3Id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RDS instance resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS instance resource.\n"
        },
        "restore": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Restore:RdsInstanceV3Restore"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the security group which the RDS DB instance belongs to.\n"
        },
        "sslEnable": {
          "type": "boolean",
          "description": "Specifies whether to enable the SSL for **MySQL** database.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the node status.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the RDS instance.\nEach tag is represented by one key-value pair.\n"
        },
        "timeZone": {
          "type": "string",
          "description": "Specifies the UTC time zone. The value ranges from\nUTC-12:00 to UTC+12:00 at the full hour, and defaults to *UTC*.\nChanging this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Timeouts:RdsInstanceV3Timeouts"
        },
        "volume": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Volume:RdsInstanceV3Volume",
          "description": "Specifies the volume information. The volume object structure is\ndocumented below.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZones",
        "chargingMode",
        "created",
        "db",
        "enterpriseProjectId",
        "fixedIp",
        "flavor",
        "haReplicationMode",
        "name",
        "nodes",
        "privateIps",
        "publicIps",
        "rdsInstanceV3Id",
        "region",
        "securityGroupId",
        "status",
        "subnetId",
        "timeZone",
        "volume",
        "vpcId"
      ],
      "inputProperties": {
        "autoPay": {
          "type": "string",
          "deprecationMessage": "Deprecated"
        },
        "autoRenew": {
          "type": "string"
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of AZ name.\nChanging this parameter will create a new resource.\n"
        },
        "backupStrategy": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3BackupStrategy:RdsInstanceV3BackupStrategy",
          "description": "Specifies the advanced backup policy. The backup_strategy\nobject structure is documented below.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "collation": {
          "type": "string"
        },
        "db": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Db:RdsInstanceV3Db",
          "description": "Specifies the database information. The db object structure is\ndocumented below. Changing this parameter will create a new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the instance. The value consists of 0 to 64\ncharacters, including letters, digits, periods (.), underscores (_), and hyphens (-).\n"
        },
        "dssPoolId": {
          "type": "string"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "fixedIp": {
          "type": "string",
          "description": "Specifies an intranet IP address of RDS DB instance.\nChanging this parameter will create a new resource.\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the specification code.\n\n> **NOTE:** Services will be interrupted for 5 to 10 minutes when you change RDS instance flavor.\n"
        },
        "haReplicationMode": {
          "type": "string",
          "description": "Specifies the replication mode for the standby DB instance.\nChanging this parameter will create a new resource.\n+ For MySQL, the value is *async* or *semisync*.\n+ For PostgreSQL, the value is *async* or *sync*.\n+ For SQLServer, the value is *sync*.\n+ For MariaDB, the value is *async* or *semisync*.\n\n> **NOTE:** async indicates the asynchronous replication mode. semisync indicates the semi-synchronous replication\nmode. sync indicates the synchronous replication mode.\n"
        },
        "lowerCaseTableNames": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Specifies the parameter name. Some of them needs the instance to be restarted\nto take effect.\n"
        },
        "paramGroupId": {
          "type": "string",
          "description": "Specifies the parameter group ID.\nChanging this parameter will create a new resource.\n"
        },
        "parameters": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Parameter:RdsInstanceV3Parameter"
          },
          "description": "Specify an array of one or more parameters to be set to the RDS instance after\nlaunched. You can check on console to see which parameters supported. The parameters object\nstructure is documented below.\n\n<a name=\"rds_db\"></a>\nThe `db` block supports:\n"
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "rdsInstanceV3Id": {
          "type": "string",
          "description": "Indicates the node ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RDS instance resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS instance resource.\n"
        },
        "restore": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Restore:RdsInstanceV3Restore"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the security group which the RDS DB instance belongs to.\n"
        },
        "sslEnable": {
          "type": "boolean",
          "description": "Specifies whether to enable the SSL for **MySQL** database.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the RDS instance.\nEach tag is represented by one key-value pair.\n"
        },
        "timeZone": {
          "type": "string",
          "description": "Specifies the UTC time zone. The value ranges from\nUTC-12:00 to UTC+12:00 at the full hour, and defaults to *UTC*.\nChanging this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Timeouts:RdsInstanceV3Timeouts"
        },
        "volume": {
          "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Volume:RdsInstanceV3Volume",
          "description": "Specifies the volume information. The volume object structure is\ndocumented below.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID. Changing this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "availabilityZones",
        "db",
        "flavor",
        "securityGroupId",
        "subnetId",
        "volume",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RdsInstanceV3 resources.\n",
        "properties": {
          "autoPay": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "autoRenew": {
            "type": "string"
          },
          "availabilityZones": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the list of AZ name.\nChanging this parameter will create a new resource.\n"
          },
          "backupStrategy": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3BackupStrategy:RdsInstanceV3BackupStrategy",
            "description": "Specifies the advanced backup policy. The backup_strategy\nobject structure is documented below.\n"
          },
          "chargingMode": {
            "type": "string"
          },
          "collation": {
            "type": "string"
          },
          "created": {
            "type": "string",
            "description": "Indicates the creation time.\n"
          },
          "db": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Db:RdsInstanceV3Db",
            "description": "Specifies the database information. The db object structure is\ndocumented below. Changing this parameter will create a new resource.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the instance. The value consists of 0 to 64\ncharacters, including letters, digits, periods (.), underscores (_), and hyphens (-).\n"
          },
          "dssPoolId": {
            "type": "string"
          },
          "enterpriseProjectId": {
            "type": "string"
          },
          "fixedIp": {
            "type": "string",
            "description": "Specifies an intranet IP address of RDS DB instance.\nChanging this parameter will create a new resource.\n"
          },
          "flavor": {
            "type": "string",
            "description": "Specifies the specification code.\n\n> **NOTE:** Services will be interrupted for 5 to 10 minutes when you change RDS instance flavor.\n"
          },
          "haReplicationMode": {
            "type": "string",
            "description": "Specifies the replication mode for the standby DB instance.\nChanging this parameter will create a new resource.\n+ For MySQL, the value is *async* or *semisync*.\n+ For PostgreSQL, the value is *async* or *sync*.\n+ For SQLServer, the value is *sync*.\n+ For MariaDB, the value is *async* or *semisync*.\n\n> **NOTE:** async indicates the asynchronous replication mode. semisync indicates the semi-synchronous replication\nmode. sync indicates the synchronous replication mode.\n"
          },
          "lowerCaseTableNames": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Specifies the parameter name. Some of them needs the instance to be restarted\nto take effect.\n"
          },
          "nodes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Node:RdsInstanceV3Node"
            },
            "description": "Indicates the instance nodes information. The nodes object structure is documented below.\n"
          },
          "paramGroupId": {
            "type": "string",
            "description": "Specifies the parameter group ID.\nChanging this parameter will create a new resource.\n"
          },
          "parameters": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Parameter:RdsInstanceV3Parameter"
            },
            "description": "Specify an array of one or more parameters to be set to the RDS instance after\nlaunched. You can check on console to see which parameters supported. The parameters object\nstructure is documented below.\n\n<a name=\"rds_db\"></a>\nThe `db` block supports:\n"
          },
          "period": {
            "type": "number"
          },
          "periodUnit": {
            "type": "string"
          },
          "privateIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Indicates the private IP address list.\nIt is a blank string until an ECS is created.\n"
          },
          "publicIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Indicates the public IP address list.\n"
          },
          "rdsInstanceV3Id": {
            "type": "string",
            "description": "Indicates the node ID.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the RDS instance resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS instance resource.\n"
          },
          "restore": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Restore:RdsInstanceV3Restore"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Specifies the security group which the RDS DB instance belongs to.\n"
          },
          "sslEnable": {
            "type": "boolean",
            "description": "Specifies whether to enable the SSL for **MySQL** database.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the node status.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the ID of the VPC Subnet.\nChanging this parameter will create a new resource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the RDS instance.\nEach tag is represented by one key-value pair.\n"
          },
          "timeZone": {
            "type": "string",
            "description": "Specifies the UTC time zone. The value ranges from\nUTC-12:00 to UTC+12:00 at the full hour, and defaults to *UTC*.\nChanging this parameter will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Timeouts:RdsInstanceV3Timeouts"
          },
          "volume": {
            "$ref": "#/types/flexibleengine:index%2FRdsInstanceV3Volume:RdsInstanceV3Volume",
            "description": "Specifies the volume information. The volume object structure is\ndocumented below.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC ID. Changing this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/rdsParametergroupV3:RdsParametergroupV3": {
      "description": "Manages a V3 RDS parametergroup resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst pg1 = new flexibleengine.RdsParametergroupV3(\"pg1\", {\n    datastore: {\n        type: \"mysql\",\n        version: \"5.6\",\n    },\n    description: \"description_1\",\n    values: {\n        autocommit: \"OFF\",\n        max_connections: \"10\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\npg1 = flexibleengine.RdsParametergroupV3(\"pg1\",\n    datastore={\n        \"type\": \"mysql\",\n        \"version\": \"5.6\",\n    },\n    description=\"description_1\",\n    values={\n        \"autocommit\": \"OFF\",\n        \"max_connections\": \"10\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var pg1 = new Flexibleengine.RdsParametergroupV3(\"pg1\", new()\n    {\n        Datastore = new Flexibleengine.Inputs.RdsParametergroupV3DatastoreArgs\n        {\n            Type = \"mysql\",\n            Version = \"5.6\",\n        },\n        Description = \"description_1\",\n        Values = \n        {\n            { \"autocommit\", \"OFF\" },\n            { \"max_connections\", \"10\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewRdsParametergroupV3(ctx, \"pg1\", &flexibleengine.RdsParametergroupV3Args{\n\t\t\tDatastore: &flexibleengine.RdsParametergroupV3DatastoreArgs{\n\t\t\t\tType:    pulumi.String(\"mysql\"),\n\t\t\t\tVersion: pulumi.String(\"5.6\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"description_1\"),\n\t\t\tValues: pulumi.StringMap{\n\t\t\t\t\"autocommit\":      pulumi.String(\"OFF\"),\n\t\t\t\t\"max_connections\": pulumi.String(\"10\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.RdsParametergroupV3;\nimport com.pulumi.flexibleengine.RdsParametergroupV3Args;\nimport com.pulumi.flexibleengine.inputs.RdsParametergroupV3DatastoreArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var pg1 = new RdsParametergroupV3(\"pg1\", RdsParametergroupV3Args.builder()\n            .datastore(RdsParametergroupV3DatastoreArgs.builder()\n                .type(\"mysql\")\n                .version(\"5.6\")\n                .build())\n            .description(\"description_1\")\n            .values(Map.ofEntries(\n                Map.entry(\"autocommit\", \"OFF\"),\n                Map.entry(\"max_connections\", \"10\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pg1:\n    type: flexibleengine:RdsParametergroupV3\n    properties:\n      datastore:\n        type: mysql\n        version: '5.6'\n      description: description_1\n      values:\n        autocommit: OFF\n        max_connections: '10'\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nParameter groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/rdsParametergroupV3:RdsParametergroupV3 pg_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n",
      "properties": {
        "configurationParameters": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FRdsParametergroupV3ConfigurationParameter:RdsParametergroupV3ConfigurationParameter"
          },
          "description": "Indicates the parameter configuration defined by users based on the default\nparameters groups. The configuration_parameters object structure is documented below.\n"
        },
        "datastore": {
          "$ref": "#/types/flexibleengine:index%2FRdsParametergroupV3Datastore:RdsParametergroupV3Datastore",
          "description": "Database object. The datastore object structure is\ndocumented below. Changing this creates a new parameter group.\n\n<a name=\"rds_datastore\"></a>\nThe `datastore` block supports:\n"
        },
        "description": {
          "type": "string",
          "description": "The parameter group description. It contains a maximum of 256 characters and\ncannot contain the following special characters:>!<\"&'= the value is left blank by default.\n"
        },
        "name": {
          "type": "string",
          "description": "The parameter group name. It contains a maximum of 64 characters.\n"
        },
        "rdsParametergroupV3Id": {
          "type": "string",
          "description": "ID of the parameter group.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsParametergroupV3Timeouts:RdsParametergroupV3Timeouts"
        },
        "values": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Parameter group values key/value pairs defined by users based on the default\nparameter groups.\n"
        }
      },
      "type": "object",
      "required": [
        "configurationParameters",
        "datastore",
        "name",
        "rdsParametergroupV3Id"
      ],
      "inputProperties": {
        "datastore": {
          "$ref": "#/types/flexibleengine:index%2FRdsParametergroupV3Datastore:RdsParametergroupV3Datastore",
          "description": "Database object. The datastore object structure is\ndocumented below. Changing this creates a new parameter group.\n\n<a name=\"rds_datastore\"></a>\nThe `datastore` block supports:\n"
        },
        "description": {
          "type": "string",
          "description": "The parameter group description. It contains a maximum of 256 characters and\ncannot contain the following special characters:>!<\"&'= the value is left blank by default.\n"
        },
        "name": {
          "type": "string",
          "description": "The parameter group name. It contains a maximum of 64 characters.\n"
        },
        "rdsParametergroupV3Id": {
          "type": "string",
          "description": "ID of the parameter group.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsParametergroupV3Timeouts:RdsParametergroupV3Timeouts"
        },
        "values": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Parameter group values key/value pairs defined by users based on the default\nparameter groups.\n"
        }
      },
      "requiredInputs": [
        "datastore"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RdsParametergroupV3 resources.\n",
        "properties": {
          "configurationParameters": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FRdsParametergroupV3ConfigurationParameter:RdsParametergroupV3ConfigurationParameter"
            },
            "description": "Indicates the parameter configuration defined by users based on the default\nparameters groups. The configuration_parameters object structure is documented below.\n"
          },
          "datastore": {
            "$ref": "#/types/flexibleengine:index%2FRdsParametergroupV3Datastore:RdsParametergroupV3Datastore",
            "description": "Database object. The datastore object structure is\ndocumented below. Changing this creates a new parameter group.\n\n<a name=\"rds_datastore\"></a>\nThe `datastore` block supports:\n"
          },
          "description": {
            "type": "string",
            "description": "The parameter group description. It contains a maximum of 256 characters and\ncannot contain the following special characters:>!<\"&'= the value is left blank by default.\n"
          },
          "name": {
            "type": "string",
            "description": "The parameter group name. It contains a maximum of 64 characters.\n"
          },
          "rdsParametergroupV3Id": {
            "type": "string",
            "description": "ID of the parameter group.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FRdsParametergroupV3Timeouts:RdsParametergroupV3Timeouts"
          },
          "values": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Parameter group values key/value pairs defined by users based on the default\nparameter groups.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/rdsReadReplicaV3:RdsReadReplicaV3": {
      "description": "RDS read replica management\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst exampleSecgroup = new flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", {description: \"terraform security group acceptance test\"});\nconst instance1 = new flexibleengine.RdsInstanceV3(\"instance1\", {\n    flavor: \"rds.pg.s1.medium\",\n    availabilityZones: [_var.primary_az],\n    securityGroupId: exampleSecgroup.networkingSecgroupV2Id,\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    db: {\n        password: _var.db_password,\n        type: \"PostgreSQL\",\n        version: \"11\",\n        port: 8635,\n    },\n    volume: {\n        type: \"ULTRAHIGH\",\n        size: 100,\n    },\n    backupStrategy: {\n        startTime: \"08:00-09:00\",\n        keepDays: 1,\n    },\n});\nconst instance2 = new flexibleengine.RdsReadReplicaV3(\"instance2\", {\n    flavor: \"rds.pg.c2.large.rr\",\n    replicaOfId: instance1.rdsInstanceV3Id,\n    availabilityZone: _var.primary_az,\n    volume: {\n        type: \"ULTRAHIGH\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nexample_secgroup = flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", description=\"terraform security group acceptance test\")\ninstance1 = flexibleengine.RdsInstanceV3(\"instance1\",\n    flavor=\"rds.pg.s1.medium\",\n    availability_zones=[var[\"primary_az\"]],\n    security_group_id=example_secgroup.networking_secgroup_v2_id,\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    db={\n        \"password\": var[\"db_password\"],\n        \"type\": \"PostgreSQL\",\n        \"version\": \"11\",\n        \"port\": 8635,\n    },\n    volume={\n        \"type\": \"ULTRAHIGH\",\n        \"size\": 100,\n    },\n    backup_strategy={\n        \"start_time\": \"08:00-09:00\",\n        \"keep_days\": 1,\n    })\ninstance2 = flexibleengine.RdsReadReplicaV3(\"instance2\",\n    flavor=\"rds.pg.c2.large.rr\",\n    replica_of_id=instance1.rds_instance_v3_id,\n    availability_zone=var[\"primary_az\"],\n    volume={\n        \"type\": \"ULTRAHIGH\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var exampleSecgroup = new Flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", new()\n    {\n        Description = \"terraform security group acceptance test\",\n    });\n\n    var instance1 = new Flexibleengine.RdsInstanceV3(\"instance1\", new()\n    {\n        Flavor = \"rds.pg.s1.medium\",\n        AvailabilityZones = new[]\n        {\n            @var.Primary_az,\n        },\n        SecurityGroupId = exampleSecgroup.NetworkingSecgroupV2Id,\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        Db = new Flexibleengine.Inputs.RdsInstanceV3DbArgs\n        {\n            Password = @var.Db_password,\n            Type = \"PostgreSQL\",\n            Version = \"11\",\n            Port = 8635,\n        },\n        Volume = new Flexibleengine.Inputs.RdsInstanceV3VolumeArgs\n        {\n            Type = \"ULTRAHIGH\",\n            Size = 100,\n        },\n        BackupStrategy = new Flexibleengine.Inputs.RdsInstanceV3BackupStrategyArgs\n        {\n            StartTime = \"08:00-09:00\",\n            KeepDays = 1,\n        },\n    });\n\n    var instance2 = new Flexibleengine.RdsReadReplicaV3(\"instance2\", new()\n    {\n        Flavor = \"rds.pg.c2.large.rr\",\n        ReplicaOfId = instance1.RdsInstanceV3Id,\n        AvailabilityZone = @var.Primary_az,\n        Volume = new Flexibleengine.Inputs.RdsReadReplicaV3VolumeArgs\n        {\n            Type = \"ULTRAHIGH\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecgroup, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"exampleSecgroup\", &flexibleengine.NetworkingSecgroupV2Args{\n\t\t\tDescription: pulumi.String(\"terraform security group acceptance test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := flexibleengine.NewRdsInstanceV3(ctx, \"instance1\", &flexibleengine.RdsInstanceV3Args{\n\t\t\tFlavor: pulumi.String(\"rds.pg.s1.medium\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\t_var.Primary_az,\n\t\t\t},\n\t\t\tSecurityGroupId: exampleSecgroup.NetworkingSecgroupV2Id,\n\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\tSubnetId:        exampleSubnet.VpcSubnetV1Id,\n\t\t\tDb: &flexibleengine.RdsInstanceV3DbArgs{\n\t\t\t\tPassword: pulumi.Any(_var.Db_password),\n\t\t\t\tType:     pulumi.String(\"PostgreSQL\"),\n\t\t\t\tVersion:  pulumi.String(\"11\"),\n\t\t\t\tPort:     pulumi.Float64(8635),\n\t\t\t},\n\t\t\tVolume: &flexibleengine.RdsInstanceV3VolumeArgs{\n\t\t\t\tType: pulumi.String(\"ULTRAHIGH\"),\n\t\t\t\tSize: pulumi.Float64(100),\n\t\t\t},\n\t\t\tBackupStrategy: &flexibleengine.RdsInstanceV3BackupStrategyArgs{\n\t\t\t\tStartTime: pulumi.String(\"08:00-09:00\"),\n\t\t\t\tKeepDays:  pulumi.Float64(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewRdsReadReplicaV3(ctx, \"instance2\", &flexibleengine.RdsReadReplicaV3Args{\n\t\t\tFlavor:           pulumi.String(\"rds.pg.c2.large.rr\"),\n\t\t\tReplicaOfId:      instance1.RdsInstanceV3Id,\n\t\t\tAvailabilityZone: pulumi.Any(_var.Primary_az),\n\t\t\tVolume: &flexibleengine.RdsReadReplicaV3VolumeArgs{\n\t\t\t\tType: pulumi.String(\"ULTRAHIGH\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2Args;\nimport com.pulumi.flexibleengine.RdsInstanceV3;\nimport com.pulumi.flexibleengine.RdsInstanceV3Args;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3DbArgs;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3VolumeArgs;\nimport com.pulumi.flexibleengine.inputs.RdsInstanceV3BackupStrategyArgs;\nimport com.pulumi.flexibleengine.RdsReadReplicaV3;\nimport com.pulumi.flexibleengine.RdsReadReplicaV3Args;\nimport com.pulumi.flexibleengine.inputs.RdsReadReplicaV3VolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var exampleSecgroup = new NetworkingSecgroupV2(\"exampleSecgroup\", NetworkingSecgroupV2Args.builder()\n            .description(\"terraform security group acceptance test\")\n            .build());\n\n        var instance1 = new RdsInstanceV3(\"instance1\", RdsInstanceV3Args.builder()\n            .flavor(\"rds.pg.s1.medium\")\n            .availabilityZones(var_.primary_az())\n            .securityGroupId(exampleSecgroup.networkingSecgroupV2Id())\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .db(RdsInstanceV3DbArgs.builder()\n                .password(var_.db_password())\n                .type(\"PostgreSQL\")\n                .version(\"11\")\n                .port(\"8635\")\n                .build())\n            .volume(RdsInstanceV3VolumeArgs.builder()\n                .type(\"ULTRAHIGH\")\n                .size(100)\n                .build())\n            .backupStrategy(RdsInstanceV3BackupStrategyArgs.builder()\n                .startTime(\"08:00-09:00\")\n                .keepDays(1)\n                .build())\n            .build());\n\n        var instance2 = new RdsReadReplicaV3(\"instance2\", RdsReadReplicaV3Args.builder()\n            .flavor(\"rds.pg.c2.large.rr\")\n            .replicaOfId(instance1.rdsInstanceV3Id())\n            .availabilityZone(var_.primary_az())\n            .volume(RdsReadReplicaV3VolumeArgs.builder()\n                .type(\"ULTRAHIGH\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  exampleSecgroup:\n    type: flexibleengine:NetworkingSecgroupV2\n    properties:\n      description: terraform security group acceptance test\n  instance1:\n    type: flexibleengine:RdsInstanceV3\n    properties:\n      flavor: rds.pg.s1.medium\n      availabilityZones:\n        - ${var.primary_az}\n      securityGroupId: ${exampleSecgroup.networkingSecgroupV2Id}\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      db:\n        password: ${var.db_password}\n        type: PostgreSQL\n        version: '11'\n        port: '8635'\n      volume:\n        type: ULTRAHIGH\n        size: 100\n      backupStrategy:\n        startTime: 08:00-09:00\n        keepDays: 1\n  instance2:\n    type: flexibleengine:RdsReadReplicaV3\n    properties:\n      flavor: rds.pg.c2.large.rr\n      replicaOfId: ${instance1.rdsInstanceV3Id}\n      availabilityZone: ${var.primary_az}\n      volume:\n        type: ULTRAHIGH\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRDS instance can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/rdsReadReplicaV3:RdsReadReplicaV3 instance_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n",
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the AZ name.\nChanging this parameter will create a new resource.\n"
        },
        "dbs": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FRdsReadReplicaV3Db:RdsReadReplicaV3Db"
          },
          "description": "Indicates the database information. The db object structure is documented below.\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the specification code.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the DB instance name. The DB instance name of the same type must be\nunique for the same tenant. The value must be 4 to 64 characters in length and start with a letter. It is\ncase-sensitive and can contain only letters, digits, hyphens (-), and underscores (_).\nChanging this parameter will create a new resource.\n"
        },
        "privateIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the private IP address list.\n"
        },
        "publicIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the public IP address list.\n"
        },
        "rdsReadReplicaV3Id": {
          "type": "string",
          "description": "Indicates the instance ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RDS read replica resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS read replica resource.\nCurrently, read replicas can be created only in the same region as that of the primary DB instance.\n"
        },
        "replicaOfId": {
          "type": "string",
          "description": "Specifies the DB instance ID, which is used to create a read replica.\nChanging this parameter will create a new resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Indicates the security group which the RDS DB instance belongs to.\n"
        },
        "status": {
          "type": "string",
          "description": "Indicates the instance status.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Indicates the subnet id.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the RDS read replica instance.\nEach tag is represented by one key-value pair.\n\n<a name=\"rds_volume\"></a>\nThe `volume` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsReadReplicaV3Timeouts:RdsReadReplicaV3Timeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the volume type. Its value can be any of the following\nand is case-sensitive:\n- ULTRAHIGH: indicates the SSD type.\n- ULTRAHIGHPRO: indicates the ultra-high I/O.\n\nChanging this parameter will create a new resource.\n"
        },
        "volume": {
          "$ref": "#/types/flexibleengine:index%2FRdsReadReplicaV3Volume:RdsReadReplicaV3Volume",
          "description": "Specifies the volume information. The volume object structure is\ndocumented below. Changing this parameter will create a new resource.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Indicates the VPC ID.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "dbs",
        "flavor",
        "name",
        "privateIps",
        "publicIps",
        "rdsReadReplicaV3Id",
        "region",
        "replicaOfId",
        "securityGroupId",
        "status",
        "subnetId",
        "type",
        "volume",
        "vpcId"
      ],
      "inputProperties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the AZ name.\nChanging this parameter will create a new resource.\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the specification code.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the DB instance name. The DB instance name of the same type must be\nunique for the same tenant. The value must be 4 to 64 characters in length and start with a letter. It is\ncase-sensitive and can contain only letters, digits, hyphens (-), and underscores (_).\nChanging this parameter will create a new resource.\n"
        },
        "rdsReadReplicaV3Id": {
          "type": "string",
          "description": "Indicates the instance ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RDS read replica resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS read replica resource.\nCurrently, read replicas can be created only in the same region as that of the primary DB instance.\n"
        },
        "replicaOfId": {
          "type": "string",
          "description": "Specifies the DB instance ID, which is used to create a read replica.\nChanging this parameter will create a new resource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the RDS read replica instance.\nEach tag is represented by one key-value pair.\n\n<a name=\"rds_volume\"></a>\nThe `volume` block supports:\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsReadReplicaV3Timeouts:RdsReadReplicaV3Timeouts"
        },
        "volume": {
          "$ref": "#/types/flexibleengine:index%2FRdsReadReplicaV3Volume:RdsReadReplicaV3Volume",
          "description": "Specifies the volume information. The volume object structure is\ndocumented below. Changing this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "availabilityZone",
        "flavor",
        "replicaOfId",
        "volume"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RdsReadReplicaV3 resources.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the AZ name.\nChanging this parameter will create a new resource.\n"
          },
          "dbs": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FRdsReadReplicaV3Db:RdsReadReplicaV3Db"
            },
            "description": "Indicates the database information. The db object structure is documented below.\n"
          },
          "flavor": {
            "type": "string",
            "description": "Specifies the specification code.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the DB instance name. The DB instance name of the same type must be\nunique for the same tenant. The value must be 4 to 64 characters in length and start with a letter. It is\ncase-sensitive and can contain only letters, digits, hyphens (-), and underscores (_).\nChanging this parameter will create a new resource.\n"
          },
          "privateIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Indicates the private IP address list.\n"
          },
          "publicIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Indicates the public IP address list.\n"
          },
          "rdsReadReplicaV3Id": {
            "type": "string",
            "description": "Indicates the instance ID.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the RDS read replica resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RDS read replica resource.\nCurrently, read replicas can be created only in the same region as that of the primary DB instance.\n"
          },
          "replicaOfId": {
            "type": "string",
            "description": "Specifies the DB instance ID, which is used to create a read replica.\nChanging this parameter will create a new resource.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Indicates the security group which the RDS DB instance belongs to.\n"
          },
          "status": {
            "type": "string",
            "description": "Indicates the instance status.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Indicates the subnet id.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the RDS read replica instance.\nEach tag is represented by one key-value pair.\n\n<a name=\"rds_volume\"></a>\nThe `volume` block supports:\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FRdsReadReplicaV3Timeouts:RdsReadReplicaV3Timeouts"
          },
          "type": {
            "type": "string",
            "description": "Specifies the volume type. Its value can be any of the following\nand is case-sensitive:\n- ULTRAHIGH: indicates the SSD type.\n- ULTRAHIGHPRO: indicates the ultra-high I/O.\n\nChanging this parameter will create a new resource.\n"
          },
          "volume": {
            "$ref": "#/types/flexibleengine:index%2FRdsReadReplicaV3Volume:RdsReadReplicaV3Volume",
            "description": "Specifies the volume information. The volume object structure is\ndocumented below. Changing this parameter will create a new resource.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Indicates the VPC ID.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/rdsSqlAudit:RdsSqlAudit": {
      "description": "Manages RDS SQL audit resource within FlexibleEngine.\n\n> **NOTE:** Only MySQL and PostgreSQL engines are supported.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst test = new flexibleengine.RdsSqlAudit(\"test\", {\n    instanceId: instanceId,\n    keepDays: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = flexibleengine.RdsSqlAudit(\"test\",\n    instance_id=instance_id,\n    keep_days=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = new Flexibleengine.RdsSqlAudit(\"test\", new()\n    {\n        InstanceId = instanceId,\n        KeepDays = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := flexibleengine.NewRdsSqlAudit(ctx, \"test\", &flexibleengine.RdsSqlAuditArgs{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tKeepDays:   pulumi.Float64(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.RdsSqlAudit;\nimport com.pulumi.flexibleengine.RdsSqlAuditArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var test = new RdsSqlAudit(\"test\", RdsSqlAuditArgs.builder()\n            .instanceId(instanceId)\n            .keepDays(5)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:RdsSqlAudit\n    properties:\n      instanceId: ${instanceId}\n      keepDays: 5\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe RDS SQL audit can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/rdsSqlAudit:RdsSqlAudit test <id>\n```\n\n",
      "properties": {
        "auditTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of audit types.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the RDS instance.\nChanging this parameter will create a new resource.\n"
        },
        "keepDays": {
          "type": "number",
          "description": "Specifies the number of days for storing audit logs. Value ranges from `1` to `732`.\n"
        },
        "rdsSqlAuditId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "reserveAuditlogs": {
          "type": "boolean",
          "description": "Specifies whether the historical audit logs will be reserved for some time\nwhen SQL audit is disabled. It is valid only when SQL audit is disabled.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsSqlAuditTimeouts:RdsSqlAuditTimeouts"
        }
      },
      "type": "object",
      "required": [
        "auditTypes",
        "instanceId",
        "keepDays",
        "rdsSqlAuditId",
        "region"
      ],
      "inputProperties": {
        "auditTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of audit types.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of the RDS instance.\nChanging this parameter will create a new resource.\n"
        },
        "keepDays": {
          "type": "number",
          "description": "Specifies the number of days for storing audit logs. Value ranges from `1` to `732`.\n"
        },
        "rdsSqlAuditId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "reserveAuditlogs": {
          "type": "boolean",
          "description": "Specifies whether the historical audit logs will be reserved for some time\nwhen SQL audit is disabled. It is valid only when SQL audit is disabled.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRdsSqlAuditTimeouts:RdsSqlAuditTimeouts"
        }
      },
      "requiredInputs": [
        "instanceId",
        "keepDays"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RdsSqlAudit resources.\n",
        "properties": {
          "auditTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the list of audit types.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the RDS instance.\nChanging this parameter will create a new resource.\n"
          },
          "keepDays": {
            "type": "number",
            "description": "Specifies the number of days for storing audit logs. Value ranges from `1` to `732`.\n"
          },
          "rdsSqlAuditId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "reserveAuditlogs": {
            "type": "boolean",
            "description": "Specifies whether the historical audit logs will be reserved for some time\nwhen SQL audit is disabled. It is valid only when SQL audit is disabled.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FRdsSqlAuditTimeouts:RdsSqlAuditTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/rtsSoftwareConfigV1:RtsSoftwareConfigV1": {
      "description": "Provides an RTS software config resource.\n\n## Example Usage\n\n <!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst configName = config.requireObject(\"configName\");\nconst myconfig = new flexibleengine.RtsSoftwareConfigV1(\"myconfig\", {});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nconfig_name = config.require_object(\"configName\")\nmyconfig = flexibleengine.RtsSoftwareConfigV1(\"myconfig\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var configName = config.RequireObject<dynamic>(\"configName\");\n    var myconfig = new Flexibleengine.RtsSoftwareConfigV1(\"myconfig\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tconfigName := cfg.RequireObject(\"configName\")\n\t\t_, err := flexibleengine.NewRtsSoftwareConfigV1(ctx, \"myconfig\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.RtsSoftwareConfigV1;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var configName = config.get(\"configName\");\n        var myconfig = new RtsSoftwareConfigV1(\"myconfig\");\n\n    }\n}\n```\n```yaml\nconfiguration:\n  configName:\n    type: dynamic\nresources:\n  myconfig:\n    type: flexibleengine:RtsSoftwareConfigV1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSoftware Config can be imported using the `config id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/rtsSoftwareConfigV1:RtsSoftwareConfigV1 flexibleengine_rts_software_config_v1 4779ab1c-7c1a-44b1-a02e-93dfc361b32d\n```\n\n",
      "properties": {
        "config": {
          "type": "string",
          "description": "The software configuration code. Changing this will create a new RTS software\nresource.\n"
        },
        "group": {
          "type": "string",
          "description": "The namespace that groups this software configuration by when it is delivered\nto a server. Changing this will create a new RTS software resource.\n"
        },
        "inputValues": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "A list of software configuration inputs. Changing this will create a new\nRTS software resource.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the software configuration. Changing this will create a new RTS\nsoftware resource.\n"
        },
        "options": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The software configuration options. Changing this will create a new RTS software\nresource.\n"
        },
        "outputValues": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "A list of software configuration outputs. Changing this will create a\nnew RTS software resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RTS software resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RTS software resource.\n"
        },
        "rtsSoftwareConfigV1Id": {
          "type": "string",
          "description": "The id of the software config.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRtsSoftwareConfigV1Timeouts:RtsSoftwareConfigV1Timeouts"
        }
      },
      "type": "object",
      "required": [
        "name",
        "region",
        "rtsSoftwareConfigV1Id"
      ],
      "inputProperties": {
        "config": {
          "type": "string",
          "description": "The software configuration code. Changing this will create a new RTS software\nresource.\n"
        },
        "group": {
          "type": "string",
          "description": "The namespace that groups this software configuration by when it is delivered\nto a server. Changing this will create a new RTS software resource.\n"
        },
        "inputValues": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "A list of software configuration inputs. Changing this will create a new\nRTS software resource.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the software configuration. Changing this will create a new RTS\nsoftware resource.\n"
        },
        "options": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The software configuration options. Changing this will create a new RTS software\nresource.\n"
        },
        "outputValues": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "A list of software configuration outputs. Changing this will create a\nnew RTS software resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RTS software resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RTS software resource.\n"
        },
        "rtsSoftwareConfigV1Id": {
          "type": "string",
          "description": "The id of the software config.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRtsSoftwareConfigV1Timeouts:RtsSoftwareConfigV1Timeouts"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RtsSoftwareConfigV1 resources.\n",
        "properties": {
          "config": {
            "type": "string",
            "description": "The software configuration code. Changing this will create a new RTS software\nresource.\n"
          },
          "group": {
            "type": "string",
            "description": "The namespace that groups this software configuration by when it is delivered\nto a server. Changing this will create a new RTS software resource.\n"
          },
          "inputValues": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "description": "A list of software configuration inputs. Changing this will create a new\nRTS software resource.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the software configuration. Changing this will create a new RTS\nsoftware resource.\n"
          },
          "options": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The software configuration options. Changing this will create a new RTS software\nresource.\n"
          },
          "outputValues": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "description": "A list of software configuration outputs. Changing this will create a\nnew RTS software resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the RTS software resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RTS software resource.\n"
          },
          "rtsSoftwareConfigV1Id": {
            "type": "string",
            "description": "The id of the software config.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FRtsSoftwareConfigV1Timeouts:RtsSoftwareConfigV1Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/rtsStackV1:RtsStackV1": {
      "description": "Provides a FlexibleEngine Stack.\n\n## Example Usage\n\n <!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject(\"name\");\nconst instanceType = config.requireObject(\"instanceType\");\nconst imageId = config.requireObject(\"imageId\");\nconst mystack = new flexibleengine.RtsStackV1(\"mystack\", {\n    disableRollback: true,\n    timeoutMins: 60,\n    parameters: {\n        network_id: flexibleengine_vpc_subnet_v1.example_subnet.id,\n        instance_type: instanceType,\n        image_id: imageId,\n    },\n    templateBody: `  {\n    \"heat_template_version\": \"2016-04-08\",\n    \"description\": \"Simple template to deploy\",\n    \"parameters\": {\n        \"image_id\": {\n            \"type\": \"string\",\n            \"description\": \"Image to be used for compute instance\",\n            \"label\": \"Image ID\"\n        },\n        \"network_id\": {\n            \"type\": \"string\",\n            \"description\": \"The Network to be used\",\n            \"label\": \"Network UUID\"\n        },\n        \"instance_type\": {\n            \"type\": \"string\",\n            \"description\": \"Type of instance (Flavor) to be used\",\n            \"label\": \"Instance Type\"\n        }\n    },\n    \"resources\": {\n        \"my_instance\": {\n            \"type\": \"OS::Nova::Server\",\n            \"properties\": {\n                \"image\": {\n                    \"get_param\": \"image_id\"\n                },\n                \"flavor\": {\n                    \"get_param\": \"instance_type\"\n                },\n                \"networks\": [{\n                    \"network\": {\n                        \"get_param\": \"network_id\"\n                    }\n                }]\n            }\n        }\n    },\n    \"outputs\":  {\n      \"InstanceIP\":{\n        \"description\": \"Instance IP\",\n        \"value\": {  \"get_attr\": [\"my_instance\", \"first_address\"]  }\n      }\n    }\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\ninstance_type = config.require_object(\"instanceType\")\nimage_id = config.require_object(\"imageId\")\nmystack = flexibleengine.RtsStackV1(\"mystack\",\n    disable_rollback=True,\n    timeout_mins=60,\n    parameters={\n        \"network_id\": flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n        \"instance_type\": instance_type,\n        \"image_id\": image_id,\n    },\n    template_body=\"\"\"  {\n    \"heat_template_version\": \"2016-04-08\",\n    \"description\": \"Simple template to deploy\",\n    \"parameters\": {\n        \"image_id\": {\n            \"type\": \"string\",\n            \"description\": \"Image to be used for compute instance\",\n            \"label\": \"Image ID\"\n        },\n        \"network_id\": {\n            \"type\": \"string\",\n            \"description\": \"The Network to be used\",\n            \"label\": \"Network UUID\"\n        },\n        \"instance_type\": {\n            \"type\": \"string\",\n            \"description\": \"Type of instance (Flavor) to be used\",\n            \"label\": \"Instance Type\"\n        }\n    },\n    \"resources\": {\n        \"my_instance\": {\n            \"type\": \"OS::Nova::Server\",\n            \"properties\": {\n                \"image\": {\n                    \"get_param\": \"image_id\"\n                },\n                \"flavor\": {\n                    \"get_param\": \"instance_type\"\n                },\n                \"networks\": [{\n                    \"network\": {\n                        \"get_param\": \"network_id\"\n                    }\n                }]\n            }\n        }\n    },\n    \"outputs\":  {\n      \"InstanceIP\":{\n        \"description\": \"Instance IP\",\n        \"value\": {  \"get_attr\": [\"my_instance\", \"first_address\"]  }\n      }\n    }\n}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var instanceType = config.RequireObject<dynamic>(\"instanceType\");\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var mystack = new Flexibleengine.RtsStackV1(\"mystack\", new()\n    {\n        DisableRollback = true,\n        TimeoutMins = 60,\n        Parameters = \n        {\n            { \"network_id\", flexibleengine_vpc_subnet_v1.Example_subnet.Id },\n            { \"instance_type\", instanceType },\n            { \"image_id\", imageId },\n        },\n        TemplateBody = @\"  {\n    \"\"heat_template_version\"\": \"\"2016-04-08\"\",\n    \"\"description\"\": \"\"Simple template to deploy\"\",\n    \"\"parameters\"\": {\n        \"\"image_id\"\": {\n            \"\"type\"\": \"\"string\"\",\n            \"\"description\"\": \"\"Image to be used for compute instance\"\",\n            \"\"label\"\": \"\"Image ID\"\"\n        },\n        \"\"network_id\"\": {\n            \"\"type\"\": \"\"string\"\",\n            \"\"description\"\": \"\"The Network to be used\"\",\n            \"\"label\"\": \"\"Network UUID\"\"\n        },\n        \"\"instance_type\"\": {\n            \"\"type\"\": \"\"string\"\",\n            \"\"description\"\": \"\"Type of instance (Flavor) to be used\"\",\n            \"\"label\"\": \"\"Instance Type\"\"\n        }\n    },\n    \"\"resources\"\": {\n        \"\"my_instance\"\": {\n            \"\"type\"\": \"\"OS::Nova::Server\"\",\n            \"\"properties\"\": {\n                \"\"image\"\": {\n                    \"\"get_param\"\": \"\"image_id\"\"\n                },\n                \"\"flavor\"\": {\n                    \"\"get_param\"\": \"\"instance_type\"\"\n                },\n                \"\"networks\"\": [{\n                    \"\"network\"\": {\n                        \"\"get_param\"\": \"\"network_id\"\"\n                    }\n                }]\n            }\n        }\n    },\n    \"\"outputs\"\":  {\n      \"\"InstanceIP\"\":{\n        \"\"description\"\": \"\"Instance IP\"\",\n        \"\"value\"\": {  \"\"get_attr\"\": [\"\"my_instance\"\", \"\"first_address\"\"]  }\n      }\n    }\n}\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tinstanceType := cfg.RequireObject(\"instanceType\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\t_, err := flexibleengine.NewRtsStackV1(ctx, \"mystack\", &flexibleengine.RtsStackV1Args{\n\t\t\tDisableRollback: pulumi.Bool(true),\n\t\t\tTimeoutMins:     pulumi.Float64(60),\n\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\"network_id\":    pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\t\t\"instance_type\": pulumi.Any(instanceType),\n\t\t\t\t\"image_id\":      pulumi.Any(imageId),\n\t\t\t},\n\t\t\tTemplateBody: pulumi.String(`  {\n    \"heat_template_version\": \"2016-04-08\",\n    \"description\": \"Simple template to deploy\",\n    \"parameters\": {\n        \"image_id\": {\n            \"type\": \"string\",\n            \"description\": \"Image to be used for compute instance\",\n            \"label\": \"Image ID\"\n        },\n        \"network_id\": {\n            \"type\": \"string\",\n            \"description\": \"The Network to be used\",\n            \"label\": \"Network UUID\"\n        },\n        \"instance_type\": {\n            \"type\": \"string\",\n            \"description\": \"Type of instance (Flavor) to be used\",\n            \"label\": \"Instance Type\"\n        }\n    },\n    \"resources\": {\n        \"my_instance\": {\n            \"type\": \"OS::Nova::Server\",\n            \"properties\": {\n                \"image\": {\n                    \"get_param\": \"image_id\"\n                },\n                \"flavor\": {\n                    \"get_param\": \"instance_type\"\n                },\n                \"networks\": [{\n                    \"network\": {\n                        \"get_param\": \"network_id\"\n                    }\n                }]\n            }\n        }\n    },\n    \"outputs\":  {\n      \"InstanceIP\":{\n        \"description\": \"Instance IP\",\n        \"value\": {  \"get_attr\": [\"my_instance\", \"first_address\"]  }\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.RtsStackV1;\nimport com.pulumi.flexibleengine.RtsStackV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var instanceType = config.get(\"instanceType\");\n        final var imageId = config.get(\"imageId\");\n        var mystack = new RtsStackV1(\"mystack\", RtsStackV1Args.builder()\n            .disableRollback(true)\n            .timeoutMins(60)\n            .parameters(Map.ofEntries(\n                Map.entry(\"network_id\", flexibleengine_vpc_subnet_v1.example_subnet().id()),\n                Map.entry(\"instance_type\", instanceType),\n                Map.entry(\"image_id\", imageId)\n            ))\n            .templateBody(\"\"\"\n  {\n    \"heat_template_version\": \"2016-04-08\",\n    \"description\": \"Simple template to deploy\",\n    \"parameters\": {\n        \"image_id\": {\n            \"type\": \"string\",\n            \"description\": \"Image to be used for compute instance\",\n            \"label\": \"Image ID\"\n        },\n        \"network_id\": {\n            \"type\": \"string\",\n            \"description\": \"The Network to be used\",\n            \"label\": \"Network UUID\"\n        },\n        \"instance_type\": {\n            \"type\": \"string\",\n            \"description\": \"Type of instance (Flavor) to be used\",\n            \"label\": \"Instance Type\"\n        }\n    },\n    \"resources\": {\n        \"my_instance\": {\n            \"type\": \"OS::Nova::Server\",\n            \"properties\": {\n                \"image\": {\n                    \"get_param\": \"image_id\"\n                },\n                \"flavor\": {\n                    \"get_param\": \"instance_type\"\n                },\n                \"networks\": [{\n                    \"network\": {\n                        \"get_param\": \"network_id\"\n                    }\n                }]\n            }\n        }\n    },\n    \"outputs\":  {\n      \"InstanceIP\":{\n        \"description\": \"Instance IP\",\n        \"value\": {  \"get_attr\": [\"my_instance\", \"first_address\"]  }\n      }\n    }\n}\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\n  instanceType:\n    type: dynamic\n  imageId:\n    type: dynamic\nresources:\n  mystack:\n    type: flexibleengine:RtsStackV1\n    properties:\n      disableRollback: true\n      timeoutMins: 60\n      parameters:\n        network_id: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n        instance_type: ${instanceType}\n        image_id: ${imageId}\n      templateBody: |2\n          {\n            \"heat_template_version\": \"2016-04-08\",\n            \"description\": \"Simple template to deploy\",\n            \"parameters\": {\n                \"image_id\": {\n                    \"type\": \"string\",\n                    \"description\": \"Image to be used for compute instance\",\n                    \"label\": \"Image ID\"\n                },\n                \"network_id\": {\n                    \"type\": \"string\",\n                    \"description\": \"The Network to be used\",\n                    \"label\": \"Network UUID\"\n                },\n                \"instance_type\": {\n                    \"type\": \"string\",\n                    \"description\": \"Type of instance (Flavor) to be used\",\n                    \"label\": \"Instance Type\"\n                }\n            },\n            \"resources\": {\n                \"my_instance\": {\n                    \"type\": \"OS::Nova::Server\",\n                    \"properties\": {\n                        \"image\": {\n                            \"get_param\": \"image_id\"\n                        },\n                        \"flavor\": {\n                            \"get_param\": \"instance_type\"\n                        },\n                        \"networks\": [{\n                            \"network\": {\n                                \"get_param\": \"network_id\"\n                            }\n                        }]\n                    }\n                }\n            },\n            \"outputs\":  {\n              \"InstanceIP\":{\n                \"description\": \"Instance IP\",\n                \"value\": {  \"get_attr\": [\"my_instance\", \"first_address\"]  }\n              }\n            }\n        }\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRTS Stacks can be imported using the `name`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/rtsStackV1:RtsStackV1 mystack rts-stack\n```\n\n",
      "properties": {
        "capabilities": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of stack capabilities for stack.\n"
        },
        "disableRollback": {
          "type": "boolean",
          "description": "Set to true to disable rollback of the stack if stack creation failed.\n"
        },
        "environment": {
          "type": "string",
          "description": "The environment information about the stack.\n"
        },
        "files": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Files used in the environment.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the resource stack.\nThe valid length is limited from can contain 1 to 64, only letters, digits and hyphens (-) are allowed.\nThe name must start with a lowercase letter and end with a lowercase letter or digit.\nChanging this creates a new stack.\n"
        },
        "notificationTopics": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of notification topics for stack.\n"
        },
        "outputs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of outputs from the stack.\n"
        },
        "parameters": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A list of Parameter structures that specify input parameters for the stack.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RTS stack resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RTS stack resource.\n"
        },
        "rtsStackV1Id": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "Specifies the stack status.\n"
        },
        "statusReason": {
          "type": "string"
        },
        "templateBody": {
          "type": "string",
          "description": "Structure containing the template body. The template content must use the yaml\nsyntax.  It is **Required** if `template_url` is empty.\n"
        },
        "templateUrl": {
          "type": "string",
          "description": "Location of a file containing the template body. It is **Required** if\n`template_body` is empty\n"
        },
        "timeoutMins": {
          "type": "number",
          "description": "Specifies the timeout duration.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRtsStackV1Timeouts:RtsStackV1Timeouts"
        }
      },
      "type": "object",
      "required": [
        "capabilities",
        "disableRollback",
        "name",
        "notificationTopics",
        "outputs",
        "parameters",
        "region",
        "rtsStackV1Id",
        "status",
        "statusReason",
        "templateBody",
        "timeoutMins"
      ],
      "inputProperties": {
        "disableRollback": {
          "type": "boolean",
          "description": "Set to true to disable rollback of the stack if stack creation failed.\n"
        },
        "environment": {
          "type": "string",
          "description": "The environment information about the stack.\n"
        },
        "files": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Files used in the environment.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the resource stack.\nThe valid length is limited from can contain 1 to 64, only letters, digits and hyphens (-) are allowed.\nThe name must start with a lowercase letter and end with a lowercase letter or digit.\nChanging this creates a new stack.\n"
        },
        "parameters": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A list of Parameter structures that specify input parameters for the stack.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the RTS stack resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RTS stack resource.\n"
        },
        "rtsStackV1Id": {
          "type": "string"
        },
        "templateBody": {
          "type": "string",
          "description": "Structure containing the template body. The template content must use the yaml\nsyntax.  It is **Required** if `template_url` is empty.\n"
        },
        "templateUrl": {
          "type": "string",
          "description": "Location of a file containing the template body. It is **Required** if\n`template_body` is empty\n"
        },
        "timeoutMins": {
          "type": "number",
          "description": "Specifies the timeout duration.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FRtsStackV1Timeouts:RtsStackV1Timeouts"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RtsStackV1 resources.\n",
        "properties": {
          "capabilities": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of stack capabilities for stack.\n"
          },
          "disableRollback": {
            "type": "boolean",
            "description": "Set to true to disable rollback of the stack if stack creation failed.\n"
          },
          "environment": {
            "type": "string",
            "description": "The environment information about the stack.\n"
          },
          "files": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Files used in the environment.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the resource stack.\nThe valid length is limited from can contain 1 to 64, only letters, digits and hyphens (-) are allowed.\nThe name must start with a lowercase letter and end with a lowercase letter or digit.\nChanging this creates a new stack.\n"
          },
          "notificationTopics": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of notification topics for stack.\n"
          },
          "outputs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of outputs from the stack.\n"
          },
          "parameters": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A list of Parameter structures that specify input parameters for the stack.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the RTS stack resource.\nIf omitted, the provider-level region will be used. Changing this will create a new RTS stack resource.\n"
          },
          "rtsStackV1Id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "description": "Specifies the stack status.\n"
          },
          "statusReason": {
            "type": "string"
          },
          "templateBody": {
            "type": "string",
            "description": "Structure containing the template body. The template content must use the yaml\nsyntax.  It is **Required** if `template_url` is empty.\n"
          },
          "templateUrl": {
            "type": "string",
            "description": "Location of a file containing the template body. It is **Required** if\n`template_body` is empty\n"
          },
          "timeoutMins": {
            "type": "number",
            "description": "Specifies the timeout duration.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FRtsStackV1Timeouts:RtsStackV1Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/s3Bucket:S3Bucket": {
      "description": "Provides a S3 bucket resource.\n\n## Example Usage\n\n### Private Bucket w/ Tags\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst s3Bucket = new flexibleengine.S3Bucket(\"s3Bucket\", {\n    acl: \"private\",\n    bucket: \"my-tf-test-bucket\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ns3_bucket = flexibleengine.S3Bucket(\"s3Bucket\",\n    acl=\"private\",\n    bucket=\"my-tf-test-bucket\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var s3Bucket = new Flexibleengine.S3Bucket(\"s3Bucket\", new()\n    {\n        Acl = \"private\",\n        Bucket = \"my-tf-test-bucket\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewS3Bucket(ctx, \"s3Bucket\", &flexibleengine.S3BucketArgs{\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tBucket: pulumi.String(\"my-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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.S3Bucket;\nimport com.pulumi.flexibleengine.S3BucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var s3Bucket = new S3Bucket(\"s3Bucket\", S3BucketArgs.builder()\n            .acl(\"private\")\n            .bucket(\"my-tf-test-bucket\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  s3Bucket:\n    type: flexibleengine:S3Bucket\n    properties:\n      acl: private\n      bucket: my-tf-test-bucket\n```\n<!--End PulumiCodeChooser -->\n\n### Static Website Hosting\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\nimport * as fs from \"fs\";\n\nconst s3Bucket = new flexibleengine.S3Bucket(\"s3Bucket\", {\n    bucket: \"s3-website-test.hashicorp.com\",\n    acl: \"public-read\",\n    policy: fs.readFileSync(\"policy.json\", \"utf8\"),\n    website: {\n        indexDocument: \"index.html\",\n        errorDocument: \"error.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_flexibleengine as flexibleengine\n\ns3_bucket = flexibleengine.S3Bucket(\"s3Bucket\",\n    bucket=\"s3-website-test.hashicorp.com\",\n    acl=\"public-read\",\n    policy=(lambda path: open(path).read())(\"policy.json\"),\n    website={\n        \"index_document\": \"index.html\",\n        \"error_document\": \"error.html\",\n        \"routing_rules\": \"\"\"[{\n    \"Condition\": {\n        \"KeyPrefixEquals\": \"docs/\"\n    },\n    \"Redirect\": {\n        \"ReplaceKeyPrefixWith\": \"documents/\"\n    }\n}]\n\"\"\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var s3Bucket = new Flexibleengine.S3Bucket(\"s3Bucket\", new()\n    {\n        Bucket = \"s3-website-test.hashicorp.com\",\n        Acl = \"public-read\",\n        Policy = File.ReadAllText(\"policy.json\"),\n        Website = new Flexibleengine.Inputs.S3BucketWebsiteArgs\n        {\n            IndexDocument = \"index.html\",\n            ErrorDocument = \"error.html\",\n            RoutingRules = @\"[{\n    \"\"Condition\"\": {\n        \"\"KeyPrefixEquals\"\": \"\"docs/\"\"\n    },\n    \"\"Redirect\"\": {\n        \"\"ReplaceKeyPrefixWith\"\": \"\"documents/\"\"\n    }\n}]\n\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.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 := flexibleengine.NewS3Bucket(ctx, \"s3Bucket\", &flexibleengine.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"s3-website-test.hashicorp.com\"),\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t\tPolicy: pulumi.String(readFileOrPanic(\"policy.json\")),\n\t\t\tWebsite: &flexibleengine.S3BucketWebsiteArgs{\n\t\t\t\tIndexDocument: pulumi.String(\"index.html\"),\n\t\t\t\tErrorDocument: pulumi.String(\"error.html\"),\n\t\t\t\tRoutingRules: pulumi.String(`[{\n    \"Condition\": {\n        \"KeyPrefixEquals\": \"docs/\"\n    },\n    \"Redirect\": {\n        \"ReplaceKeyPrefixWith\": \"documents/\"\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.S3Bucket;\nimport com.pulumi.flexibleengine.S3BucketArgs;\nimport com.pulumi.flexibleengine.inputs.S3BucketWebsiteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var s3Bucket = new S3Bucket(\"s3Bucket\", S3BucketArgs.builder()\n            .bucket(\"s3-website-test.hashicorp.com\")\n            .acl(\"public-read\")\n            .policy(Files.readString(Paths.get(\"policy.json\")))\n            .website(S3BucketWebsiteArgs.builder()\n                .indexDocument(\"index.html\")\n                .errorDocument(\"error.html\")\n                .routingRules(\"\"\"\n[{\n    \"Condition\": {\n        \"KeyPrefixEquals\": \"docs/\"\n    },\n    \"Redirect\": {\n        \"ReplaceKeyPrefixWith\": \"documents/\"\n    }\n}]\n                \"\"\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  s3Bucket:\n    type: flexibleengine:S3Bucket\n    properties:\n      bucket: s3-website-test.hashicorp.com\n      acl: public-read\n      policy:\n        fn::readFile: policy.json\n      website:\n        indexDocument: index.html\n        errorDocument: error.html\n        routingRules: |\n          [{\n              \"Condition\": {\n                  \"KeyPrefixEquals\": \"docs/\"\n              },\n              \"Redirect\": {\n                  \"ReplaceKeyPrefixWith\": \"documents/\"\n              }\n          }]\n```\n<!--End PulumiCodeChooser -->\n\n### Using CORS\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst s3Bucket = new flexibleengine.S3Bucket(\"s3Bucket\", {\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_flexibleengine as flexibleengine\n\ns3_bucket = flexibleengine.S3Bucket(\"s3Bucket\",\n    acl=\"public-read\",\n    bucket=\"s3-website-test.hashicorp.com\",\n    cors_rules=[{\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 System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var s3Bucket = new Flexibleengine.S3Bucket(\"s3Bucket\", new()\n    {\n        Acl = \"public-read\",\n        Bucket = \"s3-website-test.hashicorp.com\",\n        CorsRules = new[]\n        {\n            new Flexibleengine.Inputs.S3BucketCorsRuleArgs\n            {\n                AllowedHeaders = new[]\n                {\n                    \"*\",\n                },\n                AllowedMethods = new[]\n                {\n                    \"PUT\",\n                    \"POST\",\n                },\n                AllowedOrigins = new[]\n                {\n                    \"https://s3-website-test.hashicorp.com\",\n                },\n                ExposeHeaders = new[]\n                {\n                    \"ETag\",\n                },\n                MaxAgeSeconds = 3000,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewS3Bucket(ctx, \"s3Bucket\", &flexibleengine.S3BucketArgs{\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t\tBucket: pulumi.String(\"s3-website-test.hashicorp.com\"),\n\t\t\tCorsRules: flexibleengine.S3BucketCorsRuleArray{\n\t\t\t\t&flexibleengine.S3BucketCorsRuleArgs{\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.Float64(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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.S3Bucket;\nimport com.pulumi.flexibleengine.S3BucketArgs;\nimport com.pulumi.flexibleengine.inputs.S3BucketCorsRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var s3Bucket = new S3Bucket(\"s3Bucket\", S3BucketArgs.builder()\n            .acl(\"public-read\")\n            .bucket(\"s3-website-test.hashicorp.com\")\n            .corsRules(S3BucketCorsRuleArgs.builder()\n                .allowedHeaders(\"*\")\n                .allowedMethods(                \n                    \"PUT\",\n                    \"POST\")\n                .allowedOrigins(\"https://s3-website-test.hashicorp.com\")\n                .exposeHeaders(\"ETag\")\n                .maxAgeSeconds(3000)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  s3Bucket:\n    type: flexibleengine:S3Bucket\n    properties:\n      acl: public-read\n      bucket: s3-website-test.hashicorp.com\n      corsRules:\n        - allowedHeaders:\n            - '*'\n          allowedMethods:\n            - PUT\n            - POST\n          allowedOrigins:\n            - https://s3-website-test.hashicorp.com\n          exposeHeaders:\n            - ETag\n          maxAgeSeconds: 3000\n```\n<!--End PulumiCodeChooser -->\n\n### Using versioning\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst s3Bucket = new flexibleengine.S3Bucket(\"s3Bucket\", {\n    acl: \"private\",\n    bucket: \"my-tf-test-bucket\",\n    versioning: {\n        enabled: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ns3_bucket = flexibleengine.S3Bucket(\"s3Bucket\",\n    acl=\"private\",\n    bucket=\"my-tf-test-bucket\",\n    versioning={\n        \"enabled\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var s3Bucket = new Flexibleengine.S3Bucket(\"s3Bucket\", new()\n    {\n        Acl = \"private\",\n        Bucket = \"my-tf-test-bucket\",\n        Versioning = new Flexibleengine.Inputs.S3BucketVersioningArgs\n        {\n            Enabled = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewS3Bucket(ctx, \"s3Bucket\", &flexibleengine.S3BucketArgs{\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tVersioning: &flexibleengine.S3BucketVersioningArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.S3Bucket;\nimport com.pulumi.flexibleengine.S3BucketArgs;\nimport com.pulumi.flexibleengine.inputs.S3BucketVersioningArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var s3Bucket = new S3Bucket(\"s3Bucket\", S3BucketArgs.builder()\n            .acl(\"private\")\n            .bucket(\"my-tf-test-bucket\")\n            .versioning(S3BucketVersioningArgs.builder()\n                .enabled(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  s3Bucket:\n    type: flexibleengine:S3Bucket\n    properties:\n      acl: private\n      bucket: my-tf-test-bucket\n      versioning:\n        enabled: true\n```\n<!--End PulumiCodeChooser -->\n\n### Enable Logging\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst logBucket = new flexibleengine.S3Bucket(\"logBucket\", {\n    bucket: \"my-tf-log-bucket\",\n    acl: \"log-delivery-write\",\n});\nconst s3Bucket = new flexibleengine.S3Bucket(\"s3Bucket\", {\n    bucket: \"my-tf-test-bucket\",\n    acl: \"private\",\n    loggings: [{\n        targetBucket: logBucket.s3BucketId,\n        targetPrefix: \"log/\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nlog_bucket = flexibleengine.S3Bucket(\"logBucket\",\n    bucket=\"my-tf-log-bucket\",\n    acl=\"log-delivery-write\")\ns3_bucket = flexibleengine.S3Bucket(\"s3Bucket\",\n    bucket=\"my-tf-test-bucket\",\n    acl=\"private\",\n    loggings=[{\n        \"target_bucket\": log_bucket.s3_bucket_id,\n        \"target_prefix\": \"log/\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var logBucket = new Flexibleengine.S3Bucket(\"logBucket\", new()\n    {\n        Bucket = \"my-tf-log-bucket\",\n        Acl = \"log-delivery-write\",\n    });\n\n    var s3Bucket = new Flexibleengine.S3Bucket(\"s3Bucket\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n        Acl = \"private\",\n        Loggings = new[]\n        {\n            new Flexibleengine.Inputs.S3BucketLoggingArgs\n            {\n                TargetBucket = logBucket.S3BucketId,\n                TargetPrefix = \"log/\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewS3Bucket(ctx, \"logBucket\", &flexibleengine.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-log-bucket\"),\n\t\t\tAcl:    pulumi.String(\"log-delivery-write\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewS3Bucket(ctx, \"s3Bucket\", &flexibleengine.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tLoggings: flexibleengine.S3BucketLoggingArray{\n\t\t\t\t&flexibleengine.S3BucketLoggingArgs{\n\t\t\t\t\tTargetBucket: logBucket.S3BucketId,\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.S3Bucket;\nimport com.pulumi.flexibleengine.S3BucketArgs;\nimport com.pulumi.flexibleengine.inputs.S3BucketLoggingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var logBucket = new S3Bucket(\"logBucket\", S3BucketArgs.builder()\n            .bucket(\"my-tf-log-bucket\")\n            .acl(\"log-delivery-write\")\n            .build());\n\n        var s3Bucket = new S3Bucket(\"s3Bucket\", S3BucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .acl(\"private\")\n            .loggings(S3BucketLoggingArgs.builder()\n                .targetBucket(logBucket.s3BucketId())\n                .targetPrefix(\"log/\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  logBucket:\n    type: flexibleengine:S3Bucket\n    properties:\n      bucket: my-tf-log-bucket\n      acl: log-delivery-write\n  s3Bucket:\n    type: flexibleengine:S3Bucket\n    properties:\n      bucket: my-tf-test-bucket\n      acl: private\n      loggings:\n        - targetBucket: ${logBucket.s3BucketId}\n          targetPrefix: log/\n```\n<!--End PulumiCodeChooser -->\n\n### Using object lifecycle\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst bucket = new flexibleengine.S3Bucket(\"bucket\", {\n    acl: \"private\",\n    bucket: \"my-bucket\",\n    lifecycleRules: [\n        {\n            enabled: true,\n            expirations: [{\n                days: 90,\n            }],\n            id: \"log\",\n            prefix: \"log/\",\n        },\n        {\n            enabled: true,\n            expirations: [{\n                date: \"2016-01-12\",\n            }],\n            id: \"tmp\",\n            prefix: \"tmp/\",\n        },\n    ],\n});\nconst versioningBucket = new flexibleengine.S3Bucket(\"versioningBucket\", {\n    acl: \"private\",\n    bucket: \"my-versioning-bucket\",\n    lifecycleRules: [{\n        enabled: true,\n        prefix: \"config/\",\n    }],\n    versioning: {\n        enabled: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nbucket = flexibleengine.S3Bucket(\"bucket\",\n    acl=\"private\",\n    bucket=\"my-bucket\",\n    lifecycle_rules=[\n        {\n            \"enabled\": True,\n            \"expirations\": [{\n                \"days\": 90,\n            }],\n            \"id\": \"log\",\n            \"prefix\": \"log/\",\n        },\n        {\n            \"enabled\": True,\n            \"expirations\": [{\n                \"date\": \"2016-01-12\",\n            }],\n            \"id\": \"tmp\",\n            \"prefix\": \"tmp/\",\n        },\n    ])\nversioning_bucket = flexibleengine.S3Bucket(\"versioningBucket\",\n    acl=\"private\",\n    bucket=\"my-versioning-bucket\",\n    lifecycle_rules=[{\n        \"enabled\": True,\n        \"prefix\": \"config/\",\n    }],\n    versioning={\n        \"enabled\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = new Flexibleengine.S3Bucket(\"bucket\", new()\n    {\n        Acl = \"private\",\n        Bucket = \"my-bucket\",\n        LifecycleRules = new[]\n        {\n            new Flexibleengine.Inputs.S3BucketLifecycleRuleArgs\n            {\n                Enabled = true,\n                Expirations = new[]\n                {\n                    new Flexibleengine.Inputs.S3BucketLifecycleRuleExpirationArgs\n                    {\n                        Days = 90,\n                    },\n                },\n                Id = \"log\",\n                Prefix = \"log/\",\n            },\n            new Flexibleengine.Inputs.S3BucketLifecycleRuleArgs\n            {\n                Enabled = true,\n                Expirations = new[]\n                {\n                    new Flexibleengine.Inputs.S3BucketLifecycleRuleExpirationArgs\n                    {\n                        Date = \"2016-01-12\",\n                    },\n                },\n                Id = \"tmp\",\n                Prefix = \"tmp/\",\n            },\n        },\n    });\n\n    var versioningBucket = new Flexibleengine.S3Bucket(\"versioningBucket\", new()\n    {\n        Acl = \"private\",\n        Bucket = \"my-versioning-bucket\",\n        LifecycleRules = new[]\n        {\n            new Flexibleengine.Inputs.S3BucketLifecycleRuleArgs\n            {\n                Enabled = true,\n                Prefix = \"config/\",\n            },\n        },\n        Versioning = new Flexibleengine.Inputs.S3BucketVersioningArgs\n        {\n            Enabled = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewS3Bucket(ctx, \"bucket\", &flexibleengine.S3BucketArgs{\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tBucket: pulumi.String(\"my-bucket\"),\n\t\t\tLifecycleRules: flexibleengine.S3BucketLifecycleRuleArray{\n\t\t\t\t&flexibleengine.S3BucketLifecycleRuleArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpirations: flexibleengine.S3BucketLifecycleRuleExpirationArray{\n\t\t\t\t\t\t&flexibleengine.S3BucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\t\tDays: pulumi.Float64(90),\n\t\t\t\t\t\t},\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},\n\t\t\t\t&flexibleengine.S3BucketLifecycleRuleArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpirations: flexibleengine.S3BucketLifecycleRuleExpirationArray{\n\t\t\t\t\t\t&flexibleengine.S3BucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\t\tDate: pulumi.String(\"2016-01-12\"),\n\t\t\t\t\t\t},\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 = flexibleengine.NewS3Bucket(ctx, \"versioningBucket\", &flexibleengine.S3BucketArgs{\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tBucket: pulumi.String(\"my-versioning-bucket\"),\n\t\t\tLifecycleRules: flexibleengine.S3BucketLifecycleRuleArray{\n\t\t\t\t&flexibleengine.S3BucketLifecycleRuleArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tPrefix:  pulumi.String(\"config/\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVersioning: &flexibleengine.S3BucketVersioningArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.S3Bucket;\nimport com.pulumi.flexibleengine.S3BucketArgs;\nimport com.pulumi.flexibleengine.inputs.S3BucketLifecycleRuleArgs;\nimport com.pulumi.flexibleengine.inputs.S3BucketVersioningArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new S3Bucket(\"bucket\", S3BucketArgs.builder()\n            .acl(\"private\")\n            .bucket(\"my-bucket\")\n            .lifecycleRules(            \n                S3BucketLifecycleRuleArgs.builder()\n                    .enabled(true)\n                    .expirations(S3BucketLifecycleRuleExpirationArgs.builder()\n                        .days(90)\n                        .build())\n                    .id(\"log\")\n                    .prefix(\"log/\")\n                    .build(),\n                S3BucketLifecycleRuleArgs.builder()\n                    .enabled(true)\n                    .expirations(S3BucketLifecycleRuleExpirationArgs.builder()\n                        .date(\"2016-01-12\")\n                        .build())\n                    .id(\"tmp\")\n                    .prefix(\"tmp/\")\n                    .build())\n            .build());\n\n        var versioningBucket = new S3Bucket(\"versioningBucket\", S3BucketArgs.builder()\n            .acl(\"private\")\n            .bucket(\"my-versioning-bucket\")\n            .lifecycleRules(S3BucketLifecycleRuleArgs.builder()\n                .enabled(true)\n                .prefix(\"config/\")\n                .build())\n            .versioning(S3BucketVersioningArgs.builder()\n                .enabled(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: flexibleengine:S3Bucket\n    properties:\n      acl: private\n      bucket: my-bucket\n      lifecycleRules:\n        - enabled: true\n          expirations:\n            - days: 90\n          id: log\n          prefix: log/\n        - enabled: true\n          expirations:\n            - date: 2016-01-12\n          id: tmp\n          prefix: tmp/\n  versioningBucket:\n    type: flexibleengine:S3Bucket\n    properties:\n      acl: private\n      bucket: my-versioning-bucket\n      lifecycleRules:\n        - enabled: true\n          prefix: config/\n      versioning:\n        enabled: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nS3 bucket can be imported using the `bucket`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/s3Bucket:S3Bucket bucket bucket-name\n```\n\n",
      "properties": {
        "acl": {
          "type": "string",
          "description": "The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl)\nto apply. Defaults to **private**.\n"
        },
        "arn": {
          "type": "string",
          "description": "The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`.\n"
        },
        "bucket": {
          "type": "string"
        },
        "bucketDomainName": {
          "type": "string",
          "description": "The bucket domain name. Will be of format `bucketname.s3.amazonaws.com`.\n"
        },
        "bucketPrefix": {
          "type": "string",
          "description": "Creates a unique bucket name beginning with the specified prefix.\nConflicts with `bucket`. Changing this will create a new resource.\n"
        },
        "corsRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FS3BucketCorsRule:S3BucketCorsRule"
          },
          "description": "A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html).\nThe cors_rule object structure is documented below.\n"
        },
        "forceDestroy": {
          "type": "boolean",
          "description": "A boolean that indicates all objects should be deleted from the bucket\nso that the bucket can be destroyed without error. These objects are *not* recoverable. Default to **false**.\n"
        },
        "hostedZoneId": {
          "type": "string",
          "description": "The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints)\nfor this bucket's region.\n"
        },
        "lifecycleRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FS3BucketLifecycleRule:S3BucketLifecycleRule"
          },
          "description": "A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)\nThe lifecycle_rule object structure is documented below.\n\n<a name=\"obs_website\"></a>\nThe `website` object supports:\n"
        },
        "loggings": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FS3BucketLogging:S3BucketLogging"
          },
          "description": "A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html).\nThe logging object structure is documented below.\n"
        },
        "policy": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the s3 bucket resource.\nIf omitted, the provider-level region will be used. Changing this will create a new s3 bucket resource.\n"
        },
        "s3BucketId": {
          "type": "string",
          "description": "Unique identifier for the rule.\n"
        },
        "versioning": {
          "$ref": "#/types/flexibleengine:index%2FS3BucketVersioning:S3BucketVersioning",
          "description": "A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html).\nThe versioning object structure is documented below.\n"
        },
        "website": {
          "$ref": "#/types/flexibleengine:index%2FS3BucketWebsite:S3BucketWebsite",
          "description": "A website object.\nThe website object structure is documented below.\n"
        },
        "websiteDomain": {
          "type": "string",
          "description": "The domain of the website endpoint, if the bucket is configured with a website.\nIf not, this will be an empty string. This is used to create Route 53 alias records.\n"
        },
        "websiteEndpoint": {
          "type": "string",
          "description": "The website endpoint, if the bucket is configured with a website. If not, this will be an\nempty string.\n"
        }
      },
      "type": "object",
      "required": [
        "arn",
        "bucket",
        "bucketDomainName",
        "hostedZoneId",
        "region",
        "s3BucketId",
        "websiteDomain",
        "websiteEndpoint"
      ],
      "inputProperties": {
        "acl": {
          "type": "string",
          "description": "The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl)\nto apply. Defaults to **private**.\n"
        },
        "bucket": {
          "type": "string"
        },
        "bucketPrefix": {
          "type": "string",
          "description": "Creates a unique bucket name beginning with the specified prefix.\nConflicts with `bucket`. Changing this will create a new resource.\n"
        },
        "corsRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FS3BucketCorsRule:S3BucketCorsRule"
          },
          "description": "A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html).\nThe cors_rule object structure is documented below.\n"
        },
        "forceDestroy": {
          "type": "boolean",
          "description": "A boolean that indicates all objects should be deleted from the bucket\nso that the bucket can be destroyed without error. These objects are *not* recoverable. Default to **false**.\n"
        },
        "lifecycleRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FS3BucketLifecycleRule:S3BucketLifecycleRule"
          },
          "description": "A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)\nThe lifecycle_rule object structure is documented below.\n\n<a name=\"obs_website\"></a>\nThe `website` object supports:\n"
        },
        "loggings": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FS3BucketLogging:S3BucketLogging"
          },
          "description": "A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html).\nThe logging object structure is documented below.\n"
        },
        "policy": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the s3 bucket resource.\nIf omitted, the provider-level region will be used. Changing this will create a new s3 bucket resource.\n"
        },
        "s3BucketId": {
          "type": "string",
          "description": "Unique identifier for the rule.\n"
        },
        "versioning": {
          "$ref": "#/types/flexibleengine:index%2FS3BucketVersioning:S3BucketVersioning",
          "description": "A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html).\nThe versioning object structure is documented below.\n"
        },
        "website": {
          "$ref": "#/types/flexibleengine:index%2FS3BucketWebsite:S3BucketWebsite",
          "description": "A website object.\nThe website object structure is documented below.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering S3Bucket resources.\n",
        "properties": {
          "acl": {
            "type": "string",
            "description": "The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl)\nto apply. Defaults to **private**.\n"
          },
          "arn": {
            "type": "string",
            "description": "The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`.\n"
          },
          "bucket": {
            "type": "string"
          },
          "bucketDomainName": {
            "type": "string",
            "description": "The bucket domain name. Will be of format `bucketname.s3.amazonaws.com`.\n"
          },
          "bucketPrefix": {
            "type": "string",
            "description": "Creates a unique bucket name beginning with the specified prefix.\nConflicts with `bucket`. Changing this will create a new resource.\n"
          },
          "corsRules": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FS3BucketCorsRule:S3BucketCorsRule"
            },
            "description": "A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html).\nThe cors_rule object structure is documented below.\n"
          },
          "forceDestroy": {
            "type": "boolean",
            "description": "A boolean that indicates all objects should be deleted from the bucket\nso that the bucket can be destroyed without error. These objects are *not* recoverable. Default to **false**.\n"
          },
          "hostedZoneId": {
            "type": "string",
            "description": "The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints)\nfor this bucket's region.\n"
          },
          "lifecycleRules": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FS3BucketLifecycleRule:S3BucketLifecycleRule"
            },
            "description": "A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)\nThe lifecycle_rule object structure is documented below.\n\n<a name=\"obs_website\"></a>\nThe `website` object supports:\n"
          },
          "loggings": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FS3BucketLogging:S3BucketLogging"
            },
            "description": "A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html).\nThe logging object structure is documented below.\n"
          },
          "policy": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the s3 bucket resource.\nIf omitted, the provider-level region will be used. Changing this will create a new s3 bucket resource.\n"
          },
          "s3BucketId": {
            "type": "string",
            "description": "Unique identifier for the rule.\n"
          },
          "versioning": {
            "$ref": "#/types/flexibleengine:index%2FS3BucketVersioning:S3BucketVersioning",
            "description": "A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html).\nThe versioning object structure is documented below.\n"
          },
          "website": {
            "$ref": "#/types/flexibleengine:index%2FS3BucketWebsite:S3BucketWebsite",
            "description": "A website object.\nThe website object structure is documented below.\n"
          },
          "websiteDomain": {
            "type": "string",
            "description": "The domain of the website endpoint, if the bucket is configured with a website.\nIf not, this will be an empty string. This is used to create Route 53 alias records.\n"
          },
          "websiteEndpoint": {
            "type": "string",
            "description": "The website endpoint, if the bucket is configured with a website. If not, this will be an\nempty string.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/s3BucketObject:S3BucketObject": {
      "description": "Provides a S3 bucket object resource.\n\n## Example Usage\n\n### Server Side Encryption with S3 Default Master Key\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst examplebucket = new flexibleengine.S3Bucket(\"examplebucket\", {\n    bucket: \"examplebuckettftest\",\n    acl: \"private\",\n});\nconst examplebucketObject = new flexibleengine.S3BucketObject(\"examplebucketObject\", {\n    key: \"someobject\",\n    bucket: examplebucket.bucket,\n    source: \"index.html\",\n    serverSideEncryption: \"aws:kms\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexamplebucket = flexibleengine.S3Bucket(\"examplebucket\",\n    bucket=\"examplebuckettftest\",\n    acl=\"private\")\nexamplebucket_object = flexibleengine.S3BucketObject(\"examplebucketObject\",\n    key=\"someobject\",\n    bucket=examplebucket.bucket,\n    source=\"index.html\",\n    server_side_encryption=\"aws:kms\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var examplebucket = new Flexibleengine.S3Bucket(\"examplebucket\", new()\n    {\n        Bucket = \"examplebuckettftest\",\n        Acl = \"private\",\n    });\n\n    var examplebucketObject = new Flexibleengine.S3BucketObject(\"examplebucketObject\", new()\n    {\n        Key = \"someobject\",\n        Bucket = examplebucket.Bucket,\n        Source = \"index.html\",\n        ServerSideEncryption = \"aws:kms\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texamplebucket, err := flexibleengine.NewS3Bucket(ctx, \"examplebucket\", &flexibleengine.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"examplebuckettftest\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewS3BucketObject(ctx, \"examplebucketObject\", &flexibleengine.S3BucketObjectArgs{\n\t\t\tKey:                  pulumi.String(\"someobject\"),\n\t\t\tBucket:               examplebucket.Bucket,\n\t\t\tSource:               pulumi.String(\"index.html\"),\n\t\t\tServerSideEncryption: pulumi.String(\"aws:kms\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.S3Bucket;\nimport com.pulumi.flexibleengine.S3BucketArgs;\nimport com.pulumi.flexibleengine.S3BucketObject;\nimport com.pulumi.flexibleengine.S3BucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var examplebucket = new S3Bucket(\"examplebucket\", S3BucketArgs.builder()\n            .bucket(\"examplebuckettftest\")\n            .acl(\"private\")\n            .build());\n\n        var examplebucketObject = new S3BucketObject(\"examplebucketObject\", S3BucketObjectArgs.builder()\n            .key(\"someobject\")\n            .bucket(examplebucket.bucket())\n            .source(\"index.html\")\n            .serverSideEncryption(\"aws:kms\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  examplebucket:\n    type: flexibleengine:S3Bucket\n    properties:\n      bucket: examplebuckettftest\n      acl: private\n  examplebucketObject:\n    type: flexibleengine:S3BucketObject\n    properties:\n      key: someobject\n      bucket: ${examplebucket.bucket}\n      source: index.html\n      serverSideEncryption: aws:kms\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "acl": {
          "type": "string",
          "description": "The\n[canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply.\nDefaults to \"private\".\n"
        },
        "bucket": {
          "type": "string",
          "description": "The name of the bucket to put the file in. Changing this will create a\nnew resource.\n"
        },
        "cacheControl": {
          "type": "string",
          "description": "Specifies caching behavior along the request/reply chain Read\n[w3c cache_control](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details.\n"
        },
        "content": {
          "type": "string",
          "description": "The literal content being uploaded to the bucket. It is **Optional** if `source` given.\n"
        },
        "contentDisposition": {
          "type": "string",
          "description": "Specifies presentational information for the object. Read\n[wc3 content_disposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information.\n"
        },
        "contentEncoding": {
          "type": "string",
          "description": "Specifies what content encodings have been applied to the object and thus\nwhat decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.\nRead [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information.\n"
        },
        "contentLanguage": {
          "type": "string",
          "description": "The language the content is in e.g. en-US or en-GB.\n"
        },
        "contentType": {
          "type": "string",
          "description": "A standard MIME type describing the format of the object data,\ne.g. application/octet-stream. All Valid MIME Types are valid for this input.\n"
        },
        "etag": {
          "type": "string",
          "description": "Used to trigger updates. The only meaningful value is `${md5(file(\"path/to/file\"))}`.\nThis attribute is not compatible with `kms_key_id`.\n"
        },
        "key": {
          "type": "string",
          "description": "The name of the object once it is in the bucket. Changing this will create a\nnew resource.\n"
        },
        "s3BucketObjectId": {
          "type": "string",
          "description": "the `key` of the resource supplied above.\n"
        },
        "serverSideEncryption": {
          "type": "string",
          "description": "Specifies server-side encryption of the object in S3.\nValid values are \"`AES256`\" and \"`aws:kms`\".\n\nEither `source` or `content` must be provided to specify the bucket content.\nThese two arguments are mutually-exclusive.\n"
        },
        "source": {
          "type": "string",
          "description": "The path to the source file being uploaded to the bucket.\n"
        },
        "versionId": {
          "type": "string",
          "description": "A unique version ID value for the object, if bucket versioning\nis enabled.\n"
        },
        "websiteRedirect": {
          "type": "string",
          "description": "Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html).\n"
        }
      },
      "type": "object",
      "required": [
        "bucket",
        "contentType",
        "etag",
        "key",
        "s3BucketObjectId",
        "serverSideEncryption",
        "versionId"
      ],
      "inputProperties": {
        "acl": {
          "type": "string",
          "description": "The\n[canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply.\nDefaults to \"private\".\n"
        },
        "bucket": {
          "type": "string",
          "description": "The name of the bucket to put the file in. Changing this will create a\nnew resource.\n"
        },
        "cacheControl": {
          "type": "string",
          "description": "Specifies caching behavior along the request/reply chain Read\n[w3c cache_control](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details.\n"
        },
        "content": {
          "type": "string",
          "description": "The literal content being uploaded to the bucket. It is **Optional** if `source` given.\n"
        },
        "contentDisposition": {
          "type": "string",
          "description": "Specifies presentational information for the object. Read\n[wc3 content_disposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information.\n"
        },
        "contentEncoding": {
          "type": "string",
          "description": "Specifies what content encodings have been applied to the object and thus\nwhat decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.\nRead [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information.\n"
        },
        "contentLanguage": {
          "type": "string",
          "description": "The language the content is in e.g. en-US or en-GB.\n"
        },
        "contentType": {
          "type": "string",
          "description": "A standard MIME type describing the format of the object data,\ne.g. application/octet-stream. All Valid MIME Types are valid for this input.\n"
        },
        "etag": {
          "type": "string",
          "description": "Used to trigger updates. The only meaningful value is `${md5(file(\"path/to/file\"))}`.\nThis attribute is not compatible with `kms_key_id`.\n"
        },
        "key": {
          "type": "string",
          "description": "The name of the object once it is in the bucket. Changing this will create a\nnew resource.\n"
        },
        "s3BucketObjectId": {
          "type": "string",
          "description": "the `key` of the resource supplied above.\n"
        },
        "serverSideEncryption": {
          "type": "string",
          "description": "Specifies server-side encryption of the object in S3.\nValid values are \"`AES256`\" and \"`aws:kms`\".\n\nEither `source` or `content` must be provided to specify the bucket content.\nThese two arguments are mutually-exclusive.\n"
        },
        "source": {
          "type": "string",
          "description": "The path to the source file being uploaded to the bucket.\n"
        },
        "websiteRedirect": {
          "type": "string",
          "description": "Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html).\n"
        }
      },
      "requiredInputs": [
        "bucket",
        "key"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering S3BucketObject resources.\n",
        "properties": {
          "acl": {
            "type": "string",
            "description": "The\n[canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply.\nDefaults to \"private\".\n"
          },
          "bucket": {
            "type": "string",
            "description": "The name of the bucket to put the file in. Changing this will create a\nnew resource.\n"
          },
          "cacheControl": {
            "type": "string",
            "description": "Specifies caching behavior along the request/reply chain Read\n[w3c cache_control](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details.\n"
          },
          "content": {
            "type": "string",
            "description": "The literal content being uploaded to the bucket. It is **Optional** if `source` given.\n"
          },
          "contentDisposition": {
            "type": "string",
            "description": "Specifies presentational information for the object. Read\n[wc3 content_disposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information.\n"
          },
          "contentEncoding": {
            "type": "string",
            "description": "Specifies what content encodings have been applied to the object and thus\nwhat decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.\nRead [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information.\n"
          },
          "contentLanguage": {
            "type": "string",
            "description": "The language the content is in e.g. en-US or en-GB.\n"
          },
          "contentType": {
            "type": "string",
            "description": "A standard MIME type describing the format of the object data,\ne.g. application/octet-stream. All Valid MIME Types are valid for this input.\n"
          },
          "etag": {
            "type": "string",
            "description": "Used to trigger updates. The only meaningful value is `${md5(file(\"path/to/file\"))}`.\nThis attribute is not compatible with `kms_key_id`.\n"
          },
          "key": {
            "type": "string",
            "description": "The name of the object once it is in the bucket. Changing this will create a\nnew resource.\n"
          },
          "s3BucketObjectId": {
            "type": "string",
            "description": "the `key` of the resource supplied above.\n"
          },
          "serverSideEncryption": {
            "type": "string",
            "description": "Specifies server-side encryption of the object in S3.\nValid values are \"`AES256`\" and \"`aws:kms`\".\n\nEither `source` or `content` must be provided to specify the bucket content.\nThese two arguments are mutually-exclusive.\n"
          },
          "source": {
            "type": "string",
            "description": "The path to the source file being uploaded to the bucket.\n"
          },
          "versionId": {
            "type": "string",
            "description": "A unique version ID value for the object, if bucket versioning\nis enabled.\n"
          },
          "websiteRedirect": {
            "type": "string",
            "description": "Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html).\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/s3BucketPolicy:S3BucketPolicy": {
      "description": "Attaches a policy to an S3 bucket resource.\n\n## Example Usage\n\n### Basic Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst s3Bucket = new flexibleengine.S3Bucket(\"s3Bucket\", {bucket: \"my_tf_test_bucket\"});\nconst s3BucketPolicy = new flexibleengine.S3BucketPolicy(\"s3BucketPolicy\", {\n    bucket: s3Bucket.s3BucketId,\n    policy: `{\n  \"Version\": \"2012-10-17\",\n  \"Id\": \"MYBUCKETPOLICY\",\n  \"Statement\": [\n    {\n      \"Sid\": \"IPAllow\",\n      \"Effect\": \"Deny\",\n      \"Principal\": \"*\",\n      \"Action\": \"s3:*\",\n      \"Resource\": \"arn:aws:s3:::my_tf_test_bucket/*\",\n      \"Condition\": {\n         \"IpAddress\": {\"aws:SourceIp\": \"8.8.8.8/32\"}\n      } \n    } \n  ]\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ns3_bucket = flexibleengine.S3Bucket(\"s3Bucket\", bucket=\"my_tf_test_bucket\")\ns3_bucket_policy = flexibleengine.S3BucketPolicy(\"s3BucketPolicy\",\n    bucket=s3_bucket.s3_bucket_id,\n    policy=\"\"\"{\n  \"Version\": \"2012-10-17\",\n  \"Id\": \"MYBUCKETPOLICY\",\n  \"Statement\": [\n    {\n      \"Sid\": \"IPAllow\",\n      \"Effect\": \"Deny\",\n      \"Principal\": \"*\",\n      \"Action\": \"s3:*\",\n      \"Resource\": \"arn:aws:s3:::my_tf_test_bucket/*\",\n      \"Condition\": {\n         \"IpAddress\": {\"aws:SourceIp\": \"8.8.8.8/32\"}\n      } \n    } \n  ]\n}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var s3Bucket = new Flexibleengine.S3Bucket(\"s3Bucket\", new()\n    {\n        Bucket = \"my_tf_test_bucket\",\n    });\n\n    var s3BucketPolicy = new Flexibleengine.S3BucketPolicy(\"s3BucketPolicy\", new()\n    {\n        Bucket = s3Bucket.S3BucketId,\n        Policy = @\"{\n  \"\"Version\"\": \"\"2012-10-17\"\",\n  \"\"Id\"\": \"\"MYBUCKETPOLICY\"\",\n  \"\"Statement\"\": [\n    {\n      \"\"Sid\"\": \"\"IPAllow\"\",\n      \"\"Effect\"\": \"\"Deny\"\",\n      \"\"Principal\"\": \"\"*\"\",\n      \"\"Action\"\": \"\"s3:*\"\",\n      \"\"Resource\"\": \"\"arn:aws:s3:::my_tf_test_bucket/*\"\",\n      \"\"Condition\"\": {\n         \"\"IpAddress\"\": {\"\"aws:SourceIp\"\": \"\"8.8.8.8/32\"\"}\n      } \n    } \n  ]\n}\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ts3Bucket, err := flexibleengine.NewS3Bucket(ctx, \"s3Bucket\", &flexibleengine.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"my_tf_test_bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewS3BucketPolicy(ctx, \"s3BucketPolicy\", &flexibleengine.S3BucketPolicyArgs{\n\t\t\tBucket: s3Bucket.S3BucketId,\n\t\t\tPolicy: pulumi.String(`{\n  \"Version\": \"2012-10-17\",\n  \"Id\": \"MYBUCKETPOLICY\",\n  \"Statement\": [\n    {\n      \"Sid\": \"IPAllow\",\n      \"Effect\": \"Deny\",\n      \"Principal\": \"*\",\n      \"Action\": \"s3:*\",\n      \"Resource\": \"arn:aws:s3:::my_tf_test_bucket/*\",\n      \"Condition\": {\n         \"IpAddress\": {\"aws:SourceIp\": \"8.8.8.8/32\"}\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.S3Bucket;\nimport com.pulumi.flexibleengine.S3BucketArgs;\nimport com.pulumi.flexibleengine.S3BucketPolicy;\nimport com.pulumi.flexibleengine.S3BucketPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var s3Bucket = new S3Bucket(\"s3Bucket\", S3BucketArgs.builder()\n            .bucket(\"my_tf_test_bucket\")\n            .build());\n\n        var s3BucketPolicy = new S3BucketPolicy(\"s3BucketPolicy\", S3BucketPolicyArgs.builder()\n            .bucket(s3Bucket.s3BucketId())\n            .policy(\"\"\"\n{\n  \"Version\": \"2012-10-17\",\n  \"Id\": \"MYBUCKETPOLICY\",\n  \"Statement\": [\n    {\n      \"Sid\": \"IPAllow\",\n      \"Effect\": \"Deny\",\n      \"Principal\": \"*\",\n      \"Action\": \"s3:*\",\n      \"Resource\": \"arn:aws:s3:::my_tf_test_bucket/*\",\n      \"Condition\": {\n         \"IpAddress\": {\"aws:SourceIp\": \"8.8.8.8/32\"}\n      } \n    } \n  ]\n}\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  s3Bucket:\n    type: flexibleengine:S3Bucket\n    properties:\n      bucket: my_tf_test_bucket\n  s3BucketPolicy:\n    type: flexibleengine:S3BucketPolicy\n    properties:\n      bucket: ${s3Bucket.s3BucketId}\n      policy: \"{\\n  \\\"Version\\\": \\\"2012-10-17\\\",\\n  \\\"Id\\\": \\\"MYBUCKETPOLICY\\\",\\n  \\\"Statement\\\": [\\n    {\\n      \\\"Sid\\\": \\\"IPAllow\\\",\\n      \\\"Effect\\\": \\\"Deny\\\",\\n      \\\"Principal\\\": \\\"*\\\",\\n      \\\"Action\\\": \\\"s3:*\\\",\\n      \\\"Resource\\\": \\\"arn:aws:s3:::my_tf_test_bucket/*\\\",\\n      \\\"Condition\\\": {\\n         \\\"IpAddress\\\": {\\\"aws:SourceIp\\\": \\\"8.8.8.8/32\\\"}\\n      } \\n    } \\n  ]\\n}\\n\"\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "bucket": {
          "type": "string",
          "description": "The name of the bucket to which to apply the policy.\n"
        },
        "policy": {
          "type": "string",
          "description": "The text of the policy.\n"
        },
        "s3BucketPolicyId": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "bucket",
        "policy",
        "s3BucketPolicyId"
      ],
      "inputProperties": {
        "bucket": {
          "type": "string",
          "description": "The name of the bucket to which to apply the policy.\n"
        },
        "policy": {
          "type": "string",
          "description": "The text of the policy.\n"
        },
        "s3BucketPolicyId": {
          "type": "string"
        }
      },
      "requiredInputs": [
        "bucket",
        "policy"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering S3BucketPolicy resources.\n",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "The name of the bucket to which to apply the policy.\n"
          },
          "policy": {
            "type": "string",
            "description": "The text of the policy.\n"
          },
          "s3BucketPolicyId": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/sdrsDrillV1:SdrsDrillV1": {
      "description": "Manages a Disaster Recovery Drill resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst domain1 = flexibleengine.getSdrsDomainV1({\n    name: \"SDRS_HypeDomain01\",\n});\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/24\"});\nconst exampleVpcDrill = new flexibleengine.VpcV1(\"exampleVpcDrill\", {cidr: \"192.168.1.0/24\"});\nconst group1 = new flexibleengine.SdrsProtectiongroupV1(\"group1\", {\n    description: \"test description\",\n    sourceAvailabilityZone: \"eu-west-0a\",\n    targetAvailabilityZone: \"eu-west-0b\",\n    domainId: domain1.then(domain1 => domain1.id),\n    sourceVpcId: exampleVpc.vpcV1Id,\n    drType: \"migration\",\n});\nconst drill1 = new flexibleengine.SdrsDrillV1(\"drill1\", {\n    groupId: group1.sdrsProtectiongroupV1Id,\n    drillVpcId: exampleVpcDrill.vpcV1Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ndomain1 = flexibleengine.get_sdrs_domain_v1(name=\"SDRS_HypeDomain01\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/24\")\nexample_vpc_drill = flexibleengine.VpcV1(\"exampleVpcDrill\", cidr=\"192.168.1.0/24\")\ngroup1 = flexibleengine.SdrsProtectiongroupV1(\"group1\",\n    description=\"test description\",\n    source_availability_zone=\"eu-west-0a\",\n    target_availability_zone=\"eu-west-0b\",\n    domain_id=domain1.id,\n    source_vpc_id=example_vpc.vpc_v1_id,\n    dr_type=\"migration\")\ndrill1 = flexibleengine.SdrsDrillV1(\"drill1\",\n    group_id=group1.sdrs_protectiongroup_v1_id,\n    drill_vpc_id=example_vpc_drill.vpc_v1_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var domain1 = Flexibleengine.GetSdrsDomainV1.Invoke(new()\n    {\n        Name = \"SDRS_HypeDomain01\",\n    });\n\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n    });\n\n    var exampleVpcDrill = new Flexibleengine.VpcV1(\"exampleVpcDrill\", new()\n    {\n        Cidr = \"192.168.1.0/24\",\n    });\n\n    var group1 = new Flexibleengine.SdrsProtectiongroupV1(\"group1\", new()\n    {\n        Description = \"test description\",\n        SourceAvailabilityZone = \"eu-west-0a\",\n        TargetAvailabilityZone = \"eu-west-0b\",\n        DomainId = domain1.Apply(getSdrsDomainV1Result => getSdrsDomainV1Result.Id),\n        SourceVpcId = exampleVpc.VpcV1Id,\n        DrType = \"migration\",\n    });\n\n    var drill1 = new Flexibleengine.SdrsDrillV1(\"drill1\", new()\n    {\n        GroupId = group1.SdrsProtectiongroupV1Id,\n        DrillVpcId = exampleVpcDrill.VpcV1Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdomain1, err := flexibleengine.GetSdrsDomainV1(ctx, &flexibleengine.GetSdrsDomainV1Args{\n\t\t\tName: pulumi.StringRef(\"SDRS_HypeDomain01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpcDrill, err := flexibleengine.NewVpcV1(ctx, \"exampleVpcDrill\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup1, err := flexibleengine.NewSdrsProtectiongroupV1(ctx, \"group1\", &flexibleengine.SdrsProtectiongroupV1Args{\n\t\t\tDescription:            pulumi.String(\"test description\"),\n\t\t\tSourceAvailabilityZone: pulumi.String(\"eu-west-0a\"),\n\t\t\tTargetAvailabilityZone: pulumi.String(\"eu-west-0b\"),\n\t\t\tDomainId:               pulumi.String(domain1.Id),\n\t\t\tSourceVpcId:            exampleVpc.VpcV1Id,\n\t\t\tDrType:                 pulumi.String(\"migration\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewSdrsDrillV1(ctx, \"drill1\", &flexibleengine.SdrsDrillV1Args{\n\t\t\tGroupId:    group1.SdrsProtectiongroupV1Id,\n\t\t\tDrillVpcId: exampleVpcDrill.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetSdrsDomainV1Args;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.SdrsProtectiongroupV1;\nimport com.pulumi.flexibleengine.SdrsProtectiongroupV1Args;\nimport com.pulumi.flexibleengine.SdrsDrillV1;\nimport com.pulumi.flexibleengine.SdrsDrillV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var domain1 = FlexibleengineFunctions.getSdrsDomainV1(GetSdrsDomainV1Args.builder()\n            .name(\"SDRS_HypeDomain01\")\n            .build());\n\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .build());\n\n        var exampleVpcDrill = new VpcV1(\"exampleVpcDrill\", VpcV1Args.builder()\n            .cidr(\"192.168.1.0/24\")\n            .build());\n\n        var group1 = new SdrsProtectiongroupV1(\"group1\", SdrsProtectiongroupV1Args.builder()\n            .description(\"test description\")\n            .sourceAvailabilityZone(\"eu-west-0a\")\n            .targetAvailabilityZone(\"eu-west-0b\")\n            .domainId(domain1.applyValue(getSdrsDomainV1Result -> getSdrsDomainV1Result.id()))\n            .sourceVpcId(exampleVpc.vpcV1Id())\n            .drType(\"migration\")\n            .build());\n\n        var drill1 = new SdrsDrillV1(\"drill1\", SdrsDrillV1Args.builder()\n            .groupId(group1.sdrsProtectiongroupV1Id())\n            .drillVpcId(exampleVpcDrill.vpcV1Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/24\n  exampleVpcDrill:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.1.0/24\n  group1:\n    type: flexibleengine:SdrsProtectiongroupV1\n    properties:\n      description: test description\n      sourceAvailabilityZone: eu-west-0a\n      targetAvailabilityZone: eu-west-0b\n      domainId: ${domain1.id}\n      sourceVpcId: ${exampleVpc.vpcV1Id}\n      drType: migration\n  drill1:\n    type: flexibleengine:SdrsDrillV1\n    properties:\n      groupId: ${group1.sdrsProtectiongroupV1Id}\n      drillVpcId: ${exampleVpcDrill.vpcV1Id}\nvariables:\n  domain1:\n    fn::invoke:\n      function: flexibleengine:getSdrsDomainV1\n      arguments:\n        name: SDRS_HypeDomain01\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDR drill can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/sdrsDrillV1:SdrsDrillV1 drill_1 22fce838-4bfb-4a92-b9aa-fc80a583eb59\n```\n\n",
      "properties": {
        "drillVpcId": {
          "type": "string",
          "description": "Specifies the ID used for a DR drill. Changing this creates a new drill.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the ID of a protection group. Changing this creates a new drill.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of a DR drill. The name can contain a maximum of 64 bytes.\nThe value can contain only letters (a to z and A to Z), digits (0 to 9), decimal points (.),\nunderscores (_), and hyphens (-).\n"
        },
        "sdrsDrillV1Id": {
          "type": "string",
          "description": "ID of a DR drill.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of a DR drill.\nFor details, see [DR Drill Status](https://docs.prod-cloud-ocb.orange-business.com/en-us/api/sdrs/en-us_topic_0126152933.html).\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSdrsDrillV1Timeouts:SdrsDrillV1Timeouts"
        }
      },
      "type": "object",
      "required": [
        "drillVpcId",
        "groupId",
        "name",
        "sdrsDrillV1Id",
        "status"
      ],
      "inputProperties": {
        "drillVpcId": {
          "type": "string",
          "description": "Specifies the ID used for a DR drill. Changing this creates a new drill.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the ID of a protection group. Changing this creates a new drill.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of a DR drill. The name can contain a maximum of 64 bytes.\nThe value can contain only letters (a to z and A to Z), digits (0 to 9), decimal points (.),\nunderscores (_), and hyphens (-).\n"
        },
        "sdrsDrillV1Id": {
          "type": "string",
          "description": "ID of a DR drill.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSdrsDrillV1Timeouts:SdrsDrillV1Timeouts"
        }
      },
      "requiredInputs": [
        "drillVpcId",
        "groupId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SdrsDrillV1 resources.\n",
        "properties": {
          "drillVpcId": {
            "type": "string",
            "description": "Specifies the ID used for a DR drill. Changing this creates a new drill.\n"
          },
          "groupId": {
            "type": "string",
            "description": "Specifies the ID of a protection group. Changing this creates a new drill.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of a DR drill. The name can contain a maximum of 64 bytes.\nThe value can contain only letters (a to z and A to Z), digits (0 to 9), decimal points (.),\nunderscores (_), and hyphens (-).\n"
          },
          "sdrsDrillV1Id": {
            "type": "string",
            "description": "ID of a DR drill.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of a DR drill.\nFor details, see [DR Drill Status](https://docs.prod-cloud-ocb.orange-business.com/en-us/api/sdrs/en-us_topic_0126152933.html).\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSdrsDrillV1Timeouts:SdrsDrillV1Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/sdrsProtectedinstanceV1:SdrsProtectedinstanceV1": {
      "description": "Manages a SDRS protected instance resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst domain1 = flexibleengine.getSdrsDomainV1({\n    name: \"SDRS_HypeDomain01\",\n});\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst group1 = new flexibleengine.SdrsProtectiongroupV1(\"group1\", {\n    description: \"test description\",\n    sourceAvailabilityZone: \"eu-west-0a\",\n    targetAvailabilityZone: \"eu-west-0b\",\n    domainId: domain1.then(domain1 => domain1.id),\n    sourceVpcId: exampleVpc.vpcV1Id,\n    drType: \"migration\",\n});\nconst instance1 = new flexibleengine.SdrsProtectedinstanceV1(\"instance1\", {\n    groupId: group1.sdrsProtectiongroupV1Id,\n    serverId: \"{{ server_id }}\",\n    description: \"test description\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ndomain1 = flexibleengine.get_sdrs_domain_v1(name=\"SDRS_HypeDomain01\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\ngroup1 = flexibleengine.SdrsProtectiongroupV1(\"group1\",\n    description=\"test description\",\n    source_availability_zone=\"eu-west-0a\",\n    target_availability_zone=\"eu-west-0b\",\n    domain_id=domain1.id,\n    source_vpc_id=example_vpc.vpc_v1_id,\n    dr_type=\"migration\")\ninstance1 = flexibleengine.SdrsProtectedinstanceV1(\"instance1\",\n    group_id=group1.sdrs_protectiongroup_v1_id,\n    server_id=\"{{ server_id }}\",\n    description=\"test description\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var domain1 = Flexibleengine.GetSdrsDomainV1.Invoke(new()\n    {\n        Name = \"SDRS_HypeDomain01\",\n    });\n\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var group1 = new Flexibleengine.SdrsProtectiongroupV1(\"group1\", new()\n    {\n        Description = \"test description\",\n        SourceAvailabilityZone = \"eu-west-0a\",\n        TargetAvailabilityZone = \"eu-west-0b\",\n        DomainId = domain1.Apply(getSdrsDomainV1Result => getSdrsDomainV1Result.Id),\n        SourceVpcId = exampleVpc.VpcV1Id,\n        DrType = \"migration\",\n    });\n\n    var instance1 = new Flexibleengine.SdrsProtectedinstanceV1(\"instance1\", new()\n    {\n        GroupId = group1.SdrsProtectiongroupV1Id,\n        ServerId = \"{{ server_id }}\",\n        Description = \"test description\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdomain1, err := flexibleengine.GetSdrsDomainV1(ctx, &flexibleengine.GetSdrsDomainV1Args{\n\t\t\tName: pulumi.StringRef(\"SDRS_HypeDomain01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup1, err := flexibleengine.NewSdrsProtectiongroupV1(ctx, \"group1\", &flexibleengine.SdrsProtectiongroupV1Args{\n\t\t\tDescription:            pulumi.String(\"test description\"),\n\t\t\tSourceAvailabilityZone: pulumi.String(\"eu-west-0a\"),\n\t\t\tTargetAvailabilityZone: pulumi.String(\"eu-west-0b\"),\n\t\t\tDomainId:               pulumi.String(domain1.Id),\n\t\t\tSourceVpcId:            exampleVpc.VpcV1Id,\n\t\t\tDrType:                 pulumi.String(\"migration\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewSdrsProtectedinstanceV1(ctx, \"instance1\", &flexibleengine.SdrsProtectedinstanceV1Args{\n\t\t\tGroupId:     group1.SdrsProtectiongroupV1Id,\n\t\t\tServerId:    pulumi.String(\"{{ server_id }}\"),\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetSdrsDomainV1Args;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.SdrsProtectiongroupV1;\nimport com.pulumi.flexibleengine.SdrsProtectiongroupV1Args;\nimport com.pulumi.flexibleengine.SdrsProtectedinstanceV1;\nimport com.pulumi.flexibleengine.SdrsProtectedinstanceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var domain1 = FlexibleengineFunctions.getSdrsDomainV1(GetSdrsDomainV1Args.builder()\n            .name(\"SDRS_HypeDomain01\")\n            .build());\n\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var group1 = new SdrsProtectiongroupV1(\"group1\", SdrsProtectiongroupV1Args.builder()\n            .description(\"test description\")\n            .sourceAvailabilityZone(\"eu-west-0a\")\n            .targetAvailabilityZone(\"eu-west-0b\")\n            .domainId(domain1.applyValue(getSdrsDomainV1Result -> getSdrsDomainV1Result.id()))\n            .sourceVpcId(exampleVpc.vpcV1Id())\n            .drType(\"migration\")\n            .build());\n\n        var instance1 = new SdrsProtectedinstanceV1(\"instance1\", SdrsProtectedinstanceV1Args.builder()\n            .groupId(group1.sdrsProtectiongroupV1Id())\n            .serverId(\"{{ server_id }}\")\n            .description(\"test description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  group1:\n    type: flexibleengine:SdrsProtectiongroupV1\n    properties:\n      description: test description\n      sourceAvailabilityZone: eu-west-0a\n      targetAvailabilityZone: eu-west-0b\n      domainId: ${domain1.id}\n      sourceVpcId: ${exampleVpc.vpcV1Id}\n      drType: migration\n  instance1:\n    type: flexibleengine:SdrsProtectedinstanceV1\n    properties:\n      groupId: ${group1.sdrsProtectiongroupV1Id}\n      serverId: '{{ server_id }}'\n      description: test description\nvariables:\n  domain1:\n    fn::invoke:\n      function: flexibleengine:getSdrsDomainV1\n      arguments:\n        name: SDRS_HypeDomain01\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "clusterId": {
          "type": "string",
          "description": "Specifies the ID of a storage pool. Changing this creates a new instance.\n"
        },
        "deleteTargetEip": {
          "type": "boolean",
          "description": "Specifies whether to delete the EIP of the target server.\nThe default value is false. Changing this creates a new instance.\n"
        },
        "deleteTargetServer": {
          "type": "boolean",
          "description": "Specifies whether to delete the target server. The default\nvalue is false. Changing this creates a new instance.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of a protected instance. Changing this creates a new\ninstance.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the ID of the protection group where a protected instance is\nadded. Changing this creates a new instance.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of a protected instance.\n"
        },
        "primaryIpAddress": {
          "type": "string",
          "description": "Specifies the IP address of the primary NIC on the target server.\nChanging this creates a new instance.\n"
        },
        "primarySubnetId": {
          "type": "string",
          "description": "Specifies the `ipv4_subnet_id` or `ipv6_subnet_id` of the\nVPC Subnet of the primary NIC on the target server. Changing this creates a new instance.\n"
        },
        "sdrsProtectedinstanceV1Id": {
          "type": "string",
          "description": "ID of the protected instance.\n"
        },
        "serverId": {
          "type": "string",
          "description": "Specifies the ID of the source server. Changing this creates a new instance.\n"
        },
        "targetServer": {
          "type": "string",
          "description": "ID of the target server.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSdrsProtectedinstanceV1Timeouts:SdrsProtectedinstanceV1Timeouts"
        }
      },
      "type": "object",
      "required": [
        "groupId",
        "name",
        "sdrsProtectedinstanceV1Id",
        "serverId",
        "targetServer"
      ],
      "inputProperties": {
        "clusterId": {
          "type": "string",
          "description": "Specifies the ID of a storage pool. Changing this creates a new instance.\n"
        },
        "deleteTargetEip": {
          "type": "boolean",
          "description": "Specifies whether to delete the EIP of the target server.\nThe default value is false. Changing this creates a new instance.\n"
        },
        "deleteTargetServer": {
          "type": "boolean",
          "description": "Specifies whether to delete the target server. The default\nvalue is false. Changing this creates a new instance.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of a protected instance. Changing this creates a new\ninstance.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the ID of the protection group where a protected instance is\nadded. Changing this creates a new instance.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of a protected instance.\n"
        },
        "primaryIpAddress": {
          "type": "string",
          "description": "Specifies the IP address of the primary NIC on the target server.\nChanging this creates a new instance.\n"
        },
        "primarySubnetId": {
          "type": "string",
          "description": "Specifies the `ipv4_subnet_id` or `ipv6_subnet_id` of the\nVPC Subnet of the primary NIC on the target server. Changing this creates a new instance.\n"
        },
        "sdrsProtectedinstanceV1Id": {
          "type": "string",
          "description": "ID of the protected instance.\n"
        },
        "serverId": {
          "type": "string",
          "description": "Specifies the ID of the source server. Changing this creates a new instance.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSdrsProtectedinstanceV1Timeouts:SdrsProtectedinstanceV1Timeouts"
        }
      },
      "requiredInputs": [
        "groupId",
        "serverId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SdrsProtectedinstanceV1 resources.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "Specifies the ID of a storage pool. Changing this creates a new instance.\n"
          },
          "deleteTargetEip": {
            "type": "boolean",
            "description": "Specifies whether to delete the EIP of the target server.\nThe default value is false. Changing this creates a new instance.\n"
          },
          "deleteTargetServer": {
            "type": "boolean",
            "description": "Specifies whether to delete the target server. The default\nvalue is false. Changing this creates a new instance.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of a protected instance. Changing this creates a new\ninstance.\n"
          },
          "groupId": {
            "type": "string",
            "description": "Specifies the ID of the protection group where a protected instance is\nadded. Changing this creates a new instance.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of a protected instance.\n"
          },
          "primaryIpAddress": {
            "type": "string",
            "description": "Specifies the IP address of the primary NIC on the target server.\nChanging this creates a new instance.\n"
          },
          "primarySubnetId": {
            "type": "string",
            "description": "Specifies the `ipv4_subnet_id` or `ipv6_subnet_id` of the\nVPC Subnet of the primary NIC on the target server. Changing this creates a new instance.\n"
          },
          "sdrsProtectedinstanceV1Id": {
            "type": "string",
            "description": "ID of the protected instance.\n"
          },
          "serverId": {
            "type": "string",
            "description": "Specifies the ID of the source server. Changing this creates a new instance.\n"
          },
          "targetServer": {
            "type": "string",
            "description": "ID of the target server.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSdrsProtectedinstanceV1Timeouts:SdrsProtectedinstanceV1Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/sdrsProtectiongroupV1:SdrsProtectiongroupV1": {
      "description": "Manages a SDRS protection group resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst domain1 = flexibleengine.getSdrsDomainV1({\n    name: \"SDRS_HypeDomain01\",\n});\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst group1 = new flexibleengine.SdrsProtectiongroupV1(\"group1\", {\n    description: \"test description\",\n    sourceAvailabilityZone: \"eu-west-0a\",\n    targetAvailabilityZone: \"eu-west-0b\",\n    domainId: domain1.then(domain1 => domain1.id),\n    sourceVpcId: exampleVpc.vpcV1Id,\n    drType: \"migration\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ndomain1 = flexibleengine.get_sdrs_domain_v1(name=\"SDRS_HypeDomain01\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\ngroup1 = flexibleengine.SdrsProtectiongroupV1(\"group1\",\n    description=\"test description\",\n    source_availability_zone=\"eu-west-0a\",\n    target_availability_zone=\"eu-west-0b\",\n    domain_id=domain1.id,\n    source_vpc_id=example_vpc.vpc_v1_id,\n    dr_type=\"migration\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var domain1 = Flexibleengine.GetSdrsDomainV1.Invoke(new()\n    {\n        Name = \"SDRS_HypeDomain01\",\n    });\n\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var group1 = new Flexibleengine.SdrsProtectiongroupV1(\"group1\", new()\n    {\n        Description = \"test description\",\n        SourceAvailabilityZone = \"eu-west-0a\",\n        TargetAvailabilityZone = \"eu-west-0b\",\n        DomainId = domain1.Apply(getSdrsDomainV1Result => getSdrsDomainV1Result.Id),\n        SourceVpcId = exampleVpc.VpcV1Id,\n        DrType = \"migration\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdomain1, err := flexibleengine.GetSdrsDomainV1(ctx, &flexibleengine.GetSdrsDomainV1Args{\n\t\t\tName: pulumi.StringRef(\"SDRS_HypeDomain01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewSdrsProtectiongroupV1(ctx, \"group1\", &flexibleengine.SdrsProtectiongroupV1Args{\n\t\t\tDescription:            pulumi.String(\"test description\"),\n\t\t\tSourceAvailabilityZone: pulumi.String(\"eu-west-0a\"),\n\t\t\tTargetAvailabilityZone: pulumi.String(\"eu-west-0b\"),\n\t\t\tDomainId:               pulumi.String(domain1.Id),\n\t\t\tSourceVpcId:            exampleVpc.VpcV1Id,\n\t\t\tDrType:                 pulumi.String(\"migration\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetSdrsDomainV1Args;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.SdrsProtectiongroupV1;\nimport com.pulumi.flexibleengine.SdrsProtectiongroupV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var domain1 = FlexibleengineFunctions.getSdrsDomainV1(GetSdrsDomainV1Args.builder()\n            .name(\"SDRS_HypeDomain01\")\n            .build());\n\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var group1 = new SdrsProtectiongroupV1(\"group1\", SdrsProtectiongroupV1Args.builder()\n            .description(\"test description\")\n            .sourceAvailabilityZone(\"eu-west-0a\")\n            .targetAvailabilityZone(\"eu-west-0b\")\n            .domainId(domain1.applyValue(getSdrsDomainV1Result -> getSdrsDomainV1Result.id()))\n            .sourceVpcId(exampleVpc.vpcV1Id())\n            .drType(\"migration\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  group1:\n    type: flexibleengine:SdrsProtectiongroupV1\n    properties:\n      description: test description\n      sourceAvailabilityZone: eu-west-0a\n      targetAvailabilityZone: eu-west-0b\n      domainId: ${domain1.id}\n      sourceVpcId: ${exampleVpc.vpcV1Id}\n      drType: migration\nvariables:\n  domain1:\n    fn::invoke:\n      function: flexibleengine:getSdrsDomainV1\n      arguments:\n        name: SDRS_HypeDomain01\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nProtection groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/sdrsProtectiongroupV1:SdrsProtectiongroupV1 group_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "The description of a protection group. Changing this creates a new group.\n"
        },
        "domainId": {
          "type": "string",
          "description": "Specifies the ID of an active-active domain.\nChanging this creates a new group.\n"
        },
        "drType": {
          "type": "string",
          "description": "Specifies the deployment model. The default value is migration indicating\nmigration within a VPC. Changing this creates a new group.\n"
        },
        "enable": {
          "type": "boolean",
          "description": "Enable protection or not. It can only be set to true when there's replication pairs within\nthe protection group.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of a protection group.\n"
        },
        "sdrsProtectiongroupV1Id": {
          "type": "string",
          "description": "ID of the protection group.\n"
        },
        "sourceAvailabilityZone": {
          "type": "string",
          "description": "Specifies the source AZ of a protection group.\nChanging this creates a new group.\n"
        },
        "sourceVpcId": {
          "type": "string",
          "description": "Specifies the ID of the source VPC.\nChanging this creates a new group.\n"
        },
        "targetAvailabilityZone": {
          "type": "string",
          "description": "Specifies the target AZ of a protection group.\nChanging this creates a new group.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSdrsProtectiongroupV1Timeouts:SdrsProtectiongroupV1Timeouts"
        }
      },
      "type": "object",
      "required": [
        "domainId",
        "name",
        "sdrsProtectiongroupV1Id",
        "sourceAvailabilityZone",
        "sourceVpcId",
        "targetAvailabilityZone"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "The description of a protection group. Changing this creates a new group.\n"
        },
        "domainId": {
          "type": "string",
          "description": "Specifies the ID of an active-active domain.\nChanging this creates a new group.\n"
        },
        "drType": {
          "type": "string",
          "description": "Specifies the deployment model. The default value is migration indicating\nmigration within a VPC. Changing this creates a new group.\n"
        },
        "enable": {
          "type": "boolean",
          "description": "Enable protection or not. It can only be set to true when there's replication pairs within\nthe protection group.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of a protection group.\n"
        },
        "sdrsProtectiongroupV1Id": {
          "type": "string",
          "description": "ID of the protection group.\n"
        },
        "sourceAvailabilityZone": {
          "type": "string",
          "description": "Specifies the source AZ of a protection group.\nChanging this creates a new group.\n"
        },
        "sourceVpcId": {
          "type": "string",
          "description": "Specifies the ID of the source VPC.\nChanging this creates a new group.\n"
        },
        "targetAvailabilityZone": {
          "type": "string",
          "description": "Specifies the target AZ of a protection group.\nChanging this creates a new group.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSdrsProtectiongroupV1Timeouts:SdrsProtectiongroupV1Timeouts"
        }
      },
      "requiredInputs": [
        "domainId",
        "sourceAvailabilityZone",
        "sourceVpcId",
        "targetAvailabilityZone"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SdrsProtectiongroupV1 resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "The description of a protection group. Changing this creates a new group.\n"
          },
          "domainId": {
            "type": "string",
            "description": "Specifies the ID of an active-active domain.\nChanging this creates a new group.\n"
          },
          "drType": {
            "type": "string",
            "description": "Specifies the deployment model. The default value is migration indicating\nmigration within a VPC. Changing this creates a new group.\n"
          },
          "enable": {
            "type": "boolean",
            "description": "Enable protection or not. It can only be set to true when there's replication pairs within\nthe protection group.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of a protection group.\n"
          },
          "sdrsProtectiongroupV1Id": {
            "type": "string",
            "description": "ID of the protection group.\n"
          },
          "sourceAvailabilityZone": {
            "type": "string",
            "description": "Specifies the source AZ of a protection group.\nChanging this creates a new group.\n"
          },
          "sourceVpcId": {
            "type": "string",
            "description": "Specifies the ID of the source VPC.\nChanging this creates a new group.\n"
          },
          "targetAvailabilityZone": {
            "type": "string",
            "description": "Specifies the target AZ of a protection group.\nChanging this creates a new group.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSdrsProtectiongroupV1Timeouts:SdrsProtectiongroupV1Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/sdrsReplicationAttachV1:SdrsReplicationAttachV1": {
      "description": "Manages a SDRS replication attch resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst domain1 = flexibleengine.getSdrsDomainV1({\n    name: \"SDRS_HypeDomain01\",\n});\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst group1 = new flexibleengine.SdrsProtectiongroupV1(\"group1\", {\n    description: \"test description\",\n    sourceAvailabilityZone: \"eu-west-0a\",\n    targetAvailabilityZone: \"eu-west-0b\",\n    domainId: domain1.then(domain1 => domain1.id),\n    sourceVpcId: exampleVpc.vpcV1Id,\n    drType: \"migration\",\n});\nconst instance1 = new flexibleengine.SdrsProtectedinstanceV1(\"instance1\", {\n    groupId: group1.sdrsProtectiongroupV1Id,\n    serverId: \"{{ server_id }}\",\n    description: \"test description\",\n});\nconst replication1 = new flexibleengine.SdrsReplicationPairV1(\"replication1\", {\n    description: \"test description\",\n    groupId: group1.sdrsProtectiongroupV1Id,\n    volumeId: \"{{ volume_id }}\",\n});\nconst attach1 = new flexibleengine.SdrsReplicationAttachV1(\"attach1\", {\n    instanceId: instance1.sdrsProtectedinstanceV1Id,\n    replicationId: replication1.sdrsReplicationPairV1Id,\n    device: \"/dev/vdb\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ndomain1 = flexibleengine.get_sdrs_domain_v1(name=\"SDRS_HypeDomain01\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\ngroup1 = flexibleengine.SdrsProtectiongroupV1(\"group1\",\n    description=\"test description\",\n    source_availability_zone=\"eu-west-0a\",\n    target_availability_zone=\"eu-west-0b\",\n    domain_id=domain1.id,\n    source_vpc_id=example_vpc.vpc_v1_id,\n    dr_type=\"migration\")\ninstance1 = flexibleengine.SdrsProtectedinstanceV1(\"instance1\",\n    group_id=group1.sdrs_protectiongroup_v1_id,\n    server_id=\"{{ server_id }}\",\n    description=\"test description\")\nreplication1 = flexibleengine.SdrsReplicationPairV1(\"replication1\",\n    description=\"test description\",\n    group_id=group1.sdrs_protectiongroup_v1_id,\n    volume_id=\"{{ volume_id }}\")\nattach1 = flexibleengine.SdrsReplicationAttachV1(\"attach1\",\n    instance_id=instance1.sdrs_protectedinstance_v1_id,\n    replication_id=replication1.sdrs_replication_pair_v1_id,\n    device=\"/dev/vdb\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var domain1 = Flexibleengine.GetSdrsDomainV1.Invoke(new()\n    {\n        Name = \"SDRS_HypeDomain01\",\n    });\n\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var group1 = new Flexibleengine.SdrsProtectiongroupV1(\"group1\", new()\n    {\n        Description = \"test description\",\n        SourceAvailabilityZone = \"eu-west-0a\",\n        TargetAvailabilityZone = \"eu-west-0b\",\n        DomainId = domain1.Apply(getSdrsDomainV1Result => getSdrsDomainV1Result.Id),\n        SourceVpcId = exampleVpc.VpcV1Id,\n        DrType = \"migration\",\n    });\n\n    var instance1 = new Flexibleengine.SdrsProtectedinstanceV1(\"instance1\", new()\n    {\n        GroupId = group1.SdrsProtectiongroupV1Id,\n        ServerId = \"{{ server_id }}\",\n        Description = \"test description\",\n    });\n\n    var replication1 = new Flexibleengine.SdrsReplicationPairV1(\"replication1\", new()\n    {\n        Description = \"test description\",\n        GroupId = group1.SdrsProtectiongroupV1Id,\n        VolumeId = \"{{ volume_id }}\",\n    });\n\n    var attach1 = new Flexibleengine.SdrsReplicationAttachV1(\"attach1\", new()\n    {\n        InstanceId = instance1.SdrsProtectedinstanceV1Id,\n        ReplicationId = replication1.SdrsReplicationPairV1Id,\n        Device = \"/dev/vdb\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdomain1, err := flexibleengine.GetSdrsDomainV1(ctx, &flexibleengine.GetSdrsDomainV1Args{\n\t\t\tName: pulumi.StringRef(\"SDRS_HypeDomain01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup1, err := flexibleengine.NewSdrsProtectiongroupV1(ctx, \"group1\", &flexibleengine.SdrsProtectiongroupV1Args{\n\t\t\tDescription:            pulumi.String(\"test description\"),\n\t\t\tSourceAvailabilityZone: pulumi.String(\"eu-west-0a\"),\n\t\t\tTargetAvailabilityZone: pulumi.String(\"eu-west-0b\"),\n\t\t\tDomainId:               pulumi.String(domain1.Id),\n\t\t\tSourceVpcId:            exampleVpc.VpcV1Id,\n\t\t\tDrType:                 pulumi.String(\"migration\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := flexibleengine.NewSdrsProtectedinstanceV1(ctx, \"instance1\", &flexibleengine.SdrsProtectedinstanceV1Args{\n\t\t\tGroupId:     group1.SdrsProtectiongroupV1Id,\n\t\t\tServerId:    pulumi.String(\"{{ server_id }}\"),\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treplication1, err := flexibleengine.NewSdrsReplicationPairV1(ctx, \"replication1\", &flexibleengine.SdrsReplicationPairV1Args{\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t\tGroupId:     group1.SdrsProtectiongroupV1Id,\n\t\t\tVolumeId:    pulumi.String(\"{{ volume_id }}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewSdrsReplicationAttachV1(ctx, \"attach1\", &flexibleengine.SdrsReplicationAttachV1Args{\n\t\t\tInstanceId:    instance1.SdrsProtectedinstanceV1Id,\n\t\t\tReplicationId: replication1.SdrsReplicationPairV1Id,\n\t\t\tDevice:        pulumi.String(\"/dev/vdb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetSdrsDomainV1Args;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.SdrsProtectiongroupV1;\nimport com.pulumi.flexibleengine.SdrsProtectiongroupV1Args;\nimport com.pulumi.flexibleengine.SdrsProtectedinstanceV1;\nimport com.pulumi.flexibleengine.SdrsProtectedinstanceV1Args;\nimport com.pulumi.flexibleengine.SdrsReplicationPairV1;\nimport com.pulumi.flexibleengine.SdrsReplicationPairV1Args;\nimport com.pulumi.flexibleengine.SdrsReplicationAttachV1;\nimport com.pulumi.flexibleengine.SdrsReplicationAttachV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var domain1 = FlexibleengineFunctions.getSdrsDomainV1(GetSdrsDomainV1Args.builder()\n            .name(\"SDRS_HypeDomain01\")\n            .build());\n\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var group1 = new SdrsProtectiongroupV1(\"group1\", SdrsProtectiongroupV1Args.builder()\n            .description(\"test description\")\n            .sourceAvailabilityZone(\"eu-west-0a\")\n            .targetAvailabilityZone(\"eu-west-0b\")\n            .domainId(domain1.applyValue(getSdrsDomainV1Result -> getSdrsDomainV1Result.id()))\n            .sourceVpcId(exampleVpc.vpcV1Id())\n            .drType(\"migration\")\n            .build());\n\n        var instance1 = new SdrsProtectedinstanceV1(\"instance1\", SdrsProtectedinstanceV1Args.builder()\n            .groupId(group1.sdrsProtectiongroupV1Id())\n            .serverId(\"{{ server_id }}\")\n            .description(\"test description\")\n            .build());\n\n        var replication1 = new SdrsReplicationPairV1(\"replication1\", SdrsReplicationPairV1Args.builder()\n            .description(\"test description\")\n            .groupId(group1.sdrsProtectiongroupV1Id())\n            .volumeId(\"{{ volume_id }}\")\n            .build());\n\n        var attach1 = new SdrsReplicationAttachV1(\"attach1\", SdrsReplicationAttachV1Args.builder()\n            .instanceId(instance1.sdrsProtectedinstanceV1Id())\n            .replicationId(replication1.sdrsReplicationPairV1Id())\n            .device(\"/dev/vdb\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  group1:\n    type: flexibleengine:SdrsProtectiongroupV1\n    properties:\n      description: test description\n      sourceAvailabilityZone: eu-west-0a\n      targetAvailabilityZone: eu-west-0b\n      domainId: ${domain1.id}\n      sourceVpcId: ${exampleVpc.vpcV1Id}\n      drType: migration\n  instance1:\n    type: flexibleengine:SdrsProtectedinstanceV1\n    properties:\n      groupId: ${group1.sdrsProtectiongroupV1Id}\n      serverId: '{{ server_id }}'\n      description: test description\n  replication1:\n    type: flexibleengine:SdrsReplicationPairV1\n    properties:\n      description: test description\n      groupId: ${group1.sdrsProtectiongroupV1Id}\n      volumeId: '{{ volume_id }}'\n  attach1:\n    type: flexibleengine:SdrsReplicationAttachV1\n    properties:\n      instanceId: ${instance1.sdrsProtectedinstanceV1Id}\n      replicationId: ${replication1.sdrsReplicationPairV1Id}\n      device: /dev/vdb\nvariables:\n  domain1:\n    fn::invoke:\n      function: flexibleengine:getSdrsDomainV1\n      arguments:\n        name: SDRS_HypeDomain01\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "device": {
          "type": "string",
          "description": "Specifies the device name, eg. /dev/vdb.\nChanging this creates a new replication attach.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of a protected instance.\nChanging this creates a new replication attach.\n"
        },
        "replicationId": {
          "type": "string",
          "description": "Specifies the ID of a replication pair.\nChanging this creates a new replication attach.\n"
        },
        "sdrsReplicationAttachV1Id": {
          "type": "string",
          "description": "The resource ID in format of <instance_id>:<replication_id>.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the SDRS replication attach resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSdrsReplicationAttachV1Timeouts:SdrsReplicationAttachV1Timeouts"
        }
      },
      "type": "object",
      "required": [
        "device",
        "instanceId",
        "replicationId",
        "sdrsReplicationAttachV1Id",
        "status"
      ],
      "inputProperties": {
        "device": {
          "type": "string",
          "description": "Specifies the device name, eg. /dev/vdb.\nChanging this creates a new replication attach.\n"
        },
        "instanceId": {
          "type": "string",
          "description": "Specifies the ID of a protected instance.\nChanging this creates a new replication attach.\n"
        },
        "replicationId": {
          "type": "string",
          "description": "Specifies the ID of a replication pair.\nChanging this creates a new replication attach.\n"
        },
        "sdrsReplicationAttachV1Id": {
          "type": "string",
          "description": "The resource ID in format of <instance_id>:<replication_id>.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSdrsReplicationAttachV1Timeouts:SdrsReplicationAttachV1Timeouts"
        }
      },
      "requiredInputs": [
        "device",
        "instanceId",
        "replicationId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SdrsReplicationAttachV1 resources.\n",
        "properties": {
          "device": {
            "type": "string",
            "description": "Specifies the device name, eg. /dev/vdb.\nChanging this creates a new replication attach.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of a protected instance.\nChanging this creates a new replication attach.\n"
          },
          "replicationId": {
            "type": "string",
            "description": "Specifies the ID of a replication pair.\nChanging this creates a new replication attach.\n"
          },
          "sdrsReplicationAttachV1Id": {
            "type": "string",
            "description": "The resource ID in format of <instance_id>:<replication_id>.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the SDRS replication attach resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSdrsReplicationAttachV1Timeouts:SdrsReplicationAttachV1Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/sdrsReplicationPairV1:SdrsReplicationPairV1": {
      "description": "Manages a SDRS replication pair resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst domain1 = flexibleengine.getSdrsDomainV1({\n    name: \"SDRS_HypeDomain01\",\n});\nconst group1 = new flexibleengine.SdrsProtectiongroupV1(\"group1\", {\n    description: \"test description\",\n    sourceAvailabilityZone: \"eu-west-0a\",\n    targetAvailabilityZone: \"eu-west-0b\",\n    domainId: domain1.then(domain1 => domain1.id),\n    sourceVpcId: exampleVpc.vpcV1Id,\n    drType: \"migration\",\n});\nconst replication1 = new flexibleengine.SdrsReplicationPairV1(\"replication1\", {\n    description: \"test description\",\n    groupId: group1.sdrsProtectiongroupV1Id,\n    volumeId: \"{{ volume_id }}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\ndomain1 = flexibleengine.get_sdrs_domain_v1(name=\"SDRS_HypeDomain01\")\ngroup1 = flexibleengine.SdrsProtectiongroupV1(\"group1\",\n    description=\"test description\",\n    source_availability_zone=\"eu-west-0a\",\n    target_availability_zone=\"eu-west-0b\",\n    domain_id=domain1.id,\n    source_vpc_id=example_vpc.vpc_v1_id,\n    dr_type=\"migration\")\nreplication1 = flexibleengine.SdrsReplicationPairV1(\"replication1\",\n    description=\"test description\",\n    group_id=group1.sdrs_protectiongroup_v1_id,\n    volume_id=\"{{ volume_id }}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var domain1 = Flexibleengine.GetSdrsDomainV1.Invoke(new()\n    {\n        Name = \"SDRS_HypeDomain01\",\n    });\n\n    var group1 = new Flexibleengine.SdrsProtectiongroupV1(\"group1\", new()\n    {\n        Description = \"test description\",\n        SourceAvailabilityZone = \"eu-west-0a\",\n        TargetAvailabilityZone = \"eu-west-0b\",\n        DomainId = domain1.Apply(getSdrsDomainV1Result => getSdrsDomainV1Result.Id),\n        SourceVpcId = exampleVpc.VpcV1Id,\n        DrType = \"migration\",\n    });\n\n    var replication1 = new Flexibleengine.SdrsReplicationPairV1(\"replication1\", new()\n    {\n        Description = \"test description\",\n        GroupId = group1.SdrsProtectiongroupV1Id,\n        VolumeId = \"{{ volume_id }}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdomain1, err := flexibleengine.GetSdrsDomainV1(ctx, &flexibleengine.GetSdrsDomainV1Args{\n\t\t\tName: pulumi.StringRef(\"SDRS_HypeDomain01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup1, err := flexibleengine.NewSdrsProtectiongroupV1(ctx, \"group1\", &flexibleengine.SdrsProtectiongroupV1Args{\n\t\t\tDescription:            pulumi.String(\"test description\"),\n\t\t\tSourceAvailabilityZone: pulumi.String(\"eu-west-0a\"),\n\t\t\tTargetAvailabilityZone: pulumi.String(\"eu-west-0b\"),\n\t\t\tDomainId:               pulumi.String(domain1.Id),\n\t\t\tSourceVpcId:            exampleVpc.VpcV1Id,\n\t\t\tDrType:                 pulumi.String(\"migration\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewSdrsReplicationPairV1(ctx, \"replication1\", &flexibleengine.SdrsReplicationPairV1Args{\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t\tGroupId:     group1.SdrsProtectiongroupV1Id,\n\t\t\tVolumeId:    pulumi.String(\"{{ volume_id }}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetSdrsDomainV1Args;\nimport com.pulumi.flexibleengine.SdrsProtectiongroupV1;\nimport com.pulumi.flexibleengine.SdrsProtectiongroupV1Args;\nimport com.pulumi.flexibleengine.SdrsReplicationPairV1;\nimport com.pulumi.flexibleengine.SdrsReplicationPairV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        final var domain1 = FlexibleengineFunctions.getSdrsDomainV1(GetSdrsDomainV1Args.builder()\n            .name(\"SDRS_HypeDomain01\")\n            .build());\n\n        var group1 = new SdrsProtectiongroupV1(\"group1\", SdrsProtectiongroupV1Args.builder()\n            .description(\"test description\")\n            .sourceAvailabilityZone(\"eu-west-0a\")\n            .targetAvailabilityZone(\"eu-west-0b\")\n            .domainId(domain1.applyValue(getSdrsDomainV1Result -> getSdrsDomainV1Result.id()))\n            .sourceVpcId(exampleVpc.vpcV1Id())\n            .drType(\"migration\")\n            .build());\n\n        var replication1 = new SdrsReplicationPairV1(\"replication1\", SdrsReplicationPairV1Args.builder()\n            .description(\"test description\")\n            .groupId(group1.sdrsProtectiongroupV1Id())\n            .volumeId(\"{{ volume_id }}\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  group1:\n    type: flexibleengine:SdrsProtectiongroupV1\n    properties:\n      description: test description\n      sourceAvailabilityZone: eu-west-0a\n      targetAvailabilityZone: eu-west-0b\n      domainId: ${domain1.id}\n      sourceVpcId: ${exampleVpc.vpcV1Id}\n      drType: migration\n  replication1:\n    type: flexibleengine:SdrsReplicationPairV1\n    properties:\n      description: test description\n      groupId: ${group1.sdrsProtectiongroupV1Id}\n      volumeId: '{{ volume_id }}'\nvariables:\n  domain1:\n    fn::invoke:\n      function: flexibleengine:getSdrsDomainV1\n      arguments:\n        name: SDRS_HypeDomain01\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nReplication pairs can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/sdrsReplicationPairV1:SdrsReplicationPairV1 replication_1 43b28b66-770b-4e9e-b5c6-cfc43f0593d9\n```\n\n",
      "properties": {
        "deleteTargetVolume": {
          "type": "boolean",
          "description": "Specifies whether to delete the target disk.\nThe default value is `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of a replication pair. Changing this creates a new pair.\n"
        },
        "faultLevel": {
          "type": "string",
          "description": "Specifies the fault level of a replication pair.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the ID of a protection group. Changing this creates a new pair.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of a replication pair. The name can contain a maximum of 64 bytes.\nThe value can contain only letters (a to z and A to Z), digits (0 to 9), decimal points (.),\nunderscores (_), and hyphens (-).\n"
        },
        "replicationModel": {
          "type": "string",
          "description": "Specifies the replication mode of a replication pair. The default value is `hypermetro`.\n"
        },
        "sdrsReplicationPairV1Id": {
          "type": "string",
          "description": "ID of the replication pair.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the status of a replication pair.\n"
        },
        "targetVolumeId": {
          "type": "string",
          "description": "Specifies the ID of the disk in the protection availability zone.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSdrsReplicationPairV1Timeouts:SdrsReplicationPairV1Timeouts"
        },
        "volumeId": {
          "type": "string",
          "description": "Specifies the ID of a source disk. Changing this creates a new pair.\n"
        }
      },
      "type": "object",
      "required": [
        "faultLevel",
        "groupId",
        "name",
        "replicationModel",
        "sdrsReplicationPairV1Id",
        "status",
        "targetVolumeId",
        "volumeId"
      ],
      "inputProperties": {
        "deleteTargetVolume": {
          "type": "boolean",
          "description": "Specifies whether to delete the target disk.\nThe default value is `false`.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of a replication pair. Changing this creates a new pair.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Specifies the ID of a protection group. Changing this creates a new pair.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of a replication pair. The name can contain a maximum of 64 bytes.\nThe value can contain only letters (a to z and A to Z), digits (0 to 9), decimal points (.),\nunderscores (_), and hyphens (-).\n"
        },
        "sdrsReplicationPairV1Id": {
          "type": "string",
          "description": "ID of the replication pair.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSdrsReplicationPairV1Timeouts:SdrsReplicationPairV1Timeouts"
        },
        "volumeId": {
          "type": "string",
          "description": "Specifies the ID of a source disk. Changing this creates a new pair.\n"
        }
      },
      "requiredInputs": [
        "groupId",
        "volumeId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SdrsReplicationPairV1 resources.\n",
        "properties": {
          "deleteTargetVolume": {
            "type": "boolean",
            "description": "Specifies whether to delete the target disk.\nThe default value is `false`.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of a replication pair. Changing this creates a new pair.\n"
          },
          "faultLevel": {
            "type": "string",
            "description": "Specifies the fault level of a replication pair.\n"
          },
          "groupId": {
            "type": "string",
            "description": "Specifies the ID of a protection group. Changing this creates a new pair.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of a replication pair. The name can contain a maximum of 64 bytes.\nThe value can contain only letters (a to z and A to Z), digits (0 to 9), decimal points (.),\nunderscores (_), and hyphens (-).\n"
          },
          "replicationModel": {
            "type": "string",
            "description": "Specifies the replication mode of a replication pair. The default value is `hypermetro`.\n"
          },
          "sdrsReplicationPairV1Id": {
            "type": "string",
            "description": "ID of the replication pair.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the status of a replication pair.\n"
          },
          "targetVolumeId": {
            "type": "string",
            "description": "Specifies the ID of the disk in the protection availability zone.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSdrsReplicationPairV1Timeouts:SdrsReplicationPairV1Timeouts"
          },
          "volumeId": {
            "type": "string",
            "description": "Specifies the ID of a source disk. Changing this creates a new pair.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/sfsAccessRuleV2:SfsAccessRuleV2": {
      "description": "Provides an access rule resource of Scalable File Resource (SFS).\n\n## Example Usage\n\n### Usage in VPC authorization scenarios\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst shareName = config.requireObject(\"shareName\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst share_file = new flexibleengine.SfsFileSystemV2(\"share-file\", {\n    size: 100,\n    shareProto: \"NFS\",\n});\nconst rule1 = new flexibleengine.SfsAccessRuleV2(\"rule1\", {\n    sfsId: share_file.sfsFileSystemV2Id,\n    accessTo: exampleVpc.vpcV1Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nshare_name = config.require_object(\"shareName\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nshare_file = flexibleengine.SfsFileSystemV2(\"share-file\",\n    size=100,\n    share_proto=\"NFS\")\nrule1 = flexibleengine.SfsAccessRuleV2(\"rule1\",\n    sfs_id=share_file.sfs_file_system_v2_id,\n    access_to=example_vpc.vpc_v1_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var shareName = config.RequireObject<dynamic>(\"shareName\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var share_file = new Flexibleengine.SfsFileSystemV2(\"share-file\", new()\n    {\n        Size = 100,\n        ShareProto = \"NFS\",\n    });\n\n    var rule1 = new Flexibleengine.SfsAccessRuleV2(\"rule1\", new()\n    {\n        SfsId = share_file.SfsFileSystemV2Id,\n        AccessTo = exampleVpc.VpcV1Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tshareName := cfg.RequireObject(\"shareName\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare_file, err := flexibleengine.NewSfsFileSystemV2(ctx, \"share-file\", &flexibleengine.SfsFileSystemV2Args{\n\t\t\tSize:       pulumi.Float64(100),\n\t\t\tShareProto: pulumi.String(\"NFS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewSfsAccessRuleV2(ctx, \"rule1\", &flexibleengine.SfsAccessRuleV2Args{\n\t\t\tSfsId:    share_file.SfsFileSystemV2Id,\n\t\t\tAccessTo: exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.SfsFileSystemV2;\nimport com.pulumi.flexibleengine.SfsFileSystemV2Args;\nimport com.pulumi.flexibleengine.SfsAccessRuleV2;\nimport com.pulumi.flexibleengine.SfsAccessRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var shareName = config.get(\"shareName\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var share_file = new SfsFileSystemV2(\"share-file\", SfsFileSystemV2Args.builder()\n            .size(100)\n            .shareProto(\"NFS\")\n            .build());\n\n        var rule1 = new SfsAccessRuleV2(\"rule1\", SfsAccessRuleV2Args.builder()\n            .sfsId(share_file.sfsFileSystemV2Id())\n            .accessTo(exampleVpc.vpcV1Id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  shareName:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  share-file:\n    type: flexibleengine:SfsFileSystemV2\n    properties:\n      size: 100\n      shareProto: NFS\n  rule1:\n    type: flexibleengine:SfsAccessRuleV2\n    properties:\n      sfsId: ${[\"share-file\"].sfsFileSystemV2Id}\n      accessTo: ${exampleVpc.vpcV1Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSFS access rule can be imported by specifying the SFS ID and access rule ID separated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/sfsAccessRuleV2:SfsAccessRuleV2 flexibleengine_sfs_access_rule_v2 <sfs_id>/<rule_id>\n```\n\n",
      "properties": {
        "accessLevel": {
          "type": "string",
          "description": "Specifies the access level of the shared file system. Possible values\nare *ro* (read-only and *rw* (read-write). The default value is *rw* (read/write).\nChanging this will create a new access rule.\n"
        },
        "accessTo": {
          "type": "string",
          "description": "Specifies the value that defines the access rule. The value contains 1 to\n255 characters. Changing this will create a new access rule. The value varies according to the scenario:\n+ Set the VPC ID in VPC authorization scenarios.\n+ Set this parameter in IP address authorization scenario.\n\n- For an NFS shared file system, the value in the format of *VPC_ID#IP_address#priority#user_permission*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#100#all_squash,root_squash.\n\n- For a CIFS shared file system, the value in the format of *VPC_ID#IP_address#priority*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#0.\n"
        },
        "accessType": {
          "type": "string",
          "description": "Specifies the type of the share access rule. The default value is *cert*.\nChanging this will create a new access rule.\n"
        },
        "sfsAccessRuleV2Id": {
          "type": "string",
          "description": "The UUID of the share access rule.\n"
        },
        "sfsId": {
          "type": "string",
          "description": "Specifies the UUID of the shared file system.\nChanging this will create a new access rule.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the share access rule.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSfsAccessRuleV2Timeouts:SfsAccessRuleV2Timeouts"
        }
      },
      "type": "object",
      "required": [
        "accessTo",
        "sfsAccessRuleV2Id",
        "sfsId",
        "status"
      ],
      "inputProperties": {
        "accessLevel": {
          "type": "string",
          "description": "Specifies the access level of the shared file system. Possible values\nare *ro* (read-only and *rw* (read-write). The default value is *rw* (read/write).\nChanging this will create a new access rule.\n"
        },
        "accessTo": {
          "type": "string",
          "description": "Specifies the value that defines the access rule. The value contains 1 to\n255 characters. Changing this will create a new access rule. The value varies according to the scenario:\n+ Set the VPC ID in VPC authorization scenarios.\n+ Set this parameter in IP address authorization scenario.\n\n- For an NFS shared file system, the value in the format of *VPC_ID#IP_address#priority#user_permission*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#100#all_squash,root_squash.\n\n- For a CIFS shared file system, the value in the format of *VPC_ID#IP_address#priority*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#0.\n"
        },
        "accessType": {
          "type": "string",
          "description": "Specifies the type of the share access rule. The default value is *cert*.\nChanging this will create a new access rule.\n"
        },
        "sfsAccessRuleV2Id": {
          "type": "string",
          "description": "The UUID of the share access rule.\n"
        },
        "sfsId": {
          "type": "string",
          "description": "Specifies the UUID of the shared file system.\nChanging this will create a new access rule.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSfsAccessRuleV2Timeouts:SfsAccessRuleV2Timeouts"
        }
      },
      "requiredInputs": [
        "accessTo",
        "sfsId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SfsAccessRuleV2 resources.\n",
        "properties": {
          "accessLevel": {
            "type": "string",
            "description": "Specifies the access level of the shared file system. Possible values\nare *ro* (read-only and *rw* (read-write). The default value is *rw* (read/write).\nChanging this will create a new access rule.\n"
          },
          "accessTo": {
            "type": "string",
            "description": "Specifies the value that defines the access rule. The value contains 1 to\n255 characters. Changing this will create a new access rule. The value varies according to the scenario:\n+ Set the VPC ID in VPC authorization scenarios.\n+ Set this parameter in IP address authorization scenario.\n\n- For an NFS shared file system, the value in the format of *VPC_ID#IP_address#priority#user_permission*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#100#all_squash,root_squash.\n\n- For a CIFS shared file system, the value in the format of *VPC_ID#IP_address#priority*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#0.\n"
          },
          "accessType": {
            "type": "string",
            "description": "Specifies the type of the share access rule. The default value is *cert*.\nChanging this will create a new access rule.\n"
          },
          "sfsAccessRuleV2Id": {
            "type": "string",
            "description": "The UUID of the share access rule.\n"
          },
          "sfsId": {
            "type": "string",
            "description": "Specifies the UUID of the shared file system.\nChanging this will create a new access rule.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the share access rule.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSfsAccessRuleV2Timeouts:SfsAccessRuleV2Timeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/sfsFileSystemV2:SfsFileSystemV2": {
      "description": "Provides an Shared File System (SFS) resource.\n\n## Example Usage\n\n### basic example\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst shareName = config.requireObject(\"shareName\");\nconst shareDescription = config.requireObject(\"shareDescription\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst share_file = new flexibleengine.SfsFileSystemV2(\"share-file\", {\n    size: 100,\n    shareProto: \"NFS\",\n    accessLevel: \"rw\",\n    accessTo: exampleVpc.vpcV1Id,\n    description: shareDescription,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nshare_name = config.require_object(\"shareName\")\nshare_description = config.require_object(\"shareDescription\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nshare_file = flexibleengine.SfsFileSystemV2(\"share-file\",\n    size=100,\n    share_proto=\"NFS\",\n    access_level=\"rw\",\n    access_to=example_vpc.vpc_v1_id,\n    description=share_description)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var shareName = config.RequireObject<dynamic>(\"shareName\");\n    var shareDescription = config.RequireObject<dynamic>(\"shareDescription\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var share_file = new Flexibleengine.SfsFileSystemV2(\"share-file\", new()\n    {\n        Size = 100,\n        ShareProto = \"NFS\",\n        AccessLevel = \"rw\",\n        AccessTo = exampleVpc.VpcV1Id,\n        Description = shareDescription,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tshareName := cfg.RequireObject(\"shareName\")\n\t\tshareDescription := cfg.RequireObject(\"shareDescription\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewSfsFileSystemV2(ctx, \"share-file\", &flexibleengine.SfsFileSystemV2Args{\n\t\t\tSize:        pulumi.Float64(100),\n\t\t\tShareProto:  pulumi.String(\"NFS\"),\n\t\t\tAccessLevel: pulumi.String(\"rw\"),\n\t\t\tAccessTo:    exampleVpc.VpcV1Id,\n\t\t\tDescription: pulumi.Any(shareDescription),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.SfsFileSystemV2;\nimport com.pulumi.flexibleengine.SfsFileSystemV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var shareName = config.get(\"shareName\");\n        final var shareDescription = config.get(\"shareDescription\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var share_file = new SfsFileSystemV2(\"share-file\", SfsFileSystemV2Args.builder()\n            .size(100)\n            .shareProto(\"NFS\")\n            .accessLevel(\"rw\")\n            .accessTo(exampleVpc.vpcV1Id())\n            .description(shareDescription)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  shareName:\n    type: dynamic\n  shareDescription:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  share-file:\n    type: flexibleengine:SfsFileSystemV2\n    properties:\n      size: 100\n      shareProto: NFS\n      accessLevel: rw\n      accessTo: ${exampleVpc.vpcV1Id}\n      description: ${shareDescription}\n```\n<!--End PulumiCodeChooser -->\n\n### sfs with data encryption\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst shareName = config.requireObject(\"shareName\");\nconst shareDescription = config.requireObject(\"shareDescription\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst mykey = new flexibleengine.KmsKeyV1(\"mykey\", {\n    keyAlias: \"kms_sfs\",\n    pendingDays: \"7\",\n});\nconst share_file = new flexibleengine.SfsFileSystemV2(\"share-file\", {\n    size: 100,\n    shareProto: \"NFS\",\n    accessLevel: \"rw\",\n    accessTo: exampleVpc.vpcV1Id,\n    description: shareDescription,\n    metadata: {\n        \"#sfs_crypt_key_id\": mykey.kmsKeyV1Id,\n        \"#sfs_crypt_domain_id\": mykey.domainId,\n        \"#sfs_crypt_alias\": mykey.keyAlias,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nshare_name = config.require_object(\"shareName\")\nshare_description = config.require_object(\"shareDescription\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nmykey = flexibleengine.KmsKeyV1(\"mykey\",\n    key_alias=\"kms_sfs\",\n    pending_days=\"7\")\nshare_file = flexibleengine.SfsFileSystemV2(\"share-file\",\n    size=100,\n    share_proto=\"NFS\",\n    access_level=\"rw\",\n    access_to=example_vpc.vpc_v1_id,\n    description=share_description,\n    metadata={\n        \"#sfs_crypt_key_id\": mykey.kms_key_v1_id,\n        \"#sfs_crypt_domain_id\": mykey.domain_id,\n        \"#sfs_crypt_alias\": mykey.key_alias,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var shareName = config.RequireObject<dynamic>(\"shareName\");\n    var shareDescription = config.RequireObject<dynamic>(\"shareDescription\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var mykey = new Flexibleengine.KmsKeyV1(\"mykey\", new()\n    {\n        KeyAlias = \"kms_sfs\",\n        PendingDays = \"7\",\n    });\n\n    var share_file = new Flexibleengine.SfsFileSystemV2(\"share-file\", new()\n    {\n        Size = 100,\n        ShareProto = \"NFS\",\n        AccessLevel = \"rw\",\n        AccessTo = exampleVpc.VpcV1Id,\n        Description = shareDescription,\n        Metadata = \n        {\n            { \"#sfs_crypt_key_id\", mykey.KmsKeyV1Id },\n            { \"#sfs_crypt_domain_id\", mykey.DomainId },\n            { \"#sfs_crypt_alias\", mykey.KeyAlias },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tshareName := cfg.RequireObject(\"shareName\")\n\t\tshareDescription := cfg.RequireObject(\"shareDescription\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmykey, err := flexibleengine.NewKmsKeyV1(ctx, \"mykey\", &flexibleengine.KmsKeyV1Args{\n\t\t\tKeyAlias:    pulumi.String(\"kms_sfs\"),\n\t\t\tPendingDays: pulumi.String(\"7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewSfsFileSystemV2(ctx, \"share-file\", &flexibleengine.SfsFileSystemV2Args{\n\t\t\tSize:        pulumi.Float64(100),\n\t\t\tShareProto:  pulumi.String(\"NFS\"),\n\t\t\tAccessLevel: pulumi.String(\"rw\"),\n\t\t\tAccessTo:    exampleVpc.VpcV1Id,\n\t\t\tDescription: pulumi.Any(shareDescription),\n\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\"#sfs_crypt_key_id\":    mykey.KmsKeyV1Id,\n\t\t\t\t\"#sfs_crypt_domain_id\": mykey.DomainId,\n\t\t\t\t\"#sfs_crypt_alias\":     mykey.KeyAlias,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.KmsKeyV1;\nimport com.pulumi.flexibleengine.KmsKeyV1Args;\nimport com.pulumi.flexibleengine.SfsFileSystemV2;\nimport com.pulumi.flexibleengine.SfsFileSystemV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var shareName = config.get(\"shareName\");\n        final var shareDescription = config.get(\"shareDescription\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var mykey = new KmsKeyV1(\"mykey\", KmsKeyV1Args.builder()\n            .keyAlias(\"kms_sfs\")\n            .pendingDays(\"7\")\n            .build());\n\n        var share_file = new SfsFileSystemV2(\"share-file\", SfsFileSystemV2Args.builder()\n            .size(100)\n            .shareProto(\"NFS\")\n            .accessLevel(\"rw\")\n            .accessTo(exampleVpc.vpcV1Id())\n            .description(shareDescription)\n            .metadata(Map.ofEntries(\n                Map.entry(\"#sfs_crypt_key_id\", mykey.kmsKeyV1Id()),\n                Map.entry(\"#sfs_crypt_domain_id\", mykey.domainId()),\n                Map.entry(\"#sfs_crypt_alias\", mykey.keyAlias())\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  shareName:\n    type: dynamic\n  shareDescription:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  mykey:\n    type: flexibleengine:KmsKeyV1\n    properties:\n      keyAlias: kms_sfs\n      pendingDays: '7'\n  share-file:\n    type: flexibleengine:SfsFileSystemV2\n    properties:\n      size: 100\n      shareProto: NFS\n      accessLevel: rw\n      accessTo: ${exampleVpc.vpcV1Id}\n      description: ${shareDescription}\n      metadata:\n        '#sfs_crypt_key_id': ${mykey.kmsKeyV1Id}\n        '#sfs_crypt_domain_id': ${mykey.domainId}\n        '#sfs_crypt_alias': ${mykey.keyAlias}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSFS can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/sfsFileSystemV2:SfsFileSystemV2 flexibleengine_sfs_file_system_v2 4779ab1c-7c1a-44b1-a02e-93dfc361b32d\n```\n\nPlease importing them by flexibleengine_sfs_access_rule_v2.\n\n",
      "properties": {
        "accessLevel": {
          "type": "string",
          "description": "Specifies the access level of the shared file system. Possible values are *ro*\n(read-only) and *rw* (read-write). The default value is *rw* (read/write). Changing this will create a new access rule.\n"
        },
        "accessRuleStatus": {
          "type": "string",
          "description": "The status of the share access rule.\n"
        },
        "accessRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FSfsFileSystemV2AccessRule:SfsFileSystemV2AccessRule"
          },
          "description": "All access rules of the shared file system. The access_rules object structure\nis documented below.\n"
        },
        "accessTo": {
          "type": "string",
          "description": "Specifies the value that defines the access rule. The value contains 1 to 255\ncharacters. Changing this will create a new access rule. The value varies according to the scenario:\n+ Set the VPC ID in VPC authorization scenarios.\n+ Set this parameter in IP address authorization scenario.\n\n- For an NFS shared file system, the value in the format of *VPC_ID#IP_address#priority#user_permission*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#100#all_squash,root_squash.\n\n- For a CIFS shared file system, the value in the format of *VPC_ID#IP_address#priority*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#0.\n\n> **NOTE:** If you want to create more access rules, please using flexibleengine_sfs_access_rule_v2.\n"
        },
        "accessType": {
          "type": "string",
          "description": "Specifies the type of the share access rule. The default value is *cert*.\nChanging this will create a new access rule.\n"
        },
        "availabilityZone": {
          "type": "string",
          "description": "The availability zone name. Changing this parameter will create\na new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Describes the shared file system.\n"
        },
        "exportLocation": {
          "type": "string",
          "description": "The address for accessing the shared file system.\n"
        },
        "isPublic": {
          "type": "boolean",
          "description": "The level of visibility for the shared file system. Changing this will\ncreate a new resource.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Metadata key and value pairs as a dictionary of strings.\nThe supported metadata keys are \"#sfs_crypt_key_id\", \"#sfs_crypt_domain_id\" and \"#sfs_crypt_alias\",\nand the keys should be existed at the same time to enable the data encryption function.\nChanging this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the shared file system.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the sfs file system resource.\nIf omitted, the provider-level region will be used. Changing this will create a new sfs file system resource.\n"
        },
        "sfsFileSystemV2Id": {
          "type": "string",
          "description": "The UUID of the shared file system.\n"
        },
        "shareAccessId": {
          "type": "string",
          "description": "The UUID of the share access rule.\n"
        },
        "shareProto": {
          "type": "string",
          "description": "The protocol for sharing file systems. The default value is NFS.\n"
        },
        "size": {
          "type": "number",
          "description": "The size (GB) of the shared file system.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the share access rule.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSfsFileSystemV2Timeouts:SfsFileSystemV2Timeouts"
        },
        "volumeType": {
          "type": "string",
          "description": "The volume type.\n"
        }
      },
      "type": "object",
      "required": [
        "accessLevel",
        "accessRuleStatus",
        "accessRules",
        "accessType",
        "availabilityZone",
        "description",
        "exportLocation",
        "name",
        "region",
        "sfsFileSystemV2Id",
        "shareAccessId",
        "size",
        "status",
        "volumeType"
      ],
      "inputProperties": {
        "accessLevel": {
          "type": "string",
          "description": "Specifies the access level of the shared file system. Possible values are *ro*\n(read-only) and *rw* (read-write). The default value is *rw* (read/write). Changing this will create a new access rule.\n"
        },
        "accessTo": {
          "type": "string",
          "description": "Specifies the value that defines the access rule. The value contains 1 to 255\ncharacters. Changing this will create a new access rule. The value varies according to the scenario:\n+ Set the VPC ID in VPC authorization scenarios.\n+ Set this parameter in IP address authorization scenario.\n\n- For an NFS shared file system, the value in the format of *VPC_ID#IP_address#priority#user_permission*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#100#all_squash,root_squash.\n\n- For a CIFS shared file system, the value in the format of *VPC_ID#IP_address#priority*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#0.\n\n> **NOTE:** If you want to create more access rules, please using flexibleengine_sfs_access_rule_v2.\n"
        },
        "accessType": {
          "type": "string",
          "description": "Specifies the type of the share access rule. The default value is *cert*.\nChanging this will create a new access rule.\n"
        },
        "availabilityZone": {
          "type": "string",
          "description": "The availability zone name. Changing this parameter will create\na new resource.\n"
        },
        "description": {
          "type": "string",
          "description": "Describes the shared file system.\n"
        },
        "isPublic": {
          "type": "boolean",
          "description": "The level of visibility for the shared file system. Changing this will\ncreate a new resource.\n"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Metadata key and value pairs as a dictionary of strings.\nThe supported metadata keys are \"#sfs_crypt_key_id\", \"#sfs_crypt_domain_id\" and \"#sfs_crypt_alias\",\nand the keys should be existed at the same time to enable the data encryption function.\nChanging this will create a new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the shared file system.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the sfs file system resource.\nIf omitted, the provider-level region will be used. Changing this will create a new sfs file system resource.\n"
        },
        "sfsFileSystemV2Id": {
          "type": "string",
          "description": "The UUID of the shared file system.\n"
        },
        "shareProto": {
          "type": "string",
          "description": "The protocol for sharing file systems. The default value is NFS.\n"
        },
        "size": {
          "type": "number",
          "description": "The size (GB) of the shared file system.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSfsFileSystemV2Timeouts:SfsFileSystemV2Timeouts"
        }
      },
      "requiredInputs": [
        "size"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SfsFileSystemV2 resources.\n",
        "properties": {
          "accessLevel": {
            "type": "string",
            "description": "Specifies the access level of the shared file system. Possible values are *ro*\n(read-only) and *rw* (read-write). The default value is *rw* (read/write). Changing this will create a new access rule.\n"
          },
          "accessRuleStatus": {
            "type": "string",
            "description": "The status of the share access rule.\n"
          },
          "accessRules": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FSfsFileSystemV2AccessRule:SfsFileSystemV2AccessRule"
            },
            "description": "All access rules of the shared file system. The access_rules object structure\nis documented below.\n"
          },
          "accessTo": {
            "type": "string",
            "description": "Specifies the value that defines the access rule. The value contains 1 to 255\ncharacters. Changing this will create a new access rule. The value varies according to the scenario:\n+ Set the VPC ID in VPC authorization scenarios.\n+ Set this parameter in IP address authorization scenario.\n\n- For an NFS shared file system, the value in the format of *VPC_ID#IP_address#priority#user_permission*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#100#all_squash,root_squash.\n\n- For a CIFS shared file system, the value in the format of *VPC_ID#IP_address#priority*.\nFor example, 0157b53f-4974-4e80-91c9-098532bcaf00#2.2.2.2/16#0.\n\n> **NOTE:** If you want to create more access rules, please using flexibleengine_sfs_access_rule_v2.\n"
          },
          "accessType": {
            "type": "string",
            "description": "Specifies the type of the share access rule. The default value is *cert*.\nChanging this will create a new access rule.\n"
          },
          "availabilityZone": {
            "type": "string",
            "description": "The availability zone name. Changing this parameter will create\na new resource.\n"
          },
          "description": {
            "type": "string",
            "description": "Describes the shared file system.\n"
          },
          "exportLocation": {
            "type": "string",
            "description": "The address for accessing the shared file system.\n"
          },
          "isPublic": {
            "type": "boolean",
            "description": "The level of visibility for the shared file system. Changing this will\ncreate a new resource.\n"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metadata key and value pairs as a dictionary of strings.\nThe supported metadata keys are \"#sfs_crypt_key_id\", \"#sfs_crypt_domain_id\" and \"#sfs_crypt_alias\",\nand the keys should be existed at the same time to enable the data encryption function.\nChanging this will create a new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the shared file system.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the sfs file system resource.\nIf omitted, the provider-level region will be used. Changing this will create a new sfs file system resource.\n"
          },
          "sfsFileSystemV2Id": {
            "type": "string",
            "description": "The UUID of the shared file system.\n"
          },
          "shareAccessId": {
            "type": "string",
            "description": "The UUID of the share access rule.\n"
          },
          "shareProto": {
            "type": "string",
            "description": "The protocol for sharing file systems. The default value is NFS.\n"
          },
          "size": {
            "type": "number",
            "description": "The size (GB) of the shared file system.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the share access rule.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSfsFileSystemV2Timeouts:SfsFileSystemV2Timeouts"
          },
          "volumeType": {
            "type": "string",
            "description": "The volume type.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/sfsTurbo:SfsTurbo": {
      "description": "Provides an Shared File System (SFS) Turbo resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject(\"vpcId\");\nconst subnetId = config.requireObject(\"subnetId\");\nconst secgroupId = config.requireObject(\"secgroupId\");\nconst testAz = config.requireObject(\"testAz\");\nconst test = new flexibleengine.SfsTurbo(\"test\", {\n    size: 500,\n    shareProto: \"NFS\",\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: secgroupId,\n    availabilityZone: testAz,\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nsecgroup_id = config.require_object(\"secgroupId\")\ntest_az = config.require_object(\"testAz\")\ntest = flexibleengine.SfsTurbo(\"test\",\n    size=500,\n    share_proto=\"NFS\",\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=secgroup_id,\n    availability_zone=test_az,\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var secgroupId = config.RequireObject<dynamic>(\"secgroupId\");\n    var testAz = config.RequireObject<dynamic>(\"testAz\");\n    var test = new Flexibleengine.SfsTurbo(\"test\", new()\n    {\n        Size = 500,\n        ShareProto = \"NFS\",\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = secgroupId,\n        AvailabilityZone = testAz,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tsecgroupId := cfg.RequireObject(\"secgroupId\")\n\t\ttestAz := cfg.RequireObject(\"testAz\")\n\t\t_, err := flexibleengine.NewSfsTurbo(ctx, \"test\", &flexibleengine.SfsTurboArgs{\n\t\t\tSize:             pulumi.Float64(500),\n\t\t\tShareProto:       pulumi.String(\"NFS\"),\n\t\t\tVpcId:            pulumi.Any(vpcId),\n\t\t\tSubnetId:         pulumi.Any(subnetId),\n\t\t\tSecurityGroupId:  pulumi.Any(secgroupId),\n\t\t\tAvailabilityZone: pulumi.Any(testAz),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.SfsTurbo;\nimport com.pulumi.flexibleengine.SfsTurboArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var secgroupId = config.get(\"secgroupId\");\n        final var testAz = config.get(\"testAz\");\n        var test = new SfsTurbo(\"test\", SfsTurboArgs.builder()\n            .size(500)\n            .shareProto(\"NFS\")\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(secgroupId)\n            .availabilityZone(testAz)\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  secgroupId:\n    type: dynamic\n  testAz:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:SfsTurbo\n    properties:\n      size: 500\n      shareProto: NFS\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${secgroupId}\n      availabilityZone: ${testAz}\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSFS Turbo can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/sfsTurbo:SfsTurbo flexibleengine_sfs_turbo 1e3d5306-24c9-4316-9185-70e9787d71ab\n```\n\n",
      "properties": {
        "autoRenew": {
          "type": "string"
        },
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the availability zone where the file system is located.\nChanging this will create a new resource.\n"
        },
        "availableCapacity": {
          "type": "string",
          "description": "The available capacity of the SFS Turbo file system in the unit of GB.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "cryptKeyId": {
          "type": "string",
          "description": "Specifies the ID of a KMS key to encrypt the file system. Changing this\nwill create a new resource.\n"
        },
        "dedicatedFlavor": {
          "type": "string"
        },
        "dedicatedStorageId": {
          "type": "string"
        },
        "enhanced": {
          "type": "boolean",
          "description": "Specifies whether the file system is enhanced or not. Changing this will\ncreate a new resource.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the resource.\nChanging this will create a new resource.\n"
        },
        "exportLocation": {
          "type": "string",
          "description": "The mount point of the SFS Turbo file system.\n"
        },
        "hpcBandwidth": {
          "type": "string"
        },
        "hpcCacheBandwidth": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of an SFS Turbo file system. The value contains 4 to 64\ncharacters and must start with a letter. Changing this will create a new resource.\n"
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the SFS Turbo resource. If omitted, the\nprovider-level region will be used. Changing this creates a new SFS Turbo resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the security group ID. Changing this will create a new\nresource.\n"
        },
        "sfsTurboId": {
          "type": "string",
          "description": "The UUID of the SFS Turbo file system.\n"
        },
        "shareProto": {
          "type": "string",
          "description": "Specifies the protocol for sharing file systems. The valid value is NFS.\nChanging this will create a new resource.\n"
        },
        "shareType": {
          "type": "string",
          "description": "Specifies the file system type. Changing this will create a new resource.\nValid values are **STANDARD** and **PERFORMANCE**. Defaults to **STANDARD**.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the capacity of a sharing file system, in GB.\n+ If `share_type` is set to **STANDARD** or **PERFORMANCE**, the value ranges from 500 to 32768, and ranges from\n10240 to 327680 for an enhanced file system.\n\n> The file system capacity can only be expanded, not reduced.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the SFS Turbo file system.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the network ID of the subnet. Changing this will create a new\nresource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the SFS Turbo.\n\n> **NOTE:**\nSFS Turbo will create two private IP addresses and one virtual IP address under the subnet you specified. To ensure\nnormal use, SFS Turbo will enable the inbound rules for ports *111*, *445*, *2049*, *2051*, *2052*, and *20048* in the\nsecurity group you specified.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSfsTurboTimeouts:SfsTurboTimeouts"
        },
        "version": {
          "type": "string",
          "description": "The version ID of the SFS Turbo file system.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID. Changing this will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "availableCapacity",
        "chargingMode",
        "enhanced",
        "enterpriseProjectId",
        "exportLocation",
        "hpcBandwidth",
        "hpcCacheBandwidth",
        "name",
        "region",
        "securityGroupId",
        "sfsTurboId",
        "size",
        "status",
        "subnetId",
        "version",
        "vpcId"
      ],
      "inputProperties": {
        "autoRenew": {
          "type": "string"
        },
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the availability zone where the file system is located.\nChanging this will create a new resource.\n"
        },
        "chargingMode": {
          "type": "string"
        },
        "cryptKeyId": {
          "type": "string",
          "description": "Specifies the ID of a KMS key to encrypt the file system. Changing this\nwill create a new resource.\n"
        },
        "dedicatedFlavor": {
          "type": "string"
        },
        "dedicatedStorageId": {
          "type": "string"
        },
        "enhanced": {
          "type": "boolean",
          "description": "Specifies whether the file system is enhanced or not. Changing this will\ncreate a new resource.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the resource.\nChanging this will create a new resource.\n"
        },
        "hpcBandwidth": {
          "type": "string"
        },
        "hpcCacheBandwidth": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of an SFS Turbo file system. The value contains 4 to 64\ncharacters and must start with a letter. Changing this will create a new resource.\n"
        },
        "period": {
          "type": "number"
        },
        "periodUnit": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the SFS Turbo resource. If omitted, the\nprovider-level region will be used. Changing this creates a new SFS Turbo resource.\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "Specifies the security group ID. Changing this will create a new\nresource.\n"
        },
        "sfsTurboId": {
          "type": "string",
          "description": "The UUID of the SFS Turbo file system.\n"
        },
        "shareProto": {
          "type": "string",
          "description": "Specifies the protocol for sharing file systems. The valid value is NFS.\nChanging this will create a new resource.\n"
        },
        "shareType": {
          "type": "string",
          "description": "Specifies the file system type. Changing this will create a new resource.\nValid values are **STANDARD** and **PERFORMANCE**. Defaults to **STANDARD**.\n"
        },
        "size": {
          "type": "number",
          "description": "Specifies the capacity of a sharing file system, in GB.\n+ If `share_type` is set to **STANDARD** or **PERFORMANCE**, the value ranges from 500 to 32768, and ranges from\n10240 to 327680 for an enhanced file system.\n\n> The file system capacity can only be expanded, not reduced.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "Specifies the network ID of the subnet. Changing this will create a new\nresource.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the SFS Turbo.\n\n> **NOTE:**\nSFS Turbo will create two private IP addresses and one virtual IP address under the subnet you specified. To ensure\nnormal use, SFS Turbo will enable the inbound rules for ports *111*, *445*, *2049*, *2051*, *2052*, and *20048* in the\nsecurity group you specified.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSfsTurboTimeouts:SfsTurboTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID. Changing this will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "availabilityZone",
        "securityGroupId",
        "size",
        "subnetId",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SfsTurbo resources.\n",
        "properties": {
          "autoRenew": {
            "type": "string"
          },
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the availability zone where the file system is located.\nChanging this will create a new resource.\n"
          },
          "availableCapacity": {
            "type": "string",
            "description": "The available capacity of the SFS Turbo file system in the unit of GB.\n"
          },
          "chargingMode": {
            "type": "string"
          },
          "cryptKeyId": {
            "type": "string",
            "description": "Specifies the ID of a KMS key to encrypt the file system. Changing this\nwill create a new resource.\n"
          },
          "dedicatedFlavor": {
            "type": "string"
          },
          "dedicatedStorageId": {
            "type": "string"
          },
          "enhanced": {
            "type": "boolean",
            "description": "Specifies whether the file system is enhanced or not. Changing this will\ncreate a new resource.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id of the resource.\nChanging this will create a new resource.\n"
          },
          "exportLocation": {
            "type": "string",
            "description": "The mount point of the SFS Turbo file system.\n"
          },
          "hpcBandwidth": {
            "type": "string"
          },
          "hpcCacheBandwidth": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of an SFS Turbo file system. The value contains 4 to 64\ncharacters and must start with a letter. Changing this will create a new resource.\n"
          },
          "period": {
            "type": "number"
          },
          "periodUnit": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the SFS Turbo resource. If omitted, the\nprovider-level region will be used. Changing this creates a new SFS Turbo resource.\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "Specifies the security group ID. Changing this will create a new\nresource.\n"
          },
          "sfsTurboId": {
            "type": "string",
            "description": "The UUID of the SFS Turbo file system.\n"
          },
          "shareProto": {
            "type": "string",
            "description": "Specifies the protocol for sharing file systems. The valid value is NFS.\nChanging this will create a new resource.\n"
          },
          "shareType": {
            "type": "string",
            "description": "Specifies the file system type. Changing this will create a new resource.\nValid values are **STANDARD** and **PERFORMANCE**. Defaults to **STANDARD**.\n"
          },
          "size": {
            "type": "number",
            "description": "Specifies the capacity of a sharing file system, in GB.\n+ If `share_type` is set to **STANDARD** or **PERFORMANCE**, the value ranges from 500 to 32768, and ranges from\n10240 to 327680 for an enhanced file system.\n\n> The file system capacity can only be expanded, not reduced.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the SFS Turbo file system.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the network ID of the subnet. Changing this will create a new\nresource.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the key/value pairs to associate with the SFS Turbo.\n\n> **NOTE:**\nSFS Turbo will create two private IP addresses and one virtual IP address under the subnet you specified. To ensure\nnormal use, SFS Turbo will enable the inbound rules for ports *111*, *445*, *2049*, *2051*, *2052*, and *20048* in the\nsecurity group you specified.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSfsTurboTimeouts:SfsTurboTimeouts"
          },
          "version": {
            "type": "string",
            "description": "The version ID of the SFS Turbo file system.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC ID. Changing this will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/smnMessageTemplate:SmnMessageTemplate": {
      "description": "Manages a SMN message template resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject(\"name\");\nconst protocol = config.requireObject(\"protocol\");\nconst test = new flexibleengine.SmnMessageTemplate(\"test\", {\n    protocol: protocol,\n    content: \"this content contains {content1}, {content2}, {content3}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\nprotocol = config.require_object(\"protocol\")\ntest = flexibleengine.SmnMessageTemplate(\"test\",\n    protocol=protocol,\n    content=\"this content contains {content1}, {content2}, {content3}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var protocol = config.RequireObject<dynamic>(\"protocol\");\n    var test = new Flexibleengine.SmnMessageTemplate(\"test\", new()\n    {\n        Protocol = protocol,\n        Content = \"this content contains {content1}, {content2}, {content3}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tprotocol := cfg.RequireObject(\"protocol\")\n\t\t_, err := flexibleengine.NewSmnMessageTemplate(ctx, \"test\", &flexibleengine.SmnMessageTemplateArgs{\n\t\t\tProtocol: pulumi.Any(protocol),\n\t\t\tContent:  pulumi.String(\"this content contains {content1}, {content2}, {content3}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.SmnMessageTemplate;\nimport com.pulumi.flexibleengine.SmnMessageTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var protocol = config.get(\"protocol\");\n        var test = new SmnMessageTemplate(\"test\", SmnMessageTemplateArgs.builder()\n            .protocol(protocol)\n            .content(\"this content contains {content1}, {content2}, {content3}\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\n  protocol:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:SmnMessageTemplate\n    properties:\n      protocol: ${protocol}\n      content: this content contains {content1}, {content2}, {content3}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe SMN message template can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/smnMessageTemplate:SmnMessageTemplate test <message_template_id>\n```\n\n",
      "properties": {
        "content": {
          "type": "string",
          "description": "Specifies the template content, which supports plain text only.\nThe template content cannot be left blank or larger than 256 KB.\nThe fields within \"{}\" can be replaced based on the actual situation\nwhen you use the template.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the message template name.\nA template name starts with a letter or digit, consists of 1 to 64 characters,\nand can contain only letters, digits,  hyphens (-), and underscores (_).\n\nChanging this parameter will create a new resource.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol supported by the template. Value options:\n+ **default**: the default protocol\n+ **email**: the email protocol\n+ **sms**: the SMS protocol\n+ **functionstage**: the FunctionGraph transport protocol\n+ **dms**: the DMS transport protocol\n+ **http**: the http protocol\n+ **https**: the https protocol\n\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "smnMessageTemplateId": {
          "type": "string",
          "description": "The resource ID.\n"
        },
        "tagNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Indicates the variable list. The variable name will be quoted in braces ({}) in the template.\nWhen you use a template to send messages, you can replace the variable with any content.\n"
        }
      },
      "type": "object",
      "required": [
        "content",
        "name",
        "protocol",
        "region",
        "smnMessageTemplateId",
        "tagNames"
      ],
      "inputProperties": {
        "content": {
          "type": "string",
          "description": "Specifies the template content, which supports plain text only.\nThe template content cannot be left blank or larger than 256 KB.\nThe fields within \"{}\" can be replaced based on the actual situation\nwhen you use the template.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the message template name.\nA template name starts with a letter or digit, consists of 1 to 64 characters,\nand can contain only letters, digits,  hyphens (-), and underscores (_).\n\nChanging this parameter will create a new resource.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol supported by the template. Value options:\n+ **default**: the default protocol\n+ **email**: the email protocol\n+ **sms**: the SMS protocol\n+ **functionstage**: the FunctionGraph transport protocol\n+ **dms**: the DMS transport protocol\n+ **http**: the http protocol\n+ **https**: the https protocol\n\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "smnMessageTemplateId": {
          "type": "string",
          "description": "The resource ID.\n"
        }
      },
      "requiredInputs": [
        "content",
        "protocol"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SmnMessageTemplate resources.\n",
        "properties": {
          "content": {
            "type": "string",
            "description": "Specifies the template content, which supports plain text only.\nThe template content cannot be left blank or larger than 256 KB.\nThe fields within \"{}\" can be replaced based on the actual situation\nwhen you use the template.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the message template name.\nA template name starts with a letter or digit, consists of 1 to 64 characters,\nand can contain only letters, digits,  hyphens (-), and underscores (_).\n\nChanging this parameter will create a new resource.\n"
          },
          "protocol": {
            "type": "string",
            "description": "Specifies the protocol supported by the template. Value options:\n+ **default**: the default protocol\n+ **email**: the email protocol\n+ **sms**: the SMS protocol\n+ **functionstage**: the FunctionGraph transport protocol\n+ **dms**: the DMS transport protocol\n+ **http**: the http protocol\n+ **https**: the https protocol\n\nChanging this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "smnMessageTemplateId": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "tagNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Indicates the variable list. The variable name will be quoted in braces ({}) in the template.\nWhen you use a template to send messages, you can replace the variable with any content.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/smnSubscriptionV2:SmnSubscriptionV2": {
      "description": "Manages a SMN subscription resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst topic1 = new flexibleengine.SmnTopicV2(\"topic1\", {displayName: \"The display name of topic_1\"});\nconst subscription1 = new flexibleengine.SmnSubscriptionV2(\"subscription1\", {\n    topicUrn: topic1.smnTopicV2Id,\n    endpoint: \"mailtest@gmail.com\",\n    protocol: \"email\",\n    remark: \"O&M\",\n});\nconst subscription2 = new flexibleengine.SmnSubscriptionV2(\"subscription2\", {\n    topicUrn: topic1.smnTopicV2Id,\n    endpoint: \"13600000000\",\n    protocol: \"sms\",\n    remark: \"O&M\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntopic1 = flexibleengine.SmnTopicV2(\"topic1\", display_name=\"The display name of topic_1\")\nsubscription1 = flexibleengine.SmnSubscriptionV2(\"subscription1\",\n    topic_urn=topic1.smn_topic_v2_id,\n    endpoint=\"mailtest@gmail.com\",\n    protocol=\"email\",\n    remark=\"O&M\")\nsubscription2 = flexibleengine.SmnSubscriptionV2(\"subscription2\",\n    topic_urn=topic1.smn_topic_v2_id,\n    endpoint=\"13600000000\",\n    protocol=\"sms\",\n    remark=\"O&M\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var topic1 = new Flexibleengine.SmnTopicV2(\"topic1\", new()\n    {\n        DisplayName = \"The display name of topic_1\",\n    });\n\n    var subscription1 = new Flexibleengine.SmnSubscriptionV2(\"subscription1\", new()\n    {\n        TopicUrn = topic1.SmnTopicV2Id,\n        Endpoint = \"mailtest@gmail.com\",\n        Protocol = \"email\",\n        Remark = \"O&M\",\n    });\n\n    var subscription2 = new Flexibleengine.SmnSubscriptionV2(\"subscription2\", new()\n    {\n        TopicUrn = topic1.SmnTopicV2Id,\n        Endpoint = \"13600000000\",\n        Protocol = \"sms\",\n        Remark = \"O&M\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttopic1, err := flexibleengine.NewSmnTopicV2(ctx, \"topic1\", &flexibleengine.SmnTopicV2Args{\n\t\t\tDisplayName: pulumi.String(\"The display name of topic_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewSmnSubscriptionV2(ctx, \"subscription1\", &flexibleengine.SmnSubscriptionV2Args{\n\t\t\tTopicUrn: topic1.SmnTopicV2Id,\n\t\t\tEndpoint: pulumi.String(\"mailtest@gmail.com\"),\n\t\t\tProtocol: pulumi.String(\"email\"),\n\t\t\tRemark:   pulumi.String(\"O&M\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewSmnSubscriptionV2(ctx, \"subscription2\", &flexibleengine.SmnSubscriptionV2Args{\n\t\t\tTopicUrn: topic1.SmnTopicV2Id,\n\t\t\tEndpoint: pulumi.String(\"13600000000\"),\n\t\t\tProtocol: pulumi.String(\"sms\"),\n\t\t\tRemark:   pulumi.String(\"O&M\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.SmnTopicV2;\nimport com.pulumi.flexibleengine.SmnTopicV2Args;\nimport com.pulumi.flexibleengine.SmnSubscriptionV2;\nimport com.pulumi.flexibleengine.SmnSubscriptionV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var topic1 = new SmnTopicV2(\"topic1\", SmnTopicV2Args.builder()\n            .displayName(\"The display name of topic_1\")\n            .build());\n\n        var subscription1 = new SmnSubscriptionV2(\"subscription1\", SmnSubscriptionV2Args.builder()\n            .topicUrn(topic1.smnTopicV2Id())\n            .endpoint(\"mailtest@gmail.com\")\n            .protocol(\"email\")\n            .remark(\"O&M\")\n            .build());\n\n        var subscription2 = new SmnSubscriptionV2(\"subscription2\", SmnSubscriptionV2Args.builder()\n            .topicUrn(topic1.smnTopicV2Id())\n            .endpoint(\"13600000000\")\n            .protocol(\"sms\")\n            .remark(\"O&M\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  topic1:\n    type: flexibleengine:SmnTopicV2\n    properties:\n      displayName: The display name of topic_1\n  subscription1:\n    type: flexibleengine:SmnSubscriptionV2\n    properties:\n      topicUrn: ${topic1.smnTopicV2Id}\n      endpoint: mailtest@gmail.com\n      protocol: email\n      remark: O&M\n  subscription2:\n    type: flexibleengine:SmnSubscriptionV2\n    properties:\n      topicUrn: ${topic1.smnTopicV2Id}\n      endpoint: '13600000000'\n      protocol: sms\n      remark: O&M\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSMN subscription can be imported using the `id` (subscription urn), e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/smnSubscriptionV2:SmnSubscriptionV2 subscription_1 urn:smn:eu-west-0:0970dd7a1300f5672ff2c003c60ae115:topic_1:a2aa5a1f66df494184f4e108398de1a6\n```\n\n",
      "properties": {
        "endpoint": {
          "type": "string",
          "description": "Message endpoint. Changing this parameter will create a new resource.\n+ **For an HTTP subscription**, the endpoint starts with `http://`.\n+ **For an HTTPS subscription**, the endpoint starts with `https://`.\n+ **For an email subscription**, the endpoint is an mail address.\n+ **For an SMS message subscription**, the endpoint is a phone number,\nthe format is \\[+\\]\\[country code\\]\\[phone number\\], e.g. +86185xxxx0000.\n+ **For a functionstage subscription**, the endpoint is a function urn.\n+ **For a functiongraph subscription**, the endpoint is a workflow ID.\n"
        },
        "extension": {
          "$ref": "#/types/flexibleengine:index%2FSmnSubscriptionV2Extension:SmnSubscriptionV2Extension"
        },
        "owner": {
          "type": "string",
          "description": "Project ID of the topic creator.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol of the message endpoint. Currently, email, sms, http,\nhttps, functionstage and functiongraph are supported. Changing this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the SMN subscription resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "remark": {
          "type": "string",
          "description": "Remark information. The remarks must be a UTF-8-coded character string\ncontaining 128 bytes. Changing this parameter will create a new resource.\n"
        },
        "smnSubscriptionV2Id": {
          "type": "string",
          "description": "The resource ID. The value is the subscription urn.\n"
        },
        "status": {
          "type": "number",
          "description": "Subscription status.\n+ **0**: indicates that the subscription is not confirmed.\n+ **1**: indicates that the subscription is confirmed.\n+ **3**: indicates that the subscription is canceled.\n"
        },
        "subscriptionUrn": {
          "type": "string",
          "description": "Resource identifier of a subscription, which is unique.\n"
        },
        "topicUrn": {
          "type": "string",
          "description": "Specifies the resource identifier of a topic, which is unique.\nChanging this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "endpoint",
        "owner",
        "protocol",
        "region",
        "smnSubscriptionV2Id",
        "status",
        "subscriptionUrn",
        "topicUrn"
      ],
      "inputProperties": {
        "endpoint": {
          "type": "string",
          "description": "Message endpoint. Changing this parameter will create a new resource.\n+ **For an HTTP subscription**, the endpoint starts with `http://`.\n+ **For an HTTPS subscription**, the endpoint starts with `https://`.\n+ **For an email subscription**, the endpoint is an mail address.\n+ **For an SMS message subscription**, the endpoint is a phone number,\nthe format is \\[+\\]\\[country code\\]\\[phone number\\], e.g. +86185xxxx0000.\n+ **For a functionstage subscription**, the endpoint is a function urn.\n+ **For a functiongraph subscription**, the endpoint is a workflow ID.\n"
        },
        "extension": {
          "$ref": "#/types/flexibleengine:index%2FSmnSubscriptionV2Extension:SmnSubscriptionV2Extension"
        },
        "protocol": {
          "type": "string",
          "description": "Specifies the protocol of the message endpoint. Currently, email, sms, http,\nhttps, functionstage and functiongraph are supported. Changing this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the SMN subscription resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "remark": {
          "type": "string",
          "description": "Remark information. The remarks must be a UTF-8-coded character string\ncontaining 128 bytes. Changing this parameter will create a new resource.\n"
        },
        "smnSubscriptionV2Id": {
          "type": "string",
          "description": "The resource ID. The value is the subscription urn.\n"
        },
        "topicUrn": {
          "type": "string",
          "description": "Specifies the resource identifier of a topic, which is unique.\nChanging this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "endpoint",
        "protocol",
        "topicUrn"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SmnSubscriptionV2 resources.\n",
        "properties": {
          "endpoint": {
            "type": "string",
            "description": "Message endpoint. Changing this parameter will create a new resource.\n+ **For an HTTP subscription**, the endpoint starts with `http://`.\n+ **For an HTTPS subscription**, the endpoint starts with `https://`.\n+ **For an email subscription**, the endpoint is an mail address.\n+ **For an SMS message subscription**, the endpoint is a phone number,\nthe format is \\[+\\]\\[country code\\]\\[phone number\\], e.g. +86185xxxx0000.\n+ **For a functionstage subscription**, the endpoint is a function urn.\n+ **For a functiongraph subscription**, the endpoint is a workflow ID.\n"
          },
          "extension": {
            "$ref": "#/types/flexibleengine:index%2FSmnSubscriptionV2Extension:SmnSubscriptionV2Extension"
          },
          "owner": {
            "type": "string",
            "description": "Project ID of the topic creator.\n"
          },
          "protocol": {
            "type": "string",
            "description": "Specifies the protocol of the message endpoint. Currently, email, sms, http,\nhttps, functionstage and functiongraph are supported. Changing this parameter will create a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the SMN subscription resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "remark": {
            "type": "string",
            "description": "Remark information. The remarks must be a UTF-8-coded character string\ncontaining 128 bytes. Changing this parameter will create a new resource.\n"
          },
          "smnSubscriptionV2Id": {
            "type": "string",
            "description": "The resource ID. The value is the subscription urn.\n"
          },
          "status": {
            "type": "number",
            "description": "Subscription status.\n+ **0**: indicates that the subscription is not confirmed.\n+ **1**: indicates that the subscription is confirmed.\n+ **3**: indicates that the subscription is canceled.\n"
          },
          "subscriptionUrn": {
            "type": "string",
            "description": "Resource identifier of a subscription, which is unique.\n"
          },
          "topicUrn": {
            "type": "string",
            "description": "Specifies the resource identifier of a topic, which is unique.\nChanging this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/smnTopicV2:SmnTopicV2": {
      "description": "Manages a SMN topic resource within FlexibleEngine.\n\n## Example Usage\n\n### Basic Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst topic1 = new flexibleengine.SmnTopicV2(\"topic1\", {displayName: \"The display name of topic_1\"});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntopic1 = flexibleengine.SmnTopicV2(\"topic1\", display_name=\"The display name of topic_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var topic1 = new Flexibleengine.SmnTopicV2(\"topic1\", new()\n    {\n        DisplayName = \"The display name of topic_1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewSmnTopicV2(ctx, \"topic1\", &flexibleengine.SmnTopicV2Args{\n\t\t\tDisplayName: pulumi.String(\"The display name of topic_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.SmnTopicV2;\nimport com.pulumi.flexibleengine.SmnTopicV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var topic1 = new SmnTopicV2(\"topic1\", SmnTopicV2Args.builder()\n            .displayName(\"The display name of topic_1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  topic1:\n    type: flexibleengine:SmnTopicV2\n    properties:\n      displayName: The display name of topic_1\n```\n<!--End PulumiCodeChooser -->\n\n### Topic with policies\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst topic1 = new flexibleengine.SmnTopicV2(\"topic1\", {\n    displayName: \"The display name of topic_1\",\n    introduction: \"created by terraform\",\n    servicesPublishAllowed: \"obs,vod,cce\",\n    usersPublishAllowed: \"urn:csp:iam::0970d7b7d400f2470fbec00316a03560:root,urn:csp:iam::0970d7b7d400f2470fbec00316a03561:root\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntopic1 = flexibleengine.SmnTopicV2(\"topic1\",\n    display_name=\"The display name of topic_1\",\n    introduction=\"created by terraform\",\n    services_publish_allowed=\"obs,vod,cce\",\n    users_publish_allowed=\"urn:csp:iam::0970d7b7d400f2470fbec00316a03560:root,urn:csp:iam::0970d7b7d400f2470fbec00316a03561:root\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var topic1 = new Flexibleengine.SmnTopicV2(\"topic1\", new()\n    {\n        DisplayName = \"The display name of topic_1\",\n        Introduction = \"created by terraform\",\n        ServicesPublishAllowed = \"obs,vod,cce\",\n        UsersPublishAllowed = \"urn:csp:iam::0970d7b7d400f2470fbec00316a03560:root,urn:csp:iam::0970d7b7d400f2470fbec00316a03561:root\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewSmnTopicV2(ctx, \"topic1\", &flexibleengine.SmnTopicV2Args{\n\t\t\tDisplayName:            pulumi.String(\"The display name of topic_1\"),\n\t\t\tIntroduction:           pulumi.String(\"created by terraform\"),\n\t\t\tServicesPublishAllowed: pulumi.String(\"obs,vod,cce\"),\n\t\t\tUsersPublishAllowed:    pulumi.String(\"urn:csp:iam::0970d7b7d400f2470fbec00316a03560:root,urn:csp:iam::0970d7b7d400f2470fbec00316a03561:root\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.SmnTopicV2;\nimport com.pulumi.flexibleengine.SmnTopicV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var topic1 = new SmnTopicV2(\"topic1\", SmnTopicV2Args.builder()\n            .displayName(\"The display name of topic_1\")\n            .introduction(\"created by terraform\")\n            .servicesPublishAllowed(\"obs,vod,cce\")\n            .usersPublishAllowed(\"urn:csp:iam::0970d7b7d400f2470fbec00316a03560:root,urn:csp:iam::0970d7b7d400f2470fbec00316a03561:root\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  topic1:\n    type: flexibleengine:SmnTopicV2\n    properties:\n      displayName: The display name of topic_1\n      introduction: created by terraform\n      servicesPublishAllowed: obs,vod,cce\n      usersPublishAllowed: urn:csp:iam::0970d7b7d400f2470fbec00316a03560:root,urn:csp:iam::0970d7b7d400f2470fbec00316a03561:root\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSMN topic can be imported using the `id` (topic urn), e.g.\n\nbash\n\n```sh\n$ pulumi import flexibleengine:index/smnTopicV2:SmnTopicV2 topic_1 urn:smn:eu-west-0:0970dd7a1300f5672ff2c003c60ae115:topic_1\n```\n\n",
      "properties": {
        "accessPolicy": {
          "type": "string",
          "description": "schema: Internal\n"
        },
        "createTime": {
          "type": "string",
          "description": "Time when the topic was created.\n"
        },
        "displayName": {
          "type": "string",
          "description": "Specifies the topic display name, which is presented as the name of the email\nsender in an email message. The name can contain of 0 to 192 characters.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the SMN Topic, Value 0\nindicates the default enterprise project. Changing this parameter will create a new resource.\n"
        },
        "introduction": {
          "type": "string",
          "description": "Specifies the introduction of the topic,\nthis will be contained in the subscription invitation.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the topic to be created. The name can contains of 1 to 255\ncharacters and must start with a letter or digit, and can only contain letters, digits, underscores (_), and hyphens (-).\nChanging this parameter will create a new resource.\n"
        },
        "pushPolicy": {
          "type": "number",
          "description": "Message pushing policy.\n+ **0**: indicates that the message sending fails and the message is cached in the queue.\n+ **1**: indicates that the failed message is discarded.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the SMN topic resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "servicesPublishAllowed": {
          "type": "string",
          "description": "Specifies the services that can publish messages to this topic\nseparated by comma(,). If left empty, that means no service allowed.\n"
        },
        "smnTopicV2Id": {
          "type": "string",
          "description": "The resource ID. The value is the topic urn.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "topicUrn": {
          "type": "string",
          "description": "Resource identifier of a topic, which is unique.\n"
        },
        "updateTime": {
          "type": "string",
          "description": "Time when the topic was updated.\n"
        },
        "usersPublishAllowed": {
          "type": "string",
          "description": "Specifies the users who can publish messages to this topic.\nThe value can be **\\*** which indicates all users or user account URNs separated by comma(,). The format of\nuser account URN is **urn:csp:iam::domainId:root**. **domainId** indicates the account ID of another user.\nIf left empty, that means only the topic creator can publish messages.\n"
        }
      },
      "type": "object",
      "required": [
        "createTime",
        "enterpriseProjectId",
        "name",
        "pushPolicy",
        "region",
        "smnTopicV2Id",
        "topicUrn",
        "updateTime"
      ],
      "inputProperties": {
        "accessPolicy": {
          "type": "string",
          "description": "schema: Internal\n"
        },
        "displayName": {
          "type": "string",
          "description": "Specifies the topic display name, which is presented as the name of the email\nsender in an email message. The name can contain of 0 to 192 characters.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "Specifies the enterprise project id of the SMN Topic, Value 0\nindicates the default enterprise project. Changing this parameter will create a new resource.\n"
        },
        "introduction": {
          "type": "string",
          "description": "Specifies the introduction of the topic,\nthis will be contained in the subscription invitation.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the topic to be created. The name can contains of 1 to 255\ncharacters and must start with a letter or digit, and can only contain letters, digits, underscores (_), and hyphens (-).\nChanging this parameter will create a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the SMN topic resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "servicesPublishAllowed": {
          "type": "string",
          "description": "Specifies the services that can publish messages to this topic\nseparated by comma(,). If left empty, that means no service allowed.\n"
        },
        "smnTopicV2Id": {
          "type": "string",
          "description": "The resource ID. The value is the topic urn.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "usersPublishAllowed": {
          "type": "string",
          "description": "Specifies the users who can publish messages to this topic.\nThe value can be **\\*** which indicates all users or user account URNs separated by comma(,). The format of\nuser account URN is **urn:csp:iam::domainId:root**. **domainId** indicates the account ID of another user.\nIf left empty, that means only the topic creator can publish messages.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SmnTopicV2 resources.\n",
        "properties": {
          "accessPolicy": {
            "type": "string",
            "description": "schema: Internal\n"
          },
          "createTime": {
            "type": "string",
            "description": "Time when the topic was created.\n"
          },
          "displayName": {
            "type": "string",
            "description": "Specifies the topic display name, which is presented as the name of the email\nsender in an email message. The name can contain of 0 to 192 characters.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id of the SMN Topic, Value 0\nindicates the default enterprise project. Changing this parameter will create a new resource.\n"
          },
          "introduction": {
            "type": "string",
            "description": "Specifies the introduction of the topic,\nthis will be contained in the subscription invitation.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the topic to be created. The name can contains of 1 to 255\ncharacters and must start with a letter or digit, and can only contain letters, digits, underscores (_), and hyphens (-).\nChanging this parameter will create a new resource.\n"
          },
          "pushPolicy": {
            "type": "number",
            "description": "Message pushing policy.\n+ **0**: indicates that the message sending fails and the message is cached in the queue.\n+ **1**: indicates that the failed message is discarded.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the SMN topic resource. If omitted, the\nprovider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "servicesPublishAllowed": {
            "type": "string",
            "description": "Specifies the services that can publish messages to this topic\nseparated by comma(,). If left empty, that means no service allowed.\n"
          },
          "smnTopicV2Id": {
            "type": "string",
            "description": "The resource ID. The value is the topic urn.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "topicUrn": {
            "type": "string",
            "description": "Resource identifier of a topic, which is unique.\n"
          },
          "updateTime": {
            "type": "string",
            "description": "Time when the topic was updated.\n"
          },
          "usersPublishAllowed": {
            "type": "string",
            "description": "Specifies the users who can publish messages to this topic.\nThe value can be **\\*** which indicates all users or user account URNs separated by comma(,). The format of\nuser account URN is **urn:csp:iam::domainId:root**. **domainId** indicates the account ID of another user.\nIf left empty, that means only the topic creator can publish messages.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/smsServerTemplate:SmsServerTemplate": {
      "description": "Manages an SMS server template resource within FlexibleEngine.\n\n## Example Usage\n\n### A template will create networks during migration\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst demoAvailabilityZones = flexibleengine.getAvailabilityZones({});\nconst demoSmsServerTemplate = new flexibleengine.SmsServerTemplate(\"demoSmsServerTemplate\", {availabilityZone: demoAvailabilityZones.then(demoAvailabilityZones => demoAvailabilityZones.names?.[0])});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ndemo_availability_zones = flexibleengine.get_availability_zones()\ndemo_sms_server_template = flexibleengine.SmsServerTemplate(\"demoSmsServerTemplate\", availability_zone=demo_availability_zones.names[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var demoAvailabilityZones = Flexibleengine.GetAvailabilityZones.Invoke();\n\n    var demoSmsServerTemplate = new Flexibleengine.SmsServerTemplate(\"demoSmsServerTemplate\", new()\n    {\n        AvailabilityZone = demoAvailabilityZones.Apply(getAvailabilityZonesResult => getAvailabilityZonesResult.Names[0]),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdemoAvailabilityZones, err := flexibleengine.GetAvailabilityZones(ctx, &flexibleengine.GetAvailabilityZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewSmsServerTemplate(ctx, \"demoSmsServerTemplate\", &flexibleengine.SmsServerTemplateArgs{\n\t\t\tAvailabilityZone: pulumi.String(demoAvailabilityZones.Names[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetAvailabilityZonesArgs;\nimport com.pulumi.flexibleengine.SmsServerTemplate;\nimport com.pulumi.flexibleengine.SmsServerTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var demoAvailabilityZones = FlexibleengineFunctions.getAvailabilityZones();\n\n        var demoSmsServerTemplate = new SmsServerTemplate(\"demoSmsServerTemplate\", SmsServerTemplateArgs.builder()\n            .availabilityZone(demoAvailabilityZones.applyValue(getAvailabilityZonesResult -> getAvailabilityZonesResult.names()[0]))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  demoSmsServerTemplate:\n    type: flexibleengine:SmsServerTemplate\n    properties:\n      availabilityZone: ${demoAvailabilityZones.names[0]}\nvariables:\n  demoAvailabilityZones:\n    fn::invoke:\n      function: flexibleengine:getAvailabilityZones\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n\n### A template will use the existing networks during migration\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject(\"vpcId\");\nconst subentId = config.requireObject(\"subentId\");\nconst secgroupId = config.requireObject(\"secgroupId\");\nconst demoAvailabilityZones = flexibleengine.getAvailabilityZones({});\nconst demoSmsServerTemplate = new flexibleengine.SmsServerTemplate(\"demoSmsServerTemplate\", {\n    availabilityZone: demoAvailabilityZones.then(demoAvailabilityZones => demoAvailabilityZones.names?.[0]),\n    vpcId: vpcId,\n    subnetIds: [subentId],\n    securityGroupIds: [secgroupId],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nsubent_id = config.require_object(\"subentId\")\nsecgroup_id = config.require_object(\"secgroupId\")\ndemo_availability_zones = flexibleengine.get_availability_zones()\ndemo_sms_server_template = flexibleengine.SmsServerTemplate(\"demoSmsServerTemplate\",\n    availability_zone=demo_availability_zones.names[0],\n    vpc_id=vpc_id,\n    subnet_ids=[subent_id],\n    security_group_ids=[secgroup_id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subentId = config.RequireObject<dynamic>(\"subentId\");\n    var secgroupId = config.RequireObject<dynamic>(\"secgroupId\");\n    var demoAvailabilityZones = Flexibleengine.GetAvailabilityZones.Invoke();\n\n    var demoSmsServerTemplate = new Flexibleengine.SmsServerTemplate(\"demoSmsServerTemplate\", new()\n    {\n        AvailabilityZone = demoAvailabilityZones.Apply(getAvailabilityZonesResult => getAvailabilityZonesResult.Names[0]),\n        VpcId = vpcId,\n        SubnetIds = new[]\n        {\n            subentId,\n        },\n        SecurityGroupIds = new[]\n        {\n            secgroupId,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubentId := cfg.RequireObject(\"subentId\")\n\t\tsecgroupId := cfg.RequireObject(\"secgroupId\")\n\t\tdemoAvailabilityZones, err := flexibleengine.GetAvailabilityZones(ctx, &flexibleengine.GetAvailabilityZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewSmsServerTemplate(ctx, \"demoSmsServerTemplate\", &flexibleengine.SmsServerTemplateArgs{\n\t\t\tAvailabilityZone: pulumi.String(demoAvailabilityZones.Names[0]),\n\t\t\tVpcId:            pulumi.Any(vpcId),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tsubentId,\n\t\t\t},\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tsecgroupId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetAvailabilityZonesArgs;\nimport com.pulumi.flexibleengine.SmsServerTemplate;\nimport com.pulumi.flexibleengine.SmsServerTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var subentId = config.get(\"subentId\");\n        final var secgroupId = config.get(\"secgroupId\");\n        final var demoAvailabilityZones = FlexibleengineFunctions.getAvailabilityZones();\n\n        var demoSmsServerTemplate = new SmsServerTemplate(\"demoSmsServerTemplate\", SmsServerTemplateArgs.builder()\n            .availabilityZone(demoAvailabilityZones.applyValue(getAvailabilityZonesResult -> getAvailabilityZonesResult.names()[0]))\n            .vpcId(vpcId)\n            .subnetIds(subentId)\n            .securityGroupIds(secgroupId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\n  subentId:\n    type: dynamic\n  secgroupId:\n    type: dynamic\nresources:\n  demoSmsServerTemplate:\n    type: flexibleengine:SmsServerTemplate\n    properties:\n      availabilityZone: ${demoAvailabilityZones.names[0]}\n      vpcId: ${vpcId}\n      subnetIds:\n        - ${subentId}\n      securityGroupIds:\n        - ${secgroupId}\nvariables:\n  demoAvailabilityZones:\n    fn::invoke:\n      function: flexibleengine:getAvailabilityZones\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSMS server templates can be imported by `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/smsServerTemplate:SmsServerTemplate demo 4618ccaf-b4d7-43b9-b958-3df3b885126d\n```\n\n",
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the availability zone where the target server is located.\n"
        },
        "bandwidthSize": {
          "type": "number",
          "description": "Specifies the bandwidth size in Mbit/s about the public IP address\nthat will be used for migration.\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the flavor ID for the target server.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the server template name.\n"
        },
        "projectId": {
          "type": "string",
          "description": "Specifies the project ID where the target server is located.\nIf omitted, the default project in the region will be used.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the target server is located.\nIf omitted, the provider-level region will be used.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of one or more security group IDs to associate with\nthe target server. If omitted or set to [\"autoCreate\"], a new security group will be created automatically during migration.\n"
        },
        "smsServerTemplateId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "subnetIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of one or more VPC subnet IDs to attach to the target server.\nIf omitted or set to [\"autoCreate\"], a new subnet will be created automatically during migration.\n"
        },
        "targetServerName": {
          "type": "string",
          "description": "Specifies the name of the target server. Defaults to the template name.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSmsServerTemplateTimeouts:SmsServerTemplateTimeouts"
        },
        "volumeType": {
          "type": "string",
          "description": "Specifies the disk type of the target server. Available values are: **SAS**, **SSD**,\n**GPSSD** and **ESSD**, defaults to **SAS**.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC which the target server belongs to.\nIf omitted or set to \"autoCreate\", a new VPC will be created automatically during migration.\n"
        },
        "vpcName": {
          "type": "string",
          "description": "The name of the VPC which the target server belongs to.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "name",
        "projectId",
        "region",
        "securityGroupIds",
        "smsServerTemplateId",
        "subnetIds",
        "targetServerName",
        "vpcId",
        "vpcName"
      ],
      "inputProperties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the availability zone where the target server is located.\n"
        },
        "bandwidthSize": {
          "type": "number",
          "description": "Specifies the bandwidth size in Mbit/s about the public IP address\nthat will be used for migration.\n"
        },
        "flavor": {
          "type": "string",
          "description": "Specifies the flavor ID for the target server.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the server template name.\n"
        },
        "projectId": {
          "type": "string",
          "description": "Specifies the project ID where the target server is located.\nIf omitted, the default project in the region will be used.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the target server is located.\nIf omitted, the provider-level region will be used.\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of one or more security group IDs to associate with\nthe target server. If omitted or set to [\"autoCreate\"], a new security group will be created automatically during migration.\n"
        },
        "smsServerTemplateId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "subnetIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of one or more VPC subnet IDs to attach to the target server.\nIf omitted or set to [\"autoCreate\"], a new subnet will be created automatically during migration.\n"
        },
        "targetServerName": {
          "type": "string",
          "description": "Specifies the name of the target server. Defaults to the template name.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSmsServerTemplateTimeouts:SmsServerTemplateTimeouts"
        },
        "volumeType": {
          "type": "string",
          "description": "Specifies the disk type of the target server. Available values are: **SAS**, **SSD**,\n**GPSSD** and **ESSD**, defaults to **SAS**.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC which the target server belongs to.\nIf omitted or set to \"autoCreate\", a new VPC will be created automatically during migration.\n"
        }
      },
      "requiredInputs": [
        "availabilityZone"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SmsServerTemplate resources.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the availability zone where the target server is located.\n"
          },
          "bandwidthSize": {
            "type": "number",
            "description": "Specifies the bandwidth size in Mbit/s about the public IP address\nthat will be used for migration.\n"
          },
          "flavor": {
            "type": "string",
            "description": "Specifies the flavor ID for the target server.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the server template name.\n"
          },
          "projectId": {
            "type": "string",
            "description": "Specifies the project ID where the target server is located.\nIf omitted, the default project in the region will be used.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the target server is located.\nIf omitted, the provider-level region will be used.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies an array of one or more security group IDs to associate with\nthe target server. If omitted or set to [\"autoCreate\"], a new security group will be created automatically during migration.\n"
          },
          "smsServerTemplateId": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "subnetIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies an array of one or more VPC subnet IDs to attach to the target server.\nIf omitted or set to [\"autoCreate\"], a new subnet will be created automatically during migration.\n"
          },
          "targetServerName": {
            "type": "string",
            "description": "Specifies the name of the target server. Defaults to the template name.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSmsServerTemplateTimeouts:SmsServerTemplateTimeouts"
          },
          "volumeType": {
            "type": "string",
            "description": "Specifies the disk type of the target server. Available values are: **SAS**, **SSD**,\n**GPSSD** and **ESSD**, defaults to **SAS**.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of the VPC which the target server belongs to.\nIf omitted or set to \"autoCreate\", a new VPC will be created automatically during migration.\n"
          },
          "vpcName": {
            "type": "string",
            "description": "The name of the VPC which the target server belongs to.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/smsTask:SmsTask": {
      "description": "Manages an SMS migration task resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst sourceServer = config.requireObject(\"sourceServer\");\nconst templateId = config.requireObject(\"templateId\");\nconst migration = new flexibleengine.SmsTask(\"migration\", {\n    type: \"MIGRATE_FILE\",\n    osType: \"LINUX\",\n    sourceServerId: sourceServer,\n    vmTemplateId: templateId,\n    action: \"start\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nsource_server = config.require_object(\"sourceServer\")\ntemplate_id = config.require_object(\"templateId\")\nmigration = flexibleengine.SmsTask(\"migration\",\n    type=\"MIGRATE_FILE\",\n    os_type=\"LINUX\",\n    source_server_id=source_server,\n    vm_template_id=template_id,\n    action=\"start\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var sourceServer = config.RequireObject<dynamic>(\"sourceServer\");\n    var templateId = config.RequireObject<dynamic>(\"templateId\");\n    var migration = new Flexibleengine.SmsTask(\"migration\", new()\n    {\n        Type = \"MIGRATE_FILE\",\n        OsType = \"LINUX\",\n        SourceServerId = sourceServer,\n        VmTemplateId = templateId,\n        Action = \"start\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsourceServer := cfg.RequireObject(\"sourceServer\")\n\t\ttemplateId := cfg.RequireObject(\"templateId\")\n\t\t_, err := flexibleengine.NewSmsTask(ctx, \"migration\", &flexibleengine.SmsTaskArgs{\n\t\t\tType:           pulumi.String(\"MIGRATE_FILE\"),\n\t\t\tOsType:         pulumi.String(\"LINUX\"),\n\t\t\tSourceServerId: pulumi.Any(sourceServer),\n\t\t\tVmTemplateId:   pulumi.Any(templateId),\n\t\t\tAction:         pulumi.String(\"start\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.SmsTask;\nimport com.pulumi.flexibleengine.SmsTaskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sourceServer = config.get(\"sourceServer\");\n        final var templateId = config.get(\"templateId\");\n        var migration = new SmsTask(\"migration\", SmsTaskArgs.builder()\n            .type(\"MIGRATE_FILE\")\n            .osType(\"LINUX\")\n            .sourceServerId(sourceServer)\n            .vmTemplateId(templateId)\n            .action(\"start\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sourceServer:\n    type: dynamic\n  templateId:\n    type: dynamic\nresources:\n  migration:\n    type: flexibleengine:SmsTask\n    properties:\n      type: MIGRATE_FILE\n      osType: LINUX\n      sourceServerId: ${sourceServer}\n      vmTemplateId: ${templateId}\n      action: start\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSMS migration tasks can be imported by `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/smsTask:SmsTask demo 6402c49b-7d9a-413e-8b5f-a7307f7d5679\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response. The missing attributes include: `use_public_ip`, `syncing` and `action`.\n\nIt is generally recommended running `pulumi preview` after importing a migration task.\n\nYou can then decide if changes should be applied to the task, or the resource definition should be\n\nupdated to align with the task. Also you can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_sms_task\" \"demo\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      use_public_ip, syncing, action,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "action": {
          "type": "string",
          "description": "Specifies the operation after the task is created.\nThe value can be **start**, **stop** and **restart**.\n"
        },
        "enterpriseProjectId": {
          "type": "string",
          "description": "The enterprise project id of the target server.\n"
        },
        "migrateSpeed": {
          "type": "number",
          "description": "The migration rate, in MB/s.\n"
        },
        "migrationIp": {
          "type": "string",
          "description": "Specifies the IP address of the target server.\nUse the EIP of the target server if the migration network type is Internet.\nUse the private IP address of the target server if the migration network type is Direct Connect or VPN.\nChanging this parameter will create a new resource.\n"
        },
        "osType": {
          "type": "string",
          "description": "Specifies the OS type of the source server. The value can be **WINDOWS** and **LINUX**.\nChanging this parameter will create a new resource.\n"
        },
        "projectId": {
          "type": "string",
          "description": "Specifies the project ID where the target server is located.\nIf omitted, the default project in the region will be used. Changing this parameter will create a new resource.\n\n<a name=\"target_server_disks_object\"></a>\nThe `target_server_disks` block supports:\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the target server is located.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "smsTaskId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "sourceServerId": {
          "type": "string",
          "description": "Specifies the ID of the source server.\nChanging this parameter will create a new resource.\n"
        },
        "startTargetServer": {
          "type": "boolean",
          "description": "Specifies whether to start the target server after the migration.\nThe default value is `true`. Changing this parameter will create a new resource.\n"
        },
        "state": {
          "type": "string",
          "description": "The status of the migration task.\n"
        },
        "syncing": {
          "type": "boolean",
          "description": "Specifies whether to perform a continuous synchronization after the first replication.\nThe default value is `false`. Changing this parameter will create a new resource.\n"
        },
        "targetServerDisks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FSmsTaskTargetServerDisk:SmsTaskTargetServerDisk"
          },
          "description": "Specifies the disk configurations of the target server.\nIf omitted, it will be obtained from the source server. The object\nis documented below. Changing this parameter will create a new resource.\n"
        },
        "targetServerId": {
          "type": "string",
          "description": "Specifies the existing server ID as the target server.\nThis parameter and `vm_template_id` are alternative. Changing this parameter will create a new resource.\n"
        },
        "targetServerName": {
          "type": "string",
          "description": "The name of the target server.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSmsTaskTimeouts:SmsTaskTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the migration task. Available values are\n**MIGRATE_FILE**(file-level migration) and **MIGRATE_BLOCK**(block-level migration).\nChanging this parameter will create a new resource.\n\n+ For Linux servers, SMS supports block-level and file-level migrations. Block-level migration has\nhigh efficiency but poor compatibility while file-level migration has low efficiency but excellent compatibility.\n+ For Windows servers, SMS only supports highly efficient block-level migration.\n"
        },
        "usePublicIp": {
          "type": "boolean",
          "description": "Specifies whether to use a public IP address for migration.\nThe default value is `true`. Changing this parameter will create a new resource.\n"
        },
        "vmTemplateId": {
          "type": "string",
          "description": "Specifies the template used to create the target server automatically.\nThis parameter and `target_server_id` are alternative. Changing this parameter will create a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "enterpriseProjectId",
        "migrateSpeed",
        "osType",
        "projectId",
        "region",
        "smsTaskId",
        "sourceServerId",
        "state",
        "targetServerId",
        "targetServerName",
        "type"
      ],
      "inputProperties": {
        "action": {
          "type": "string",
          "description": "Specifies the operation after the task is created.\nThe value can be **start**, **stop** and **restart**.\n"
        },
        "migrationIp": {
          "type": "string",
          "description": "Specifies the IP address of the target server.\nUse the EIP of the target server if the migration network type is Internet.\nUse the private IP address of the target server if the migration network type is Direct Connect or VPN.\nChanging this parameter will create a new resource.\n"
        },
        "osType": {
          "type": "string",
          "description": "Specifies the OS type of the source server. The value can be **WINDOWS** and **LINUX**.\nChanging this parameter will create a new resource.\n"
        },
        "projectId": {
          "type": "string",
          "description": "Specifies the project ID where the target server is located.\nIf omitted, the default project in the region will be used. Changing this parameter will create a new resource.\n\n<a name=\"target_server_disks_object\"></a>\nThe `target_server_disks` block supports:\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region where the target server is located.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
        },
        "smsTaskId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        },
        "sourceServerId": {
          "type": "string",
          "description": "Specifies the ID of the source server.\nChanging this parameter will create a new resource.\n"
        },
        "startTargetServer": {
          "type": "boolean",
          "description": "Specifies whether to start the target server after the migration.\nThe default value is `true`. Changing this parameter will create a new resource.\n"
        },
        "syncing": {
          "type": "boolean",
          "description": "Specifies whether to perform a continuous synchronization after the first replication.\nThe default value is `false`. Changing this parameter will create a new resource.\n"
        },
        "targetServerDisks": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FSmsTaskTargetServerDisk:SmsTaskTargetServerDisk"
          },
          "description": "Specifies the disk configurations of the target server.\nIf omitted, it will be obtained from the source server. The object\nis documented below. Changing this parameter will create a new resource.\n"
        },
        "targetServerId": {
          "type": "string",
          "description": "Specifies the existing server ID as the target server.\nThis parameter and `vm_template_id` are alternative. Changing this parameter will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSmsTaskTimeouts:SmsTaskTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the migration task. Available values are\n**MIGRATE_FILE**(file-level migration) and **MIGRATE_BLOCK**(block-level migration).\nChanging this parameter will create a new resource.\n\n+ For Linux servers, SMS supports block-level and file-level migrations. Block-level migration has\nhigh efficiency but poor compatibility while file-level migration has low efficiency but excellent compatibility.\n+ For Windows servers, SMS only supports highly efficient block-level migration.\n"
        },
        "usePublicIp": {
          "type": "boolean",
          "description": "Specifies whether to use a public IP address for migration.\nThe default value is `true`. Changing this parameter will create a new resource.\n"
        },
        "vmTemplateId": {
          "type": "string",
          "description": "Specifies the template used to create the target server automatically.\nThis parameter and `target_server_id` are alternative. Changing this parameter will create a new resource.\n"
        }
      },
      "requiredInputs": [
        "osType",
        "sourceServerId",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SmsTask resources.\n",
        "properties": {
          "action": {
            "type": "string",
            "description": "Specifies the operation after the task is created.\nThe value can be **start**, **stop** and **restart**.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "The enterprise project id of the target server.\n"
          },
          "migrateSpeed": {
            "type": "number",
            "description": "The migration rate, in MB/s.\n"
          },
          "migrationIp": {
            "type": "string",
            "description": "Specifies the IP address of the target server.\nUse the EIP of the target server if the migration network type is Internet.\nUse the private IP address of the target server if the migration network type is Direct Connect or VPN.\nChanging this parameter will create a new resource.\n"
          },
          "osType": {
            "type": "string",
            "description": "Specifies the OS type of the source server. The value can be **WINDOWS** and **LINUX**.\nChanging this parameter will create a new resource.\n"
          },
          "projectId": {
            "type": "string",
            "description": "Specifies the project ID where the target server is located.\nIf omitted, the default project in the region will be used. Changing this parameter will create a new resource.\n\n<a name=\"target_server_disks_object\"></a>\nThe `target_server_disks` block supports:\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region where the target server is located.\nIf omitted, the provider-level region will be used. Changing this parameter will create a new resource.\n"
          },
          "smsTaskId": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          },
          "sourceServerId": {
            "type": "string",
            "description": "Specifies the ID of the source server.\nChanging this parameter will create a new resource.\n"
          },
          "startTargetServer": {
            "type": "boolean",
            "description": "Specifies whether to start the target server after the migration.\nThe default value is `true`. Changing this parameter will create a new resource.\n"
          },
          "state": {
            "type": "string",
            "description": "The status of the migration task.\n"
          },
          "syncing": {
            "type": "boolean",
            "description": "Specifies whether to perform a continuous synchronization after the first replication.\nThe default value is `false`. Changing this parameter will create a new resource.\n"
          },
          "targetServerDisks": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FSmsTaskTargetServerDisk:SmsTaskTargetServerDisk"
            },
            "description": "Specifies the disk configurations of the target server.\nIf omitted, it will be obtained from the source server. The object\nis documented below. Changing this parameter will create a new resource.\n"
          },
          "targetServerId": {
            "type": "string",
            "description": "Specifies the existing server ID as the target server.\nThis parameter and `vm_template_id` are alternative. Changing this parameter will create a new resource.\n"
          },
          "targetServerName": {
            "type": "string",
            "description": "The name of the target server.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSmsTaskTimeouts:SmsTaskTimeouts"
          },
          "type": {
            "type": "string",
            "description": "Specifies the type of the migration task. Available values are\n**MIGRATE_FILE**(file-level migration) and **MIGRATE_BLOCK**(block-level migration).\nChanging this parameter will create a new resource.\n\n+ For Linux servers, SMS supports block-level and file-level migrations. Block-level migration has\nhigh efficiency but poor compatibility while file-level migration has low efficiency but excellent compatibility.\n+ For Windows servers, SMS only supports highly efficient block-level migration.\n"
          },
          "usePublicIp": {
            "type": "boolean",
            "description": "Specifies whether to use a public IP address for migration.\nThe default value is `true`. Changing this parameter will create a new resource.\n"
          },
          "vmTemplateId": {
            "type": "string",
            "description": "Specifies the template used to create the target server automatically.\nThis parameter and `target_server_id` are alternative. Changing this parameter will create a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/swrOrganization:SwrOrganization": {
      "description": "Manages an SWR organization resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = new flexibleengine.SwrOrganization(\"test\", {});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.SwrOrganization(\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Flexibleengine.SwrOrganization(\"test\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewSwrOrganization(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.SwrOrganization;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new SwrOrganization(\"test\");\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: flexibleengine:SwrOrganization\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nOrganizations can be imported using the `name`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/swrOrganization:SwrOrganization test org-name\n```\n\n",
      "properties": {
        "creator": {
          "type": "string",
          "description": "The creator username of the organization.\n"
        },
        "loginServer": {
          "type": "string",
          "description": "The URL that can be used to log into the container registry.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the organization. The organization name must be globally\nunique. Changing this creates a new resource.\n"
        },
        "permission": {
          "type": "string",
          "description": "The permission of the organization, the value can be Manage, Write, and Read.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
        },
        "swrOrganizationId": {
          "type": "string",
          "description": "ID of the organization.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSwrOrganizationTimeouts:SwrOrganizationTimeouts"
        }
      },
      "type": "object",
      "required": [
        "creator",
        "loginServer",
        "name",
        "permission",
        "region",
        "swrOrganizationId"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "Specifies the name of the organization. The organization name must be globally\nunique. Changing this creates a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
        },
        "swrOrganizationId": {
          "type": "string",
          "description": "ID of the organization.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSwrOrganizationTimeouts:SwrOrganizationTimeouts"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SwrOrganization resources.\n",
        "properties": {
          "creator": {
            "type": "string",
            "description": "The creator username of the organization.\n"
          },
          "loginServer": {
            "type": "string",
            "description": "The URL that can be used to log into the container registry.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the organization. The organization name must be globally\nunique. Changing this creates a new resource.\n"
          },
          "permission": {
            "type": "string",
            "description": "The permission of the organization, the value can be Manage, Write, and Read.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
          },
          "swrOrganizationId": {
            "type": "string",
            "description": "ID of the organization.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSwrOrganizationTimeouts:SwrOrganizationTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/swrOrganizationUsers:SwrOrganizationUsers": {
      "description": "Manages user permissions for the SWR organization resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst organizationName = config.requireObject(\"organizationName\");\nconst user1 = config.requireObject(\"user1\");\nconst user2 = config.requireObject(\"user2\");\nconst test = new flexibleengine.SwrOrganizationUsers(\"test\", {\n    organization: organizationName,\n    users: [\n        {\n            userName: user1.name,\n            userId: user1.id,\n            permission: \"Read\",\n        },\n        {\n            userName: user2.name,\n            userId: user2.id,\n            permission: \"Read\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\norganization_name = config.require_object(\"organizationName\")\nuser1 = config.require_object(\"user1\")\nuser2 = config.require_object(\"user2\")\ntest = flexibleengine.SwrOrganizationUsers(\"test\",\n    organization=organization_name,\n    users=[\n        {\n            \"user_name\": user1[\"name\"],\n            \"user_id\": user1[\"id\"],\n            \"permission\": \"Read\",\n        },\n        {\n            \"user_name\": user2[\"name\"],\n            \"user_id\": user2[\"id\"],\n            \"permission\": \"Read\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var organizationName = config.RequireObject<dynamic>(\"organizationName\");\n    var user1 = config.RequireObject<dynamic>(\"user1\");\n    var user2 = config.RequireObject<dynamic>(\"user2\");\n    var test = new Flexibleengine.SwrOrganizationUsers(\"test\", new()\n    {\n        Organization = organizationName,\n        Users = new[]\n        {\n            new Flexibleengine.Inputs.SwrOrganizationUsersUserArgs\n            {\n                UserName = user1.Name,\n                UserId = user1.Id,\n                Permission = \"Read\",\n            },\n            new Flexibleengine.Inputs.SwrOrganizationUsersUserArgs\n            {\n                UserName = user2.Name,\n                UserId = user2.Id,\n                Permission = \"Read\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\torganizationName := cfg.RequireObject(\"organizationName\")\n\t\tuser1 := cfg.RequireObject(\"user1\")\n\t\tuser2 := cfg.RequireObject(\"user2\")\n\t\t_, err := flexibleengine.NewSwrOrganizationUsers(ctx, \"test\", &flexibleengine.SwrOrganizationUsersArgs{\n\t\t\tOrganization: pulumi.Any(organizationName),\n\t\t\tUsers: flexibleengine.SwrOrganizationUsersUserArray{\n\t\t\t\t&flexibleengine.SwrOrganizationUsersUserArgs{\n\t\t\t\t\tUserName:   pulumi.Any(user1.Name),\n\t\t\t\t\tUserId:     pulumi.Any(user1.Id),\n\t\t\t\t\tPermission: pulumi.String(\"Read\"),\n\t\t\t\t},\n\t\t\t\t&flexibleengine.SwrOrganizationUsersUserArgs{\n\t\t\t\t\tUserName:   pulumi.Any(user2.Name),\n\t\t\t\t\tUserId:     pulumi.Any(user2.Id),\n\t\t\t\t\tPermission: pulumi.String(\"Read\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.SwrOrganizationUsers;\nimport com.pulumi.flexibleengine.SwrOrganizationUsersArgs;\nimport com.pulumi.flexibleengine.inputs.SwrOrganizationUsersUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var organizationName = config.get(\"organizationName\");\n        final var user1 = config.get(\"user1\");\n        final var user2 = config.get(\"user2\");\n        var test = new SwrOrganizationUsers(\"test\", SwrOrganizationUsersArgs.builder()\n            .organization(organizationName)\n            .users(            \n                SwrOrganizationUsersUserArgs.builder()\n                    .userName(user1.name())\n                    .userId(user1.id())\n                    .permission(\"Read\")\n                    .build(),\n                SwrOrganizationUsersUserArgs.builder()\n                    .userName(user2.name())\n                    .userId(user2.id())\n                    .permission(\"Read\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  organizationName:\n    type: dynamic\n  user1:\n    type: dynamic\n  user2:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:SwrOrganizationUsers\n    properties:\n      organization: ${organizationName}\n      users:\n        - userName: ${user1.name}\n          userId: ${user1.id}\n          permission: Read\n        - userName: ${user2.name}\n          userId: ${user2.id}\n          permission: Read\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nOrganization Permissions can be imported using the `id` (organization name), e.g.\n\n```sh\n$ pulumi import flexibleengine:index/swrOrganizationUsers:SwrOrganizationUsers test org-test\n```\n\n",
      "properties": {
        "creator": {
          "type": "string",
          "description": "The creator username of the organization.\n"
        },
        "organization": {
          "type": "string",
          "description": "Specifies the name of the organization (namespace) to be accessed.\nChanging this creates a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
        },
        "selfPermissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FSwrOrganizationUsersSelfPermission:SwrOrganizationUsersSelfPermission"
          },
          "description": "The permission information of current user. The self_permission object\nstructure is documented below.\n"
        },
        "swrOrganizationUsersId": {
          "type": "string",
          "description": "ID of the resource. The value is the name of the organization.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSwrOrganizationUsersTimeouts:SwrOrganizationUsersTimeouts"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FSwrOrganizationUsersUser:SwrOrganizationUsersUser"
          },
          "description": "Specifies the users to access to the organization (namespace).\nThe users object structure is documented below.\n\n<a name=\"swr_users\"></a>\nThe `users` block supports:\n"
        }
      },
      "type": "object",
      "required": [
        "creator",
        "organization",
        "region",
        "selfPermissions",
        "swrOrganizationUsersId",
        "users"
      ],
      "inputProperties": {
        "organization": {
          "type": "string",
          "description": "Specifies the name of the organization (namespace) to be accessed.\nChanging this creates a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
        },
        "swrOrganizationUsersId": {
          "type": "string",
          "description": "ID of the resource. The value is the name of the organization.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSwrOrganizationUsersTimeouts:SwrOrganizationUsersTimeouts"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FSwrOrganizationUsersUser:SwrOrganizationUsersUser"
          },
          "description": "Specifies the users to access to the organization (namespace).\nThe users object structure is documented below.\n\n<a name=\"swr_users\"></a>\nThe `users` block supports:\n"
        }
      },
      "requiredInputs": [
        "organization",
        "users"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SwrOrganizationUsers resources.\n",
        "properties": {
          "creator": {
            "type": "string",
            "description": "The creator username of the organization.\n"
          },
          "organization": {
            "type": "string",
            "description": "Specifies the name of the organization (namespace) to be accessed.\nChanging this creates a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
          },
          "selfPermissions": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FSwrOrganizationUsersSelfPermission:SwrOrganizationUsersSelfPermission"
            },
            "description": "The permission information of current user. The self_permission object\nstructure is documented below.\n"
          },
          "swrOrganizationUsersId": {
            "type": "string",
            "description": "ID of the resource. The value is the name of the organization.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSwrOrganizationUsersTimeouts:SwrOrganizationUsersTimeouts"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FSwrOrganizationUsersUser:SwrOrganizationUsersUser"
            },
            "description": "Specifies the users to access to the organization (namespace).\nThe users object structure is documented below.\n\n<a name=\"swr_users\"></a>\nThe `users` block supports:\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/swrRepository:SwrRepository": {
      "description": "Manages an SWR repository resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst organizationName = config.requireObject(\"organizationName\");\nconst test = new flexibleengine.SwrRepository(\"test\", {\n    organization: organizationName,\n    description: \"Test repository\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\norganization_name = config.require_object(\"organizationName\")\ntest = flexibleengine.SwrRepository(\"test\",\n    organization=organization_name,\n    description=\"Test repository\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var organizationName = config.RequireObject<dynamic>(\"organizationName\");\n    var test = new Flexibleengine.SwrRepository(\"test\", new()\n    {\n        Organization = organizationName,\n        Description = \"Test repository\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\torganizationName := cfg.RequireObject(\"organizationName\")\n\t\t_, err := flexibleengine.NewSwrRepository(ctx, \"test\", &flexibleengine.SwrRepositoryArgs{\n\t\t\tOrganization: pulumi.Any(organizationName),\n\t\t\tDescription:  pulumi.String(\"Test repository\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.SwrRepository;\nimport com.pulumi.flexibleengine.SwrRepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var organizationName = config.get(\"organizationName\");\n        var test = new SwrRepository(\"test\", SwrRepositoryArgs.builder()\n            .organization(organizationName)\n            .description(\"Test repository\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  organizationName:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:SwrRepository\n    properties:\n      organization: ${organizationName}\n      description: Test repository\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRepository can be imported using the organization name and repository name separated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/swrRepository:SwrRepository test org-name/repo-name\n```\n\n",
      "properties": {
        "category": {
          "type": "string",
          "description": "Specifies the category of the repository.\nThe value can be `app_server`, `linux`, `framework_app`, `database`, `lang`, `other`, `windows`, `arm`.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the repository.\n"
        },
        "internalPath": {
          "type": "string",
          "description": "Intra-cluster image address for docker pull.\n"
        },
        "isPublic": {
          "type": "boolean",
          "description": "Specifies whether the repository is public. Default is `false`.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the repository. Changing this creates a new resource.\n"
        },
        "numImages": {
          "type": "number",
          "description": "Number of image tags in a repository.\n"
        },
        "organization": {
          "type": "string",
          "description": "Specifies the name of the organization (namespace) the repository belongs.\nChanging this creates a new resource.\n"
        },
        "path": {
          "type": "string",
          "description": "Image address for docker pull.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
        },
        "repositoryId": {
          "type": "number",
          "description": "Numeric ID of the repository\n"
        },
        "size": {
          "type": "number",
          "description": "Repository size.\n"
        },
        "swrRepositoryId": {
          "type": "string",
          "description": "ID of the repository. The value is the name of the repository.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSwrRepositoryTimeouts:SwrRepositoryTimeouts"
        }
      },
      "type": "object",
      "required": [
        "internalPath",
        "name",
        "numImages",
        "organization",
        "path",
        "region",
        "repositoryId",
        "size",
        "swrRepositoryId"
      ],
      "inputProperties": {
        "category": {
          "type": "string",
          "description": "Specifies the category of the repository.\nThe value can be `app_server`, `linux`, `framework_app`, `database`, `lang`, `other`, `windows`, `arm`.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the repository.\n"
        },
        "isPublic": {
          "type": "boolean",
          "description": "Specifies whether the repository is public. Default is `false`.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the repository. Changing this creates a new resource.\n"
        },
        "organization": {
          "type": "string",
          "description": "Specifies the name of the organization (namespace) the repository belongs.\nChanging this creates a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
        },
        "swrRepositoryId": {
          "type": "string",
          "description": "ID of the repository. The value is the name of the repository.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSwrRepositoryTimeouts:SwrRepositoryTimeouts"
        }
      },
      "requiredInputs": [
        "organization"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SwrRepository resources.\n",
        "properties": {
          "category": {
            "type": "string",
            "description": "Specifies the category of the repository.\nThe value can be `app_server`, `linux`, `framework_app`, `database`, `lang`, `other`, `windows`, `arm`.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the repository.\n"
          },
          "internalPath": {
            "type": "string",
            "description": "Intra-cluster image address for docker pull.\n"
          },
          "isPublic": {
            "type": "boolean",
            "description": "Specifies whether the repository is public. Default is `false`.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the repository. Changing this creates a new resource.\n"
          },
          "numImages": {
            "type": "number",
            "description": "Number of image tags in a repository.\n"
          },
          "organization": {
            "type": "string",
            "description": "Specifies the name of the organization (namespace) the repository belongs.\nChanging this creates a new resource.\n"
          },
          "path": {
            "type": "string",
            "description": "Image address for docker pull.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
          },
          "repositoryId": {
            "type": "number",
            "description": "Numeric ID of the repository\n"
          },
          "size": {
            "type": "number",
            "description": "Repository size.\n"
          },
          "swrRepositoryId": {
            "type": "string",
            "description": "ID of the repository. The value is the name of the repository.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSwrRepositoryTimeouts:SwrRepositoryTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/swrRepositorySharing:SwrRepositorySharing": {
      "description": "Manages an SWR repository sharing resource within FlexibleEngine.\n\nYou can share your **private** images with other users, granting them permissions to pull the images.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst organizationName = config.requireObject(\"organizationName\");\nconst repositoryName = config.requireObject(\"repositoryName\");\nconst sharingAccount = config.requireObject(\"sharingAccount\");\nconst test = new flexibleengine.SwrRepositorySharing(\"test\", {\n    organization: organizationName,\n    repository: repositoryName,\n    sharingAccount: sharingAccount,\n    permission: \"pull\",\n    deadline: \"forever\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\norganization_name = config.require_object(\"organizationName\")\nrepository_name = config.require_object(\"repositoryName\")\nsharing_account = config.require_object(\"sharingAccount\")\ntest = flexibleengine.SwrRepositorySharing(\"test\",\n    organization=organization_name,\n    repository=repository_name,\n    sharing_account=sharing_account,\n    permission=\"pull\",\n    deadline=\"forever\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var organizationName = config.RequireObject<dynamic>(\"organizationName\");\n    var repositoryName = config.RequireObject<dynamic>(\"repositoryName\");\n    var sharingAccount = config.RequireObject<dynamic>(\"sharingAccount\");\n    var test = new Flexibleengine.SwrRepositorySharing(\"test\", new()\n    {\n        Organization = organizationName,\n        Repository = repositoryName,\n        SharingAccount = sharingAccount,\n        Permission = \"pull\",\n        Deadline = \"forever\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\torganizationName := cfg.RequireObject(\"organizationName\")\n\t\trepositoryName := cfg.RequireObject(\"repositoryName\")\n\t\tsharingAccount := cfg.RequireObject(\"sharingAccount\")\n\t\t_, err := flexibleengine.NewSwrRepositorySharing(ctx, \"test\", &flexibleengine.SwrRepositorySharingArgs{\n\t\t\tOrganization:   pulumi.Any(organizationName),\n\t\t\tRepository:     pulumi.Any(repositoryName),\n\t\t\tSharingAccount: pulumi.Any(sharingAccount),\n\t\t\tPermission:     pulumi.String(\"pull\"),\n\t\t\tDeadline:       pulumi.String(\"forever\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.SwrRepositorySharing;\nimport com.pulumi.flexibleengine.SwrRepositorySharingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var organizationName = config.get(\"organizationName\");\n        final var repositoryName = config.get(\"repositoryName\");\n        final var sharingAccount = config.get(\"sharingAccount\");\n        var test = new SwrRepositorySharing(\"test\", SwrRepositorySharingArgs.builder()\n            .organization(organizationName)\n            .repository(repositoryName)\n            .sharingAccount(sharingAccount)\n            .permission(\"pull\")\n            .deadline(\"forever\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  organizationName:\n    type: dynamic\n  repositoryName:\n    type: dynamic\n  sharingAccount:\n    type: dynamic\nresources:\n  test:\n    type: flexibleengine:SwrRepositorySharing\n    properties:\n      organization: ${organizationName}\n      repository: ${repositoryName}\n      sharingAccount: ${sharingAccount}\n      permission: pull\n      deadline: forever\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRepository sharing can be imported using the organization name, repository name and sharing account\n\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/swrRepositorySharing:SwrRepositorySharing test org-name/repo-name/sharing-account\n```\n\n",
      "properties": {
        "deadline": {
          "type": "string",
          "description": "Specifies the end date of image sharing (UTC time in YYYY-MM-DD format,\nfor example `2021-10-01`). When the value is set to *forever*, the image will be permanently available for the domain.\nThe validity period is calculated by day. The shared images expire at 00:00:00 on the day after the end date.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the repository sharing.\n"
        },
        "organization": {
          "type": "string",
          "description": "Specifies the name of the organization (namespace) the repository belongs.\nChanging this creates a new resource.\n"
        },
        "permission": {
          "type": "string",
          "description": "Specifies the permission to be granted. Currently, only the **pull** permission is supported.\nDefault value is **pull**.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
        },
        "repository": {
          "type": "string",
          "description": "Specifies the name of the repository to be shared.\nChanging this creates a new resource.\n"
        },
        "sharingAccount": {
          "type": "string",
          "description": "Specifies the name of the account for repository sharing.\nChanging this creates a new resource.\n\n> **NOTE:** `sharing_account` should be an existing IAM account.\n"
        },
        "status": {
          "type": "boolean",
          "description": "Indicates the repository sharing is valid (true) or expired (false).\n"
        },
        "swrRepositorySharingId": {
          "type": "string",
          "description": "ID of the repository sharing. The value is the value of `sharing_account`.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSwrRepositorySharingTimeouts:SwrRepositorySharingTimeouts"
        }
      },
      "type": "object",
      "required": [
        "deadline",
        "organization",
        "region",
        "repository",
        "sharingAccount",
        "status",
        "swrRepositorySharingId"
      ],
      "inputProperties": {
        "deadline": {
          "type": "string",
          "description": "Specifies the end date of image sharing (UTC time in YYYY-MM-DD format,\nfor example `2021-10-01`). When the value is set to *forever*, the image will be permanently available for the domain.\nThe validity period is calculated by day. The shared images expire at 00:00:00 on the day after the end date.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies the description of the repository sharing.\n"
        },
        "organization": {
          "type": "string",
          "description": "Specifies the name of the organization (namespace) the repository belongs.\nChanging this creates a new resource.\n"
        },
        "permission": {
          "type": "string",
          "description": "Specifies the permission to be granted. Currently, only the **pull** permission is supported.\nDefault value is **pull**.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
        },
        "repository": {
          "type": "string",
          "description": "Specifies the name of the repository to be shared.\nChanging this creates a new resource.\n"
        },
        "sharingAccount": {
          "type": "string",
          "description": "Specifies the name of the account for repository sharing.\nChanging this creates a new resource.\n\n> **NOTE:** `sharing_account` should be an existing IAM account.\n"
        },
        "swrRepositorySharingId": {
          "type": "string",
          "description": "ID of the repository sharing. The value is the value of `sharing_account`.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FSwrRepositorySharingTimeouts:SwrRepositorySharingTimeouts"
        }
      },
      "requiredInputs": [
        "deadline",
        "organization",
        "repository",
        "sharingAccount"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SwrRepositorySharing resources.\n",
        "properties": {
          "deadline": {
            "type": "string",
            "description": "Specifies the end date of image sharing (UTC time in YYYY-MM-DD format,\nfor example `2021-10-01`). When the value is set to *forever*, the image will be permanently available for the domain.\nThe validity period is calculated by day. The shared images expire at 00:00:00 on the day after the end date.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies the description of the repository sharing.\n"
          },
          "organization": {
            "type": "string",
            "description": "Specifies the name of the organization (namespace) the repository belongs.\nChanging this creates a new resource.\n"
          },
          "permission": {
            "type": "string",
            "description": "Specifies the permission to be granted. Currently, only the **pull** permission is supported.\nDefault value is **pull**.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the resource. If omitted, the\nprovider-level region will be used. Changing this creates a new resource.\n"
          },
          "repository": {
            "type": "string",
            "description": "Specifies the name of the repository to be shared.\nChanging this creates a new resource.\n"
          },
          "sharingAccount": {
            "type": "string",
            "description": "Specifies the name of the account for repository sharing.\nChanging this creates a new resource.\n\n> **NOTE:** `sharing_account` should be an existing IAM account.\n"
          },
          "status": {
            "type": "boolean",
            "description": "Indicates the repository sharing is valid (true) or expired (false).\n"
          },
          "swrRepositorySharingId": {
            "type": "string",
            "description": "ID of the repository sharing. The value is the value of `sharing_account`.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FSwrRepositorySharingTimeouts:SwrRepositorySharingTimeouts"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/tmsTags:TmsTags": {
      "description": "Manages TMS tags resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = new flexibleengine.TmsTags(\"test\", {tags: [{\n    key: \"foo\",\n    value: \"bar\",\n}]});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.TmsTags(\"test\", tags=[{\n    \"key\": \"foo\",\n    \"value\": \"bar\",\n}])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Flexibleengine.TmsTags(\"test\", new()\n    {\n        Tags = new[]\n        {\n            new Flexibleengine.Inputs.TmsTagsTagArgs\n            {\n                Key = \"foo\",\n                Value = \"bar\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewTmsTags(ctx, \"test\", &flexibleengine.TmsTagsArgs{\n\t\t\tTags: flexibleengine.TmsTagsTagArray{\n\t\t\t\t&flexibleengine.TmsTagsTagArgs{\n\t\t\t\t\tKey:   pulumi.String(\"foo\"),\n\t\t\t\t\tValue: pulumi.String(\"bar\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.TmsTags;\nimport com.pulumi.flexibleengine.TmsTagsArgs;\nimport com.pulumi.flexibleengine.inputs.TmsTagsTagArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new TmsTags(\"test\", TmsTagsArgs.builder()\n            .tags(TmsTagsTagArgs.builder()\n                .key(\"foo\")\n                .value(\"bar\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: flexibleengine:TmsTags\n    properties:\n      tags:\n        - key: foo\n          value: bar\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "tags": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FTmsTagsTag:TmsTagsTag"
          },
          "description": "Specifies an array of one or more predefined tags. The tags object\nstructure is documented below. Changing this will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FTmsTagsTimeouts:TmsTagsTimeouts"
        },
        "tmsTagsId": {
          "type": "string",
          "description": "The resource ID.\n"
        }
      },
      "type": "object",
      "required": [
        "tags",
        "tmsTagsId"
      ],
      "inputProperties": {
        "tags": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FTmsTagsTag:TmsTagsTag"
          },
          "description": "Specifies an array of one or more predefined tags. The tags object\nstructure is documented below. Changing this will create a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FTmsTagsTimeouts:TmsTagsTimeouts"
        },
        "tmsTagsId": {
          "type": "string",
          "description": "The resource ID.\n"
        }
      },
      "requiredInputs": [
        "tags"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TmsTags resources.\n",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FTmsTagsTag:TmsTagsTag"
            },
            "description": "Specifies an array of one or more predefined tags. The tags object\nstructure is documented below. Changing this will create a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FTmsTagsTimeouts:TmsTagsTimeouts"
          },
          "tmsTagsId": {
            "type": "string",
            "description": "The resource ID.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vbsBackupPolicyV2:VbsBackupPolicyV2": {
      "description": "Provides an VBS Backup Policy resource.\n\n## Example Usage\n\n### Basic Backup Policy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst vbsPolicy1 = new flexibleengine.VbsBackupPolicyV2(\"vbsPolicy1\", {\n    frequency: 1,\n    rententionNum: 7,\n    retainFirstBackup: \"N\",\n    startTime: \"12:00\",\n    status: \"ON\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nvbs_policy1 = flexibleengine.VbsBackupPolicyV2(\"vbsPolicy1\",\n    frequency=1,\n    rentention_num=7,\n    retain_first_backup=\"N\",\n    start_time=\"12:00\",\n    status=\"ON\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var vbsPolicy1 = new Flexibleengine.VbsBackupPolicyV2(\"vbsPolicy1\", new()\n    {\n        Frequency = 1,\n        RententionNum = 7,\n        RetainFirstBackup = \"N\",\n        StartTime = \"12:00\",\n        Status = \"ON\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewVbsBackupPolicyV2(ctx, \"vbsPolicy1\", &flexibleengine.VbsBackupPolicyV2Args{\n\t\t\tFrequency:         pulumi.Float64(1),\n\t\t\tRententionNum:     pulumi.Float64(7),\n\t\t\tRetainFirstBackup: pulumi.String(\"N\"),\n\t\t\tStartTime:         pulumi.String(\"12:00\"),\n\t\t\tStatus:            pulumi.String(\"ON\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VbsBackupPolicyV2;\nimport com.pulumi.flexibleengine.VbsBackupPolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vbsPolicy1 = new VbsBackupPolicyV2(\"vbsPolicy1\", VbsBackupPolicyV2Args.builder()\n            .frequency(1)\n            .rententionNum(7)\n            .retainFirstBackup(\"N\")\n            .startTime(\"12:00\")\n            .status(\"ON\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vbsPolicy1:\n    type: flexibleengine:VbsBackupPolicyV2\n    properties:\n      frequency: 1\n      rententionNum: 7\n      retainFirstBackup: N\n      startTime: 12:00\n      status: ON\n```\n<!--End PulumiCodeChooser -->\n\n### Backup Policy with EVS Disks\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst volumeId = config.requireObject(\"volumeId\");\nconst vbsPolicy2 = new flexibleengine.VbsBackupPolicyV2(\"vbsPolicy2\", {\n    status: \"ON\",\n    startTime: \"12:00\",\n    retainFirstBackup: \"N\",\n    rententionNum: 5,\n    frequency: 3,\n    resources: [volumeId],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvolume_id = config.require_object(\"volumeId\")\nvbs_policy2 = flexibleengine.VbsBackupPolicyV2(\"vbsPolicy2\",\n    status=\"ON\",\n    start_time=\"12:00\",\n    retain_first_backup=\"N\",\n    rentention_num=5,\n    frequency=3,\n    resources=[volume_id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var volumeId = config.RequireObject<dynamic>(\"volumeId\");\n    var vbsPolicy2 = new Flexibleengine.VbsBackupPolicyV2(\"vbsPolicy2\", new()\n    {\n        Status = \"ON\",\n        StartTime = \"12:00\",\n        RetainFirstBackup = \"N\",\n        RententionNum = 5,\n        Frequency = 3,\n        Resources = new[]\n        {\n            volumeId,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvolumeId := cfg.RequireObject(\"volumeId\")\n\t\t_, err := flexibleengine.NewVbsBackupPolicyV2(ctx, \"vbsPolicy2\", &flexibleengine.VbsBackupPolicyV2Args{\n\t\t\tStatus:            pulumi.String(\"ON\"),\n\t\t\tStartTime:         pulumi.String(\"12:00\"),\n\t\t\tRetainFirstBackup: pulumi.String(\"N\"),\n\t\t\tRententionNum:     pulumi.Float64(5),\n\t\t\tFrequency:         pulumi.Float64(3),\n\t\t\tResources: pulumi.StringArray{\n\t\t\t\tvolumeId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VbsBackupPolicyV2;\nimport com.pulumi.flexibleengine.VbsBackupPolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var volumeId = config.get(\"volumeId\");\n        var vbsPolicy2 = new VbsBackupPolicyV2(\"vbsPolicy2\", VbsBackupPolicyV2Args.builder()\n            .status(\"ON\")\n            .startTime(\"12:00\")\n            .retainFirstBackup(\"N\")\n            .rententionNum(5)\n            .frequency(3)\n            .resources(volumeId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  volumeId:\n    type: dynamic\nresources:\n  vbsPolicy2:\n    type: flexibleengine:VbsBackupPolicyV2\n    properties:\n      status: ON\n      startTime: 12:00\n      retainFirstBackup: N\n      rententionNum: 5\n      frequency: 3\n      resources:\n        - ${volumeId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nBackup Policy can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/vbsBackupPolicyV2:VbsBackupPolicyV2 vbs 4779ab1c-7c1a-44b1-a02e-93dfc361b32d\n```\n\n",
      "properties": {
        "frequency": {
          "type": "number",
          "description": "Specifies the backup interval. The value is in the range of 1 to 14 days.\nEither this field or `week_frequency` must be specified.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the policy name. The value is a string of 1 to 64 characters that\ncan contain letters, digits, underscores (_), and hyphens (-). It cannot start with **default**.\n"
        },
        "policyResourceCount": {
          "type": "number",
          "description": "Specifies the number of volumes associated with the backup policy.\n"
        },
        "region": {
          "type": "string"
        },
        "rententionDay": {
          "type": "number",
          "description": "Specifies days of retained backups. Minimum value is 2.\nEither this field or `rentention_num` must be specified.\n"
        },
        "rententionNum": {
          "type": "number",
          "description": "Specifies number of retained backups. Minimum value is 2.\nEither this field or `rentention_day` must be specified.\n"
        },
        "resources": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies one or more volumes associated with the backup policy.\nAny previously associated backup policy will no longer apply.\n"
        },
        "retainFirstBackup": {
          "type": "string",
          "description": "Specifies whether to retain the first backup in the current month.\nPossible values are Y or N.\n"
        },
        "startTime": {
          "type": "string",
          "description": "Specifies the start time(UTC) of the backup job. The value is in the\nHH:mm format. You need to set the execution time on a full hour. You can set multiple execution\ntimes, and use commas (,) to separate one time from another.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the backup policy status. Possible values are ON or OFF. Defaults to ON.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVbsBackupPolicyV2Timeouts:VbsBackupPolicyV2Timeouts"
        },
        "vbsBackupPolicyV2Id": {
          "type": "string",
          "description": "Specifies a backup policy ID.\n"
        },
        "weekFrequencies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies on which days of each week backup jobs are executed.\nThe value can be one or more of the following: SUN, MON, TUE, WED, THU, FRI, SAT.\nEither this field or `frequency` must be specified.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "policyResourceCount",
        "region",
        "retainFirstBackup",
        "startTime",
        "vbsBackupPolicyV2Id"
      ],
      "inputProperties": {
        "frequency": {
          "type": "number",
          "description": "Specifies the backup interval. The value is in the range of 1 to 14 days.\nEither this field or `week_frequency` must be specified.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the policy name. The value is a string of 1 to 64 characters that\ncan contain letters, digits, underscores (_), and hyphens (-). It cannot start with **default**.\n"
        },
        "region": {
          "type": "string"
        },
        "rententionDay": {
          "type": "number",
          "description": "Specifies days of retained backups. Minimum value is 2.\nEither this field or `rentention_num` must be specified.\n"
        },
        "rententionNum": {
          "type": "number",
          "description": "Specifies number of retained backups. Minimum value is 2.\nEither this field or `rentention_day` must be specified.\n"
        },
        "resources": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies one or more volumes associated with the backup policy.\nAny previously associated backup policy will no longer apply.\n"
        },
        "retainFirstBackup": {
          "type": "string",
          "description": "Specifies whether to retain the first backup in the current month.\nPossible values are Y or N.\n"
        },
        "startTime": {
          "type": "string",
          "description": "Specifies the start time(UTC) of the backup job. The value is in the\nHH:mm format. You need to set the execution time on a full hour. You can set multiple execution\ntimes, and use commas (,) to separate one time from another.\n"
        },
        "status": {
          "type": "string",
          "description": "Specifies the backup policy status. Possible values are ON or OFF. Defaults to ON.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVbsBackupPolicyV2Timeouts:VbsBackupPolicyV2Timeouts"
        },
        "vbsBackupPolicyV2Id": {
          "type": "string",
          "description": "Specifies a backup policy ID.\n"
        },
        "weekFrequencies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies on which days of each week backup jobs are executed.\nThe value can be one or more of the following: SUN, MON, TUE, WED, THU, FRI, SAT.\nEither this field or `frequency` must be specified.\n"
        }
      },
      "requiredInputs": [
        "retainFirstBackup",
        "startTime"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VbsBackupPolicyV2 resources.\n",
        "properties": {
          "frequency": {
            "type": "number",
            "description": "Specifies the backup interval. The value is in the range of 1 to 14 days.\nEither this field or `week_frequency` must be specified.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the policy name. The value is a string of 1 to 64 characters that\ncan contain letters, digits, underscores (_), and hyphens (-). It cannot start with **default**.\n"
          },
          "policyResourceCount": {
            "type": "number",
            "description": "Specifies the number of volumes associated with the backup policy.\n"
          },
          "region": {
            "type": "string"
          },
          "rententionDay": {
            "type": "number",
            "description": "Specifies days of retained backups. Minimum value is 2.\nEither this field or `rentention_num` must be specified.\n"
          },
          "rententionNum": {
            "type": "number",
            "description": "Specifies number of retained backups. Minimum value is 2.\nEither this field or `rentention_day` must be specified.\n"
          },
          "resources": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies one or more volumes associated with the backup policy.\nAny previously associated backup policy will no longer apply.\n"
          },
          "retainFirstBackup": {
            "type": "string",
            "description": "Specifies whether to retain the first backup in the current month.\nPossible values are Y or N.\n"
          },
          "startTime": {
            "type": "string",
            "description": "Specifies the start time(UTC) of the backup job. The value is in the\nHH:mm format. You need to set the execution time on a full hour. You can set multiple execution\ntimes, and use commas (,) to separate one time from another.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the backup policy status. Possible values are ON or OFF. Defaults to ON.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVbsBackupPolicyV2Timeouts:VbsBackupPolicyV2Timeouts"
          },
          "vbsBackupPolicyV2Id": {
            "type": "string",
            "description": "Specifies a backup policy ID.\n"
          },
          "weekFrequencies": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies on which days of each week backup jobs are executed.\nThe value can be one or more of the following: SUN, MON, TUE, WED, THU, FRI, SAT.\nEither this field or `frequency` must be specified.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vbsBackupV2:VbsBackupV2": {
      "description": "Provides an VBS Backup resource.\n\n## Example Usage\n\n <!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst backupName = config.requireObject(\"backupName\");\nconst volumeId = config.requireObject(\"volumeId\");\nconst mybackup = new flexibleengine.VbsBackupV2(\"mybackup\", {volumeId: volumeId});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nbackup_name = config.require_object(\"backupName\")\nvolume_id = config.require_object(\"volumeId\")\nmybackup = flexibleengine.VbsBackupV2(\"mybackup\", volume_id=volume_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var backupName = config.RequireObject<dynamic>(\"backupName\");\n    var volumeId = config.RequireObject<dynamic>(\"volumeId\");\n    var mybackup = new Flexibleengine.VbsBackupV2(\"mybackup\", new()\n    {\n        VolumeId = volumeId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbackupName := cfg.RequireObject(\"backupName\")\n\t\tvolumeId := cfg.RequireObject(\"volumeId\")\n\t\t_, err := flexibleengine.NewVbsBackupV2(ctx, \"mybackup\", &flexibleengine.VbsBackupV2Args{\n\t\t\tVolumeId: pulumi.Any(volumeId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VbsBackupV2;\nimport com.pulumi.flexibleengine.VbsBackupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var backupName = config.get(\"backupName\");\n        final var volumeId = config.get(\"volumeId\");\n        var mybackup = new VbsBackupV2(\"mybackup\", VbsBackupV2Args.builder()\n            .volumeId(volumeId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  backupName:\n    type: dynamic\n  volumeId:\n    type: dynamic\nresources:\n  mybackup:\n    type: flexibleengine:VbsBackupV2\n    properties:\n      volumeId: ${volumeId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVBS Backup can be imported using the `backup id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/vbsBackupV2:VbsBackupV2 mybackup 4779ab1c-7c1a-44b1-a02e-93dfc361b32d\n```\n\n",
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "The AZ where the backup resides.\n"
        },
        "container": {
          "type": "string",
          "description": "The container of the backup.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the vbs backup. Changing the parameter will create new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the vbs backup. Changing the parameter will create new resource.\n"
        },
        "region": {
          "type": "string"
        },
        "serviceMetadata": {
          "type": "string",
          "description": "The metadata of the vbs backup.\n"
        },
        "size": {
          "type": "number",
          "description": "The size of the vbs backup.\n"
        },
        "snapshotId": {
          "type": "string",
          "description": "The snapshot id of the disk to be backed up. Changing the parameter will create new resource.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the VBS backup.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVbsBackupV2Timeouts:VbsBackupV2Timeouts"
        },
        "vbsBackupV2Id": {
          "type": "string",
          "description": "The id of the vbs backup.\n"
        },
        "volumeId": {
          "type": "string",
          "description": "The id of the disk to be backed up. Changing the parameter will create new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "container",
        "name",
        "region",
        "serviceMetadata",
        "size",
        "snapshotId",
        "status",
        "vbsBackupV2Id",
        "volumeId"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "The description of the vbs backup. Changing the parameter will create new resource.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the vbs backup. Changing the parameter will create new resource.\n"
        },
        "region": {
          "type": "string"
        },
        "snapshotId": {
          "type": "string",
          "description": "The snapshot id of the disk to be backed up. Changing the parameter will create new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVbsBackupV2Timeouts:VbsBackupV2Timeouts"
        },
        "vbsBackupV2Id": {
          "type": "string",
          "description": "The id of the vbs backup.\n"
        },
        "volumeId": {
          "type": "string",
          "description": "The id of the disk to be backed up. Changing the parameter will create new resource.\n"
        }
      },
      "requiredInputs": [
        "volumeId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VbsBackupV2 resources.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "The AZ where the backup resides.\n"
          },
          "container": {
            "type": "string",
            "description": "The container of the backup.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of the vbs backup. Changing the parameter will create new resource.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the vbs backup. Changing the parameter will create new resource.\n"
          },
          "region": {
            "type": "string"
          },
          "serviceMetadata": {
            "type": "string",
            "description": "The metadata of the vbs backup.\n"
          },
          "size": {
            "type": "number",
            "description": "The size of the vbs backup.\n"
          },
          "snapshotId": {
            "type": "string",
            "description": "The snapshot id of the disk to be backed up. Changing the parameter will create new resource.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the VBS backup.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVbsBackupV2Timeouts:VbsBackupV2Timeouts"
          },
          "vbsBackupV2Id": {
            "type": "string",
            "description": "The id of the vbs backup.\n"
          },
          "volumeId": {
            "type": "string",
            "description": "The id of the disk to be backed up. Changing the parameter will create new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcEip:VpcEip": {
      "description": "Manages an EIP resource within FlexibleEngine VPC.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst eip1 = new flexibleengine.VpcEip(\"eip1\", {\n    bandwidth: {\n        name: \"test\",\n        shareType: \"PER\",\n        size: 10,\n    },\n    publicip: {\n        type: \"5_bgp\",\n    },\n});\nconst eipWithTags = new flexibleengine.VpcEip(\"eipWithTags\", {\n    bandwidth: {\n        name: \"mybandwidth\",\n        shareType: \"PER\",\n        size: 10,\n    },\n    publicip: {\n        type: \"5_bgp\",\n    },\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\neip1 = flexibleengine.VpcEip(\"eip1\",\n    bandwidth={\n        \"name\": \"test\",\n        \"share_type\": \"PER\",\n        \"size\": 10,\n    },\n    publicip={\n        \"type\": \"5_bgp\",\n    })\neip_with_tags = flexibleengine.VpcEip(\"eipWithTags\",\n    bandwidth={\n        \"name\": \"mybandwidth\",\n        \"share_type\": \"PER\",\n        \"size\": 10,\n    },\n    publicip={\n        \"type\": \"5_bgp\",\n    },\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var eip1 = new Flexibleengine.VpcEip(\"eip1\", new()\n    {\n        Bandwidth = new Flexibleengine.Inputs.VpcEipBandwidthArgs\n        {\n            Name = \"test\",\n            ShareType = \"PER\",\n            Size = 10,\n        },\n        Publicip = new Flexibleengine.Inputs.VpcEipPublicipArgs\n        {\n            Type = \"5_bgp\",\n        },\n    });\n\n    var eipWithTags = new Flexibleengine.VpcEip(\"eipWithTags\", new()\n    {\n        Bandwidth = new Flexibleengine.Inputs.VpcEipBandwidthArgs\n        {\n            Name = \"mybandwidth\",\n            ShareType = \"PER\",\n            Size = 10,\n        },\n        Publicip = new Flexibleengine.Inputs.VpcEipPublicipArgs\n        {\n            Type = \"5_bgp\",\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewVpcEip(ctx, \"eip1\", &flexibleengine.VpcEipArgs{\n\t\t\tBandwidth: &flexibleengine.VpcEipBandwidthArgs{\n\t\t\t\tName:      pulumi.String(\"test\"),\n\t\t\t\tShareType: pulumi.String(\"PER\"),\n\t\t\t\tSize:      pulumi.Float64(10),\n\t\t\t},\n\t\t\tPublicip: &flexibleengine.VpcEipPublicipArgs{\n\t\t\t\tType: pulumi.String(\"5_bgp\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcEip(ctx, \"eipWithTags\", &flexibleengine.VpcEipArgs{\n\t\t\tBandwidth: &flexibleengine.VpcEipBandwidthArgs{\n\t\t\t\tName:      pulumi.String(\"mybandwidth\"),\n\t\t\t\tShareType: pulumi.String(\"PER\"),\n\t\t\t\tSize:      pulumi.Float64(10),\n\t\t\t},\n\t\t\tPublicip: &flexibleengine.VpcEipPublicipArgs{\n\t\t\t\tType: pulumi.String(\"5_bgp\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcEip;\nimport com.pulumi.flexibleengine.VpcEipArgs;\nimport com.pulumi.flexibleengine.inputs.VpcEipBandwidthArgs;\nimport com.pulumi.flexibleengine.inputs.VpcEipPublicipArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var eip1 = new VpcEip(\"eip1\", VpcEipArgs.builder()\n            .bandwidth(VpcEipBandwidthArgs.builder()\n                .name(\"test\")\n                .shareType(\"PER\")\n                .size(10)\n                .build())\n            .publicip(VpcEipPublicipArgs.builder()\n                .type(\"5_bgp\")\n                .build())\n            .build());\n\n        var eipWithTags = new VpcEip(\"eipWithTags\", VpcEipArgs.builder()\n            .bandwidth(VpcEipBandwidthArgs.builder()\n                .name(\"mybandwidth\")\n                .shareType(\"PER\")\n                .size(10)\n                .build())\n            .publicip(VpcEipPublicipArgs.builder()\n                .type(\"5_bgp\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  eip1:\n    type: flexibleengine:VpcEip\n    properties:\n      bandwidth:\n        name: test\n        shareType: PER\n        size: 10\n      publicip:\n        type: 5_bgp\n  eipWithTags:\n    type: flexibleengine:VpcEip\n    properties:\n      bandwidth:\n        name: mybandwidth\n        shareType: PER\n        size: 10\n      publicip:\n        type: 5_bgp\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nEIPs can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/vpcEip:VpcEip eip_1 2c7f39f3-702b-48d1-940c-b50384177ee1\n```\n\n",
      "properties": {
        "address": {
          "type": "string",
          "description": "The IP address of the EIP.\n"
        },
        "bandwidth": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipBandwidth:VpcEipBandwidth",
          "description": "The bandwidth object.\n"
        },
        "publicip": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipPublicip:VpcEipPublicip",
          "description": "The elastic IP address object.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the EIP. If omitted,\nthe `region` argument of the provider is used. Changing this creates a new EIP.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of EIP.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the EIP.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipTimeouts:VpcEipTimeouts"
        },
        "vpcEipId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "address",
        "bandwidth",
        "publicip",
        "region",
        "status",
        "vpcEipId"
      ],
      "inputProperties": {
        "bandwidth": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipBandwidth:VpcEipBandwidth",
          "description": "The bandwidth object.\n"
        },
        "publicip": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipPublicip:VpcEipPublicip",
          "description": "The elastic IP address object.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the EIP. If omitted,\nthe `region` argument of the provider is used. Changing this creates a new EIP.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the EIP.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipTimeouts:VpcEipTimeouts"
        },
        "vpcEipId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "bandwidth",
        "publicip"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcEip resources.\n",
        "properties": {
          "address": {
            "type": "string",
            "description": "The IP address of the EIP.\n"
          },
          "bandwidth": {
            "$ref": "#/types/flexibleengine:index%2FVpcEipBandwidth:VpcEipBandwidth",
            "description": "The bandwidth object.\n"
          },
          "publicip": {
            "$ref": "#/types/flexibleengine:index%2FVpcEipPublicip:VpcEipPublicip",
            "description": "The elastic IP address object.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the EIP. If omitted,\nthe `region` argument of the provider is used. Changing this creates a new EIP.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of EIP.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the EIP.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcEipTimeouts:VpcEipTimeouts"
          },
          "vpcEipId": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcEipAssociate:VpcEipAssociate": {
      "description": "Associates an EIP to a specified IP address or port.\n\n## Example Usage\n\n### Associate with a fixed IP\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleEipAssociated = new flexibleengine.VpcEipAssociate(\"exampleEipAssociated\", {\n    publicIp: flexibleengine_vpc_eip.example_eip.address,\n    networkId: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    fixedIp: \"192.168.0.100\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_eip_associated = flexibleengine.VpcEipAssociate(\"exampleEipAssociated\",\n    public_ip=flexibleengine_vpc_eip[\"example_eip\"][\"address\"],\n    network_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    fixed_ip=\"192.168.0.100\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleEipAssociated = new Flexibleengine.VpcEipAssociate(\"exampleEipAssociated\", new()\n    {\n        PublicIp = flexibleengine_vpc_eip.Example_eip.Address,\n        NetworkId = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n        FixedIp = \"192.168.0.100\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewVpcEipAssociate(ctx, \"exampleEipAssociated\", &flexibleengine.VpcEipAssociateArgs{\n\t\t\tPublicIp:  pulumi.Any(flexibleengine_vpc_eip.Example_eip.Address),\n\t\t\tNetworkId: pulumi.Any(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\tFixedIp:   pulumi.String(\"192.168.0.100\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcEipAssociate;\nimport com.pulumi.flexibleengine.VpcEipAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleEipAssociated = new VpcEipAssociate(\"exampleEipAssociated\", VpcEipAssociateArgs.builder()\n            .publicIp(flexibleengine_vpc_eip.example_eip().address())\n            .networkId(flexibleengine_vpc_subnet_v1.example_subnet().id())\n            .fixedIp(\"192.168.0.100\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleEipAssociated:\n    type: flexibleengine:VpcEipAssociate\n    properties:\n      publicIp: ${flexibleengine_vpc_eip.example_eip.address}\n      networkId: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n      fixedIp: 192.168.0.100\n```\n<!--End PulumiCodeChooser -->\n\n### Associate with a port\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst examplePort = flexibleengine.getNetworkingPort({\n    networkId: flexibleengine_vpc_subnet_v1.example_subnet.id,\n    fixedIp: \"192.168.0.100\",\n});\nconst exampleEip = new flexibleengine.VpcEip(\"exampleEip\", {\n    publicip: {\n        type: \"5_bgp\",\n    },\n    bandwidth: {\n        name: \"test\",\n        size: 5,\n        shareType: \"PER\",\n        chargeMode: \"traffic\",\n    },\n});\nconst associated = new flexibleengine.VpcEipAssociate(\"associated\", {\n    publicIp: exampleEip.address,\n    portId: examplePort.then(examplePort => examplePort.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_port = flexibleengine.get_networking_port(network_id=flexibleengine_vpc_subnet_v1[\"example_subnet\"][\"id\"],\n    fixed_ip=\"192.168.0.100\")\nexample_eip = flexibleengine.VpcEip(\"exampleEip\",\n    publicip={\n        \"type\": \"5_bgp\",\n    },\n    bandwidth={\n        \"name\": \"test\",\n        \"size\": 5,\n        \"share_type\": \"PER\",\n        \"charge_mode\": \"traffic\",\n    })\nassociated = flexibleengine.VpcEipAssociate(\"associated\",\n    public_ip=example_eip.address,\n    port_id=example_port.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var examplePort = Flexibleengine.GetNetworkingPort.Invoke(new()\n    {\n        NetworkId = flexibleengine_vpc_subnet_v1.Example_subnet.Id,\n        FixedIp = \"192.168.0.100\",\n    });\n\n    var exampleEip = new Flexibleengine.VpcEip(\"exampleEip\", new()\n    {\n        Publicip = new Flexibleengine.Inputs.VpcEipPublicipArgs\n        {\n            Type = \"5_bgp\",\n        },\n        Bandwidth = new Flexibleengine.Inputs.VpcEipBandwidthArgs\n        {\n            Name = \"test\",\n            Size = 5,\n            ShareType = \"PER\",\n            ChargeMode = \"traffic\",\n        },\n    });\n\n    var associated = new Flexibleengine.VpcEipAssociate(\"associated\", new()\n    {\n        PublicIp = exampleEip.Address,\n        PortId = examplePort.Apply(getNetworkingPortResult => getNetworkingPortResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texamplePort, err := flexibleengine.GetNetworkingPort(ctx, &flexibleengine.GetNetworkingPortArgs{\n\t\t\tNetworkId: pulumi.StringRef(flexibleengine_vpc_subnet_v1.Example_subnet.Id),\n\t\t\tFixedIp:   pulumi.StringRef(\"192.168.0.100\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEip, err := flexibleengine.NewVpcEip(ctx, \"exampleEip\", &flexibleengine.VpcEipArgs{\n\t\t\tPublicip: &flexibleengine.VpcEipPublicipArgs{\n\t\t\t\tType: pulumi.String(\"5_bgp\"),\n\t\t\t},\n\t\t\tBandwidth: &flexibleengine.VpcEipBandwidthArgs{\n\t\t\t\tName:       pulumi.String(\"test\"),\n\t\t\t\tSize:       pulumi.Float64(5),\n\t\t\t\tShareType:  pulumi.String(\"PER\"),\n\t\t\t\tChargeMode: pulumi.String(\"traffic\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcEipAssociate(ctx, \"associated\", &flexibleengine.VpcEipAssociateArgs{\n\t\t\tPublicIp: exampleEip.Address,\n\t\t\tPortId:   pulumi.String(examplePort.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetNetworkingPortArgs;\nimport com.pulumi.flexibleengine.VpcEip;\nimport com.pulumi.flexibleengine.VpcEipArgs;\nimport com.pulumi.flexibleengine.inputs.VpcEipPublicipArgs;\nimport com.pulumi.flexibleengine.inputs.VpcEipBandwidthArgs;\nimport com.pulumi.flexibleengine.VpcEipAssociate;\nimport com.pulumi.flexibleengine.VpcEipAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var examplePort = FlexibleengineFunctions.getNetworkingPort(GetNetworkingPortArgs.builder()\n            .networkId(flexibleengine_vpc_subnet_v1.example_subnet().id())\n            .fixedIp(\"192.168.0.100\")\n            .build());\n\n        var exampleEip = new VpcEip(\"exampleEip\", VpcEipArgs.builder()\n            .publicip(VpcEipPublicipArgs.builder()\n                .type(\"5_bgp\")\n                .build())\n            .bandwidth(VpcEipBandwidthArgs.builder()\n                .name(\"test\")\n                .size(5)\n                .shareType(\"PER\")\n                .chargeMode(\"traffic\")\n                .build())\n            .build());\n\n        var associated = new VpcEipAssociate(\"associated\", VpcEipAssociateArgs.builder()\n            .publicIp(exampleEip.address())\n            .portId(examplePort.applyValue(getNetworkingPortResult -> getNetworkingPortResult.id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleEip:\n    type: flexibleengine:VpcEip\n    properties:\n      publicip:\n        type: 5_bgp\n      bandwidth:\n        name: test\n        size: 5\n        shareType: PER\n        chargeMode: traffic\n  associated:\n    type: flexibleengine:VpcEipAssociate\n    properties:\n      publicIp: ${exampleEip.address}\n      portId: ${examplePort.id}\nvariables:\n  examplePort:\n    fn::invoke:\n      function: flexibleengine:getNetworkingPort\n      arguments:\n        networkId: ${flexibleengine_vpc_subnet_v1.example_subnet.id}\n        fixedIp: 192.168.0.100\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nEIP associations can be imported using the `id` of the EIP, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/vpcEipAssociate:VpcEipAssociate eip 2c7f39f3-702b-48d1-940c-b50384177ee1\n```\n\n",
      "properties": {
        "fixedIp": {
          "type": "string",
          "description": "Specifies a private IP address to associate with the EIP.\nChanging this creates a new resource.\n"
        },
        "macAddress": {
          "type": "string",
          "description": "The MAC address of the private IP.\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet to which the **fixed_ip** belongs.\nIt is mandatory when `fixed_ip` is set. Changing this creates a new resource.\n"
        },
        "portId": {
          "type": "string",
          "description": "Specifies an existing port ID to associate with the EIP.\nThis parameter and `fixed_ip` are alternative. Changing this creates a new resource.\n"
        },
        "publicIp": {
          "type": "string",
          "description": "Specifies the EIP address to associate. Changing this creates a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to associate the EIP. If omitted, the provider-level\nregion will be used. Changing this creates a new resource.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of EIP, should be **BOUND**.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipAssociateTimeouts:VpcEipAssociateTimeouts"
        },
        "vpcEipAssociateId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "fixedIp",
        "macAddress",
        "networkId",
        "portId",
        "publicIp",
        "region",
        "status",
        "vpcEipAssociateId"
      ],
      "inputProperties": {
        "fixedIp": {
          "type": "string",
          "description": "Specifies a private IP address to associate with the EIP.\nChanging this creates a new resource.\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the ID of the VPC Subnet to which the **fixed_ip** belongs.\nIt is mandatory when `fixed_ip` is set. Changing this creates a new resource.\n"
        },
        "portId": {
          "type": "string",
          "description": "Specifies an existing port ID to associate with the EIP.\nThis parameter and `fixed_ip` are alternative. Changing this creates a new resource.\n"
        },
        "publicIp": {
          "type": "string",
          "description": "Specifies the EIP address to associate. Changing this creates a new resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to associate the EIP. If omitted, the provider-level\nregion will be used. Changing this creates a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipAssociateTimeouts:VpcEipAssociateTimeouts"
        },
        "vpcEipAssociateId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "publicIp"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcEipAssociate resources.\n",
        "properties": {
          "fixedIp": {
            "type": "string",
            "description": "Specifies a private IP address to associate with the EIP.\nChanging this creates a new resource.\n"
          },
          "macAddress": {
            "type": "string",
            "description": "The MAC address of the private IP.\n"
          },
          "networkId": {
            "type": "string",
            "description": "Specifies the ID of the VPC Subnet to which the **fixed_ip** belongs.\nIt is mandatory when `fixed_ip` is set. Changing this creates a new resource.\n"
          },
          "portId": {
            "type": "string",
            "description": "Specifies an existing port ID to associate with the EIP.\nThis parameter and `fixed_ip` are alternative. Changing this creates a new resource.\n"
          },
          "publicIp": {
            "type": "string",
            "description": "Specifies the EIP address to associate. Changing this creates a new resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to associate the EIP. If omitted, the provider-level\nregion will be used. Changing this creates a new resource.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of EIP, should be **BOUND**.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcEipAssociateTimeouts:VpcEipAssociateTimeouts"
          },
          "vpcEipAssociateId": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcEipV1:VpcEipV1": {
      "properties": {
        "address": {
          "type": "string"
        },
        "bandwidth": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipV1Bandwidth:VpcEipV1Bandwidth"
        },
        "publicip": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipV1Publicip:VpcEipV1Publicip"
        },
        "region": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipV1Timeouts:VpcEipV1Timeouts"
        },
        "vpcEipV1Id": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "address",
        "bandwidth",
        "publicip",
        "region",
        "status",
        "vpcEipV1Id"
      ],
      "inputProperties": {
        "bandwidth": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipV1Bandwidth:VpcEipV1Bandwidth"
        },
        "publicip": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipV1Publicip:VpcEipV1Publicip"
        },
        "region": {
          "type": "string"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcEipV1Timeouts:VpcEipV1Timeouts"
        },
        "vpcEipV1Id": {
          "type": "string"
        }
      },
      "requiredInputs": [
        "bandwidth",
        "publicip"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcEipV1 resources.\n",
        "properties": {
          "address": {
            "type": "string"
          },
          "bandwidth": {
            "$ref": "#/types/flexibleengine:index%2FVpcEipV1Bandwidth:VpcEipV1Bandwidth"
          },
          "publicip": {
            "$ref": "#/types/flexibleengine:index%2FVpcEipV1Publicip:VpcEipV1Publicip"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcEipV1Timeouts:VpcEipV1Timeouts"
          },
          "vpcEipV1Id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcFlowLogV1:VpcFlowLogV1": {
      "description": "Manages a VPC flow log resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst logGroup1 = new flexibleengine.LtsGroup(\"logGroup1\", {groupName: _var.log_group_name});\nconst logTopic1 = new flexibleengine.LtsTopic(\"logTopic1\", {\n    groupId: logGroup1.ltsGroupId,\n    topicName: _var.log_topic_name,\n});\nconst flowlog1 = new flexibleengine.VpcFlowLogV1(\"flowlog1\", {\n    description: _var.flowlog_desc,\n    resourceId: _var.port_id,\n    trafficType: \"all\",\n    logGroupId: logGroup1.ltsGroupId,\n    logTopicId: logTopic1.ltsTopicId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nlog_group1 = flexibleengine.LtsGroup(\"logGroup1\", group_name=var[\"log_group_name\"])\nlog_topic1 = flexibleengine.LtsTopic(\"logTopic1\",\n    group_id=log_group1.lts_group_id,\n    topic_name=var[\"log_topic_name\"])\nflowlog1 = flexibleengine.VpcFlowLogV1(\"flowlog1\",\n    description=var[\"flowlog_desc\"],\n    resource_id=var[\"port_id\"],\n    traffic_type=\"all\",\n    log_group_id=log_group1.lts_group_id,\n    log_topic_id=log_topic1.lts_topic_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var logGroup1 = new Flexibleengine.LtsGroup(\"logGroup1\", new()\n    {\n        GroupName = @var.Log_group_name,\n    });\n\n    var logTopic1 = new Flexibleengine.LtsTopic(\"logTopic1\", new()\n    {\n        GroupId = logGroup1.LtsGroupId,\n        TopicName = @var.Log_topic_name,\n    });\n\n    var flowlog1 = new Flexibleengine.VpcFlowLogV1(\"flowlog1\", new()\n    {\n        Description = @var.Flowlog_desc,\n        ResourceId = @var.Port_id,\n        TrafficType = \"all\",\n        LogGroupId = logGroup1.LtsGroupId,\n        LogTopicId = logTopic1.LtsTopicId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlogGroup1, err := flexibleengine.NewLtsGroup(ctx, \"logGroup1\", &flexibleengine.LtsGroupArgs{\n\t\t\tGroupName: pulumi.Any(_var.Log_group_name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlogTopic1, err := flexibleengine.NewLtsTopic(ctx, \"logTopic1\", &flexibleengine.LtsTopicArgs{\n\t\t\tGroupId:   logGroup1.LtsGroupId,\n\t\t\tTopicName: pulumi.Any(_var.Log_topic_name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcFlowLogV1(ctx, \"flowlog1\", &flexibleengine.VpcFlowLogV1Args{\n\t\t\tDescription: pulumi.Any(_var.Flowlog_desc),\n\t\t\tResourceId:  pulumi.Any(_var.Port_id),\n\t\t\tTrafficType: pulumi.String(\"all\"),\n\t\t\tLogGroupId:  logGroup1.LtsGroupId,\n\t\t\tLogTopicId:  logTopic1.LtsTopicId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.LtsGroup;\nimport com.pulumi.flexibleengine.LtsGroupArgs;\nimport com.pulumi.flexibleengine.LtsTopic;\nimport com.pulumi.flexibleengine.LtsTopicArgs;\nimport com.pulumi.flexibleengine.VpcFlowLogV1;\nimport com.pulumi.flexibleengine.VpcFlowLogV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var logGroup1 = new LtsGroup(\"logGroup1\", LtsGroupArgs.builder()\n            .groupName(var_.log_group_name())\n            .build());\n\n        var logTopic1 = new LtsTopic(\"logTopic1\", LtsTopicArgs.builder()\n            .groupId(logGroup1.ltsGroupId())\n            .topicName(var_.log_topic_name())\n            .build());\n\n        var flowlog1 = new VpcFlowLogV1(\"flowlog1\", VpcFlowLogV1Args.builder()\n            .description(var_.flowlog_desc())\n            .resourceId(var_.port_id())\n            .trafficType(\"all\")\n            .logGroupId(logGroup1.ltsGroupId())\n            .logTopicId(logTopic1.ltsTopicId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  logGroup1:\n    type: flexibleengine:LtsGroup\n    properties:\n      groupName: ${var.log_group_name}\n  logTopic1:\n    type: flexibleengine:LtsTopic\n    properties:\n      groupId: ${logGroup1.ltsGroupId}\n      topicName: ${var.log_topic_name}\n  flowlog1:\n    type: flexibleengine:VpcFlowLogV1\n    properties:\n      description: ${var.flowlog_desc}\n      resourceId: ${var.port_id}\n      trafficType: all\n      logGroupId: ${logGroup1.ltsGroupId}\n      logTopicId: ${logTopic1.ltsTopicId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVPC flow logs can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/vpcFlowLogV1:VpcFlowLogV1 flowlog1 41b9d73f-eb1c-4795-a100-59a99b062513\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies supplementary information about the VPC flow log.\nThe value is a string of no more than 255 characters and cannot contain angle brackets (< or >).\n"
        },
        "logGroupId": {
          "type": "string",
          "description": "Specifies the LTS log group ID.\nChanging this creates a new VPC flow log.\n"
        },
        "logTopicId": {
          "type": "string",
          "description": "Specifies the LTS log topic ID.\nChanging this creates a new VPC flow log.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the VPC flow log name. The value is a string of 1 to 64 characters\nthat can contain letters, digits, underscores (_), hyphens (-) and periods (.).\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the VPC flow log resource.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC flow log.\n"
        },
        "resourceId": {
          "type": "string",
          "description": "Specifies the network port ID.\nChanging this creates a new VPC flow log.\n"
        },
        "resourceType": {
          "type": "string",
          "description": "The type of resource on which to create the VPC flow log. The value is fixed to *port*.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the flow log. The value can be `ACTIVE`, `DOWN` or `ERROR`.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcFlowLogV1Timeouts:VpcFlowLogV1Timeouts"
        },
        "trafficType": {
          "type": "string",
          "description": "Specifies the type of traffic to log. The value can be:\n- *all*: specifies that both accepted and rejected traffic of the specified resource will be logged.\n- *accept*: specifies that only accepted inbound and outbound traffic of the specified resource will be logged.\n- *reject*: specifies that only rejected inbound and outbound traffic of the specified resource will be logged.\n\nDefauts to *all*. Changing this creates a new VPC flow log.\n"
        },
        "vpcFlowLogV1Id": {
          "type": "string",
          "description": "The VPC flow log ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "logGroupId",
        "logTopicId",
        "name",
        "region",
        "resourceId",
        "status",
        "vpcFlowLogV1Id"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies supplementary information about the VPC flow log.\nThe value is a string of no more than 255 characters and cannot contain angle brackets (< or >).\n"
        },
        "logGroupId": {
          "type": "string",
          "description": "Specifies the LTS log group ID.\nChanging this creates a new VPC flow log.\n"
        },
        "logTopicId": {
          "type": "string",
          "description": "Specifies the LTS log topic ID.\nChanging this creates a new VPC flow log.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the VPC flow log name. The value is a string of 1 to 64 characters\nthat can contain letters, digits, underscores (_), hyphens (-) and periods (.).\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the VPC flow log resource.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC flow log.\n"
        },
        "resourceId": {
          "type": "string",
          "description": "Specifies the network port ID.\nChanging this creates a new VPC flow log.\n"
        },
        "resourceType": {
          "type": "string",
          "description": "The type of resource on which to create the VPC flow log. The value is fixed to *port*.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcFlowLogV1Timeouts:VpcFlowLogV1Timeouts"
        },
        "trafficType": {
          "type": "string",
          "description": "Specifies the type of traffic to log. The value can be:\n- *all*: specifies that both accepted and rejected traffic of the specified resource will be logged.\n- *accept*: specifies that only accepted inbound and outbound traffic of the specified resource will be logged.\n- *reject*: specifies that only rejected inbound and outbound traffic of the specified resource will be logged.\n\nDefauts to *all*. Changing this creates a new VPC flow log.\n"
        },
        "vpcFlowLogV1Id": {
          "type": "string",
          "description": "The VPC flow log ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "logGroupId",
        "logTopicId",
        "resourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcFlowLogV1 resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies supplementary information about the VPC flow log.\nThe value is a string of no more than 255 characters and cannot contain angle brackets (< or >).\n"
          },
          "logGroupId": {
            "type": "string",
            "description": "Specifies the LTS log group ID.\nChanging this creates a new VPC flow log.\n"
          },
          "logTopicId": {
            "type": "string",
            "description": "Specifies the LTS log topic ID.\nChanging this creates a new VPC flow log.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the VPC flow log name. The value is a string of 1 to 64 characters\nthat can contain letters, digits, underscores (_), hyphens (-) and periods (.).\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the VPC flow log resource.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC flow log.\n"
          },
          "resourceId": {
            "type": "string",
            "description": "Specifies the network port ID.\nChanging this creates a new VPC flow log.\n"
          },
          "resourceType": {
            "type": "string",
            "description": "The type of resource on which to create the VPC flow log. The value is fixed to *port*.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the flow log. The value can be `ACTIVE`, `DOWN` or `ERROR`.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcFlowLogV1Timeouts:VpcFlowLogV1Timeouts"
          },
          "trafficType": {
            "type": "string",
            "description": "Specifies the type of traffic to log. The value can be:\n- *all*: specifies that both accepted and rejected traffic of the specified resource will be logged.\n- *accept*: specifies that only accepted inbound and outbound traffic of the specified resource will be logged.\n- *reject*: specifies that only rejected inbound and outbound traffic of the specified resource will be logged.\n\nDefauts to *all*. Changing this creates a new VPC flow log.\n"
          },
          "vpcFlowLogV1Id": {
            "type": "string",
            "description": "The VPC flow log ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcPeeringConnectionAccepterV2:VpcPeeringConnectionAccepterV2": {
      "description": "\n\n## Import\n\nVPC Peering Connection Accepter can be imported using the VPC Peering Connection ID `vpc_peering_connection_id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/vpcPeeringConnectionAccepterV2:VpcPeeringConnectionAccepterV2 peer 1a2b3c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p\n```\n\n",
      "properties": {
        "accept": {
          "type": "boolean",
          "description": "Whether or not to accept the peering request. Defaults to `false`.\n"
        },
        "name": {
          "type": "string",
          "description": "The VPC peering connection name.\n"
        },
        "peerTenantId": {
          "type": "string",
          "description": "The Tenant Id of the accepter tenant.\n"
        },
        "peerVpcId": {
          "type": "string",
          "description": "The VPC ID of the accepter tenant.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the VPC peering connection accepter.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC peering connection accepter.\n"
        },
        "status": {
          "type": "string",
          "description": "The VPC peering connection status.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcPeeringConnectionAccepterV2Timeouts:VpcPeeringConnectionAccepterV2Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "The ID of requester VPC involved in a VPC peering connection.\n"
        },
        "vpcPeeringConnectionAccepterV2Id": {
          "type": "string",
          "description": "The VPC peering connection ID.\n"
        },
        "vpcPeeringConnectionId": {
          "type": "string",
          "description": "The VPC Peering Connection ID to manage.\nChanging this creates a new VPC peering connection accepter.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "peerTenantId",
        "peerVpcId",
        "region",
        "status",
        "vpcId",
        "vpcPeeringConnectionAccepterV2Id",
        "vpcPeeringConnectionId"
      ],
      "inputProperties": {
        "accept": {
          "type": "boolean",
          "description": "Whether or not to accept the peering request. Defaults to `false`.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the VPC peering connection accepter.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC peering connection accepter.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcPeeringConnectionAccepterV2Timeouts:VpcPeeringConnectionAccepterV2Timeouts"
        },
        "vpcPeeringConnectionAccepterV2Id": {
          "type": "string",
          "description": "The VPC peering connection ID.\n"
        },
        "vpcPeeringConnectionId": {
          "type": "string",
          "description": "The VPC Peering Connection ID to manage.\nChanging this creates a new VPC peering connection accepter.\n"
        }
      },
      "requiredInputs": [
        "vpcPeeringConnectionId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcPeeringConnectionAccepterV2 resources.\n",
        "properties": {
          "accept": {
            "type": "boolean",
            "description": "Whether or not to accept the peering request. Defaults to `false`.\n"
          },
          "name": {
            "type": "string",
            "description": "The VPC peering connection name.\n"
          },
          "peerTenantId": {
            "type": "string",
            "description": "The Tenant Id of the accepter tenant.\n"
          },
          "peerVpcId": {
            "type": "string",
            "description": "The VPC ID of the accepter tenant.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the VPC peering connection accepter.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC peering connection accepter.\n"
          },
          "status": {
            "type": "string",
            "description": "The VPC peering connection status.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcPeeringConnectionAccepterV2Timeouts:VpcPeeringConnectionAccepterV2Timeouts"
          },
          "vpcId": {
            "type": "string",
            "description": "The ID of requester VPC involved in a VPC peering connection.\n"
          },
          "vpcPeeringConnectionAccepterV2Id": {
            "type": "string",
            "description": "The VPC peering connection ID.\n"
          },
          "vpcPeeringConnectionId": {
            "type": "string",
            "description": "The VPC Peering Connection ID to manage.\nChanging this creates a new VPC peering connection accepter.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcPeeringConnectionV2:VpcPeeringConnectionV2": {
      "description": "Provides a resource to manage a VPC Peering Connection resource.\n\n> **Note:** If you create a VPC peering connection with another VPC of your own, the connection is created without\n  the need for you to accept the connection.  \n  For cross-tenant (requester's tenant differs from the accepter's tenant) VPC Peering Connections,\n  use the `flexibleengine.VpcPeeringConnectionV2` resource to manage the requester's side of the connection and\n  use the `flexibleengine.VpcPeeringConnectionAccepterV2` resource to manage the accepter's side of the connection.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst accepterVpcId = config.requireObject(\"accepterVpcId\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst peering = new flexibleengine.VpcPeeringConnectionV2(\"peering\", {\n    vpcId: exampleVpc.vpcV1Id,\n    peerVpcId: accepterVpcId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\naccepter_vpc_id = config.require_object(\"accepterVpcId\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\npeering = flexibleengine.VpcPeeringConnectionV2(\"peering\",\n    vpc_id=example_vpc.vpc_v1_id,\n    peer_vpc_id=accepter_vpc_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var accepterVpcId = config.RequireObject<dynamic>(\"accepterVpcId\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var peering = new Flexibleengine.VpcPeeringConnectionV2(\"peering\", new()\n    {\n        VpcId = exampleVpc.VpcV1Id,\n        PeerVpcId = accepterVpcId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\taccepterVpcId := cfg.RequireObject(\"accepterVpcId\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcPeeringConnectionV2(ctx, \"peering\", &flexibleengine.VpcPeeringConnectionV2Args{\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t\tPeerVpcId: pulumi.Any(accepterVpcId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcPeeringConnectionV2;\nimport com.pulumi.flexibleengine.VpcPeeringConnectionV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var accepterVpcId = config.get(\"accepterVpcId\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var peering = new VpcPeeringConnectionV2(\"peering\", VpcPeeringConnectionV2Args.builder()\n            .vpcId(exampleVpc.vpcV1Id())\n            .peerVpcId(accepterVpcId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  accepterVpcId:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  peering:\n    type: flexibleengine:VpcPeeringConnectionV2\n    properties:\n      vpcId: ${exampleVpc.vpcV1Id}\n      peerVpcId: ${accepterVpcId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVPC Peering resources can be imported using the `vpc peering id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/vpcPeeringConnectionV2:VpcPeeringConnectionV2 test_connection 22b76469-08e3-4937-8c1d-7aad34892be1\n```\n\n",
      "properties": {
        "name": {
          "type": "string",
          "description": "Specifies the name of the VPC peering connection. The value can contain 1 to 64 characters.\n"
        },
        "peerTenantId": {
          "type": "string",
          "description": "Specified the Tenant Id of the accepter tenant.\nChanging this creates a new VPC peering connection.\n"
        },
        "peerVpcId": {
          "type": "string",
          "description": "Specifies the VPC ID of the accepter tenant.\nChanging this creates a new VPC peering connection.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the VPC peering connection.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC peering connection.\n"
        },
        "status": {
          "type": "string",
          "description": "The VPC peering connection status. The value can be PENDING_ACCEPTANCE, REJECTED, EXPIRED, DELETED, or ACTIVE.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcPeeringConnectionV2Timeouts:VpcPeeringConnectionV2Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of a VPC involved in a VPC peering connection.\nChanging this creates a new VPC peering connection.\n"
        },
        "vpcPeeringConnectionV2Id": {
          "type": "string",
          "description": "The VPC peering connection ID.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "peerTenantId",
        "peerVpcId",
        "region",
        "status",
        "vpcId",
        "vpcPeeringConnectionV2Id"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "Specifies the name of the VPC peering connection. The value can contain 1 to 64 characters.\n"
        },
        "peerTenantId": {
          "type": "string",
          "description": "Specified the Tenant Id of the accepter tenant.\nChanging this creates a new VPC peering connection.\n"
        },
        "peerVpcId": {
          "type": "string",
          "description": "Specifies the VPC ID of the accepter tenant.\nChanging this creates a new VPC peering connection.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the VPC peering connection.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC peering connection.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcPeeringConnectionV2Timeouts:VpcPeeringConnectionV2Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of a VPC involved in a VPC peering connection.\nChanging this creates a new VPC peering connection.\n"
        },
        "vpcPeeringConnectionV2Id": {
          "type": "string",
          "description": "The VPC peering connection ID.\n"
        }
      },
      "requiredInputs": [
        "peerVpcId",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcPeeringConnectionV2 resources.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "Specifies the name of the VPC peering connection. The value can contain 1 to 64 characters.\n"
          },
          "peerTenantId": {
            "type": "string",
            "description": "Specified the Tenant Id of the accepter tenant.\nChanging this creates a new VPC peering connection.\n"
          },
          "peerVpcId": {
            "type": "string",
            "description": "Specifies the VPC ID of the accepter tenant.\nChanging this creates a new VPC peering connection.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the VPC peering connection.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC peering connection.\n"
          },
          "status": {
            "type": "string",
            "description": "The VPC peering connection status. The value can be PENDING_ACCEPTANCE, REJECTED, EXPIRED, DELETED, or ACTIVE.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcPeeringConnectionV2Timeouts:VpcPeeringConnectionV2Timeouts"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of a VPC involved in a VPC peering connection.\nChanging this creates a new VPC peering connection.\n"
          },
          "vpcPeeringConnectionV2Id": {
            "type": "string",
            "description": "The VPC peering connection ID.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcRoute:VpcRoute": {
      "description": "Manages a VPC route resource within FlexibleEngine.\n\n## Example Usage\n\n### Add route to the default route table\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst nexthop = config.requireObject(\"nexthop\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst vpcRoute = new flexibleengine.VpcRoute(\"vpcRoute\", {\n    vpcId: exampleVpc.vpcV1Id,\n    destination: \"192.168.0.0/16\",\n    type: \"peering\",\n    nexthop: nexthop,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nnexthop = config.require_object(\"nexthop\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nvpc_route = flexibleengine.VpcRoute(\"vpcRoute\",\n    vpc_id=example_vpc.vpc_v1_id,\n    destination=\"192.168.0.0/16\",\n    type=\"peering\",\n    nexthop=nexthop)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var nexthop = config.RequireObject<dynamic>(\"nexthop\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var vpcRoute = new Flexibleengine.VpcRoute(\"vpcRoute\", new()\n    {\n        VpcId = exampleVpc.VpcV1Id,\n        Destination = \"192.168.0.0/16\",\n        Type = \"peering\",\n        Nexthop = nexthop,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnexthop := cfg.RequireObject(\"nexthop\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcRoute(ctx, \"vpcRoute\", &flexibleengine.VpcRouteArgs{\n\t\t\tVpcId:       exampleVpc.VpcV1Id,\n\t\t\tDestination: pulumi.String(\"192.168.0.0/16\"),\n\t\t\tType:        pulumi.String(\"peering\"),\n\t\t\tNexthop:     pulumi.Any(nexthop),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcRoute;\nimport com.pulumi.flexibleengine.VpcRouteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var nexthop = config.get(\"nexthop\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var vpcRoute = new VpcRoute(\"vpcRoute\", VpcRouteArgs.builder()\n            .vpcId(exampleVpc.vpcV1Id())\n            .destination(\"192.168.0.0/16\")\n            .type(\"peering\")\n            .nexthop(nexthop)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  nexthop:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  vpcRoute:\n    type: flexibleengine:VpcRoute\n    properties:\n      vpcId: ${exampleVpc.vpcV1Id}\n      destination: 192.168.0.0/16\n      type: peering\n      nexthop: ${nexthop}\n```\n<!--End PulumiCodeChooser -->\n\n### Add route to a custom route table\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst nexthop = config.requireObject(\"nexthop\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst rtb = flexibleengine.getVpcRouteTableOutput({\n    vpcId: exampleVpc.vpcV1Id,\n    name: \"demo\",\n});\nconst vpcRoute = new flexibleengine.VpcRoute(\"vpcRoute\", {\n    vpcId: exampleVpc.vpcV1Id,\n    routeTableId: rtb.apply(rtb => rtb.id),\n    destination: \"172.16.8.0/24\",\n    type: \"ecs\",\n    nexthop: nexthop,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nnexthop = config.require_object(\"nexthop\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nrtb = flexibleengine.get_vpc_route_table_output(vpc_id=example_vpc.vpc_v1_id,\n    name=\"demo\")\nvpc_route = flexibleengine.VpcRoute(\"vpcRoute\",\n    vpc_id=example_vpc.vpc_v1_id,\n    route_table_id=rtb.id,\n    destination=\"172.16.8.0/24\",\n    type=\"ecs\",\n    nexthop=nexthop)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var nexthop = config.RequireObject<dynamic>(\"nexthop\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var rtb = Flexibleengine.GetVpcRouteTable.Invoke(new()\n    {\n        VpcId = exampleVpc.VpcV1Id,\n        Name = \"demo\",\n    });\n\n    var vpcRoute = new Flexibleengine.VpcRoute(\"vpcRoute\", new()\n    {\n        VpcId = exampleVpc.VpcV1Id,\n        RouteTableId = rtb.Apply(getVpcRouteTableResult => getVpcRouteTableResult.Id),\n        Destination = \"172.16.8.0/24\",\n        Type = \"ecs\",\n        Nexthop = nexthop,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnexthop := cfg.RequireObject(\"nexthop\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trtb := flexibleengine.LookupVpcRouteTableOutput(ctx, flexibleengine.GetVpcRouteTableOutputArgs{\n\t\t\tVpcId: exampleVpc.VpcV1Id,\n\t\t\tName:  pulumi.String(\"demo\"),\n\t\t}, nil)\n\t\t_, err = flexibleengine.NewVpcRoute(ctx, \"vpcRoute\", &flexibleengine.VpcRouteArgs{\n\t\t\tVpcId: exampleVpc.VpcV1Id,\n\t\t\tRouteTableId: pulumi.String(rtb.ApplyT(func(rtb flexibleengine.GetVpcRouteTableResult) (*string, error) {\n\t\t\t\treturn &rtb.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tDestination: pulumi.String(\"172.16.8.0/24\"),\n\t\t\tType:        pulumi.String(\"ecs\"),\n\t\t\tNexthop:     pulumi.Any(nexthop),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcRouteTableArgs;\nimport com.pulumi.flexibleengine.VpcRoute;\nimport com.pulumi.flexibleengine.VpcRouteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var nexthop = config.get(\"nexthop\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        final var rtb = FlexibleengineFunctions.getVpcRouteTable(GetVpcRouteTableArgs.builder()\n            .vpcId(exampleVpc.vpcV1Id())\n            .name(\"demo\")\n            .build());\n\n        var vpcRoute = new VpcRoute(\"vpcRoute\", VpcRouteArgs.builder()\n            .vpcId(exampleVpc.vpcV1Id())\n            .routeTableId(rtb.applyValue(getVpcRouteTableResult -> getVpcRouteTableResult).applyValue(rtb -> rtb.applyValue(getVpcRouteTableResult -> getVpcRouteTableResult.id())))\n            .destination(\"172.16.8.0/24\")\n            .type(\"ecs\")\n            .nexthop(nexthop)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  nexthop:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  vpcRoute:\n    type: flexibleengine:VpcRoute\n    properties:\n      vpcId: ${exampleVpc.vpcV1Id}\n      routeTableId: ${rtb.id}\n      destination: 172.16.8.0/24\n      type: ecs\n      nexthop: ${nexthop}\nvariables:\n  rtb:\n    fn::invoke:\n      function: flexibleengine:getVpcRouteTable\n      arguments:\n        vpcId: ${exampleVpc.vpcV1Id}\n        name: demo\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVPC routes can be imported using the route table ID and their `destination` separated by a slash, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/vpcRoute:VpcRoute test <route_table_id>/<destination>\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the supplementary information about the route.\nThe value is a string of no more than 255 characters and cannot contain angle brackets (< or >).\n"
        },
        "destination": {
          "type": "string",
          "description": "Specifies the destination address in the CIDR notation format,\nfor example, 192.168.200.0/24. The destination of each route must be unique and cannot overlap with any\nsubnet in the VPC. Changing this creates a new resource.\n"
        },
        "nexthop": {
          "type": "string",
          "description": "Specifies the next hop.\n+ If the route type is **ecs**, the value is an ECS instance ID in the VPC.\n+ If the route type is **eni**, the value is the extension NIC of an ECS in the VPC.\n+ If the route type is **vip**, the value is a virtual IP address.\n+ If the route type is **nat**, the value is a VPN gateway ID.\n+ If the route type is **peering**, the value is a VPC peering connection ID.\n+ If the route type is **vpn**, the value is a VPN gateway ID.\n+ If the route type is **dc**, the value is a Direct Connect gateway ID.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the VPC route. If omitted, the provider-level\nregion will be used. Changing this creates a new resource.\n"
        },
        "routeTableId": {
          "type": "string",
          "description": "Specifies the route table ID for which a route is to be added.\nIf the value is not set, the route will be added to the *default* route table.\n"
        },
        "routeTableName": {
          "type": "string",
          "description": "The name of route table.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcRouteTimeouts:VpcRouteTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the route type. Currently, the value can be:\n**ecs**, **eni**, **vip**, **nat**, **peering**, **vpn** and **dc**.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC for which a route is to be added. Changing this creates a\nnew resource.\n"
        },
        "vpcRouteId": {
          "type": "string",
          "description": "The route ID, the format is `<route_table_id>/<destination>`\n"
        }
      },
      "type": "object",
      "required": [
        "destination",
        "nexthop",
        "region",
        "routeTableId",
        "routeTableName",
        "type",
        "vpcId",
        "vpcRouteId"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies the supplementary information about the route.\nThe value is a string of no more than 255 characters and cannot contain angle brackets (< or >).\n"
        },
        "destination": {
          "type": "string",
          "description": "Specifies the destination address in the CIDR notation format,\nfor example, 192.168.200.0/24. The destination of each route must be unique and cannot overlap with any\nsubnet in the VPC. Changing this creates a new resource.\n"
        },
        "nexthop": {
          "type": "string",
          "description": "Specifies the next hop.\n+ If the route type is **ecs**, the value is an ECS instance ID in the VPC.\n+ If the route type is **eni**, the value is the extension NIC of an ECS in the VPC.\n+ If the route type is **vip**, the value is a virtual IP address.\n+ If the route type is **nat**, the value is a VPN gateway ID.\n+ If the route type is **peering**, the value is a VPC peering connection ID.\n+ If the route type is **vpn**, the value is a VPN gateway ID.\n+ If the route type is **dc**, the value is a Direct Connect gateway ID.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the VPC route. If omitted, the provider-level\nregion will be used. Changing this creates a new resource.\n"
        },
        "routeTableId": {
          "type": "string",
          "description": "Specifies the route table ID for which a route is to be added.\nIf the value is not set, the route will be added to the *default* route table.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcRouteTimeouts:VpcRouteTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the route type. Currently, the value can be:\n**ecs**, **eni**, **vip**, **nat**, **peering**, **vpn** and **dc**.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC for which a route is to be added. Changing this creates a\nnew resource.\n"
        },
        "vpcRouteId": {
          "type": "string",
          "description": "The route ID, the format is `<route_table_id>/<destination>`\n"
        }
      },
      "requiredInputs": [
        "destination",
        "nexthop",
        "type",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcRoute resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies the supplementary information about the route.\nThe value is a string of no more than 255 characters and cannot contain angle brackets (< or >).\n"
          },
          "destination": {
            "type": "string",
            "description": "Specifies the destination address in the CIDR notation format,\nfor example, 192.168.200.0/24. The destination of each route must be unique and cannot overlap with any\nsubnet in the VPC. Changing this creates a new resource.\n"
          },
          "nexthop": {
            "type": "string",
            "description": "Specifies the next hop.\n+ If the route type is **ecs**, the value is an ECS instance ID in the VPC.\n+ If the route type is **eni**, the value is the extension NIC of an ECS in the VPC.\n+ If the route type is **vip**, the value is a virtual IP address.\n+ If the route type is **nat**, the value is a VPN gateway ID.\n+ If the route type is **peering**, the value is a VPC peering connection ID.\n+ If the route type is **vpn**, the value is a VPN gateway ID.\n+ If the route type is **dc**, the value is a Direct Connect gateway ID.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the VPC route. If omitted, the provider-level\nregion will be used. Changing this creates a new resource.\n"
          },
          "routeTableId": {
            "type": "string",
            "description": "Specifies the route table ID for which a route is to be added.\nIf the value is not set, the route will be added to the *default* route table.\n"
          },
          "routeTableName": {
            "type": "string",
            "description": "The name of route table.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcRouteTimeouts:VpcRouteTimeouts"
          },
          "type": {
            "type": "string",
            "description": "Specifies the route type. Currently, the value can be:\n**ecs**, **eni**, **vip**, **nat**, **peering**, **vpn** and **dc**.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC for which a route is to be added. Changing this creates a\nnew resource.\n"
          },
          "vpcRouteId": {
            "type": "string",
            "description": "The route ID, the format is `<route_table_id>/<destination>`\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcRouteTable:VpcRouteTable": {
      "description": "Manages a VPC custom route table resource within FlexibleEngine.\n\n> **NOTE:** To use a custom route table, you need to submit a service ticket to increase quota.\n\n## Example Usage\n\n### Basic Custom Route Table\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vpcPeeringId = config.requireObject(\"vpcPeeringId\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst demo = new flexibleengine.VpcRouteTable(\"demo\", {\n    vpcId: exampleVpc.vpcV1Id,\n    description: \"a custom route table demo\",\n    routes: [{\n        destination: \"172.16.0.0/16\",\n        type: \"peering\",\n        nexthop: vpcPeeringId,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvpc_peering_id = config.require_object(\"vpcPeeringId\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\ndemo = flexibleengine.VpcRouteTable(\"demo\",\n    vpc_id=example_vpc.vpc_v1_id,\n    description=\"a custom route table demo\",\n    routes=[{\n        \"destination\": \"172.16.0.0/16\",\n        \"type\": \"peering\",\n        \"nexthop\": vpc_peering_id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcPeeringId = config.RequireObject<dynamic>(\"vpcPeeringId\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var demo = new Flexibleengine.VpcRouteTable(\"demo\", new()\n    {\n        VpcId = exampleVpc.VpcV1Id,\n        Description = \"a custom route table demo\",\n        Routes = new[]\n        {\n            new Flexibleengine.Inputs.VpcRouteTableRouteArgs\n            {\n                Destination = \"172.16.0.0/16\",\n                Type = \"peering\",\n                Nexthop = vpcPeeringId,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcPeeringId := cfg.RequireObject(\"vpcPeeringId\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcRouteTable(ctx, \"demo\", &flexibleengine.VpcRouteTableArgs{\n\t\t\tVpcId:       exampleVpc.VpcV1Id,\n\t\t\tDescription: pulumi.String(\"a custom route table demo\"),\n\t\t\tRoutes: flexibleengine.VpcRouteTableRouteArray{\n\t\t\t\t&flexibleengine.VpcRouteTableRouteArgs{\n\t\t\t\t\tDestination: pulumi.String(\"172.16.0.0/16\"),\n\t\t\t\t\tType:        pulumi.String(\"peering\"),\n\t\t\t\t\tNexthop:     pulumi.Any(vpcPeeringId),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcRouteTable;\nimport com.pulumi.flexibleengine.VpcRouteTableArgs;\nimport com.pulumi.flexibleengine.inputs.VpcRouteTableRouteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcPeeringId = config.get(\"vpcPeeringId\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var demo = new VpcRouteTable(\"demo\", VpcRouteTableArgs.builder()\n            .vpcId(exampleVpc.vpcV1Id())\n            .description(\"a custom route table demo\")\n            .routes(VpcRouteTableRouteArgs.builder()\n                .destination(\"172.16.0.0/16\")\n                .type(\"peering\")\n                .nexthop(vpcPeeringId)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcPeeringId:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  demo:\n    type: flexibleengine:VpcRouteTable\n    properties:\n      vpcId: ${exampleVpc.vpcV1Id}\n      description: a custom route table demo\n      routes:\n        - destination: 172.16.0.0/16\n          type: peering\n          nexthop: ${vpcPeeringId}\n```\n<!--End PulumiCodeChooser -->\n\n### Associating Subnets with a Route Table\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vpcPeeringId = config.requireObject(\"vpcPeeringId\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst subnetIds = flexibleengine.getVpcSubnetIdsV1Output({\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst demo = new flexibleengine.VpcRouteTable(\"demo\", {\n    vpcId: exampleVpc.vpcV1Id,\n    subnets: subnetIds.apply(subnetIds => subnetIds.ids),\n    routes: [\n        {\n            destination: \"172.16.0.0/16\",\n            type: \"peering\",\n            nexthop: vpcPeeringId,\n        },\n        {\n            destination: \"192.168.100.0/24\",\n            type: \"vip\",\n            nexthop: \"192.168.10.200\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvpc_peering_id = config.require_object(\"vpcPeeringId\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nsubnet_ids = flexibleengine.get_vpc_subnet_ids_v1_output(vpc_id=example_vpc.vpc_v1_id)\ndemo = flexibleengine.VpcRouteTable(\"demo\",\n    vpc_id=example_vpc.vpc_v1_id,\n    subnets=subnet_ids.ids,\n    routes=[\n        {\n            \"destination\": \"172.16.0.0/16\",\n            \"type\": \"peering\",\n            \"nexthop\": vpc_peering_id,\n        },\n        {\n            \"destination\": \"192.168.100.0/24\",\n            \"type\": \"vip\",\n            \"nexthop\": \"192.168.10.200\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcPeeringId = config.RequireObject<dynamic>(\"vpcPeeringId\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var subnetIds = Flexibleengine.GetVpcSubnetIdsV1.Invoke(new()\n    {\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var demo = new Flexibleengine.VpcRouteTable(\"demo\", new()\n    {\n        VpcId = exampleVpc.VpcV1Id,\n        Subnets = subnetIds.Apply(getVpcSubnetIdsV1Result => getVpcSubnetIdsV1Result.Ids),\n        Routes = new[]\n        {\n            new Flexibleengine.Inputs.VpcRouteTableRouteArgs\n            {\n                Destination = \"172.16.0.0/16\",\n                Type = \"peering\",\n                Nexthop = vpcPeeringId,\n            },\n            new Flexibleengine.Inputs.VpcRouteTableRouteArgs\n            {\n                Destination = \"192.168.100.0/24\",\n                Type = \"vip\",\n                Nexthop = \"192.168.10.200\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nvpcPeeringId := cfg.RequireObject(\"vpcPeeringId\")\nexampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\nCidr: pulumi.String(\"192.168.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\nsubnetIds := flexibleengine.GetVpcSubnetIdsV1Output(ctx, flexibleengine.GetVpcSubnetIdsV1OutputArgs{\nVpcId: exampleVpc.VpcV1Id,\n}, nil);\n_, err = flexibleengine.NewVpcRouteTable(ctx, \"demo\", &flexibleengine.VpcRouteTableArgs{\nVpcId: exampleVpc.VpcV1Id,\nSubnets: pulumi.StringArray(subnetIds.ApplyT(func(subnetIds flexibleengine.GetVpcSubnetIdsV1Result) (interface{}, error) {\nreturn subnetIds.Ids, nil\n}).(pulumi.Interface{}Output)),\nRoutes: flexibleengine.VpcRouteTableRouteArray{\n&flexibleengine.VpcRouteTableRouteArgs{\nDestination: pulumi.String(\"172.16.0.0/16\"),\nType: pulumi.String(\"peering\"),\nNexthop: pulumi.Any(vpcPeeringId),\n},\n&flexibleengine.VpcRouteTableRouteArgs{\nDestination: pulumi.String(\"192.168.100.0/24\"),\nType: pulumi.String(\"vip\"),\nNexthop: pulumi.String(\"192.168.10.200\"),\n},\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcSubnetIdsV1Args;\nimport com.pulumi.flexibleengine.VpcRouteTable;\nimport com.pulumi.flexibleengine.VpcRouteTableArgs;\nimport com.pulumi.flexibleengine.inputs.VpcRouteTableRouteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcPeeringId = config.get(\"vpcPeeringId\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        final var subnetIds = FlexibleengineFunctions.getVpcSubnetIdsV1(GetVpcSubnetIdsV1Args.builder()\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var demo = new VpcRouteTable(\"demo\", VpcRouteTableArgs.builder()\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnets(subnetIds.applyValue(getVpcSubnetIdsV1Result -> getVpcSubnetIdsV1Result).applyValue(subnetIds -> subnetIds.applyValue(getVpcSubnetIdsV1Result -> getVpcSubnetIdsV1Result.ids())))\n            .routes(            \n                VpcRouteTableRouteArgs.builder()\n                    .destination(\"172.16.0.0/16\")\n                    .type(\"peering\")\n                    .nexthop(vpcPeeringId)\n                    .build(),\n                VpcRouteTableRouteArgs.builder()\n                    .destination(\"192.168.100.0/24\")\n                    .type(\"vip\")\n                    .nexthop(\"192.168.10.200\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcPeeringId:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  demo:\n    type: flexibleengine:VpcRouteTable\n    properties:\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnets: ${subnetIds.ids}\n      routes:\n        - destination: 172.16.0.0/16\n          type: peering\n          nexthop: ${vpcPeeringId}\n        - destination: 192.168.100.0/24\n          type: vip\n          nexthop: 192.168.10.200\nvariables:\n  subnetIds:\n    fn::invoke:\n      function: flexibleengine:getVpcSubnetIdsV1\n      arguments:\n        vpcId: ${exampleVpc.vpcV1Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nvpc route tables can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/vpcRouteTable:VpcRouteTable demo e1b3208a-544b-42a7-84e6-5d70371dd982\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "Specifies the supplementary information about the route.\nThe value is a string of no more than 255 characters and cannot contain angle brackets (< or >).\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the route table name. The value is a string of no more than\n64 characters that can contain letters, digits, underscores (_), hyphens (-), and periods (.).\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the vpc route table.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "routes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FVpcRouteTableRoute:VpcRouteTableRoute"
          },
          "description": "Specifies the route object list. The route object\nis documented below.\n\n<a name=\"route_object\"></a>\nThe `route` block supports:\n"
        },
        "subnets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of one or more subnets associating with the route table.\n\n> **NOTE:** The custom route table associated with a subnet affects only the outbound traffic.\nThe default route table determines the inbound traffic.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcRouteTableTimeouts:VpcRouteTableTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID for which a route table is to be added.\nChanging this creates a new resource.\n"
        },
        "vpcRouteTableId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "region",
        "vpcId",
        "vpcRouteTableId"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Specifies the supplementary information about the route.\nThe value is a string of no more than 255 characters and cannot contain angle brackets (< or >).\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the route table name. The value is a string of no more than\n64 characters that can contain letters, digits, underscores (_), hyphens (-), and periods (.).\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the vpc route table.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "routes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FVpcRouteTableRoute:VpcRouteTableRoute"
          },
          "description": "Specifies the route object list. The route object\nis documented below.\n\n<a name=\"route_object\"></a>\nThe `route` block supports:\n"
        },
        "subnets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of one or more subnets associating with the route table.\n\n> **NOTE:** The custom route table associated with a subnet affects only the outbound traffic.\nThe default route table determines the inbound traffic.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcRouteTableTimeouts:VpcRouteTableTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC ID for which a route table is to be added.\nChanging this creates a new resource.\n"
        },
        "vpcRouteTableId": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcRouteTable resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies the supplementary information about the route.\nThe value is a string of no more than 255 characters and cannot contain angle brackets (< or >).\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the route table name. The value is a string of no more than\n64 characters that can contain letters, digits, underscores (_), hyphens (-), and periods (.).\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the vpc route table.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
          },
          "routes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FVpcRouteTableRoute:VpcRouteTableRoute"
            },
            "description": "Specifies the route object list. The route object\nis documented below.\n\n<a name=\"route_object\"></a>\nThe `route` block supports:\n"
          },
          "subnets": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies an array of one or more subnets associating with the route table.\n\n> **NOTE:** The custom route table associated with a subnet affects only the outbound traffic.\nThe default route table determines the inbound traffic.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcRouteTableTimeouts:VpcRouteTableTimeouts"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC ID for which a route table is to be added.\nChanging this creates a new resource.\n"
          },
          "vpcRouteTableId": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcRouteV2:VpcRouteV2": {
      "description": "!> **WARNING:** It has been deprecated, use `flexibleengine.VpcRoute` instead.\n\nProvides a resource to create a route.\n\n## Example Usage\n\n <!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst vpcRoute = new flexibleengine.VpcRouteV2(\"vpcRoute\", {\n    type: \"peering\",\n    nexthop: _var.nexthop,\n    destination: \"192.168.0.0/16\",\n    vpcId: _var.vpc_id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nvpc_route = flexibleengine.VpcRouteV2(\"vpcRoute\",\n    type=\"peering\",\n    nexthop=var[\"nexthop\"],\n    destination=\"192.168.0.0/16\",\n    vpc_id=var[\"vpc_id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var vpcRoute = new Flexibleengine.VpcRouteV2(\"vpcRoute\", new()\n    {\n        Type = \"peering\",\n        Nexthop = @var.Nexthop,\n        Destination = \"192.168.0.0/16\",\n        VpcId = @var.Vpc_id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewVpcRouteV2(ctx, \"vpcRoute\", &flexibleengine.VpcRouteV2Args{\n\t\t\tType:        pulumi.String(\"peering\"),\n\t\t\tNexthop:     pulumi.Any(_var.Nexthop),\n\t\t\tDestination: pulumi.String(\"192.168.0.0/16\"),\n\t\t\tVpcId:       pulumi.Any(_var.Vpc_id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcRouteV2;\nimport com.pulumi.flexibleengine.VpcRouteV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vpcRoute = new VpcRouteV2(\"vpcRoute\", VpcRouteV2Args.builder()\n            .type(\"peering\")\n            .nexthop(var_.nexthop())\n            .destination(\"192.168.0.0/16\")\n            .vpcId(var_.vpc_id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpcRoute:\n    type: flexibleengine:VpcRouteV2\n    properties:\n      type: peering\n      nexthop: ${var.nexthop}\n      destination: 192.168.0.0/16\n      vpcId: ${var.vpc_id}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "destination": {
          "type": "string",
          "description": "Specifies the destination IP address or CIDR block.\nChanging this creates a new Route.\n"
        },
        "nexthop": {
          "type": "string",
          "description": "Specifies the next hop.\nIf the route type is peering, enter the VPC peering connection ID.\nChanging this creates a new Route.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the VPC route table.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "Specifies the tenant ID.\nOnly the administrator can specify the tenant ID of other tenant. Changing this creates a new Route.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcRouteV2Timeouts:VpcRouteV2Timeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the route type. Currently, the value can only be **peering**.\nChanging this creates a new Route.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC for which a route is to be added.\nChanging this creates a new Route.\n"
        },
        "vpcRouteV2Id": {
          "type": "string",
          "description": "The route ID.\n"
        }
      },
      "type": "object",
      "required": [
        "destination",
        "nexthop",
        "region",
        "tenantId",
        "type",
        "vpcId",
        "vpcRouteV2Id"
      ],
      "inputProperties": {
        "destination": {
          "type": "string",
          "description": "Specifies the destination IP address or CIDR block.\nChanging this creates a new Route.\n"
        },
        "nexthop": {
          "type": "string",
          "description": "Specifies the next hop.\nIf the route type is peering, enter the VPC peering connection ID.\nChanging this creates a new Route.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the VPC route table.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "tenantId": {
          "type": "string",
          "description": "Specifies the tenant ID.\nOnly the administrator can specify the tenant ID of other tenant. Changing this creates a new Route.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcRouteV2Timeouts:VpcRouteV2Timeouts"
        },
        "type": {
          "type": "string",
          "description": "Specifies the route type. Currently, the value can only be **peering**.\nChanging this creates a new Route.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the VPC for which a route is to be added.\nChanging this creates a new Route.\n"
        },
        "vpcRouteV2Id": {
          "type": "string",
          "description": "The route ID.\n"
        }
      },
      "requiredInputs": [
        "destination",
        "nexthop",
        "type",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcRouteV2 resources.\n",
        "properties": {
          "destination": {
            "type": "string",
            "description": "Specifies the destination IP address or CIDR block.\nChanging this creates a new Route.\n"
          },
          "nexthop": {
            "type": "string",
            "description": "Specifies the next hop.\nIf the route type is peering, enter the VPC peering connection ID.\nChanging this creates a new Route.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the VPC route table.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
          },
          "tenantId": {
            "type": "string",
            "description": "Specifies the tenant ID.\nOnly the administrator can specify the tenant ID of other tenant. Changing this creates a new Route.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcRouteV2Timeouts:VpcRouteV2Timeouts"
          },
          "type": {
            "type": "string",
            "description": "Specifies the route type. Currently, the value can only be **peering**.\nChanging this creates a new Route.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC for which a route is to be added.\nChanging this creates a new Route.\n"
          },
          "vpcRouteV2Id": {
            "type": "string",
            "description": "The route ID.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcSubnetV1:VpcSubnetV1": {
      "description": "Provides a VPC subnet resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst exampleSubnetWithTags = new flexibleengine.VpcSubnetV1(\"exampleSubnetWithTags\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nexample_subnet_with_tags = flexibleengine.VpcSubnetV1(\"exampleSubnetWithTags\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id,\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var exampleSubnetWithTags = new Flexibleengine.VpcSubnetV1(\"exampleSubnetWithTags\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnetWithTags\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var exampleSubnetWithTags = new VpcSubnetV1(\"exampleSubnetWithTags\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  exampleSubnetWithTags:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSubnets can be imported using the VPC subnet ID, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/vpcSubnetV1:VpcSubnetV1 flexibleengine_vpc_subnet_v1 4779ab1c-7c1a-44b1-a02e-93dfc361b32d\n```\n\n",
      "properties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the availability zone (AZ) to which the subnet belongs.\nThe value must be an existing AZ in the system. Changing this creates a new subnet.\n"
        },
        "cidr": {
          "type": "string",
          "description": "Specifies the network segment on which the subnet resides. The value must be in\nCIDR format and within the CIDR block of the VPC. The subnet mask cannot be greater than 28. Changing this creates a\nnew subnet.\n"
        },
        "description": {
          "type": "string",
          "description": "Provides supplementary information about the subnet.\nThe value can contain no more than 255 characters and cannot contain angle brackets (< or >).\n"
        },
        "dhcpEnable": {
          "type": "boolean",
          "description": "Specifies whether the DHCP function is enabled for the subnet. Defaults to true.\n"
        },
        "dhcpLeaseTime": {
          "type": "string"
        },
        "dnsLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the DNS server address list of a subnet. This field is required if you need to\nuse more than two DNS servers. This parameter value is the superset of both DNS server address 1 and DNS server\naddress 2.\n"
        },
        "gatewayIp": {
          "type": "string",
          "description": "Specifies the gateway of the subnet. The value must be a valid IP address\nin the subnet segment. Changing this creates a new subnet.\n"
        },
        "ipv4SubnetId": {
          "type": "string",
          "description": "The ID of the IPv4 subnet (Native OpenStack API).\n"
        },
        "ipv6Cidr": {
          "type": "string",
          "description": "The IPv6 subnet CIDR block.\n"
        },
        "ipv6Enable": {
          "type": "boolean",
          "description": "Specifies whether the IPv6 function is enabled for the subnet. Defaults to false.\n"
        },
        "ipv6Gateway": {
          "type": "string",
          "description": "The IPv6 subnet gateway.\n"
        },
        "ipv6SubnetId": {
          "type": "string",
          "description": "The ID of the IPv6 subnet (Native OpenStack API).\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the subnet name. The value is a string of 1 to 64 characters that can contain\nletters, digits, underscores (_), and hyphens (-).\n"
        },
        "ntpServerAddress": {
          "type": "string"
        },
        "primaryDns": {
          "type": "string",
          "description": "Specifies the IP address of DNS server 1 on the subnet. The value must be a valid\nIP address.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the vpc subnet. If omitted, the\nprovider-level region will be used. Changing this creates a new subnet.\n"
        },
        "secondaryDns": {
          "type": "string",
          "description": "Specifies the IP address of DNS server 2 on the subnet. The value must be a valid\nIP address.\n"
        },
        "subnetId": {
          "type": "string",
          "description": "schema: Deprecated\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the subnet.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcSubnetV1Timeouts:VpcSubnetV1Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC to which the subnet belongs. Changing this creates\na new subnet.\n"
        },
        "vpcSubnetV1Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "availabilityZone",
        "cidr",
        "dhcpLeaseTime",
        "dnsLists",
        "gatewayIp",
        "ipv4SubnetId",
        "ipv6Cidr",
        "ipv6Gateway",
        "ipv6SubnetId",
        "name",
        "primaryDns",
        "region",
        "secondaryDns",
        "subnetId",
        "vpcId",
        "vpcSubnetV1Id"
      ],
      "inputProperties": {
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the availability zone (AZ) to which the subnet belongs.\nThe value must be an existing AZ in the system. Changing this creates a new subnet.\n"
        },
        "cidr": {
          "type": "string",
          "description": "Specifies the network segment on which the subnet resides. The value must be in\nCIDR format and within the CIDR block of the VPC. The subnet mask cannot be greater than 28. Changing this creates a\nnew subnet.\n"
        },
        "description": {
          "type": "string",
          "description": "Provides supplementary information about the subnet.\nThe value can contain no more than 255 characters and cannot contain angle brackets (< or >).\n"
        },
        "dhcpEnable": {
          "type": "boolean",
          "description": "Specifies whether the DHCP function is enabled for the subnet. Defaults to true.\n"
        },
        "dhcpLeaseTime": {
          "type": "string"
        },
        "dnsLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the DNS server address list of a subnet. This field is required if you need to\nuse more than two DNS servers. This parameter value is the superset of both DNS server address 1 and DNS server\naddress 2.\n"
        },
        "gatewayIp": {
          "type": "string",
          "description": "Specifies the gateway of the subnet. The value must be a valid IP address\nin the subnet segment. Changing this creates a new subnet.\n"
        },
        "ipv6Enable": {
          "type": "boolean",
          "description": "Specifies whether the IPv6 function is enabled for the subnet. Defaults to false.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the subnet name. The value is a string of 1 to 64 characters that can contain\nletters, digits, underscores (_), and hyphens (-).\n"
        },
        "ntpServerAddress": {
          "type": "string"
        },
        "primaryDns": {
          "type": "string",
          "description": "Specifies the IP address of DNS server 1 on the subnet. The value must be a valid\nIP address.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the vpc subnet. If omitted, the\nprovider-level region will be used. Changing this creates a new subnet.\n"
        },
        "secondaryDns": {
          "type": "string",
          "description": "Specifies the IP address of DNS server 2 on the subnet. The value must be a valid\nIP address.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the subnet.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcSubnetV1Timeouts:VpcSubnetV1Timeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC to which the subnet belongs. Changing this creates\na new subnet.\n"
        },
        "vpcSubnetV1Id": {
          "type": "string",
          "description": "The resource ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "cidr",
        "gatewayIp",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcSubnetV1 resources.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the availability zone (AZ) to which the subnet belongs.\nThe value must be an existing AZ in the system. Changing this creates a new subnet.\n"
          },
          "cidr": {
            "type": "string",
            "description": "Specifies the network segment on which the subnet resides. The value must be in\nCIDR format and within the CIDR block of the VPC. The subnet mask cannot be greater than 28. Changing this creates a\nnew subnet.\n"
          },
          "description": {
            "type": "string",
            "description": "Provides supplementary information about the subnet.\nThe value can contain no more than 255 characters and cannot contain angle brackets (< or >).\n"
          },
          "dhcpEnable": {
            "type": "boolean",
            "description": "Specifies whether the DHCP function is enabled for the subnet. Defaults to true.\n"
          },
          "dhcpLeaseTime": {
            "type": "string"
          },
          "dnsLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the DNS server address list of a subnet. This field is required if you need to\nuse more than two DNS servers. This parameter value is the superset of both DNS server address 1 and DNS server\naddress 2.\n"
          },
          "gatewayIp": {
            "type": "string",
            "description": "Specifies the gateway of the subnet. The value must be a valid IP address\nin the subnet segment. Changing this creates a new subnet.\n"
          },
          "ipv4SubnetId": {
            "type": "string",
            "description": "The ID of the IPv4 subnet (Native OpenStack API).\n"
          },
          "ipv6Cidr": {
            "type": "string",
            "description": "The IPv6 subnet CIDR block.\n"
          },
          "ipv6Enable": {
            "type": "boolean",
            "description": "Specifies whether the IPv6 function is enabled for the subnet. Defaults to false.\n"
          },
          "ipv6Gateway": {
            "type": "string",
            "description": "The IPv6 subnet gateway.\n"
          },
          "ipv6SubnetId": {
            "type": "string",
            "description": "The ID of the IPv6 subnet (Native OpenStack API).\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the subnet name. The value is a string of 1 to 64 characters that can contain\nletters, digits, underscores (_), and hyphens (-).\n"
          },
          "ntpServerAddress": {
            "type": "string"
          },
          "primaryDns": {
            "type": "string",
            "description": "Specifies the IP address of DNS server 1 on the subnet. The value must be a valid\nIP address.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the vpc subnet. If omitted, the\nprovider-level region will be used. Changing this creates a new subnet.\n"
          },
          "secondaryDns": {
            "type": "string",
            "description": "Specifies the IP address of DNS server 2 on the subnet. The value must be a valid\nIP address.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "schema: Deprecated\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the subnet.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcSubnetV1Timeouts:VpcSubnetV1Timeouts"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of the VPC to which the subnet belongs. Changing this creates\na new subnet.\n"
          },
          "vpcSubnetV1Id": {
            "type": "string",
            "description": "The resource ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcV1:VpcV1": {
      "description": "Manages a VPC resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleVpcWithTags = new flexibleengine.VpcV1(\"exampleVpcWithTags\", {\n    cidr: \"192.168.0.0/16\",\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_vpc_with_tags = flexibleengine.VpcV1(\"exampleVpcWithTags\",\n    cidr=\"192.168.0.0/16\",\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleVpcWithTags = new Flexibleengine.VpcV1(\"exampleVpcWithTags\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcV1(ctx, \"exampleVpcWithTags\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleVpcWithTags = new VpcV1(\"exampleVpcWithTags\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleVpcWithTags:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVPCs can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/vpcV1:VpcV1 vpc_v1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n",
      "properties": {
        "cidr": {
          "type": "string",
          "description": "Specifies the range of available subnets in the VPC. The value ranges from 10.0.0.0/8 to\n10.255.255.0/24, 172.16.0.0/12 to 172.31.255.0/24, or 192.168.0.0/16 to 192.168.255.0/24.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies supplementary information about the VPC. The value is a string of\nno more than 255 characters and cannot contain angle brackets (< or >).\n"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the VPC. The name must be unique for a tenant. The value is a string\nof no more than 64 characters and can contain digits, letters, underscores (_), and hyphens (-).\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the VPC. If omitted, the\nprovider-level region will be used. Changing this creates a new VPC resource.\n"
        },
        "routes": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FVpcV1Route:VpcV1Route"
          },
          "deprecationMessage": "Deprecated"
        },
        "secondaryCidr": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "The current status of the VPC. Possible values are as follows: CREATING, OK or ERROR.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the VPC.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcV1Timeouts:VpcV1Timeouts"
        },
        "vpcV1Id": {
          "type": "string",
          "description": "The VPC ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "cidr",
        "enterpriseProjectId",
        "name",
        "region",
        "routes",
        "status",
        "vpcV1Id"
      ],
      "inputProperties": {
        "cidr": {
          "type": "string",
          "description": "Specifies the range of available subnets in the VPC. The value ranges from 10.0.0.0/8 to\n10.255.255.0/24, 172.16.0.0/12 to 172.31.255.0/24, or 192.168.0.0/16 to 192.168.255.0/24.\n"
        },
        "description": {
          "type": "string",
          "description": "Specifies supplementary information about the VPC. The value is a string of\nno more than 255 characters and cannot contain angle brackets (< or >).\n"
        },
        "enterpriseProjectId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the VPC. The name must be unique for a tenant. The value is a string\nof no more than 64 characters and can contain digits, letters, underscores (_), and hyphens (-).\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the VPC. If omitted, the\nprovider-level region will be used. Changing this creates a new VPC resource.\n"
        },
        "secondaryCidr": {
          "type": "string"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the key/value pairs to associate with the VPC.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcV1Timeouts:VpcV1Timeouts"
        },
        "vpcV1Id": {
          "type": "string",
          "description": "The VPC ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "cidr"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcV1 resources.\n",
        "properties": {
          "cidr": {
            "type": "string",
            "description": "Specifies the range of available subnets in the VPC. The value ranges from 10.0.0.0/8 to\n10.255.255.0/24, 172.16.0.0/12 to 172.31.255.0/24, or 192.168.0.0/16 to 192.168.255.0/24.\n"
          },
          "description": {
            "type": "string",
            "description": "Specifies supplementary information about the VPC. The value is a string of\nno more than 255 characters and cannot contain angle brackets (< or >).\n"
          },
          "enterpriseProjectId": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the VPC. The name must be unique for a tenant. The value is a string\nof no more than 64 characters and can contain digits, letters, underscores (_), and hyphens (-).\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the VPC. If omitted, the\nprovider-level region will be used. Changing this creates a new VPC resource.\n"
          },
          "routes": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FVpcV1Route:VpcV1Route"
            },
            "deprecationMessage": "Deprecated"
          },
          "secondaryCidr": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "description": "The current status of the VPC. Possible values are as follows: CREATING, OK or ERROR.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the key/value pairs to associate with the VPC.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcV1Timeouts:VpcV1Timeouts"
          },
          "vpcV1Id": {
            "type": "string",
            "description": "The VPC ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcepApproval:VpcepApproval": {
      "description": "Provides a resource to manage the VPC endpoint connections.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst serviceVpcId = config.requireObject(\"serviceVpcId\");\nconst vmPort = config.requireObject(\"vmPort\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst demoVpcepService = new flexibleengine.VpcepService(\"demoVpcepService\", {\n    serverType: \"VM\",\n    vpcId: serviceVpcId,\n    portId: vmPort,\n    approval: true,\n    portMappings: [{\n        servicePort: 8080,\n        terminalPort: 80,\n    }],\n});\nconst demoVpcepEndpoint = new flexibleengine.VpcepEndpoint(\"demoVpcepEndpoint\", {\n    serviceId: demoVpcepService.vpcepServiceId,\n    vpcId: exampleVpc.vpcV1Id,\n    networkId: exampleSubnet.vpcSubnetV1Id,\n    enableDns: true,\n});\nconst approval = new flexibleengine.VpcepApproval(\"approval\", {\n    serviceId: demoVpcepService.vpcepServiceId,\n    endpoints: [demoVpcepEndpoint.vpcepEndpointId],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nservice_vpc_id = config.require_object(\"serviceVpcId\")\nvm_port = config.require_object(\"vmPort\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\ndemo_vpcep_service = flexibleengine.VpcepService(\"demoVpcepService\",\n    server_type=\"VM\",\n    vpc_id=service_vpc_id,\n    port_id=vm_port,\n    approval=True,\n    port_mappings=[{\n        \"service_port\": 8080,\n        \"terminal_port\": 80,\n    }])\ndemo_vpcep_endpoint = flexibleengine.VpcepEndpoint(\"demoVpcepEndpoint\",\n    service_id=demo_vpcep_service.vpcep_service_id,\n    vpc_id=example_vpc.vpc_v1_id,\n    network_id=example_subnet.vpc_subnet_v1_id,\n    enable_dns=True)\napproval = flexibleengine.VpcepApproval(\"approval\",\n    service_id=demo_vpcep_service.vpcep_service_id,\n    endpoints=[demo_vpcep_endpoint.vpcep_endpoint_id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var serviceVpcId = config.RequireObject<dynamic>(\"serviceVpcId\");\n    var vmPort = config.RequireObject<dynamic>(\"vmPort\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var demoVpcepService = new Flexibleengine.VpcepService(\"demoVpcepService\", new()\n    {\n        ServerType = \"VM\",\n        VpcId = serviceVpcId,\n        PortId = vmPort,\n        Approval = true,\n        PortMappings = new[]\n        {\n            new Flexibleengine.Inputs.VpcepServicePortMappingArgs\n            {\n                ServicePort = 8080,\n                TerminalPort = 80,\n            },\n        },\n    });\n\n    var demoVpcepEndpoint = new Flexibleengine.VpcepEndpoint(\"demoVpcepEndpoint\", new()\n    {\n        ServiceId = demoVpcepService.VpcepServiceId,\n        VpcId = exampleVpc.VpcV1Id,\n        NetworkId = exampleSubnet.VpcSubnetV1Id,\n        EnableDns = true,\n    });\n\n    var approval = new Flexibleengine.VpcepApproval(\"approval\", new()\n    {\n        ServiceId = demoVpcepService.VpcepServiceId,\n        Endpoints = new[]\n        {\n            demoVpcepEndpoint.VpcepEndpointId,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tserviceVpcId := cfg.RequireObject(\"serviceVpcId\")\n\t\tvmPort := cfg.RequireObject(\"vmPort\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdemoVpcepService, err := flexibleengine.NewVpcepService(ctx, \"demoVpcepService\", &flexibleengine.VpcepServiceArgs{\n\t\t\tServerType: pulumi.String(\"VM\"),\n\t\t\tVpcId:      pulumi.Any(serviceVpcId),\n\t\t\tPortId:     pulumi.Any(vmPort),\n\t\t\tApproval:   pulumi.Bool(true),\n\t\t\tPortMappings: flexibleengine.VpcepServicePortMappingArray{\n\t\t\t\t&flexibleengine.VpcepServicePortMappingArgs{\n\t\t\t\t\tServicePort:  pulumi.Float64(8080),\n\t\t\t\t\tTerminalPort: pulumi.Float64(80),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdemoVpcepEndpoint, err := flexibleengine.NewVpcepEndpoint(ctx, \"demoVpcepEndpoint\", &flexibleengine.VpcepEndpointArgs{\n\t\t\tServiceId: demoVpcepService.VpcepServiceId,\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t\tNetworkId: exampleSubnet.VpcSubnetV1Id,\n\t\t\tEnableDns: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcepApproval(ctx, \"approval\", &flexibleengine.VpcepApprovalArgs{\n\t\t\tServiceId: demoVpcepService.VpcepServiceId,\n\t\t\tEndpoints: pulumi.StringArray{\n\t\t\t\tdemoVpcepEndpoint.VpcepEndpointId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.VpcepService;\nimport com.pulumi.flexibleengine.VpcepServiceArgs;\nimport com.pulumi.flexibleengine.inputs.VpcepServicePortMappingArgs;\nimport com.pulumi.flexibleengine.VpcepEndpoint;\nimport com.pulumi.flexibleengine.VpcepEndpointArgs;\nimport com.pulumi.flexibleengine.VpcepApproval;\nimport com.pulumi.flexibleengine.VpcepApprovalArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var serviceVpcId = config.get(\"serviceVpcId\");\n        final var vmPort = config.get(\"vmPort\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var demoVpcepService = new VpcepService(\"demoVpcepService\", VpcepServiceArgs.builder()\n            .serverType(\"VM\")\n            .vpcId(serviceVpcId)\n            .portId(vmPort)\n            .approval(true)\n            .portMappings(VpcepServicePortMappingArgs.builder()\n                .servicePort(8080)\n                .terminalPort(80)\n                .build())\n            .build());\n\n        var demoVpcepEndpoint = new VpcepEndpoint(\"demoVpcepEndpoint\", VpcepEndpointArgs.builder()\n            .serviceId(demoVpcepService.vpcepServiceId())\n            .vpcId(exampleVpc.vpcV1Id())\n            .networkId(exampleSubnet.vpcSubnetV1Id())\n            .enableDns(true)\n            .build());\n\n        var approval = new VpcepApproval(\"approval\", VpcepApprovalArgs.builder()\n            .serviceId(demoVpcepService.vpcepServiceId())\n            .endpoints(demoVpcepEndpoint.vpcepEndpointId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  serviceVpcId:\n    type: dynamic\n  vmPort:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  demoVpcepService:\n    type: flexibleengine:VpcepService\n    properties:\n      serverType: VM\n      vpcId: ${serviceVpcId}\n      portId: ${vmPort}\n      approval: true\n      portMappings:\n        - servicePort: 8080\n          terminalPort: 80\n  demoVpcepEndpoint:\n    type: flexibleengine:VpcepEndpoint\n    properties:\n      serviceId: ${demoVpcepService.vpcepServiceId}\n      vpcId: ${exampleVpc.vpcV1Id}\n      networkId: ${exampleSubnet.vpcSubnetV1Id}\n      enableDns: true\n  approval:\n    type: flexibleengine:VpcepApproval\n    properties:\n      serviceId: ${demoVpcepService.vpcepServiceId}\n      endpoints:\n        - ${demoVpcepEndpoint.vpcepEndpointId}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "connections": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FVpcepApprovalConnection:VpcepApprovalConnection"
          },
          "description": "An array of VPC endpoints connect to the VPC endpoint service. Structure is documented below.\n"
        },
        "endpoints": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of VPC endpoint IDs which accepted to connect to VPC endpoint service.\nThe VPC endpoints will be rejected when the resource was destroyed.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "serviceId": {
          "type": "string",
          "description": "Specifies the ID of the VPC endpoint service. Changing this creates a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcepApprovalTimeouts:VpcepApprovalTimeouts"
        },
        "vpcepApprovalId": {
          "type": "string",
          "description": "The unique ID in UUID format which equals to the ID of the VPC endpoint service.\n"
        }
      },
      "type": "object",
      "required": [
        "connections",
        "endpoints",
        "region",
        "serviceId",
        "vpcepApprovalId"
      ],
      "inputProperties": {
        "endpoints": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of VPC endpoint IDs which accepted to connect to VPC endpoint service.\nThe VPC endpoints will be rejected when the resource was destroyed.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
        },
        "serviceId": {
          "type": "string",
          "description": "Specifies the ID of the VPC endpoint service. Changing this creates a new resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcepApprovalTimeouts:VpcepApprovalTimeouts"
        },
        "vpcepApprovalId": {
          "type": "string",
          "description": "The unique ID in UUID format which equals to the ID of the VPC endpoint service.\n"
        }
      },
      "requiredInputs": [
        "endpoints",
        "serviceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcepApproval resources.\n",
        "properties": {
          "connections": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FVpcepApprovalConnection:VpcepApprovalConnection"
            },
            "description": "An array of VPC endpoints connect to the VPC endpoint service. Structure is documented below.\n"
          },
          "endpoints": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the list of VPC endpoint IDs which accepted to connect to VPC endpoint service.\nThe VPC endpoints will be rejected when the resource was destroyed.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the resource.\nIf omitted, the provider-level region will be used. Changing this creates a new resource.\n"
          },
          "serviceId": {
            "type": "string",
            "description": "Specifies the ID of the VPC endpoint service. Changing this creates a new resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcepApprovalTimeouts:VpcepApprovalTimeouts"
          },
          "vpcepApprovalId": {
            "type": "string",
            "description": "The unique ID in UUID format which equals to the ID of the VPC endpoint service.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcepEndpoint:VpcepEndpoint": {
      "description": "Provides a resource to manage a VPC endpoint resource.\n\n## Example Usage\n\n### Access to the public service\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst cloudService = flexibleengine.getVpcepPublicServices({\n    serviceName: \"dns\",\n});\nconst myendpoint = new flexibleengine.VpcepEndpoint(\"myendpoint\", {\n    serviceId: cloudService.then(cloudService => cloudService.services?.[0]?.id),\n    vpcId: exampleVpc.vpcV1Id,\n    networkId: exampleSubnet.vpcSubnetV1Id,\n    enableDns: true,\n    enableWhitelist: true,\n    whitelists: [\"192.168.0.0/24\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\ncloud_service = flexibleengine.get_vpcep_public_services(service_name=\"dns\")\nmyendpoint = flexibleengine.VpcepEndpoint(\"myendpoint\",\n    service_id=cloud_service.services[0].id,\n    vpc_id=example_vpc.vpc_v1_id,\n    network_id=example_subnet.vpc_subnet_v1_id,\n    enable_dns=True,\n    enable_whitelist=True,\n    whitelists=[\"192.168.0.0/24\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var cloudService = Flexibleengine.GetVpcepPublicServices.Invoke(new()\n    {\n        ServiceName = \"dns\",\n    });\n\n    var myendpoint = new Flexibleengine.VpcepEndpoint(\"myendpoint\", new()\n    {\n        ServiceId = cloudService.Apply(getVpcepPublicServicesResult => getVpcepPublicServicesResult.Services[0]?.Id),\n        VpcId = exampleVpc.VpcV1Id,\n        NetworkId = exampleSubnet.VpcSubnetV1Id,\n        EnableDns = true,\n        EnableWhitelist = true,\n        Whitelists = new[]\n        {\n            \"192.168.0.0/24\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcloudService, err := flexibleengine.GetVpcepPublicServices(ctx, &flexibleengine.GetVpcepPublicServicesArgs{\n\t\t\tServiceName: pulumi.StringRef(\"dns\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcepEndpoint(ctx, \"myendpoint\", &flexibleengine.VpcepEndpointArgs{\n\t\t\tServiceId:       pulumi.String(cloudService.Services[0].Id),\n\t\t\tVpcId:           exampleVpc.VpcV1Id,\n\t\t\tNetworkId:       exampleSubnet.VpcSubnetV1Id,\n\t\t\tEnableDns:       pulumi.Bool(true),\n\t\t\tEnableWhitelist: pulumi.Bool(true),\n\t\t\tWhitelists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.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\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcepPublicServicesArgs;\nimport com.pulumi.flexibleengine.VpcepEndpoint;\nimport com.pulumi.flexibleengine.VpcepEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        final var cloudService = FlexibleengineFunctions.getVpcepPublicServices(GetVpcepPublicServicesArgs.builder()\n            .serviceName(\"dns\")\n            .build());\n\n        var myendpoint = new VpcepEndpoint(\"myendpoint\", VpcepEndpointArgs.builder()\n            .serviceId(cloudService.applyValue(getVpcepPublicServicesResult -> getVpcepPublicServicesResult.services()[0].id()))\n            .vpcId(exampleVpc.vpcV1Id())\n            .networkId(exampleSubnet.vpcSubnetV1Id())\n            .enableDns(true)\n            .enableWhitelist(true)\n            .whitelists(\"192.168.0.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  myendpoint:\n    type: flexibleengine:VpcepEndpoint\n    properties:\n      serviceId: ${cloudService.services[0].id}\n      vpcId: ${exampleVpc.vpcV1Id}\n      networkId: ${exampleSubnet.vpcSubnetV1Id}\n      enableDns: true\n      enableWhitelist: true\n      whitelists:\n        - 192.168.0.0/24\nvariables:\n  cloudService:\n    fn::invoke:\n      function: flexibleengine:getVpcepPublicServices\n      arguments:\n        serviceName: dns\n```\n<!--End PulumiCodeChooser -->\n\n### Access to the private service\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vmPort = config.requireObject(\"vmPort\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst demoVpcepService = new flexibleengine.VpcepService(\"demoVpcepService\", {\n    serverType: \"VM\",\n    vpcId: flexibleengine_vpc_v1.example_vpc_service.id,\n    portId: vmPort,\n    portMappings: [{\n        servicePort: 8080,\n        terminalPort: 80,\n    }],\n});\nconst demoVpcepEndpoint = new flexibleengine.VpcepEndpoint(\"demoVpcepEndpoint\", {\n    serviceId: demoVpcepService.vpcepServiceId,\n    vpcId: exampleVpc.vpcV1Id,\n    networkId: exampleSubnet.vpcSubnetV1Id,\n    enableDns: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvm_port = config.require_object(\"vmPort\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\ndemo_vpcep_service = flexibleengine.VpcepService(\"demoVpcepService\",\n    server_type=\"VM\",\n    vpc_id=flexibleengine_vpc_v1[\"example_vpc_service\"][\"id\"],\n    port_id=vm_port,\n    port_mappings=[{\n        \"service_port\": 8080,\n        \"terminal_port\": 80,\n    }])\ndemo_vpcep_endpoint = flexibleengine.VpcepEndpoint(\"demoVpcepEndpoint\",\n    service_id=demo_vpcep_service.vpcep_service_id,\n    vpc_id=example_vpc.vpc_v1_id,\n    network_id=example_subnet.vpc_subnet_v1_id,\n    enable_dns=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vmPort = config.RequireObject<dynamic>(\"vmPort\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var demoVpcepService = new Flexibleengine.VpcepService(\"demoVpcepService\", new()\n    {\n        ServerType = \"VM\",\n        VpcId = flexibleengine_vpc_v1.Example_vpc_service.Id,\n        PortId = vmPort,\n        PortMappings = new[]\n        {\n            new Flexibleengine.Inputs.VpcepServicePortMappingArgs\n            {\n                ServicePort = 8080,\n                TerminalPort = 80,\n            },\n        },\n    });\n\n    var demoVpcepEndpoint = new Flexibleengine.VpcepEndpoint(\"demoVpcepEndpoint\", new()\n    {\n        ServiceId = demoVpcepService.VpcepServiceId,\n        VpcId = exampleVpc.VpcV1Id,\n        NetworkId = exampleSubnet.VpcSubnetV1Id,\n        EnableDns = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvmPort := cfg.RequireObject(\"vmPort\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdemoVpcepService, err := flexibleengine.NewVpcepService(ctx, \"demoVpcepService\", &flexibleengine.VpcepServiceArgs{\n\t\t\tServerType: pulumi.String(\"VM\"),\n\t\t\tVpcId:      pulumi.Any(flexibleengine_vpc_v1.Example_vpc_service.Id),\n\t\t\tPortId:     pulumi.Any(vmPort),\n\t\t\tPortMappings: flexibleengine.VpcepServicePortMappingArray{\n\t\t\t\t&flexibleengine.VpcepServicePortMappingArgs{\n\t\t\t\t\tServicePort:  pulumi.Float64(8080),\n\t\t\t\t\tTerminalPort: pulumi.Float64(80),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcepEndpoint(ctx, \"demoVpcepEndpoint\", &flexibleengine.VpcepEndpointArgs{\n\t\t\tServiceId: demoVpcepService.VpcepServiceId,\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t\tNetworkId: exampleSubnet.VpcSubnetV1Id,\n\t\t\tEnableDns: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.VpcepService;\nimport com.pulumi.flexibleengine.VpcepServiceArgs;\nimport com.pulumi.flexibleengine.inputs.VpcepServicePortMappingArgs;\nimport com.pulumi.flexibleengine.VpcepEndpoint;\nimport com.pulumi.flexibleengine.VpcepEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vmPort = config.get(\"vmPort\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var demoVpcepService = new VpcepService(\"demoVpcepService\", VpcepServiceArgs.builder()\n            .serverType(\"VM\")\n            .vpcId(flexibleengine_vpc_v1.example_vpc_service().id())\n            .portId(vmPort)\n            .portMappings(VpcepServicePortMappingArgs.builder()\n                .servicePort(8080)\n                .terminalPort(80)\n                .build())\n            .build());\n\n        var demoVpcepEndpoint = new VpcepEndpoint(\"demoVpcepEndpoint\", VpcepEndpointArgs.builder()\n            .serviceId(demoVpcepService.vpcepServiceId())\n            .vpcId(exampleVpc.vpcV1Id())\n            .networkId(exampleSubnet.vpcSubnetV1Id())\n            .enableDns(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vmPort:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  demoVpcepService:\n    type: flexibleengine:VpcepService\n    properties:\n      serverType: VM\n      vpcId: ${flexibleengine_vpc_v1.example_vpc_service.id}\n      portId: ${vmPort}\n      portMappings:\n        - servicePort: 8080\n          terminalPort: 80\n  demoVpcepEndpoint:\n    type: flexibleengine:VpcepEndpoint\n    properties:\n      serviceId: ${demoVpcepService.vpcepServiceId}\n      vpcId: ${exampleVpc.vpcV1Id}\n      networkId: ${exampleSubnet.vpcSubnetV1Id}\n      enableDns: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVPC endpoint can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/vpcepEndpoint:VpcepEndpoint test 828907cc-40c9-42fe-8206-ecc1bdd30060\n```\n\n",
      "properties": {
        "enableDns": {
          "type": "boolean",
          "description": "Specifies whether to create a private domain name. The default value is true.\nChanging this creates a new VPC endpoint.\n"
        },
        "enableWhitelist": {
          "type": "boolean",
          "description": "Specifies whether to enable access control. The default value is false.\nChanging this creates a new VPC endpoint.\n"
        },
        "ipAddress": {
          "type": "string",
          "description": "Specifies the IP address for accessing the associated VPC endpoint service.\nOnly IPv4 addresses are supported. Changing this creates a new VPC endpoint.\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the network ID of the subnet in the VPC specified by `vpc_id`.\nChanging this creates a new VPC endpoint.\n"
        },
        "packetId": {
          "type": "number",
          "description": "The packet ID of the VPC endpoint.\n"
        },
        "privateDomainName": {
          "type": "string",
          "description": "The domain name for accessing the associated VPC endpoint service.\nThis parameter is only available when enable_dns is set to true.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the VPC endpoint.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC endpoint.\n"
        },
        "serviceId": {
          "type": "string",
          "description": "Specifies the ID of the VPC endpoint service.\nChanging this creates a new VPC endpoint.\n"
        },
        "serviceName": {
          "type": "string",
          "description": "The name of the VPC endpoint service.\n"
        },
        "serviceType": {
          "type": "string",
          "description": "The type of the VPC endpoint service.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the VPC endpoint. The value can be **accepted**, **pendingAcceptance** or **rejected**.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the VPC endpoint.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcepEndpointTimeouts:VpcepEndpointTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC where the VPC endpoint is to be created.\nChanging this creates a new VPC endpoint.\n"
        },
        "vpcepEndpointId": {
          "type": "string",
          "description": "The unique ID of the VPC endpoint.\n"
        },
        "whitelists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of IP address or CIDR block,\nwhich can be accessed to the VPC endpoint. Changing this creates a new VPC endpoint.\n"
        }
      },
      "type": "object",
      "required": [
        "ipAddress",
        "networkId",
        "packetId",
        "privateDomainName",
        "region",
        "serviceId",
        "serviceName",
        "serviceType",
        "status",
        "vpcId",
        "vpcepEndpointId"
      ],
      "inputProperties": {
        "enableDns": {
          "type": "boolean",
          "description": "Specifies whether to create a private domain name. The default value is true.\nChanging this creates a new VPC endpoint.\n"
        },
        "enableWhitelist": {
          "type": "boolean",
          "description": "Specifies whether to enable access control. The default value is false.\nChanging this creates a new VPC endpoint.\n"
        },
        "ipAddress": {
          "type": "string",
          "description": "Specifies the IP address for accessing the associated VPC endpoint service.\nOnly IPv4 addresses are supported. Changing this creates a new VPC endpoint.\n"
        },
        "networkId": {
          "type": "string",
          "description": "Specifies the network ID of the subnet in the VPC specified by `vpc_id`.\nChanging this creates a new VPC endpoint.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the VPC endpoint.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC endpoint.\n"
        },
        "serviceId": {
          "type": "string",
          "description": "Specifies the ID of the VPC endpoint service.\nChanging this creates a new VPC endpoint.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the VPC endpoint.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcepEndpointTimeouts:VpcepEndpointTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC where the VPC endpoint is to be created.\nChanging this creates a new VPC endpoint.\n"
        },
        "vpcepEndpointId": {
          "type": "string",
          "description": "The unique ID of the VPC endpoint.\n"
        },
        "whitelists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of IP address or CIDR block,\nwhich can be accessed to the VPC endpoint. Changing this creates a new VPC endpoint.\n"
        }
      },
      "requiredInputs": [
        "networkId",
        "serviceId",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcepEndpoint resources.\n",
        "properties": {
          "enableDns": {
            "type": "boolean",
            "description": "Specifies whether to create a private domain name. The default value is true.\nChanging this creates a new VPC endpoint.\n"
          },
          "enableWhitelist": {
            "type": "boolean",
            "description": "Specifies whether to enable access control. The default value is false.\nChanging this creates a new VPC endpoint.\n"
          },
          "ipAddress": {
            "type": "string",
            "description": "Specifies the IP address for accessing the associated VPC endpoint service.\nOnly IPv4 addresses are supported. Changing this creates a new VPC endpoint.\n"
          },
          "networkId": {
            "type": "string",
            "description": "Specifies the network ID of the subnet in the VPC specified by `vpc_id`.\nChanging this creates a new VPC endpoint.\n"
          },
          "packetId": {
            "type": "number",
            "description": "The packet ID of the VPC endpoint.\n"
          },
          "privateDomainName": {
            "type": "string",
            "description": "The domain name for accessing the associated VPC endpoint service.\nThis parameter is only available when enable_dns is set to true.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the VPC endpoint.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC endpoint.\n"
          },
          "serviceId": {
            "type": "string",
            "description": "Specifies the ID of the VPC endpoint service.\nChanging this creates a new VPC endpoint.\n"
          },
          "serviceName": {
            "type": "string",
            "description": "The name of the VPC endpoint service.\n"
          },
          "serviceType": {
            "type": "string",
            "description": "The type of the VPC endpoint service.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the VPC endpoint. The value can be **accepted**, **pendingAcceptance** or **rejected**.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the VPC endpoint.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcepEndpointTimeouts:VpcepEndpointTimeouts"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of the VPC where the VPC endpoint is to be created.\nChanging this creates a new VPC endpoint.\n"
          },
          "vpcepEndpointId": {
            "type": "string",
            "description": "The unique ID of the VPC endpoint.\n"
          },
          "whitelists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the list of IP address or CIDR block,\nwhich can be accessed to the VPC endpoint. Changing this creates a new VPC endpoint.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/vpcepService:VpcepService": {
      "description": "Provides a resource to manage a VPC endpoint service resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vmPort = config.requireObject(\"vmPort\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst demo = new flexibleengine.VpcepService(\"demo\", {\n    serverType: \"VM\",\n    vpcId: exampleVpc.vpcV1Id,\n    portId: vmPort,\n    portMappings: [{\n        servicePort: 8080,\n        terminalPort: 80,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvm_port = config.require_object(\"vmPort\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\ndemo = flexibleengine.VpcepService(\"demo\",\n    server_type=\"VM\",\n    vpc_id=example_vpc.vpc_v1_id,\n    port_id=vm_port,\n    port_mappings=[{\n        \"service_port\": 8080,\n        \"terminal_port\": 80,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vmPort = config.RequireObject<dynamic>(\"vmPort\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var demo = new Flexibleengine.VpcepService(\"demo\", new()\n    {\n        ServerType = \"VM\",\n        VpcId = exampleVpc.VpcV1Id,\n        PortId = vmPort,\n        PortMappings = new[]\n        {\n            new Flexibleengine.Inputs.VpcepServicePortMappingArgs\n            {\n                ServicePort = 8080,\n                TerminalPort = 80,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvmPort := cfg.RequireObject(\"vmPort\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcepService(ctx, \"demo\", &flexibleengine.VpcepServiceArgs{\n\t\t\tServerType: pulumi.String(\"VM\"),\n\t\t\tVpcId:      exampleVpc.VpcV1Id,\n\t\t\tPortId:     pulumi.Any(vmPort),\n\t\t\tPortMappings: flexibleengine.VpcepServicePortMappingArray{\n\t\t\t\t&flexibleengine.VpcepServicePortMappingArgs{\n\t\t\t\t\tServicePort:  pulumi.Float64(8080),\n\t\t\t\t\tTerminalPort: pulumi.Float64(80),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcepService;\nimport com.pulumi.flexibleengine.VpcepServiceArgs;\nimport com.pulumi.flexibleengine.inputs.VpcepServicePortMappingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vmPort = config.get(\"vmPort\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var demo = new VpcepService(\"demo\", VpcepServiceArgs.builder()\n            .serverType(\"VM\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .portId(vmPort)\n            .portMappings(VpcepServicePortMappingArgs.builder()\n                .servicePort(8080)\n                .terminalPort(80)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vmPort:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  demo:\n    type: flexibleengine:VpcepService\n    properties:\n      serverType: VM\n      vpcId: ${exampleVpc.vpcV1Id}\n      portId: ${vmPort}\n      portMappings:\n        - servicePort: 8080\n          terminalPort: 80\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVPC endpoint services can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/vpcepService:VpcepService test_service 950cd3ba-9d0e-4451-97c1-3e97dd515d46\n```\n\n",
      "properties": {
        "approval": {
          "type": "boolean",
          "description": "Specifies whether connection approval is required. The default value is false.\n"
        },
        "connections": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FVpcepServiceConnection:VpcepServiceConnection"
          },
          "description": "An array of VPC endpoints connect to the VPC endpoint service. Structure is documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the VPC endpoint service. The value contains a maximum of\n16 characters, including letters, digits, underscores (_), and hyphens (-).\n"
        },
        "permissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of accounts to access the VPC endpoint service.\nThe record is in the `iam:domain::domain_id` format, while `*` allows all users to access the VPC endpoint service.\n"
        },
        "portId": {
          "type": "string",
          "description": "Specifies the ID for identifying the backend resource of the VPC endpoint service.\n- If the `server_type` is **VM**, the value is the NIC ID of the ECS where the VPC endpoint service is deployed.\n- If the `server_type` is **VIP**, the value is the NIC ID of the physical server where virtual resources are created.\n- If the `server_type` is **LB**, the value is the ID of the port bound to the private IP address of the load balancer.\n"
        },
        "portMappings": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FVpcepServicePortMapping:VpcepServicePortMapping"
          },
          "description": "Specified the port mappings opened to the VPC endpoint service.\nStructure is documented below.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the VPC endpoint service.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC endpoint service resource.\n"
        },
        "serverType": {
          "type": "string",
          "description": "Specifies the backend resource type. The value can be **VM**, **VIP** or **LB**.\nChanging this creates a new VPC endpoint service.\n"
        },
        "serviceName": {
          "type": "string",
          "description": "The full name of the VPC endpoint service in the format: *region.name.id*.\n"
        },
        "serviceType": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "The connection status of the VPC endpoint.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the VPC endpoint service.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcepServiceTimeouts:VpcepServiceTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC to which the backend resource of\nthe VPC endpoint service belongs. Changing this creates a new VPC endpoint service.\n"
        },
        "vpcepServiceId": {
          "type": "string",
          "description": "The unique ID of the VPC endpoint service.\n"
        }
      },
      "type": "object",
      "required": [
        "approval",
        "connections",
        "name",
        "portId",
        "portMappings",
        "region",
        "serverType",
        "serviceName",
        "status",
        "vpcId",
        "vpcepServiceId"
      ],
      "inputProperties": {
        "approval": {
          "type": "boolean",
          "description": "Specifies whether connection approval is required. The default value is false.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the VPC endpoint service. The value contains a maximum of\n16 characters, including letters, digits, underscores (_), and hyphens (-).\n"
        },
        "permissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the list of accounts to access the VPC endpoint service.\nThe record is in the `iam:domain::domain_id` format, while `*` allows all users to access the VPC endpoint service.\n"
        },
        "portId": {
          "type": "string",
          "description": "Specifies the ID for identifying the backend resource of the VPC endpoint service.\n- If the `server_type` is **VM**, the value is the NIC ID of the ECS where the VPC endpoint service is deployed.\n- If the `server_type` is **VIP**, the value is the NIC ID of the physical server where virtual resources are created.\n- If the `server_type` is **LB**, the value is the ID of the port bound to the private IP address of the load balancer.\n"
        },
        "portMappings": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FVpcepServicePortMapping:VpcepServicePortMapping"
          },
          "description": "Specified the port mappings opened to the VPC endpoint service.\nStructure is documented below.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the VPC endpoint service.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC endpoint service resource.\n"
        },
        "serverType": {
          "type": "string",
          "description": "Specifies the backend resource type. The value can be **VM**, **VIP** or **LB**.\nChanging this creates a new VPC endpoint service.\n"
        },
        "serviceType": {
          "type": "string"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key/value pairs to associate with the VPC endpoint service.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FVpcepServiceTimeouts:VpcepServiceTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "Specifies the ID of the VPC to which the backend resource of\nthe VPC endpoint service belongs. Changing this creates a new VPC endpoint service.\n"
        },
        "vpcepServiceId": {
          "type": "string",
          "description": "The unique ID of the VPC endpoint service.\n"
        }
      },
      "requiredInputs": [
        "portId",
        "portMappings",
        "serverType",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpcepService resources.\n",
        "properties": {
          "approval": {
            "type": "boolean",
            "description": "Specifies whether connection approval is required. The default value is false.\n"
          },
          "connections": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FVpcepServiceConnection:VpcepServiceConnection"
            },
            "description": "An array of VPC endpoints connect to the VPC endpoint service. Structure is documented below.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the VPC endpoint service. The value contains a maximum of\n16 characters, including letters, digits, underscores (_), and hyphens (-).\n"
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the list of accounts to access the VPC endpoint service.\nThe record is in the `iam:domain::domain_id` format, while `*` allows all users to access the VPC endpoint service.\n"
          },
          "portId": {
            "type": "string",
            "description": "Specifies the ID for identifying the backend resource of the VPC endpoint service.\n- If the `server_type` is **VM**, the value is the NIC ID of the ECS where the VPC endpoint service is deployed.\n- If the `server_type` is **VIP**, the value is the NIC ID of the physical server where virtual resources are created.\n- If the `server_type` is **LB**, the value is the ID of the port bound to the private IP address of the load balancer.\n"
          },
          "portMappings": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FVpcepServicePortMapping:VpcepServicePortMapping"
            },
            "description": "Specified the port mappings opened to the VPC endpoint service.\nStructure is documented below.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the VPC endpoint service.\nIf omitted, the provider-level region will be used. Changing this creates a new VPC endpoint service resource.\n"
          },
          "serverType": {
            "type": "string",
            "description": "Specifies the backend resource type. The value can be **VM**, **VIP** or **LB**.\nChanging this creates a new VPC endpoint service.\n"
          },
          "serviceName": {
            "type": "string",
            "description": "The full name of the VPC endpoint service in the format: *region.name.id*.\n"
          },
          "serviceType": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "description": "The connection status of the VPC endpoint.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The key/value pairs to associate with the VPC endpoint service.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FVpcepServiceTimeouts:VpcepServiceTimeouts"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of the VPC to which the backend resource of\nthe VPC endpoint service belongs. Changing this creates a new VPC endpoint service.\n"
          },
          "vpcepServiceId": {
            "type": "string",
            "description": "The unique ID of the VPC endpoint service.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/wafCertificate:WafCertificate": {
      "description": "Manages a WAF certificate resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst certificate1 = new flexibleengine.WafCertificate(\"certificate1\", {\n    certificate: `-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n\n`,\n    privateKey: `-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ncertificate1 = flexibleengine.WafCertificate(\"certificate1\",\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n\n\"\"\",\n    private_key=\"\"\"-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var certificate1 = new Flexibleengine.WafCertificate(\"certificate1\", new()\n    {\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n\n\",\n        PrivateKey = @\"-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewWafCertificate(ctx, \"certificate1\", &flexibleengine.WafCertificateArgs{\n\t\t\tCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n\n`),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.WafCertificate;\nimport com.pulumi.flexibleengine.WafCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var certificate1 = new WafCertificate(\"certificate1\", WafCertificateArgs.builder()\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n\n            \"\"\")\n            .privateKey(\"\"\"\n-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  certificate1:\n    type: flexibleengine:WafCertificate\n    properties:\n      certificate: |+\n        -----BEGIN CERTIFICATE-----\n        MIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\n        BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n        ...\n        dKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n        -----END CERTIFICATE-----\n\n      privateKey: |+\n        -----BEGIN PRIVATE KEY-----\n        MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n        5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n        ...\n        s9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n        +4sM7kp0qO3/p+45HykwBY5iHq3H\n        -----END PRIVATE KEY-----\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCertificates can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/wafCertificate:WafCertificate cert_1 9251a0ed5aa640b68a35cf2eb6a3b733\n```\n\nNote that the imported state is not identical to your resource definition, due to security reason.\n\nThe missing attributes include `certificate`, and `private_key`. You can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_waf_certificate\" \"cert_1\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      certificate, private_key,\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "certificate": {
          "type": "string",
          "description": "Specifies the certificate content. Changing this creates a new certificate.\n"
        },
        "expiration": {
          "type": "string",
          "description": "Indicates the time when the certificate expires.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the certificate name. The maximum length is 256 characters.\nOnly digits, letters, underscores(`_`), and hyphens(`-`) are allowed.\n"
        },
        "privateKey": {
          "type": "string",
          "description": "Specifies the private key. Changing this creates a new certificate.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the certificate resource.\nIf omitted, the provider-level region will be used. Changing this will create a new certificate resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FWafCertificateTimeouts:WafCertificateTimeouts"
        },
        "wafCertificateId": {
          "type": "string",
          "description": "The certificate ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "certificate",
        "expiration",
        "name",
        "privateKey",
        "region",
        "wafCertificateId"
      ],
      "inputProperties": {
        "certificate": {
          "type": "string",
          "description": "Specifies the certificate content. Changing this creates a new certificate.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the certificate name. The maximum length is 256 characters.\nOnly digits, letters, underscores(`_`), and hyphens(`-`) are allowed.\n"
        },
        "privateKey": {
          "type": "string",
          "description": "Specifies the private key. Changing this creates a new certificate.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the certificate resource.\nIf omitted, the provider-level region will be used. Changing this will create a new certificate resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FWafCertificateTimeouts:WafCertificateTimeouts"
        },
        "wafCertificateId": {
          "type": "string",
          "description": "The certificate ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "certificate",
        "privateKey"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WafCertificate resources.\n",
        "properties": {
          "certificate": {
            "type": "string",
            "description": "Specifies the certificate content. Changing this creates a new certificate.\n"
          },
          "expiration": {
            "type": "string",
            "description": "Indicates the time when the certificate expires.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the certificate name. The maximum length is 256 characters.\nOnly digits, letters, underscores(`_`), and hyphens(`-`) are allowed.\n"
          },
          "privateKey": {
            "type": "string",
            "description": "Specifies the private key. Changing this creates a new certificate.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the certificate resource.\nIf omitted, the provider-level region will be used. Changing this will create a new certificate resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FWafCertificateTimeouts:WafCertificateTimeouts"
          },
          "wafCertificateId": {
            "type": "string",
            "description": "The certificate ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/wafDedicatedCertificate:WafDedicatedCertificate": {
      "description": "Manages a WAF dedicated certificate resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst certificate1 = new flexibleengine.WafDedicatedCertificate(\"certificate1\", {\n    certificate: `-----BEGIN CERTIFICATE-----\nMIIFmQl5dh2QUAeo39TIKtadgAgh4zHx09kSgayS9Wph9LEqq7MA+2042L3J9aOa\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUR+SosWwALt6PkP0J9iOIxA6RW8gVsLwq\n...\n+HhDvD/VeOHytX3RAs2GeTOtxyAV5XpKY5r+PkyUqPJj04t3d0Fopi0gNtLpMF=\n-----END CERTIFICATE-----\n\n`,\n    privateKey: `-----BEGIN PRIVATE KEY-----\nMIIJwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAM\nATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu\n...\nhe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC\n1qoJFlcDyqSMo5iHq3HLjs\n-----END PRIVATE KEY-----\n\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ncertificate1 = flexibleengine.WafDedicatedCertificate(\"certificate1\",\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIIFmQl5dh2QUAeo39TIKtadgAgh4zHx09kSgayS9Wph9LEqq7MA+2042L3J9aOa\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUR+SosWwALt6PkP0J9iOIxA6RW8gVsLwq\n...\n+HhDvD/VeOHytX3RAs2GeTOtxyAV5XpKY5r+PkyUqPJj04t3d0Fopi0gNtLpMF=\n-----END CERTIFICATE-----\n\n\"\"\",\n    private_key=\"\"\"-----BEGIN PRIVATE KEY-----\nMIIJwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAM\nATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu\n...\nhe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC\n1qoJFlcDyqSMo5iHq3HLjs\n-----END PRIVATE KEY-----\n\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var certificate1 = new Flexibleengine.WafDedicatedCertificate(\"certificate1\", new()\n    {\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIIFmQl5dh2QUAeo39TIKtadgAgh4zHx09kSgayS9Wph9LEqq7MA+2042L3J9aOa\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUR+SosWwALt6PkP0J9iOIxA6RW8gVsLwq\n...\n+HhDvD/VeOHytX3RAs2GeTOtxyAV5XpKY5r+PkyUqPJj04t3d0Fopi0gNtLpMF=\n-----END CERTIFICATE-----\n\n\",\n        PrivateKey = @\"-----BEGIN PRIVATE KEY-----\nMIIJwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAM\nATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu\n...\nhe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC\n1qoJFlcDyqSMo5iHq3HLjs\n-----END PRIVATE KEY-----\n\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewWafDedicatedCertificate(ctx, \"certificate1\", &flexibleengine.WafDedicatedCertificateArgs{\n\t\t\tCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIFmQl5dh2QUAeo39TIKtadgAgh4zHx09kSgayS9Wph9LEqq7MA+2042L3J9aOa\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUR+SosWwALt6PkP0J9iOIxA6RW8gVsLwq\n...\n+HhDvD/VeOHytX3RAs2GeTOtxyAV5XpKY5r+PkyUqPJj04t3d0Fopi0gNtLpMF=\n-----END CERTIFICATE-----\n\n`),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN PRIVATE KEY-----\nMIIJwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAM\nATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu\n...\nhe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC\n1qoJFlcDyqSMo5iHq3HLjs\n-----END PRIVATE KEY-----\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.WafDedicatedCertificate;\nimport com.pulumi.flexibleengine.WafDedicatedCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var certificate1 = new WafDedicatedCertificate(\"certificate1\", WafDedicatedCertificateArgs.builder()\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIFmQl5dh2QUAeo39TIKtadgAgh4zHx09kSgayS9Wph9LEqq7MA+2042L3J9aOa\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUR+SosWwALt6PkP0J9iOIxA6RW8gVsLwq\n...\n+HhDvD/VeOHytX3RAs2GeTOtxyAV5XpKY5r+PkyUqPJj04t3d0Fopi0gNtLpMF=\n-----END CERTIFICATE-----\n\n            \"\"\")\n            .privateKey(\"\"\"\n-----BEGIN PRIVATE KEY-----\nMIIJwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAM\nATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu\n...\nhe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC\n1qoJFlcDyqSMo5iHq3HLjs\n-----END PRIVATE KEY-----\n\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  certificate1:\n    type: flexibleengine:WafDedicatedCertificate\n    properties:\n      certificate: |+\n        -----BEGIN CERTIFICATE-----\n        MIIFmQl5dh2QUAeo39TIKtadgAgh4zHx09kSgayS9Wph9LEqq7MA+2042L3J9aOa\n        DAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUR+SosWwALt6PkP0J9iOIxA6RW8gVsLwq\n        ...\n        +HhDvD/VeOHytX3RAs2GeTOtxyAV5XpKY5r+PkyUqPJj04t3d0Fopi0gNtLpMF=\n        -----END CERTIFICATE-----\n\n      privateKey: |+\n        -----BEGIN PRIVATE KEY-----\n        MIIJwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAM\n        ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu\n        ...\n        he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC\n        1qoJFlcDyqSMo5iHq3HLjs\n        -----END PRIVATE KEY-----\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCertificates can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/wafDedicatedCertificate:WafDedicatedCertificate certificate_2 3ebd3201238d41f9bfc3623b61435954\n```\n\nNote that the imported state is not identical to your resource definition, due to security reason. The missing\n\nattributes include `certificate`, and `private_key`. You can ignore changes as below.\n\nhcl\n\nresource \"flexibleengine_waf_dedicated_certificate\" \"certificate_2\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      certificate, private_key\n\n    ]\n\n  }\n\n}\n\n",
      "properties": {
        "certificate": {
          "type": "string",
          "description": "Specifies the certificate content. Changing this creates a new\ncertificate.\n"
        },
        "expiration": {
          "type": "string",
          "description": "Indicates the time when the certificate expires.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the certificate name. The maximum length is 256 characters. Only digits,\nletters, underscores(`_`), and hyphens(`-`) are allowed.\n"
        },
        "privateKey": {
          "type": "string",
          "description": "Specifies the private key. Changing this creates a new certificate.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the WAF certificate resource. If omitted, the\nprovider-level region will be used. Changing this setting will push a new certificate.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FWafDedicatedCertificateTimeouts:WafDedicatedCertificateTimeouts"
        },
        "wafDedicatedCertificateId": {
          "type": "string",
          "description": "The certificate ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "certificate",
        "expiration",
        "name",
        "privateKey",
        "region",
        "wafDedicatedCertificateId"
      ],
      "inputProperties": {
        "certificate": {
          "type": "string",
          "description": "Specifies the certificate content. Changing this creates a new\ncertificate.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the certificate name. The maximum length is 256 characters. Only digits,\nletters, underscores(`_`), and hyphens(`-`) are allowed.\n"
        },
        "privateKey": {
          "type": "string",
          "description": "Specifies the private key. Changing this creates a new certificate.\n"
        },
        "region": {
          "type": "string",
          "description": "The region in which to create the WAF certificate resource. If omitted, the\nprovider-level region will be used. Changing this setting will push a new certificate.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FWafDedicatedCertificateTimeouts:WafDedicatedCertificateTimeouts"
        },
        "wafDedicatedCertificateId": {
          "type": "string",
          "description": "The certificate ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "certificate",
        "privateKey"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WafDedicatedCertificate resources.\n",
        "properties": {
          "certificate": {
            "type": "string",
            "description": "Specifies the certificate content. Changing this creates a new\ncertificate.\n"
          },
          "expiration": {
            "type": "string",
            "description": "Indicates the time when the certificate expires.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the certificate name. The maximum length is 256 characters. Only digits,\nletters, underscores(`_`), and hyphens(`-`) are allowed.\n"
          },
          "privateKey": {
            "type": "string",
            "description": "Specifies the private key. Changing this creates a new certificate.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to create the WAF certificate resource. If omitted, the\nprovider-level region will be used. Changing this setting will push a new certificate.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FWafDedicatedCertificateTimeouts:WafDedicatedCertificateTimeouts"
          },
          "wafDedicatedCertificateId": {
            "type": "string",
            "description": "The certificate ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/wafDedicatedDomain:WafDedicatedDomain": {
      "description": "Manages a dedicated mode domain resource within FlexibleEngine.\n\n> **NOTE:** All WAF resources depend on WAF instances, and the WAF instances need to be purchased before they can be\nused. The dedicated mode domain name resource can be used in Dedicated Mode and ELB Mode.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst certificate1 = new flexibleengine.WafDedicatedCertificate(\"certificate1\", {\n    certificate: `-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n`,\n    privateKey: `-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n`,\n});\nconst domain1 = new flexibleengine.WafDedicatedDomain(\"domain1\", {\n    domain: \"www.example.com\",\n    certificateId: certificate1.wafDedicatedCertificateId,\n    servers: [{\n        clientProtocol: \"HTTPS\",\n        serverProtocol: \"HTTP\",\n        address: \"192.168.1.100\",\n        port: 8080,\n        type: \"ipv4\",\n        vpcId: exampleVpc.vpcV1Id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\ncertificate1 = flexibleengine.WafDedicatedCertificate(\"certificate1\",\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n\"\"\",\n    private_key=\"\"\"-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n\"\"\")\ndomain1 = flexibleengine.WafDedicatedDomain(\"domain1\",\n    domain=\"www.example.com\",\n    certificate_id=certificate1.waf_dedicated_certificate_id,\n    servers=[{\n        \"client_protocol\": \"HTTPS\",\n        \"server_protocol\": \"HTTP\",\n        \"address\": \"192.168.1.100\",\n        \"port\": 8080,\n        \"type\": \"ipv4\",\n        \"vpc_id\": example_vpc.vpc_v1_id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var certificate1 = new Flexibleengine.WafDedicatedCertificate(\"certificate1\", new()\n    {\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n\",\n        PrivateKey = @\"-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n\",\n    });\n\n    var domain1 = new Flexibleengine.WafDedicatedDomain(\"domain1\", new()\n    {\n        Domain = \"www.example.com\",\n        CertificateId = certificate1.WafDedicatedCertificateId,\n        Servers = new[]\n        {\n            new Flexibleengine.Inputs.WafDedicatedDomainServerArgs\n            {\n                ClientProtocol = \"HTTPS\",\n                ServerProtocol = \"HTTP\",\n                Address = \"192.168.1.100\",\n                Port = 8080,\n                Type = \"ipv4\",\n                VpcId = exampleVpc.VpcV1Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcertificate1, err := flexibleengine.NewWafDedicatedCertificate(ctx, \"certificate1\", &flexibleengine.WafDedicatedCertificateArgs{\n\t\t\tCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n`),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewWafDedicatedDomain(ctx, \"domain1\", &flexibleengine.WafDedicatedDomainArgs{\n\t\t\tDomain:        pulumi.String(\"www.example.com\"),\n\t\t\tCertificateId: certificate1.WafDedicatedCertificateId,\n\t\t\tServers: flexibleengine.WafDedicatedDomainServerArray{\n\t\t\t\t&flexibleengine.WafDedicatedDomainServerArgs{\n\t\t\t\t\tClientProtocol: pulumi.String(\"HTTPS\"),\n\t\t\t\t\tServerProtocol: pulumi.String(\"HTTP\"),\n\t\t\t\t\tAddress:        pulumi.String(\"192.168.1.100\"),\n\t\t\t\t\tPort:           pulumi.Float64(8080),\n\t\t\t\t\tType:           pulumi.String(\"ipv4\"),\n\t\t\t\t\tVpcId:          exampleVpc.VpcV1Id,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.WafDedicatedCertificate;\nimport com.pulumi.flexibleengine.WafDedicatedCertificateArgs;\nimport com.pulumi.flexibleengine.WafDedicatedDomain;\nimport com.pulumi.flexibleengine.WafDedicatedDomainArgs;\nimport com.pulumi.flexibleengine.inputs.WafDedicatedDomainServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var certificate1 = new WafDedicatedCertificate(\"certificate1\", WafDedicatedCertificateArgs.builder()\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n            \"\"\")\n            .privateKey(\"\"\"\n-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n            \"\"\")\n            .build());\n\n        var domain1 = new WafDedicatedDomain(\"domain1\", WafDedicatedDomainArgs.builder()\n            .domain(\"www.example.com\")\n            .certificateId(certificate1.wafDedicatedCertificateId())\n            .servers(WafDedicatedDomainServerArgs.builder()\n                .clientProtocol(\"HTTPS\")\n                .serverProtocol(\"HTTP\")\n                .address(\"192.168.1.100\")\n                .port(8080)\n                .type(\"ipv4\")\n                .vpcId(exampleVpc.vpcV1Id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  certificate1:\n    type: flexibleengine:WafDedicatedCertificate\n    properties:\n      certificate: |\n        -----BEGIN CERTIFICATE-----\n        MIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\n        BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n        ...\n        dKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n        -----END CERTIFICATE-----\n      privateKey: |\n        -----BEGIN PRIVATE KEY-----\n        MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n        5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n        ...\n        s9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n        +4sM7kp0qO3/p+45HykwBY5iHq3H\n        -----END PRIVATE KEY-----\n  domain1:\n    type: flexibleengine:WafDedicatedDomain\n    properties:\n      domain: www.example.com\n      certificateId: ${certificate1.wafDedicatedCertificateId}\n      servers:\n        - clientProtocol: HTTPS\n          serverProtocol: HTTP\n          address: 192.168.1.100\n          port: 8080\n          type: ipv4\n          vpcId: ${exampleVpc.vpcV1Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDedicated mode domain can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/wafDedicatedDomain:WafDedicatedDomain domain_1 69e9a86becb4424298cc6bdeacbf69d5\n```\n\n",
      "properties": {
        "accessStatus": {
          "type": "number",
          "description": "Whether a domain name is connected to WAF. Valid values are:\n"
        },
        "alarmPage": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The alarm page of domain. Valid values are:\n"
        },
        "certificateId": {
          "type": "string",
          "description": "Specifies the certificate ID. This parameter is mandatory when `client_protocol`\nis set to HTTPS.\n"
        },
        "certificateName": {
          "type": "string",
          "description": "The name of the certificate used by the domain name.\n"
        },
        "cipher": {
          "type": "string",
          "description": "Specifies the cipher suite of domain. The options include `cipher_1`, `cipher_2`,\n`cipher_3`, `cipher_4`, `cipher_default`.\n"
        },
        "complianceCertification": {
          "type": "object",
          "additionalProperties": {
            "type": "boolean"
          },
          "description": "The compliance certifications of the domain, values are:\n"
        },
        "domain": {
          "type": "string",
          "description": "Specifies the domain name to be protected. For example, `www.example.com` or\n`*.example.com`. Changing this creates a new domain.\n"
        },
        "keepPolicy": {
          "type": "boolean",
          "description": "Specifies whether to retain the policy when deleting a domain name.\nDefaults to `true`.\n"
        },
        "pci3ds": {
          "type": "boolean",
          "description": "Specifies the status of the PCI 3DS compliance certification check. The options\ninclude `true` and `false`. This parameter must be used together with tls and cipher.\n\n> **NOTE:** Tls must be set to TLS v1.2, and cipher must be set to cipher_2. The PCI 3DS compliance certification\ncheck cannot be disabled after being enabled.\n"
        },
        "pciDss": {
          "type": "boolean",
          "description": "Specifies the status of the PCI DSS compliance certification check. The options\ninclude `true` and `false`. This parameter must be used together with tls and cipher.\n\n> **NOTE:** Tls must be set to TLS v1.2, and cipher must be set to cipher_2.\n\n<a name=\"waf_server\"></a>\nThe `server` block supports:\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the policy ID associated with the domain. If not specified,\na new policy will be created automatically. Changing this creates a new domain.\n"
        },
        "protectStatus": {
          "type": "number",
          "description": "The protection status of domain, `0`: suspended, `1`: enabled.\nDefault value is `1`.\n"
        },
        "protocol": {
          "type": "string",
          "description": "The protocol type of the client. The options are `HTTP` and `HTTPS`.\n"
        },
        "proxy": {
          "type": "boolean",
          "description": "Specifies whether a proxy is configured. Default value is `false`.\n\n> **NOTE:** WAF forwards only HTTP/S traffic. So WAF cannot serve your non-HTTP/S traffic, such as UDP, SMTP, FTP,\nand basically all other non-HTTP/S traffic. If a proxy such as public network ELB (or Nginx) has been used, set\nproxy `true` to ensure that the WAF security policy takes effect for the real source IP address.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the dedicated mode domain resource.\nIf omitted, the provider-level region will be used. Changing this will create a new dedicated mode domain resource.\n"
        },
        "servers": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FWafDedicatedDomainServer:WafDedicatedDomainServer"
          },
          "description": "The server configuration list of the domain. A maximum of 80 can be configured.\nThe server object structure is documented below.\n"
        },
        "tls": {
          "type": "string",
          "description": "Specifies the minimum required TLS version. The options include `TLS v1.0`, `TLS v1.1`,\n`TLS v1.2`.\n"
        },
        "trafficIdentifier": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The traffic identifier of domain. Valid values are:\n"
        },
        "wafDedicatedDomainId": {
          "type": "string",
          "description": "ID of the domain.\n"
        }
      },
      "type": "object",
      "required": [
        "accessStatus",
        "alarmPage",
        "certificateName",
        "cipher",
        "complianceCertification",
        "domain",
        "pci3ds",
        "pciDss",
        "policyId",
        "protectStatus",
        "protocol",
        "region",
        "servers",
        "tls",
        "trafficIdentifier",
        "wafDedicatedDomainId"
      ],
      "inputProperties": {
        "certificateId": {
          "type": "string",
          "description": "Specifies the certificate ID. This parameter is mandatory when `client_protocol`\nis set to HTTPS.\n"
        },
        "cipher": {
          "type": "string",
          "description": "Specifies the cipher suite of domain. The options include `cipher_1`, `cipher_2`,\n`cipher_3`, `cipher_4`, `cipher_default`.\n"
        },
        "domain": {
          "type": "string",
          "description": "Specifies the domain name to be protected. For example, `www.example.com` or\n`*.example.com`. Changing this creates a new domain.\n"
        },
        "keepPolicy": {
          "type": "boolean",
          "description": "Specifies whether to retain the policy when deleting a domain name.\nDefaults to `true`.\n"
        },
        "pci3ds": {
          "type": "boolean",
          "description": "Specifies the status of the PCI 3DS compliance certification check. The options\ninclude `true` and `false`. This parameter must be used together with tls and cipher.\n\n> **NOTE:** Tls must be set to TLS v1.2, and cipher must be set to cipher_2. The PCI 3DS compliance certification\ncheck cannot be disabled after being enabled.\n"
        },
        "pciDss": {
          "type": "boolean",
          "description": "Specifies the status of the PCI DSS compliance certification check. The options\ninclude `true` and `false`. This parameter must be used together with tls and cipher.\n\n> **NOTE:** Tls must be set to TLS v1.2, and cipher must be set to cipher_2.\n\n<a name=\"waf_server\"></a>\nThe `server` block supports:\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the policy ID associated with the domain. If not specified,\na new policy will be created automatically. Changing this creates a new domain.\n"
        },
        "protectStatus": {
          "type": "number",
          "description": "The protection status of domain, `0`: suspended, `1`: enabled.\nDefault value is `1`.\n"
        },
        "proxy": {
          "type": "boolean",
          "description": "Specifies whether a proxy is configured. Default value is `false`.\n\n> **NOTE:** WAF forwards only HTTP/S traffic. So WAF cannot serve your non-HTTP/S traffic, such as UDP, SMTP, FTP,\nand basically all other non-HTTP/S traffic. If a proxy such as public network ELB (or Nginx) has been used, set\nproxy `true` to ensure that the WAF security policy takes effect for the real source IP address.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the dedicated mode domain resource.\nIf omitted, the provider-level region will be used. Changing this will create a new dedicated mode domain resource.\n"
        },
        "servers": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FWafDedicatedDomainServer:WafDedicatedDomainServer"
          },
          "description": "The server configuration list of the domain. A maximum of 80 can be configured.\nThe server object structure is documented below.\n"
        },
        "tls": {
          "type": "string",
          "description": "Specifies the minimum required TLS version. The options include `TLS v1.0`, `TLS v1.1`,\n`TLS v1.2`.\n"
        },
        "wafDedicatedDomainId": {
          "type": "string",
          "description": "ID of the domain.\n"
        }
      },
      "requiredInputs": [
        "domain",
        "servers"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WafDedicatedDomain resources.\n",
        "properties": {
          "accessStatus": {
            "type": "number",
            "description": "Whether a domain name is connected to WAF. Valid values are:\n"
          },
          "alarmPage": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The alarm page of domain. Valid values are:\n"
          },
          "certificateId": {
            "type": "string",
            "description": "Specifies the certificate ID. This parameter is mandatory when `client_protocol`\nis set to HTTPS.\n"
          },
          "certificateName": {
            "type": "string",
            "description": "The name of the certificate used by the domain name.\n"
          },
          "cipher": {
            "type": "string",
            "description": "Specifies the cipher suite of domain. The options include `cipher_1`, `cipher_2`,\n`cipher_3`, `cipher_4`, `cipher_default`.\n"
          },
          "complianceCertification": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "The compliance certifications of the domain, values are:\n"
          },
          "domain": {
            "type": "string",
            "description": "Specifies the domain name to be protected. For example, `www.example.com` or\n`*.example.com`. Changing this creates a new domain.\n"
          },
          "keepPolicy": {
            "type": "boolean",
            "description": "Specifies whether to retain the policy when deleting a domain name.\nDefaults to `true`.\n"
          },
          "pci3ds": {
            "type": "boolean",
            "description": "Specifies the status of the PCI 3DS compliance certification check. The options\ninclude `true` and `false`. This parameter must be used together with tls and cipher.\n\n> **NOTE:** Tls must be set to TLS v1.2, and cipher must be set to cipher_2. The PCI 3DS compliance certification\ncheck cannot be disabled after being enabled.\n"
          },
          "pciDss": {
            "type": "boolean",
            "description": "Specifies the status of the PCI DSS compliance certification check. The options\ninclude `true` and `false`. This parameter must be used together with tls and cipher.\n\n> **NOTE:** Tls must be set to TLS v1.2, and cipher must be set to cipher_2.\n\n<a name=\"waf_server\"></a>\nThe `server` block supports:\n"
          },
          "policyId": {
            "type": "string",
            "description": "Specifies the policy ID associated with the domain. If not specified,\na new policy will be created automatically. Changing this creates a new domain.\n"
          },
          "protectStatus": {
            "type": "number",
            "description": "The protection status of domain, `0`: suspended, `1`: enabled.\nDefault value is `1`.\n"
          },
          "protocol": {
            "type": "string",
            "description": "The protocol type of the client. The options are `HTTP` and `HTTPS`.\n"
          },
          "proxy": {
            "type": "boolean",
            "description": "Specifies whether a proxy is configured. Default value is `false`.\n\n> **NOTE:** WAF forwards only HTTP/S traffic. So WAF cannot serve your non-HTTP/S traffic, such as UDP, SMTP, FTP,\nand basically all other non-HTTP/S traffic. If a proxy such as public network ELB (or Nginx) has been used, set\nproxy `true` to ensure that the WAF security policy takes effect for the real source IP address.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the dedicated mode domain resource.\nIf omitted, the provider-level region will be used. Changing this will create a new dedicated mode domain resource.\n"
          },
          "servers": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FWafDedicatedDomainServer:WafDedicatedDomainServer"
            },
            "description": "The server configuration list of the domain. A maximum of 80 can be configured.\nThe server object structure is documented below.\n"
          },
          "tls": {
            "type": "string",
            "description": "Specifies the minimum required TLS version. The options include `TLS v1.0`, `TLS v1.1`,\n`TLS v1.2`.\n"
          },
          "trafficIdentifier": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The traffic identifier of domain. Valid values are:\n"
          },
          "wafDedicatedDomainId": {
            "type": "string",
            "description": "ID of the domain.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/wafDedicatedInstance:WafDedicatedInstance": {
      "description": "Manages a WAF dedicated instance resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst azName = config.requireObject(\"azName\");\nconst ecsFlavorId = config.requireObject(\"ecsFlavorId\");\nconst exampleVpc = new flexibleengine.VpcV1(\"exampleVpc\", {cidr: \"192.168.0.0/16\"});\nconst exampleSubnet = new flexibleengine.VpcSubnetV1(\"exampleSubnet\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: exampleVpc.vpcV1Id,\n});\nconst exampleSecgroup = new flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", {description: \"My neutron security group\"});\nconst instance1 = new flexibleengine.WafDedicatedInstance(\"instance1\", {\n    availableZone: azName,\n    specificationCode: \"waf.instance.professional\",\n    ecsFlavor: ecsFlavorId,\n    vpcId: exampleVpc.vpcV1Id,\n    subnetId: exampleSubnet.vpcSubnetV1Id,\n    securityGroups: [exampleSecgroup.networkingSecgroupV2Id],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\naz_name = config.require_object(\"azName\")\necs_flavor_id = config.require_object(\"ecsFlavorId\")\nexample_vpc = flexibleengine.VpcV1(\"exampleVpc\", cidr=\"192.168.0.0/16\")\nexample_subnet = flexibleengine.VpcSubnetV1(\"exampleSubnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=example_vpc.vpc_v1_id)\nexample_secgroup = flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", description=\"My neutron security group\")\ninstance1 = flexibleengine.WafDedicatedInstance(\"instance1\",\n    available_zone=az_name,\n    specification_code=\"waf.instance.professional\",\n    ecs_flavor=ecs_flavor_id,\n    vpc_id=example_vpc.vpc_v1_id,\n    subnet_id=example_subnet.vpc_subnet_v1_id,\n    security_groups=[example_secgroup.networking_secgroup_v2_id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var azName = config.RequireObject<dynamic>(\"azName\");\n    var ecsFlavorId = config.RequireObject<dynamic>(\"ecsFlavorId\");\n    var exampleVpc = new Flexibleengine.VpcV1(\"exampleVpc\", new()\n    {\n        Cidr = \"192.168.0.0/16\",\n    });\n\n    var exampleSubnet = new Flexibleengine.VpcSubnetV1(\"exampleSubnet\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = exampleVpc.VpcV1Id,\n    });\n\n    var exampleSecgroup = new Flexibleengine.NetworkingSecgroupV2(\"exampleSecgroup\", new()\n    {\n        Description = \"My neutron security group\",\n    });\n\n    var instance1 = new Flexibleengine.WafDedicatedInstance(\"instance1\", new()\n    {\n        AvailableZone = azName,\n        SpecificationCode = \"waf.instance.professional\",\n        EcsFlavor = ecsFlavorId,\n        VpcId = exampleVpc.VpcV1Id,\n        SubnetId = exampleSubnet.VpcSubnetV1Id,\n        SecurityGroups = new[]\n        {\n            exampleSecgroup.NetworkingSecgroupV2Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tazName := cfg.RequireObject(\"azName\")\n\t\tecsFlavorId := cfg.RequireObject(\"ecsFlavorId\")\n\t\texampleVpc, err := flexibleengine.NewVpcV1(ctx, \"exampleVpc\", &flexibleengine.VpcV1Args{\n\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := flexibleengine.NewVpcSubnetV1(ctx, \"exampleSubnet\", &flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     exampleVpc.VpcV1Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecgroup, err := flexibleengine.NewNetworkingSecgroupV2(ctx, \"exampleSecgroup\", &flexibleengine.NetworkingSecgroupV2Args{\n\t\t\tDescription: pulumi.String(\"My neutron security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewWafDedicatedInstance(ctx, \"instance1\", &flexibleengine.WafDedicatedInstanceArgs{\n\t\t\tAvailableZone:     pulumi.Any(azName),\n\t\t\tSpecificationCode: pulumi.String(\"waf.instance.professional\"),\n\t\t\tEcsFlavor:         pulumi.Any(ecsFlavorId),\n\t\t\tVpcId:             exampleVpc.VpcV1Id,\n\t\t\tSubnetId:          exampleSubnet.VpcSubnetV1Id,\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\texampleSecgroup.NetworkingSecgroupV2Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.VpcV1;\nimport com.pulumi.flexibleengine.VpcV1Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2;\nimport com.pulumi.flexibleengine.NetworkingSecgroupV2Args;\nimport com.pulumi.flexibleengine.WafDedicatedInstance;\nimport com.pulumi.flexibleengine.WafDedicatedInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var azName = config.get(\"azName\");\n        final var ecsFlavorId = config.get(\"ecsFlavorId\");\n        var exampleVpc = new VpcV1(\"exampleVpc\", VpcV1Args.builder()\n            .cidr(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSubnet = new VpcSubnetV1(\"exampleSubnet\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(exampleVpc.vpcV1Id())\n            .build());\n\n        var exampleSecgroup = new NetworkingSecgroupV2(\"exampleSecgroup\", NetworkingSecgroupV2Args.builder()\n            .description(\"My neutron security group\")\n            .build());\n\n        var instance1 = new WafDedicatedInstance(\"instance1\", WafDedicatedInstanceArgs.builder()\n            .availableZone(azName)\n            .specificationCode(\"waf.instance.professional\")\n            .ecsFlavor(ecsFlavorId)\n            .vpcId(exampleVpc.vpcV1Id())\n            .subnetId(exampleSubnet.vpcSubnetV1Id())\n            .securityGroups(exampleSecgroup.networkingSecgroupV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  azName:\n    type: dynamic\n  ecsFlavorId:\n    type: dynamic\nresources:\n  exampleVpc:\n    type: flexibleengine:VpcV1\n    properties:\n      cidr: 192.168.0.0/16\n  exampleSubnet:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${exampleVpc.vpcV1Id}\n  exampleSecgroup:\n    type: flexibleengine:NetworkingSecgroupV2\n    properties:\n      description: My neutron security group\n  instance1:\n    type: flexibleengine:WafDedicatedInstance\n    properties:\n      availableZone: ${azName}\n      specificationCode: waf.instance.professional\n      ecsFlavor: ${ecsFlavorId}\n      vpcId: ${exampleVpc.vpcV1Id}\n      subnetId: ${exampleSubnet.vpcSubnetV1Id}\n      securityGroups:\n        - ${exampleSecgroup.networkingSecgroupV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nWAF dedicated instance can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/wafDedicatedInstance:WafDedicatedInstance instance_1 2f87641090206b821f07e0f6bd6\n```\n\n",
      "properties": {
        "accessStatus": {
          "type": "number",
          "description": "The access status of the instance. `0`: inaccessible, `1`: accessible.\n"
        },
        "availableZone": {
          "type": "string",
          "description": "The available zone names for the dedicated instances. It can be\nobtained through this data source `flexibleengine.getAvailabilityZones`. Changing this will create a new instance.\n"
        },
        "cpuArchitecture": {
          "type": "string",
          "description": "The ECS cpu architecture of instance, Default value is `x86`.\nChanging this will create a new instance.\n"
        },
        "ecsFlavor": {
          "type": "string",
          "description": "The flavor of the ECS used by the WAF instance. Flavors can be obtained\nthrough this data source `flexibleengine_compute_flavors`. Changing this will create a new instance.\n\n> **NOTE:** If the instance specification is the professional edition, the ECS specification should be 2U4G. If the\ninstance specification is the enterprise edition, the ECS specification should be 8U16G.\n"
        },
        "groupId": {
          "type": "string",
          "description": "The instance group ID used by the WAF dedicated instance in ELB mode.\nChanging this will create a new instance.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of WAF dedicated instance. Duplicate names are allowed, we suggest to keeping the\nname unique.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the WAF dedicated instance resource.\nIf omitted, the provider-level region will be used. Changing this will create a new WAF dedicated instance resource.\n"
        },
        "runStatus": {
          "type": "number",
          "description": "The running status of the instance. Values are:\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The security group of the instance. This is an array of security group\nids. Changing this will create a new instance.\n"
        },
        "serverId": {
          "type": "string",
          "description": "The id of the instance server.\n"
        },
        "serviceIp": {
          "type": "string",
          "description": "The ip of the instance service.\n"
        },
        "specificationCode": {
          "type": "string",
          "description": "The specification code of instance. Different specifications have\ndifferent throughput. Changing this will create a new instance. Values are:\n+ `waf.instance.professional` - The professional edition, throughput: 100 Mbit/s; QPS: 2,000 (Reference only).\n+ `waf.instance.enterprise` - The enterprise edition, throughput: 500 Mbit/s; QPS: 10,000 (Reference only).\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the VPC Subnet.\nChanging this will create a new instance.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FWafDedicatedInstanceTimeouts:WafDedicatedInstanceTimeouts"
        },
        "upgradable": {
          "type": "number",
          "description": "The instance is to support upgrades. `0`: Cannot be upgraded, `1`: Can be upgraded.\n"
        },
        "vpcId": {
          "type": "string",
          "description": "The VPC id of WAF dedicated instance. Changing this will create a new\ninstance.\n"
        },
        "wafDedicatedInstanceId": {
          "type": "string",
          "description": "The id of the instance.\n"
        }
      },
      "type": "object",
      "required": [
        "accessStatus",
        "availableZone",
        "ecsFlavor",
        "name",
        "region",
        "runStatus",
        "securityGroups",
        "serverId",
        "serviceIp",
        "specificationCode",
        "subnetId",
        "upgradable",
        "vpcId",
        "wafDedicatedInstanceId"
      ],
      "inputProperties": {
        "availableZone": {
          "type": "string",
          "description": "The available zone names for the dedicated instances. It can be\nobtained through this data source `flexibleengine.getAvailabilityZones`. Changing this will create a new instance.\n"
        },
        "cpuArchitecture": {
          "type": "string",
          "description": "The ECS cpu architecture of instance, Default value is `x86`.\nChanging this will create a new instance.\n"
        },
        "ecsFlavor": {
          "type": "string",
          "description": "The flavor of the ECS used by the WAF instance. Flavors can be obtained\nthrough this data source `flexibleengine_compute_flavors`. Changing this will create a new instance.\n\n> **NOTE:** If the instance specification is the professional edition, the ECS specification should be 2U4G. If the\ninstance specification is the enterprise edition, the ECS specification should be 8U16G.\n"
        },
        "groupId": {
          "type": "string",
          "description": "The instance group ID used by the WAF dedicated instance in ELB mode.\nChanging this will create a new instance.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of WAF dedicated instance. Duplicate names are allowed, we suggest to keeping the\nname unique.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the WAF dedicated instance resource.\nIf omitted, the provider-level region will be used. Changing this will create a new WAF dedicated instance resource.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The security group of the instance. This is an array of security group\nids. Changing this will create a new instance.\n"
        },
        "specificationCode": {
          "type": "string",
          "description": "The specification code of instance. Different specifications have\ndifferent throughput. Changing this will create a new instance. Values are:\n+ `waf.instance.professional` - The professional edition, throughput: 100 Mbit/s; QPS: 2,000 (Reference only).\n+ `waf.instance.enterprise` - The enterprise edition, throughput: 500 Mbit/s; QPS: 10,000 (Reference only).\n"
        },
        "subnetId": {
          "type": "string",
          "description": "The ID of the VPC Subnet.\nChanging this will create a new instance.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FWafDedicatedInstanceTimeouts:WafDedicatedInstanceTimeouts"
        },
        "vpcId": {
          "type": "string",
          "description": "The VPC id of WAF dedicated instance. Changing this will create a new\ninstance.\n"
        },
        "wafDedicatedInstanceId": {
          "type": "string",
          "description": "The id of the instance.\n"
        }
      },
      "requiredInputs": [
        "availableZone",
        "ecsFlavor",
        "securityGroups",
        "specificationCode",
        "subnetId",
        "vpcId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WafDedicatedInstance resources.\n",
        "properties": {
          "accessStatus": {
            "type": "number",
            "description": "The access status of the instance. `0`: inaccessible, `1`: accessible.\n"
          },
          "availableZone": {
            "type": "string",
            "description": "The available zone names for the dedicated instances. It can be\nobtained through this data source `flexibleengine.getAvailabilityZones`. Changing this will create a new instance.\n"
          },
          "cpuArchitecture": {
            "type": "string",
            "description": "The ECS cpu architecture of instance, Default value is `x86`.\nChanging this will create a new instance.\n"
          },
          "ecsFlavor": {
            "type": "string",
            "description": "The flavor of the ECS used by the WAF instance. Flavors can be obtained\nthrough this data source `flexibleengine_compute_flavors`. Changing this will create a new instance.\n\n> **NOTE:** If the instance specification is the professional edition, the ECS specification should be 2U4G. If the\ninstance specification is the enterprise edition, the ECS specification should be 8U16G.\n"
          },
          "groupId": {
            "type": "string",
            "description": "The instance group ID used by the WAF dedicated instance in ELB mode.\nChanging this will create a new instance.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of WAF dedicated instance. Duplicate names are allowed, we suggest to keeping the\nname unique.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the WAF dedicated instance resource.\nIf omitted, the provider-level region will be used. Changing this will create a new WAF dedicated instance resource.\n"
          },
          "runStatus": {
            "type": "number",
            "description": "The running status of the instance. Values are:\n"
          },
          "securityGroups": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The security group of the instance. This is an array of security group\nids. Changing this will create a new instance.\n"
          },
          "serverId": {
            "type": "string",
            "description": "The id of the instance server.\n"
          },
          "serviceIp": {
            "type": "string",
            "description": "The ip of the instance service.\n"
          },
          "specificationCode": {
            "type": "string",
            "description": "The specification code of instance. Different specifications have\ndifferent throughput. Changing this will create a new instance. Values are:\n+ `waf.instance.professional` - The professional edition, throughput: 100 Mbit/s; QPS: 2,000 (Reference only).\n+ `waf.instance.enterprise` - The enterprise edition, throughput: 500 Mbit/s; QPS: 10,000 (Reference only).\n"
          },
          "subnetId": {
            "type": "string",
            "description": "The ID of the VPC Subnet.\nChanging this will create a new instance.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FWafDedicatedInstanceTimeouts:WafDedicatedInstanceTimeouts"
          },
          "upgradable": {
            "type": "number",
            "description": "The instance is to support upgrades. `0`: Cannot be upgraded, `1`: Can be upgraded.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "The VPC id of WAF dedicated instance. Changing this will create a new\ninstance.\n"
          },
          "wafDedicatedInstanceId": {
            "type": "string",
            "description": "The id of the instance.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/wafDedicatedPolicy:WafDedicatedPolicy": {
      "description": "Manages a WAF dedicated policy resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst policy1 = new flexibleengine.WafDedicatedPolicy(\"policy1\", {\n    level: 2,\n    protectionMode: \"log\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\npolicy1 = flexibleengine.WafDedicatedPolicy(\"policy1\",\n    level=2,\n    protection_mode=\"log\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy1 = new Flexibleengine.WafDedicatedPolicy(\"policy1\", new()\n    {\n        Level = 2,\n        ProtectionMode = \"log\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewWafDedicatedPolicy(ctx, \"policy1\", &flexibleengine.WafDedicatedPolicyArgs{\n\t\t\tLevel:          pulumi.Float64(2),\n\t\t\tProtectionMode: pulumi.String(\"log\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.WafDedicatedPolicy;\nimport com.pulumi.flexibleengine.WafDedicatedPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy1 = new WafDedicatedPolicy(\"policy1\", WafDedicatedPolicyArgs.builder()\n            .level(2)\n            .protectionMode(\"log\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: flexibleengine:WafDedicatedPolicy\n    properties:\n      level: 2\n      protectionMode: log\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPolicies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/wafDedicatedPolicy:WafDedicatedPolicy policy_2 25e1df831bea4022a6e22bebe678915a\n```\n\n",
      "properties": {
        "fullDetection": {
          "type": "boolean",
          "description": "The detection mode in Precise Protection.\n"
        },
        "level": {
          "type": "number",
          "description": "Specifies the protection level. Defaults to `2`. Valid values are:\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the policy name. The maximum length is 256 characters. Only digits, letters,\nunderscores(_), and hyphens(-) are allowed.\n"
        },
        "options": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FWafDedicatedPolicyOption:WafDedicatedPolicyOption"
          },
          "description": "The protection switches. The options object structure is documented below.\n"
        },
        "protectionMode": {
          "type": "string",
          "description": "Specifies the protective action after a rule is matched. Defaults to `log`.\nValid values are:\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the WAF policy resource.\nIf omitted, the provider-level region will be used. Changing this will create a new WAF policy resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FWafDedicatedPolicyTimeouts:WafDedicatedPolicyTimeouts"
        },
        "wafDedicatedPolicyId": {
          "type": "string",
          "description": "The policy ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "fullDetection",
        "level",
        "name",
        "options",
        "protectionMode",
        "region",
        "wafDedicatedPolicyId"
      ],
      "inputProperties": {
        "level": {
          "type": "number",
          "description": "Specifies the protection level. Defaults to `2`. Valid values are:\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the policy name. The maximum length is 256 characters. Only digits, letters,\nunderscores(_), and hyphens(-) are allowed.\n"
        },
        "protectionMode": {
          "type": "string",
          "description": "Specifies the protective action after a rule is matched. Defaults to `log`.\nValid values are:\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the WAF policy resource.\nIf omitted, the provider-level region will be used. Changing this will create a new WAF policy resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FWafDedicatedPolicyTimeouts:WafDedicatedPolicyTimeouts"
        },
        "wafDedicatedPolicyId": {
          "type": "string",
          "description": "The policy ID in UUID format.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WafDedicatedPolicy resources.\n",
        "properties": {
          "fullDetection": {
            "type": "boolean",
            "description": "The detection mode in Precise Protection.\n"
          },
          "level": {
            "type": "number",
            "description": "Specifies the protection level. Defaults to `2`. Valid values are:\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the policy name. The maximum length is 256 characters. Only digits, letters,\nunderscores(_), and hyphens(-) are allowed.\n"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FWafDedicatedPolicyOption:WafDedicatedPolicyOption"
            },
            "description": "The protection switches. The options object structure is documented below.\n"
          },
          "protectionMode": {
            "type": "string",
            "description": "Specifies the protective action after a rule is matched. Defaults to `log`.\nValid values are:\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the WAF policy resource.\nIf omitted, the provider-level region will be used. Changing this will create a new WAF policy resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FWafDedicatedPolicyTimeouts:WafDedicatedPolicyTimeouts"
          },
          "wafDedicatedPolicyId": {
            "type": "string",
            "description": "The policy ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/wafDomain:WafDomain": {
      "description": "Manages a WAF domain resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst certificate1 = new flexibleengine.WafCertificate(\"certificate1\", {\n    certificate: `-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n`,\n    privateKey: `-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n`,\n});\nconst domain1 = new flexibleengine.WafDomain(\"domain1\", {\n    domain: \"www.example.com\",\n    certificateId: certificate1.wafCertificateId,\n    proxy: true,\n    sipHeaderName: \"default\",\n    sipHeaderLists: [\"X-Forwarded-For\"],\n    servers: [{\n        clientProtocol: \"HTTPS\",\n        serverProtocol: \"HTTP\",\n        address: \"90.84.181.77\",\n        port: 8080,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ncertificate1 = flexibleengine.WafCertificate(\"certificate1\",\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n\"\"\",\n    private_key=\"\"\"-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n\"\"\")\ndomain1 = flexibleengine.WafDomain(\"domain1\",\n    domain=\"www.example.com\",\n    certificate_id=certificate1.waf_certificate_id,\n    proxy=True,\n    sip_header_name=\"default\",\n    sip_header_lists=[\"X-Forwarded-For\"],\n    servers=[{\n        \"client_protocol\": \"HTTPS\",\n        \"server_protocol\": \"HTTP\",\n        \"address\": \"90.84.181.77\",\n        \"port\": 8080,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var certificate1 = new Flexibleengine.WafCertificate(\"certificate1\", new()\n    {\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n\",\n        PrivateKey = @\"-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n\",\n    });\n\n    var domain1 = new Flexibleengine.WafDomain(\"domain1\", new()\n    {\n        Domain = \"www.example.com\",\n        CertificateId = certificate1.WafCertificateId,\n        Proxy = true,\n        SipHeaderName = \"default\",\n        SipHeaderLists = new[]\n        {\n            \"X-Forwarded-For\",\n        },\n        Servers = new[]\n        {\n            new Flexibleengine.Inputs.WafDomainServerArgs\n            {\n                ClientProtocol = \"HTTPS\",\n                ServerProtocol = \"HTTP\",\n                Address = \"90.84.181.77\",\n                Port = 8080,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcertificate1, err := flexibleengine.NewWafCertificate(ctx, \"certificate1\", &flexibleengine.WafCertificateArgs{\n\t\t\tCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n`),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewWafDomain(ctx, \"domain1\", &flexibleengine.WafDomainArgs{\n\t\t\tDomain:        pulumi.String(\"www.example.com\"),\n\t\t\tCertificateId: certificate1.WafCertificateId,\n\t\t\tProxy:         pulumi.Bool(true),\n\t\t\tSipHeaderName: pulumi.String(\"default\"),\n\t\t\tSipHeaderLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"X-Forwarded-For\"),\n\t\t\t},\n\t\t\tServers: flexibleengine.WafDomainServerArray{\n\t\t\t\t&flexibleengine.WafDomainServerArgs{\n\t\t\t\t\tClientProtocol: pulumi.String(\"HTTPS\"),\n\t\t\t\t\tServerProtocol: pulumi.String(\"HTTP\"),\n\t\t\t\t\tAddress:        pulumi.String(\"90.84.181.77\"),\n\t\t\t\t\tPort:           pulumi.Float64(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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.WafCertificate;\nimport com.pulumi.flexibleengine.WafCertificateArgs;\nimport com.pulumi.flexibleengine.WafDomain;\nimport com.pulumi.flexibleengine.WafDomainArgs;\nimport com.pulumi.flexibleengine.inputs.WafDomainServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var certificate1 = new WafCertificate(\"certificate1\", WafCertificateArgs.builder()\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n            \"\"\")\n            .privateKey(\"\"\"\n-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n            \"\"\")\n            .build());\n\n        var domain1 = new WafDomain(\"domain1\", WafDomainArgs.builder()\n            .domain(\"www.example.com\")\n            .certificateId(certificate1.wafCertificateId())\n            .proxy(true)\n            .sipHeaderName(\"default\")\n            .sipHeaderLists(\"X-Forwarded-For\")\n            .servers(WafDomainServerArgs.builder()\n                .clientProtocol(\"HTTPS\")\n                .serverProtocol(\"HTTP\")\n                .address(\"90.84.181.77\")\n                .port(\"8080\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  certificate1:\n    type: flexibleengine:WafCertificate\n    properties:\n      certificate: |\n        -----BEGIN CERTIFICATE-----\n        MIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\n        BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n        ...\n        dKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n        -----END CERTIFICATE-----\n      privateKey: |\n        -----BEGIN PRIVATE KEY-----\n        MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n        5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n        ...\n        s9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n        +4sM7kp0qO3/p+45HykwBY5iHq3H\n        -----END PRIVATE KEY-----\n  domain1:\n    type: flexibleengine:WafDomain\n    properties:\n      domain: www.example.com\n      certificateId: ${certificate1.wafCertificateId}\n      proxy: true\n      sipHeaderName: default\n      sipHeaderLists:\n        - X-Forwarded-For\n      servers:\n        - clientProtocol: HTTPS\n          serverProtocol: HTTP\n          address: 90.84.181.77\n          port: '8080'\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDomains can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/wafDomain:WafDomain dom_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n",
      "properties": {
        "accessStatus": {
          "type": "number",
          "description": "Whether a domain name is connected to WAF.\n+ 0: The domain name is not connected to WAF;\n+ 1: The domain name is connected to WAF.\n"
        },
        "certificateId": {
          "type": "string",
          "description": "Specifies the certificate ID.\nThis parameter is mandatory when `client_protocol` is set to HTTPS.\n"
        },
        "cname": {
          "type": "string",
          "description": "The CNAME value.\n"
        },
        "domain": {
          "type": "string",
          "description": "Specifies the domain name to be protected. For example, `www.example.com`\nor `*.example.com`. Changing this creates a new domain.\n"
        },
        "keepPolicy": {
          "type": "boolean",
          "description": "Specifies whether to retain the policy when deleting a domain name. Defaults to true.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the policy ID associated with the domain.\nIf not specified, a new policy will be created automatically. Changing this create a new domain.\n"
        },
        "protectStatus": {
          "type": "number",
          "description": "The WAF mode. -1: bypassed, 0: disabled, 1: enabled.\n"
        },
        "protocol": {
          "type": "string",
          "description": "The protocol type of the client. The options are HTTP, HTTPS, and HTTP&HTTPS.\n"
        },
        "proxy": {
          "type": "boolean",
          "description": "Specifies whether a proxy is configured.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the domain resource.\nIf omitted, the provider-level region will be used. Changing this will create a new domain resource.\n"
        },
        "servers": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FWafDomainServer:WafDomainServer"
          },
          "description": "Specifies an array of origin web servers. The server object structure is\ndocumented below.\n"
        },
        "sipHeaderLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of HTTP request header for identifying the real source IP address.\nThis parameter is required only when proxy is set to true.\n+ If `sip_header_name` is *default*, the value is [\"X-Forwarded-For\"].\n+ If `sip_header_name` is *cloudflare*, the value is [\"CF-Connecting-IP\", \"X-Forwarded-For\"].\n+ If `sip_header_name` is *akamai*, the value is [\"True-Client-IP\"].\n+ If `sip_header_name` is *custom*, you can customize a value.\n\n<a name=\"waf_server\"></a>\nThe `server` block supports:\n"
        },
        "sipHeaderName": {
          "type": "string",
          "description": "Specifies the type of the source IP header.\nThis parameter is required only when proxy is set to true. The options are as follows:\n*default*, *cloudflare*, *akamai*, and *custom*.\n"
        },
        "subDomain": {
          "type": "string",
          "description": "The subdomain name. This attribute is returned only when proxy is set to true.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FWafDomainTimeouts:WafDomainTimeouts"
        },
        "txtCode": {
          "type": "string",
          "description": "The TXT record. This attribute is returned only when proxy is set to true.\n"
        },
        "wafDomainId": {
          "type": "string",
          "description": "ID of the domain.\n"
        }
      },
      "type": "object",
      "required": [
        "accessStatus",
        "cname",
        "domain",
        "policyId",
        "protectStatus",
        "protocol",
        "region",
        "servers",
        "subDomain",
        "txtCode",
        "wafDomainId"
      ],
      "inputProperties": {
        "certificateId": {
          "type": "string",
          "description": "Specifies the certificate ID.\nThis parameter is mandatory when `client_protocol` is set to HTTPS.\n"
        },
        "domain": {
          "type": "string",
          "description": "Specifies the domain name to be protected. For example, `www.example.com`\nor `*.example.com`. Changing this creates a new domain.\n"
        },
        "keepPolicy": {
          "type": "boolean",
          "description": "Specifies whether to retain the policy when deleting a domain name. Defaults to true.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the policy ID associated with the domain.\nIf not specified, a new policy will be created automatically. Changing this create a new domain.\n"
        },
        "proxy": {
          "type": "boolean",
          "description": "Specifies whether a proxy is configured.\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the domain resource.\nIf omitted, the provider-level region will be used. Changing this will create a new domain resource.\n"
        },
        "servers": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FWafDomainServer:WafDomainServer"
          },
          "description": "Specifies an array of origin web servers. The server object structure is\ndocumented below.\n"
        },
        "sipHeaderLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies an array of HTTP request header for identifying the real source IP address.\nThis parameter is required only when proxy is set to true.\n+ If `sip_header_name` is *default*, the value is [\"X-Forwarded-For\"].\n+ If `sip_header_name` is *cloudflare*, the value is [\"CF-Connecting-IP\", \"X-Forwarded-For\"].\n+ If `sip_header_name` is *akamai*, the value is [\"True-Client-IP\"].\n+ If `sip_header_name` is *custom*, you can customize a value.\n\n<a name=\"waf_server\"></a>\nThe `server` block supports:\n"
        },
        "sipHeaderName": {
          "type": "string",
          "description": "Specifies the type of the source IP header.\nThis parameter is required only when proxy is set to true. The options are as follows:\n*default*, *cloudflare*, *akamai*, and *custom*.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FWafDomainTimeouts:WafDomainTimeouts"
        },
        "wafDomainId": {
          "type": "string",
          "description": "ID of the domain.\n"
        }
      },
      "requiredInputs": [
        "domain",
        "servers"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WafDomain resources.\n",
        "properties": {
          "accessStatus": {
            "type": "number",
            "description": "Whether a domain name is connected to WAF.\n+ 0: The domain name is not connected to WAF;\n+ 1: The domain name is connected to WAF.\n"
          },
          "certificateId": {
            "type": "string",
            "description": "Specifies the certificate ID.\nThis parameter is mandatory when `client_protocol` is set to HTTPS.\n"
          },
          "cname": {
            "type": "string",
            "description": "The CNAME value.\n"
          },
          "domain": {
            "type": "string",
            "description": "Specifies the domain name to be protected. For example, `www.example.com`\nor `*.example.com`. Changing this creates a new domain.\n"
          },
          "keepPolicy": {
            "type": "boolean",
            "description": "Specifies whether to retain the policy when deleting a domain name. Defaults to true.\n"
          },
          "policyId": {
            "type": "string",
            "description": "Specifies the policy ID associated with the domain.\nIf not specified, a new policy will be created automatically. Changing this create a new domain.\n"
          },
          "protectStatus": {
            "type": "number",
            "description": "The WAF mode. -1: bypassed, 0: disabled, 1: enabled.\n"
          },
          "protocol": {
            "type": "string",
            "description": "The protocol type of the client. The options are HTTP, HTTPS, and HTTP&HTTPS.\n"
          },
          "proxy": {
            "type": "boolean",
            "description": "Specifies whether a proxy is configured.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the domain resource.\nIf omitted, the provider-level region will be used. Changing this will create a new domain resource.\n"
          },
          "servers": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FWafDomainServer:WafDomainServer"
            },
            "description": "Specifies an array of origin web servers. The server object structure is\ndocumented below.\n"
          },
          "sipHeaderLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies an array of HTTP request header for identifying the real source IP address.\nThis parameter is required only when proxy is set to true.\n+ If `sip_header_name` is *default*, the value is [\"X-Forwarded-For\"].\n+ If `sip_header_name` is *cloudflare*, the value is [\"CF-Connecting-IP\", \"X-Forwarded-For\"].\n+ If `sip_header_name` is *akamai*, the value is [\"True-Client-IP\"].\n+ If `sip_header_name` is *custom*, you can customize a value.\n\n<a name=\"waf_server\"></a>\nThe `server` block supports:\n"
          },
          "sipHeaderName": {
            "type": "string",
            "description": "Specifies the type of the source IP header.\nThis parameter is required only when proxy is set to true. The options are as follows:\n*default*, *cloudflare*, *akamai*, and *custom*.\n"
          },
          "subDomain": {
            "type": "string",
            "description": "The subdomain name. This attribute is returned only when proxy is set to true.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FWafDomainTimeouts:WafDomainTimeouts"
          },
          "txtCode": {
            "type": "string",
            "description": "The TXT record. This attribute is returned only when proxy is set to true.\n"
          },
          "wafDomainId": {
            "type": "string",
            "description": "ID of the domain.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/wafPolicy:WafPolicy": {
      "description": "Manages a WAF policy resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst policy1 = new flexibleengine.WafPolicy(\"policy1\", {});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\npolicy1 = flexibleengine.WafPolicy(\"policy1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy1 = new Flexibleengine.WafPolicy(\"policy1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewWafPolicy(ctx, \"policy1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.WafPolicy;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy1 = new WafPolicy(\"policy1\");\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: flexibleengine:WafPolicy\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPolicies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import flexibleengine:index/wafPolicy:WafPolicy policy_1 c5946141e52441d9b13c5e9d4e9560c7\n```\n\n",
      "properties": {
        "domains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of domain IDs.\n"
        },
        "fullDetection": {
          "type": "boolean",
          "description": "Specifies the detection mode in Precise Protection. Valid values are:\n+ *true*: full detection, Full detection finishes all threat detections before blocking requests that\nmeet Precise Protection specified conditions.\n+ *false*: instant detection. Instant detection immediately ends threat detection after blocking a request that\nmeets Precise Protection specified conditions.\n"
        },
        "level": {
          "type": "number",
          "description": "Specifies the protection level. Valid values are:\n+ *1*: low\n+ *2*: medium\n+ *3*: high\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the policy name. The maximum length is 256 characters.\nOnly digits, letters, underscores(_), and hyphens(-) are allowed.\n"
        },
        "protectionMode": {
          "type": "string",
          "description": "Specifies the protective action after a rule is matched. Valid values are:\n+ *block*: WAF blocks and logs detected attacks.\n+ *log*: WAF logs detected attacks only.\n"
        },
        "protectionStatus": {
          "$ref": "#/types/flexibleengine:index%2FWafPolicyProtectionStatus:WafPolicyProtectionStatus",
          "description": "Specifies the protection switches. The protection_status\nobject structure is documented below.\n\n<a name=\"waf_protection_status\"></a>\nThe `protection_status` block supports:\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the WAF policy resource.\nIf omitted, the provider-level region will be used. Changing this will create a new WAF policy resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FWafPolicyTimeouts:WafPolicyTimeouts"
        },
        "wafPolicyId": {
          "type": "string",
          "description": "The policy ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "domains",
        "name",
        "region",
        "wafPolicyId"
      ],
      "inputProperties": {
        "domains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of domain IDs.\n"
        },
        "fullDetection": {
          "type": "boolean",
          "description": "Specifies the detection mode in Precise Protection. Valid values are:\n+ *true*: full detection, Full detection finishes all threat detections before blocking requests that\nmeet Precise Protection specified conditions.\n+ *false*: instant detection. Instant detection immediately ends threat detection after blocking a request that\nmeets Precise Protection specified conditions.\n"
        },
        "level": {
          "type": "number",
          "description": "Specifies the protection level. Valid values are:\n+ *1*: low\n+ *2*: medium\n+ *3*: high\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the policy name. The maximum length is 256 characters.\nOnly digits, letters, underscores(_), and hyphens(-) are allowed.\n"
        },
        "protectionMode": {
          "type": "string",
          "description": "Specifies the protective action after a rule is matched. Valid values are:\n+ *block*: WAF blocks and logs detected attacks.\n+ *log*: WAF logs detected attacks only.\n"
        },
        "protectionStatus": {
          "$ref": "#/types/flexibleengine:index%2FWafPolicyProtectionStatus:WafPolicyProtectionStatus",
          "description": "Specifies the protection switches. The protection_status\nobject structure is documented below.\n\n<a name=\"waf_protection_status\"></a>\nThe `protection_status` block supports:\n"
        },
        "region": {
          "type": "string",
          "description": "Specifies the region in which to create the WAF policy resource.\nIf omitted, the provider-level region will be used. Changing this will create a new WAF policy resource.\n"
        },
        "timeouts": {
          "$ref": "#/types/flexibleengine:index%2FWafPolicyTimeouts:WafPolicyTimeouts"
        },
        "wafPolicyId": {
          "type": "string",
          "description": "The policy ID in UUID format.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WafPolicy resources.\n",
        "properties": {
          "domains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of domain IDs.\n"
          },
          "fullDetection": {
            "type": "boolean",
            "description": "Specifies the detection mode in Precise Protection. Valid values are:\n+ *true*: full detection, Full detection finishes all threat detections before blocking requests that\nmeet Precise Protection specified conditions.\n+ *false*: instant detection. Instant detection immediately ends threat detection after blocking a request that\nmeets Precise Protection specified conditions.\n"
          },
          "level": {
            "type": "number",
            "description": "Specifies the protection level. Valid values are:\n+ *1*: low\n+ *2*: medium\n+ *3*: high\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the policy name. The maximum length is 256 characters.\nOnly digits, letters, underscores(_), and hyphens(-) are allowed.\n"
          },
          "protectionMode": {
            "type": "string",
            "description": "Specifies the protective action after a rule is matched. Valid values are:\n+ *block*: WAF blocks and logs detected attacks.\n+ *log*: WAF logs detected attacks only.\n"
          },
          "protectionStatus": {
            "$ref": "#/types/flexibleengine:index%2FWafPolicyProtectionStatus:WafPolicyProtectionStatus",
            "description": "Specifies the protection switches. The protection_status\nobject structure is documented below.\n\n<a name=\"waf_protection_status\"></a>\nThe `protection_status` block supports:\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to create the WAF policy resource.\nIf omitted, the provider-level region will be used. Changing this will create a new WAF policy resource.\n"
          },
          "timeouts": {
            "$ref": "#/types/flexibleengine:index%2FWafPolicyTimeouts:WafPolicyTimeouts"
          },
          "wafPolicyId": {
            "type": "string",
            "description": "The policy ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/wafRuleAlarmMasking:WafRuleAlarmMasking": {
      "description": "Manages a WAF False Alarm Masking Rule resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst policy1 = new flexibleengine.WafPolicy(\"policy1\", {});\nconst rule1 = new flexibleengine.WafRuleAlarmMasking(\"rule1\", {\n    policyId: policy1.wafPolicyId,\n    path: \"/a\",\n    eventId: \"3737fb122f2140f39292f597ad3b7e9a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\npolicy1 = flexibleengine.WafPolicy(\"policy1\")\nrule1 = flexibleengine.WafRuleAlarmMasking(\"rule1\",\n    policy_id=policy1.waf_policy_id,\n    path=\"/a\",\n    event_id=\"3737fb122f2140f39292f597ad3b7e9a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy1 = new Flexibleengine.WafPolicy(\"policy1\");\n\n    var rule1 = new Flexibleengine.WafRuleAlarmMasking(\"rule1\", new()\n    {\n        PolicyId = policy1.WafPolicyId,\n        Path = \"/a\",\n        EventId = \"3737fb122f2140f39292f597ad3b7e9a\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpolicy1, err := flexibleengine.NewWafPolicy(ctx, \"policy1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewWafRuleAlarmMasking(ctx, \"rule1\", &flexibleengine.WafRuleAlarmMaskingArgs{\n\t\t\tPolicyId: policy1.WafPolicyId,\n\t\t\tPath:     pulumi.String(\"/a\"),\n\t\t\tEventId:  pulumi.String(\"3737fb122f2140f39292f597ad3b7e9a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.WafPolicy;\nimport com.pulumi.flexibleengine.WafRuleAlarmMasking;\nimport com.pulumi.flexibleengine.WafRuleAlarmMaskingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy1 = new WafPolicy(\"policy1\");\n\n        var rule1 = new WafRuleAlarmMasking(\"rule1\", WafRuleAlarmMaskingArgs.builder()\n            .policyId(policy1.wafPolicyId())\n            .path(\"/a\")\n            .eventId(\"3737fb122f2140f39292f597ad3b7e9a\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: flexibleengine:WafPolicy\n  rule1:\n    type: flexibleengine:WafRuleAlarmMasking\n    properties:\n      policyId: ${policy1.wafPolicyId}\n      path: /a\n      eventId: 3737fb122f2140f39292f597ad3b7e9a\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAlarm Masking Rules can be imported using the policy ID and rule ID\n\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/wafRuleAlarmMasking:WafRuleAlarmMasking rule_1 44d887434169475794b2717438f7fa78/6cdc116040d444f6b3e1bf1dd629f1d0\n```\n\n",
      "properties": {
        "eventId": {
          "type": "string",
          "description": "Specifies the event ID. It is the ID of a misreported event\nin Events whose type is not *Custom*.\n"
        },
        "eventType": {
          "type": "string",
          "description": "The event type.\n"
        },
        "path": {
          "type": "string",
          "description": "Specifies a misreported URL excluding a domain name.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
        },
        "wafRuleAlarmMaskingId": {
          "type": "string",
          "description": "The rule ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "eventId",
        "eventType",
        "path",
        "policyId",
        "wafRuleAlarmMaskingId"
      ],
      "inputProperties": {
        "eventId": {
          "type": "string",
          "description": "Specifies the event ID. It is the ID of a misreported event\nin Events whose type is not *Custom*.\n"
        },
        "path": {
          "type": "string",
          "description": "Specifies a misreported URL excluding a domain name.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
        },
        "wafRuleAlarmMaskingId": {
          "type": "string",
          "description": "The rule ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "eventId",
        "path",
        "policyId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WafRuleAlarmMasking resources.\n",
        "properties": {
          "eventId": {
            "type": "string",
            "description": "Specifies the event ID. It is the ID of a misreported event\nin Events whose type is not *Custom*.\n"
          },
          "eventType": {
            "type": "string",
            "description": "The event type.\n"
          },
          "path": {
            "type": "string",
            "description": "Specifies a misreported URL excluding a domain name.\n"
          },
          "policyId": {
            "type": "string",
            "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
          },
          "wafRuleAlarmMaskingId": {
            "type": "string",
            "description": "The rule ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/wafRuleBlacklist:WafRuleBlacklist": {
      "description": "Manages a WAF blacklist and whitelist rule resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst policy1 = new flexibleengine.WafPolicy(\"policy1\", {});\nconst rule1 = new flexibleengine.WafRuleBlacklist(\"rule1\", {\n    policyId: policy1.wafPolicyId,\n    address: \"192.168.0.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\npolicy1 = flexibleengine.WafPolicy(\"policy1\")\nrule1 = flexibleengine.WafRuleBlacklist(\"rule1\",\n    policy_id=policy1.waf_policy_id,\n    address=\"192.168.0.0/24\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy1 = new Flexibleengine.WafPolicy(\"policy1\");\n\n    var rule1 = new Flexibleengine.WafRuleBlacklist(\"rule1\", new()\n    {\n        PolicyId = policy1.WafPolicyId,\n        Address = \"192.168.0.0/24\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpolicy1, err := flexibleengine.NewWafPolicy(ctx, \"policy1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewWafRuleBlacklist(ctx, \"rule1\", &flexibleengine.WafRuleBlacklistArgs{\n\t\t\tPolicyId: policy1.WafPolicyId,\n\t\t\tAddress:  pulumi.String(\"192.168.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.WafPolicy;\nimport com.pulumi.flexibleengine.WafRuleBlacklist;\nimport com.pulumi.flexibleengine.WafRuleBlacklistArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy1 = new WafPolicy(\"policy1\");\n\n        var rule1 = new WafRuleBlacklist(\"rule1\", WafRuleBlacklistArgs.builder()\n            .policyId(policy1.wafPolicyId())\n            .address(\"192.168.0.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: flexibleengine:WafPolicy\n  rule1:\n    type: flexibleengine:WafRuleBlacklist\n    properties:\n      policyId: ${policy1.wafPolicyId}\n      address: 192.168.0.0/24\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nBlacklist Rules can be imported using the policy ID and rule ID\n\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/wafRuleBlacklist:WafRuleBlacklist rule_1 523083f4543c497faecd25fcfcc0b2a0/e7f49f736bc74b828ce45e0e5c49d156\n```\n\n",
      "properties": {
        "action": {
          "type": "number",
          "description": "Specifies the protective action. 1: Whitelist, 0: Blacklist.\nIf you do not configure the parameter, the value is Blacklist by default.\n"
        },
        "address": {
          "type": "string",
          "description": "Specifies the IP address or range. For example, 192.168.0.125 or 192.168.0.0/24.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
        },
        "wafRuleBlacklistId": {
          "type": "string",
          "description": "The rule ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "address",
        "policyId",
        "wafRuleBlacklistId"
      ],
      "inputProperties": {
        "action": {
          "type": "number",
          "description": "Specifies the protective action. 1: Whitelist, 0: Blacklist.\nIf you do not configure the parameter, the value is Blacklist by default.\n"
        },
        "address": {
          "type": "string",
          "description": "Specifies the IP address or range. For example, 192.168.0.125 or 192.168.0.0/24.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
        },
        "wafRuleBlacklistId": {
          "type": "string",
          "description": "The rule ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "address",
        "policyId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WafRuleBlacklist resources.\n",
        "properties": {
          "action": {
            "type": "number",
            "description": "Specifies the protective action. 1: Whitelist, 0: Blacklist.\nIf you do not configure the parameter, the value is Blacklist by default.\n"
          },
          "address": {
            "type": "string",
            "description": "Specifies the IP address or range. For example, 192.168.0.125 or 192.168.0.0/24.\n"
          },
          "policyId": {
            "type": "string",
            "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
          },
          "wafRuleBlacklistId": {
            "type": "string",
            "description": "The rule ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/wafRuleCcProtection:WafRuleCcProtection": {
      "description": "Manages a WAF CC Attack Protection Rule resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst policy1 = new flexibleengine.WafPolicy(\"policy1\", {});\nconst rule1 = new flexibleengine.WafRuleCcProtection(\"rule1\", {\n    policyId: policy1.wafPolicyId,\n    path: \"/abc\",\n    limitNum: 10,\n    limitPeriod: 60,\n    mode: \"cookie\",\n    cookie: \"sessionid\",\n    action: \"block\",\n    blockTime: 10,\n    blockPageType: \"application/json\",\n    blockPageContent: \"{\\\"error\\\":\\\"forbidden\\\"}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\npolicy1 = flexibleengine.WafPolicy(\"policy1\")\nrule1 = flexibleengine.WafRuleCcProtection(\"rule1\",\n    policy_id=policy1.waf_policy_id,\n    path=\"/abc\",\n    limit_num=10,\n    limit_period=60,\n    mode=\"cookie\",\n    cookie=\"sessionid\",\n    action=\"block\",\n    block_time=10,\n    block_page_type=\"application/json\",\n    block_page_content=\"{\\\"error\\\":\\\"forbidden\\\"}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy1 = new Flexibleengine.WafPolicy(\"policy1\");\n\n    var rule1 = new Flexibleengine.WafRuleCcProtection(\"rule1\", new()\n    {\n        PolicyId = policy1.WafPolicyId,\n        Path = \"/abc\",\n        LimitNum = 10,\n        LimitPeriod = 60,\n        Mode = \"cookie\",\n        Cookie = \"sessionid\",\n        Action = \"block\",\n        BlockTime = 10,\n        BlockPageType = \"application/json\",\n        BlockPageContent = \"{\\\"error\\\":\\\"forbidden\\\"}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpolicy1, err := flexibleengine.NewWafPolicy(ctx, \"policy1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewWafRuleCcProtection(ctx, \"rule1\", &flexibleengine.WafRuleCcProtectionArgs{\n\t\t\tPolicyId:         policy1.WafPolicyId,\n\t\t\tPath:             pulumi.String(\"/abc\"),\n\t\t\tLimitNum:         pulumi.Float64(10),\n\t\t\tLimitPeriod:      pulumi.Float64(60),\n\t\t\tMode:             pulumi.String(\"cookie\"),\n\t\t\tCookie:           pulumi.String(\"sessionid\"),\n\t\t\tAction:           pulumi.String(\"block\"),\n\t\t\tBlockTime:        pulumi.Float64(10),\n\t\t\tBlockPageType:    pulumi.String(\"application/json\"),\n\t\t\tBlockPageContent: pulumi.String(\"{\\\"error\\\":\\\"forbidden\\\"}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.WafPolicy;\nimport com.pulumi.flexibleengine.WafRuleCcProtection;\nimport com.pulumi.flexibleengine.WafRuleCcProtectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy1 = new WafPolicy(\"policy1\");\n\n        var rule1 = new WafRuleCcProtection(\"rule1\", WafRuleCcProtectionArgs.builder()\n            .policyId(policy1.wafPolicyId())\n            .path(\"/abc\")\n            .limitNum(10)\n            .limitPeriod(60)\n            .mode(\"cookie\")\n            .cookie(\"sessionid\")\n            .action(\"block\")\n            .blockTime(10)\n            .blockPageType(\"application/json\")\n            .blockPageContent(\"{\\\"error\\\":\\\"forbidden\\\"}\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: flexibleengine:WafPolicy\n  rule1:\n    type: flexibleengine:WafRuleCcProtection\n    properties:\n      policyId: ${policy1.wafPolicyId}\n      path: /abc\n      limitNum: 10\n      limitPeriod: 60\n      mode: cookie\n      cookie: sessionid\n      action: block\n      blockTime: 10\n      blockPageType: application/json\n      blockPageContent: '{\"error\":\"forbidden\"}'\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCC Attack Protection Rules can be imported using the policy ID and rule ID\n\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/wafRuleCcProtection:WafRuleCcProtection rule_1 523083f4543c497faecd25fcfcc0b2a0/dd3c14e91550453f81cff5fc3b7c3e89\n```\n\n",
      "properties": {
        "action": {
          "type": "string",
          "description": "Specifies the action when the number of requests reaches the upper limit. Valid Options are:\n+ *block* - block the requests.\n+ *captcha* - Verification code. The user needs to enter the correct verification code after blocking to\nrestore the correct access page.\n\nIf `mode` is set to *other*, this parameter value can only be *block*.\n"
        },
        "blockPageContent": {
          "type": "string",
          "description": "Specifies the content of the returned page. Changing this will\ncreate a new resource.\n"
        },
        "blockPageType": {
          "type": "string",
          "description": "Specifies the type of the returned page.\nThe options are `application/json`, `text/html`, and `text/xml`. Changing this will create a new resource.\n"
        },
        "blockTime": {
          "type": "number",
          "description": "Specifies the lock duration. The value ranges from 0 seconds to 2^32 seconds.\n"
        },
        "content": {
          "type": "string",
          "description": "Specifies the category content. The format is as follows: `http://www.example.com/path`.\nThis field is mandatory when `mode` is set to *other*.\n"
        },
        "cookie": {
          "type": "string",
          "description": "Specifies the cookie name. This field is mandatory when `mode` is set to *cookie*.\n"
        },
        "limitNum": {
          "type": "number",
          "description": "Specifies the number of requests allowed from a web visitor in a rate limiting period.\nThe value ranges from 0 to 2^32.\n"
        },
        "limitPeriod": {
          "type": "number",
          "description": "Specifies the rate limiting period. The value ranges from 0 seconds to 2^32 seconds.\n"
        },
        "mode": {
          "type": "string",
          "description": "Specifies the rate limit mode. Valid Options are:\n+ *ip* - A web visitor is identified by the IP address.\n+ *cookie* - A web visitor is identified by the cookie key value.\n+ *other* - A web visitor is identified by the Referer field(user-defined request source).\n"
        },
        "path": {
          "type": "string",
          "description": "Specifies the URL to which the rule applies. The path ending with \\* indicates\nthat the path is used as a prefix. For example, if the path to be protected is /admin/test.php or /adminabc,\nset Path to /admin*.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
        },
        "wafRuleCcProtectionId": {
          "type": "string",
          "description": "The rule ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "action",
        "limitNum",
        "limitPeriod",
        "mode",
        "path",
        "policyId",
        "wafRuleCcProtectionId"
      ],
      "inputProperties": {
        "action": {
          "type": "string",
          "description": "Specifies the action when the number of requests reaches the upper limit. Valid Options are:\n+ *block* - block the requests.\n+ *captcha* - Verification code. The user needs to enter the correct verification code after blocking to\nrestore the correct access page.\n\nIf `mode` is set to *other*, this parameter value can only be *block*.\n"
        },
        "blockPageContent": {
          "type": "string",
          "description": "Specifies the content of the returned page. Changing this will\ncreate a new resource.\n"
        },
        "blockPageType": {
          "type": "string",
          "description": "Specifies the type of the returned page.\nThe options are `application/json`, `text/html`, and `text/xml`. Changing this will create a new resource.\n"
        },
        "blockTime": {
          "type": "number",
          "description": "Specifies the lock duration. The value ranges from 0 seconds to 2^32 seconds.\n"
        },
        "content": {
          "type": "string",
          "description": "Specifies the category content. The format is as follows: `http://www.example.com/path`.\nThis field is mandatory when `mode` is set to *other*.\n"
        },
        "cookie": {
          "type": "string",
          "description": "Specifies the cookie name. This field is mandatory when `mode` is set to *cookie*.\n"
        },
        "limitNum": {
          "type": "number",
          "description": "Specifies the number of requests allowed from a web visitor in a rate limiting period.\nThe value ranges from 0 to 2^32.\n"
        },
        "limitPeriod": {
          "type": "number",
          "description": "Specifies the rate limiting period. The value ranges from 0 seconds to 2^32 seconds.\n"
        },
        "mode": {
          "type": "string",
          "description": "Specifies the rate limit mode. Valid Options are:\n+ *ip* - A web visitor is identified by the IP address.\n+ *cookie* - A web visitor is identified by the cookie key value.\n+ *other* - A web visitor is identified by the Referer field(user-defined request source).\n"
        },
        "path": {
          "type": "string",
          "description": "Specifies the URL to which the rule applies. The path ending with \\* indicates\nthat the path is used as a prefix. For example, if the path to be protected is /admin/test.php or /adminabc,\nset Path to /admin*.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
        },
        "wafRuleCcProtectionId": {
          "type": "string",
          "description": "The rule ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "action",
        "limitNum",
        "limitPeriod",
        "mode",
        "path",
        "policyId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WafRuleCcProtection resources.\n",
        "properties": {
          "action": {
            "type": "string",
            "description": "Specifies the action when the number of requests reaches the upper limit. Valid Options are:\n+ *block* - block the requests.\n+ *captcha* - Verification code. The user needs to enter the correct verification code after blocking to\nrestore the correct access page.\n\nIf `mode` is set to *other*, this parameter value can only be *block*.\n"
          },
          "blockPageContent": {
            "type": "string",
            "description": "Specifies the content of the returned page. Changing this will\ncreate a new resource.\n"
          },
          "blockPageType": {
            "type": "string",
            "description": "Specifies the type of the returned page.\nThe options are `application/json`, `text/html`, and `text/xml`. Changing this will create a new resource.\n"
          },
          "blockTime": {
            "type": "number",
            "description": "Specifies the lock duration. The value ranges from 0 seconds to 2^32 seconds.\n"
          },
          "content": {
            "type": "string",
            "description": "Specifies the category content. The format is as follows: `http://www.example.com/path`.\nThis field is mandatory when `mode` is set to *other*.\n"
          },
          "cookie": {
            "type": "string",
            "description": "Specifies the cookie name. This field is mandatory when `mode` is set to *cookie*.\n"
          },
          "limitNum": {
            "type": "number",
            "description": "Specifies the number of requests allowed from a web visitor in a rate limiting period.\nThe value ranges from 0 to 2^32.\n"
          },
          "limitPeriod": {
            "type": "number",
            "description": "Specifies the rate limiting period. The value ranges from 0 seconds to 2^32 seconds.\n"
          },
          "mode": {
            "type": "string",
            "description": "Specifies the rate limit mode. Valid Options are:\n+ *ip* - A web visitor is identified by the IP address.\n+ *cookie* - A web visitor is identified by the cookie key value.\n+ *other* - A web visitor is identified by the Referer field(user-defined request source).\n"
          },
          "path": {
            "type": "string",
            "description": "Specifies the URL to which the rule applies. The path ending with \\* indicates\nthat the path is used as a prefix. For example, if the path to be protected is /admin/test.php or /adminabc,\nset Path to /admin*.\n"
          },
          "policyId": {
            "type": "string",
            "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
          },
          "wafRuleCcProtectionId": {
            "type": "string",
            "description": "The rule ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/wafRuleDataMasking:WafRuleDataMasking": {
      "description": "Manages a WAF Data Masking Rule resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst policy1 = new flexibleengine.WafPolicy(\"policy1\", {});\nconst rule1 = new flexibleengine.WafRuleDataMasking(\"rule1\", {\n    policyId: policy1.wafPolicyId,\n    path: \"/login\",\n    field: \"params\",\n    subfield: \"password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\npolicy1 = flexibleengine.WafPolicy(\"policy1\")\nrule1 = flexibleengine.WafRuleDataMasking(\"rule1\",\n    policy_id=policy1.waf_policy_id,\n    path=\"/login\",\n    field=\"params\",\n    subfield=\"password\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy1 = new Flexibleengine.WafPolicy(\"policy1\");\n\n    var rule1 = new Flexibleengine.WafRuleDataMasking(\"rule1\", new()\n    {\n        PolicyId = policy1.WafPolicyId,\n        Path = \"/login\",\n        Field = \"params\",\n        Subfield = \"password\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpolicy1, err := flexibleengine.NewWafPolicy(ctx, \"policy1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewWafRuleDataMasking(ctx, \"rule1\", &flexibleengine.WafRuleDataMaskingArgs{\n\t\t\tPolicyId: policy1.WafPolicyId,\n\t\t\tPath:     pulumi.String(\"/login\"),\n\t\t\tField:    pulumi.String(\"params\"),\n\t\t\tSubfield: pulumi.String(\"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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.WafPolicy;\nimport com.pulumi.flexibleengine.WafRuleDataMasking;\nimport com.pulumi.flexibleengine.WafRuleDataMaskingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy1 = new WafPolicy(\"policy1\");\n\n        var rule1 = new WafRuleDataMasking(\"rule1\", WafRuleDataMaskingArgs.builder()\n            .policyId(policy1.wafPolicyId())\n            .path(\"/login\")\n            .field(\"params\")\n            .subfield(\"password\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: flexibleengine:WafPolicy\n  rule1:\n    type: flexibleengine:WafRuleDataMasking\n    properties:\n      policyId: ${policy1.wafPolicyId}\n      path: /login\n      field: params\n      subfield: password\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nData Masking Rules can be imported using the policy ID and rule ID\n\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/wafRuleDataMasking:WafRuleDataMasking rule_1 523083f4543c497faecd25fcfcc0b2a0/c6482bd0059148559b625f78e8ce92be\n```\n\n",
      "properties": {
        "field": {
          "type": "string",
          "description": "Specifies the masked field. The options are *params* and *header*.\n"
        },
        "path": {
          "type": "string",
          "description": "Specifies the URL to which the data masking rule applies (exact match by default).\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
        },
        "subfield": {
          "type": "string",
          "description": "Specifies the masked subfield.\n"
        },
        "wafRuleDataMaskingId": {
          "type": "string",
          "description": "The rule ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "field",
        "path",
        "policyId",
        "subfield",
        "wafRuleDataMaskingId"
      ],
      "inputProperties": {
        "field": {
          "type": "string",
          "description": "Specifies the masked field. The options are *params* and *header*.\n"
        },
        "path": {
          "type": "string",
          "description": "Specifies the URL to which the data masking rule applies (exact match by default).\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
        },
        "subfield": {
          "type": "string",
          "description": "Specifies the masked subfield.\n"
        },
        "wafRuleDataMaskingId": {
          "type": "string",
          "description": "The rule ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "field",
        "path",
        "policyId",
        "subfield"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WafRuleDataMasking resources.\n",
        "properties": {
          "field": {
            "type": "string",
            "description": "Specifies the masked field. The options are *params* and *header*.\n"
          },
          "path": {
            "type": "string",
            "description": "Specifies the URL to which the data masking rule applies (exact match by default).\n"
          },
          "policyId": {
            "type": "string",
            "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
          },
          "subfield": {
            "type": "string",
            "description": "Specifies the masked subfield.\n"
          },
          "wafRuleDataMaskingId": {
            "type": "string",
            "description": "The rule ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/wafRulePreciseProtection:WafRulePreciseProtection": {
      "description": "Manages a WAF Precise Protection Rule resource within FlexibleEngine.\n\n## Example Usage\n\n### A rule takes effect immediately\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst rule1 = new flexibleengine.WafRulePreciseProtection(\"rule1\", {\n    policyId: _var.policy_id,\n    priority: 10,\n    conditions: [{\n        field: \"path\",\n        logic: \"prefix\",\n        content: \"/login\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nrule1 = flexibleengine.WafRulePreciseProtection(\"rule1\",\n    policy_id=var[\"policy_id\"],\n    priority=10,\n    conditions=[{\n        \"field\": \"path\",\n        \"logic\": \"prefix\",\n        \"content\": \"/login\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule1 = new Flexibleengine.WafRulePreciseProtection(\"rule1\", new()\n    {\n        PolicyId = @var.Policy_id,\n        Priority = 10,\n        Conditions = new[]\n        {\n            new Flexibleengine.Inputs.WafRulePreciseProtectionConditionArgs\n            {\n                Field = \"path\",\n                Logic = \"prefix\",\n                Content = \"/login\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewWafRulePreciseProtection(ctx, \"rule1\", &flexibleengine.WafRulePreciseProtectionArgs{\n\t\t\tPolicyId: pulumi.Any(_var.Policy_id),\n\t\t\tPriority: pulumi.Float64(10),\n\t\t\tConditions: flexibleengine.WafRulePreciseProtectionConditionArray{\n\t\t\t\t&flexibleengine.WafRulePreciseProtectionConditionArgs{\n\t\t\t\t\tField:   pulumi.String(\"path\"),\n\t\t\t\t\tLogic:   pulumi.String(\"prefix\"),\n\t\t\t\t\tContent: pulumi.String(\"/login\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.WafRulePreciseProtection;\nimport com.pulumi.flexibleengine.WafRulePreciseProtectionArgs;\nimport com.pulumi.flexibleengine.inputs.WafRulePreciseProtectionConditionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rule1 = new WafRulePreciseProtection(\"rule1\", WafRulePreciseProtectionArgs.builder()\n            .policyId(var_.policy_id())\n            .priority(10)\n            .conditions(WafRulePreciseProtectionConditionArgs.builder()\n                .field(\"path\")\n                .logic(\"prefix\")\n                .content(\"/login\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule1:\n    type: flexibleengine:WafRulePreciseProtection\n    properties:\n      policyId: ${var.policy_id}\n      priority: 10\n      conditions:\n        - field: path\n          logic: prefix\n          content: /login\n```\n<!--End PulumiCodeChooser -->\n\n### A rule takes effect at the scheduled time\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst rule1 = new flexibleengine.WafRulePreciseProtection(\"rule1\", {\n    policyId: _var.policy_id,\n    action: \"block\",\n    priority: 20,\n    startTime: \"2021-07-01 00:00:00\",\n    endTime: \"2021-12-31 23:59:59\",\n    conditions: [{\n        field: \"ip\",\n        logic: \"equal\",\n        content: \"192.168.1.1\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nrule1 = flexibleengine.WafRulePreciseProtection(\"rule1\",\n    policy_id=var[\"policy_id\"],\n    action=\"block\",\n    priority=20,\n    start_time=\"2021-07-01 00:00:00\",\n    end_time=\"2021-12-31 23:59:59\",\n    conditions=[{\n        \"field\": \"ip\",\n        \"logic\": \"equal\",\n        \"content\": \"192.168.1.1\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule1 = new Flexibleengine.WafRulePreciseProtection(\"rule1\", new()\n    {\n        PolicyId = @var.Policy_id,\n        Action = \"block\",\n        Priority = 20,\n        StartTime = \"2021-07-01 00:00:00\",\n        EndTime = \"2021-12-31 23:59:59\",\n        Conditions = new[]\n        {\n            new Flexibleengine.Inputs.WafRulePreciseProtectionConditionArgs\n            {\n                Field = \"ip\",\n                Logic = \"equal\",\n                Content = \"192.168.1.1\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.NewWafRulePreciseProtection(ctx, \"rule1\", &flexibleengine.WafRulePreciseProtectionArgs{\n\t\t\tPolicyId:  pulumi.Any(_var.Policy_id),\n\t\t\tAction:    pulumi.String(\"block\"),\n\t\t\tPriority:  pulumi.Float64(20),\n\t\t\tStartTime: pulumi.String(\"2021-07-01 00:00:00\"),\n\t\t\tEndTime:   pulumi.String(\"2021-12-31 23:59:59\"),\n\t\t\tConditions: flexibleengine.WafRulePreciseProtectionConditionArray{\n\t\t\t\t&flexibleengine.WafRulePreciseProtectionConditionArgs{\n\t\t\t\t\tField:   pulumi.String(\"ip\"),\n\t\t\t\t\tLogic:   pulumi.String(\"equal\"),\n\t\t\t\t\tContent: pulumi.String(\"192.168.1.1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.WafRulePreciseProtection;\nimport com.pulumi.flexibleengine.WafRulePreciseProtectionArgs;\nimport com.pulumi.flexibleengine.inputs.WafRulePreciseProtectionConditionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rule1 = new WafRulePreciseProtection(\"rule1\", WafRulePreciseProtectionArgs.builder()\n            .policyId(var_.policy_id())\n            .action(\"block\")\n            .priority(20)\n            .startTime(\"2021-07-01 00:00:00\")\n            .endTime(\"2021-12-31 23:59:59\")\n            .conditions(WafRulePreciseProtectionConditionArgs.builder()\n                .field(\"ip\")\n                .logic(\"equal\")\n                .content(\"192.168.1.1\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule1:\n    type: flexibleengine:WafRulePreciseProtection\n    properties:\n      policyId: ${var.policy_id}\n      action: block\n      priority: 20\n      startTime: 2021-07-01 00:00:00\n      endTime: 2021-12-31 23:59:59\n      conditions:\n        - field: ip\n          logic: equal\n          content: 192.168.1.1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPrecise Protection Rules can be imported using the policy ID and rule ID\n\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/wafRulePreciseProtection:WafRulePreciseProtection rule_1 523083f4543c497faecd25fcfcc0b2a0/620801321b254f8fbc7dafa6bbebe652\n```\n\n",
      "properties": {
        "action": {
          "type": "string",
          "description": "Specifies the protective action after the precise protection rule is matched.\nThe value can be *block* or *pass*. Defaults to *block*.\n"
        },
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FWafRulePreciseProtectionCondition:WafRulePreciseProtectionCondition"
          },
          "description": "Specifies the condition parameters. The object structure is documented below.\n"
        },
        "endTime": {
          "type": "string",
          "description": "Specifies the UTC time when the precise protection rule expires.\nThe time must be in \"yyyy-MM-dd HH:mm:ss\" format.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of a precise protection rule. The maximum length is\n256 characters. Only digits, letters, underscores (_), and hyphens (-) are allowed.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
        },
        "priority": {
          "type": "number",
          "description": "Specifies the priority of a rule being executed. Smaller values correspond to higher priorities.\nIf two rules are assigned with the same priority, the rule added earlier has higher priority, the rule added earlier\nhas higher priority. The value ranges from 0 to 65535.\n"
        },
        "startTime": {
          "type": "string",
          "description": "Specifies the UTC time when the precise protection rule takes effect.\nThe time must be in \"yyyy-MM-dd HH:mm:ss\" format.\nIf not specified, the rule takes effect immediately.\n"
        },
        "wafRulePreciseProtectionId": {
          "type": "string",
          "description": "The rule ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "conditions",
        "name",
        "policyId",
        "priority",
        "wafRulePreciseProtectionId"
      ],
      "inputProperties": {
        "action": {
          "type": "string",
          "description": "Specifies the protective action after the precise protection rule is matched.\nThe value can be *block* or *pass*. Defaults to *block*.\n"
        },
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "#/types/flexibleengine:index%2FWafRulePreciseProtectionCondition:WafRulePreciseProtectionCondition"
          },
          "description": "Specifies the condition parameters. The object structure is documented below.\n"
        },
        "endTime": {
          "type": "string",
          "description": "Specifies the UTC time when the precise protection rule expires.\nThe time must be in \"yyyy-MM-dd HH:mm:ss\" format.\n"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of a precise protection rule. The maximum length is\n256 characters. Only digits, letters, underscores (_), and hyphens (-) are allowed.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
        },
        "priority": {
          "type": "number",
          "description": "Specifies the priority of a rule being executed. Smaller values correspond to higher priorities.\nIf two rules are assigned with the same priority, the rule added earlier has higher priority, the rule added earlier\nhas higher priority. The value ranges from 0 to 65535.\n"
        },
        "startTime": {
          "type": "string",
          "description": "Specifies the UTC time when the precise protection rule takes effect.\nThe time must be in \"yyyy-MM-dd HH:mm:ss\" format.\nIf not specified, the rule takes effect immediately.\n"
        },
        "wafRulePreciseProtectionId": {
          "type": "string",
          "description": "The rule ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "conditions",
        "policyId",
        "priority"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WafRulePreciseProtection resources.\n",
        "properties": {
          "action": {
            "type": "string",
            "description": "Specifies the protective action after the precise protection rule is matched.\nThe value can be *block* or *pass*. Defaults to *block*.\n"
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FWafRulePreciseProtectionCondition:WafRulePreciseProtectionCondition"
            },
            "description": "Specifies the condition parameters. The object structure is documented below.\n"
          },
          "endTime": {
            "type": "string",
            "description": "Specifies the UTC time when the precise protection rule expires.\nThe time must be in \"yyyy-MM-dd HH:mm:ss\" format.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of a precise protection rule. The maximum length is\n256 characters. Only digits, letters, underscores (_), and hyphens (-) are allowed.\n"
          },
          "policyId": {
            "type": "string",
            "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
          },
          "priority": {
            "type": "number",
            "description": "Specifies the priority of a rule being executed. Smaller values correspond to higher priorities.\nIf two rules are assigned with the same priority, the rule added earlier has higher priority, the rule added earlier\nhas higher priority. The value ranges from 0 to 65535.\n"
          },
          "startTime": {
            "type": "string",
            "description": "Specifies the UTC time when the precise protection rule takes effect.\nThe time must be in \"yyyy-MM-dd HH:mm:ss\" format.\nIf not specified, the rule takes effect immediately.\n"
          },
          "wafRulePreciseProtectionId": {
            "type": "string",
            "description": "The rule ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    },
    "flexibleengine:index/wafRuleWebTamperProtection:WafRuleWebTamperProtection": {
      "description": "Manages a WAF Web Tamper Protection Rule resource within FlexibleEngine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst policy1 = new flexibleengine.WafPolicy(\"policy1\", {});\nconst rule1 = new flexibleengine.WafRuleWebTamperProtection(\"rule1\", {\n    policyId: policy1.wafPolicyId,\n    domain: \"www.abc.com\",\n    path: \"/a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\npolicy1 = flexibleengine.WafPolicy(\"policy1\")\nrule1 = flexibleengine.WafRuleWebTamperProtection(\"rule1\",\n    policy_id=policy1.waf_policy_id,\n    domain=\"www.abc.com\",\n    path=\"/a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy1 = new Flexibleengine.WafPolicy(\"policy1\");\n\n    var rule1 = new Flexibleengine.WafRuleWebTamperProtection(\"rule1\", new()\n    {\n        PolicyId = policy1.WafPolicyId,\n        Domain = \"www.abc.com\",\n        Path = \"/a\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpolicy1, err := flexibleengine.NewWafPolicy(ctx, \"policy1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewWafRuleWebTamperProtection(ctx, \"rule1\", &flexibleengine.WafRuleWebTamperProtectionArgs{\n\t\t\tPolicyId: policy1.WafPolicyId,\n\t\t\tDomain:   pulumi.String(\"www.abc.com\"),\n\t\t\tPath:     pulumi.String(\"/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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.WafPolicy;\nimport com.pulumi.flexibleengine.WafRuleWebTamperProtection;\nimport com.pulumi.flexibleengine.WafRuleWebTamperProtectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy1 = new WafPolicy(\"policy1\");\n\n        var rule1 = new WafRuleWebTamperProtection(\"rule1\", WafRuleWebTamperProtectionArgs.builder()\n            .policyId(policy1.wafPolicyId())\n            .domain(\"www.abc.com\")\n            .path(\"/a\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: flexibleengine:WafPolicy\n  rule1:\n    type: flexibleengine:WafRuleWebTamperProtection\n    properties:\n      policyId: ${policy1.wafPolicyId}\n      domain: www.abc.com\n      path: /a\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nWeb Tamper Protection Rules can be imported using the policy ID and rule ID\n\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import flexibleengine:index/wafRuleWebTamperProtection:WafRuleWebTamperProtection rule_1 523083f4543c497faecd25fcfcc0b2a0/5b3b07fedc3642d18e424b2e45aebc8a\n```\n\n",
      "properties": {
        "domain": {
          "type": "string",
          "description": "Specifies the domain name. Changing this creates a new rule.\n"
        },
        "path": {
          "type": "string",
          "description": "Specifies the URL protected by the web tamper protection rule,\nexcluding a domain name. Changing this creates a new rule.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
        },
        "wafRuleWebTamperProtectionId": {
          "type": "string",
          "description": "The rule ID in UUID format.\n"
        }
      },
      "type": "object",
      "required": [
        "domain",
        "path",
        "policyId",
        "wafRuleWebTamperProtectionId"
      ],
      "inputProperties": {
        "domain": {
          "type": "string",
          "description": "Specifies the domain name. Changing this creates a new rule.\n"
        },
        "path": {
          "type": "string",
          "description": "Specifies the URL protected by the web tamper protection rule,\nexcluding a domain name. Changing this creates a new rule.\n"
        },
        "policyId": {
          "type": "string",
          "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
        },
        "wafRuleWebTamperProtectionId": {
          "type": "string",
          "description": "The rule ID in UUID format.\n"
        }
      },
      "requiredInputs": [
        "domain",
        "path",
        "policyId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WafRuleWebTamperProtection resources.\n",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Specifies the domain name. Changing this creates a new rule.\n"
          },
          "path": {
            "type": "string",
            "description": "Specifies the URL protected by the web tamper protection rule,\nexcluding a domain name. Changing this creates a new rule.\n"
          },
          "policyId": {
            "type": "string",
            "description": "Specifies the WAF policy ID. Changing this creates a new rule.\n"
          },
          "wafRuleWebTamperProtectionId": {
            "type": "string",
            "description": "The rule ID in UUID format.\n"
          }
        },
        "type": "object"
      }
    }
  },
  "functions": {
    "flexibleengine:index/getAccount:getAccount": {
      "description": "## # flexibleengine.getAccount\n\nUse this data source to get information about the current account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst current = flexibleengine.getAccount({});\nexport const currentAccountId = current.then(current =\u003e current.id);\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ncurrent = flexibleengine.get_account()\npulumi.export(\"currentAccountId\", current.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var current = Flexibleengine.GetAccount.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"currentAccountId\"] = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := flexibleengine.GetAccount(ctx, \u0026flexibleengine.GetAccountArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"currentAccountId\", current.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var current = FlexibleengineFunctions.getAccount();\n\n        ctx.export(\"currentAccountId\", current.applyValue(getAccountResult -\u003e getAccountResult.id()));\n    }\n}\n```\n```yaml\nvariables:\n  current:\n    fn::invoke:\n      function: flexibleengine:getAccount\n      arguments: {}\noutputs:\n  currentAccountId: ${current.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getAccount.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The account ID.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAccount.\n",
        "properties": {
          "id": {
            "description": "The account ID.\n",
            "type": "string"
          },
          "name": {
            "description": "The account name.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getApigEnvironments:getApigEnvironments": {
      "description": "Use this data source to query the environment list under the APIG instance within FlexibleEngine.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst environmentName = config.requireObject(\"environmentName\");\nconst test = flexibleengine.getApigEnvironments({\n    instanceId: instanceId,\n    name: environmentName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nenvironment_name = config.require_object(\"environmentName\")\ntest = flexibleengine.get_apig_environments(instance_id=instance_id,\n    name=environment_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var instanceId = config.RequireObject\u003cdynamic\u003e(\"instanceId\");\n    var environmentName = config.RequireObject\u003cdynamic\u003e(\"environmentName\");\n    var test = Flexibleengine.GetApigEnvironments.Invoke(new()\n    {\n        InstanceId = instanceId,\n        Name = environmentName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tenvironmentName := cfg.RequireObject(\"environmentName\")\n\t\t_, err := flexibleengine.GetApigEnvironments(ctx, \u0026flexibleengine.GetApigEnvironmentsArgs{\n\t\t\tInstanceId: instanceId,\n\t\t\tName:       pulumi.StringRef(environmentName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetApigEnvironmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var environmentName = config.get(\"environmentName\");\n        final var test = FlexibleengineFunctions.getApigEnvironments(GetApigEnvironmentsArgs.builder()\n            .instanceId(instanceId)\n            .name(environmentName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  environmentName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getApigEnvironments\n      arguments:\n        instanceId: ${instanceId}\n        name: ${environmentName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getApigEnvironments.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of the APIG environment.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies an ID of the APIG dedicated instance to which the API\nenvironment belongs.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the API environment. The API environment name consists of 3 to 64\ncharacters, starting with a letter. Only letters, digits and underscores (_) are allowed.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the APIG environment list.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object",
        "required": [
          "instanceId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getApigEnvironments.\n",
        "properties": {
          "environments": {
            "description": "List of APIG environment details. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetApigEnvironmentsEnvironment:getApigEnvironmentsEnvironment"
            },
            "type": "array"
          },
          "id": {
            "description": "ID of the APIG environment.\n",
            "type": "string"
          },
          "instanceId": {
            "type": "string"
          },
          "name": {
            "description": "The environment name.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "environments",
          "id",
          "instanceId"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getApigGroups:getApigGroups": {
      "description": "Use this data source to query and filter the group list under the APIG instance within FlexibleEngine.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst groupName = config.requireObject(\"groupName\");\nconst test = flexibleengine.getApigGroups({\n    instanceId: instanceId,\n    name: groupName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ngroup_name = config.require_object(\"groupName\")\ntest = flexibleengine.get_apig_groups(instance_id=instance_id,\n    name=group_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var instanceId = config.RequireObject\u003cdynamic\u003e(\"instanceId\");\n    var groupName = config.RequireObject\u003cdynamic\u003e(\"groupName\");\n    var test = Flexibleengine.GetApigGroups.Invoke(new()\n    {\n        InstanceId = instanceId,\n        Name = groupName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tgroupName := cfg.RequireObject(\"groupName\")\n\t\t_, err := flexibleengine.GetApigGroups(ctx, \u0026flexibleengine.GetApigGroupsArgs{\n\t\t\tInstanceId: instanceId,\n\t\t\tName:       pulumi.StringRef(groupName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetApigGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var groupName = config.get(\"groupName\");\n        final var test = FlexibleengineFunctions.getApigGroups(GetApigGroupsArgs.builder()\n            .instanceId(instanceId)\n            .name(groupName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  groupName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getApigGroups\n      arguments:\n        instanceId: ${instanceId}\n        name: ${groupName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getApigGroups.\n",
        "properties": {
          "groupId": {
            "type": "string",
            "description": "Specifies the API group ID used to query.\n"
          },
          "id": {
            "type": "string",
            "description": "The variable ID.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies an ID of the APIG dedicated instance to which the API group belongs.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the API group name used to query.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the API group list.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object",
        "required": [
          "instanceId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getApigGroups.\n",
        "properties": {
          "groupId": {
            "type": "string"
          },
          "groups": {
            "description": "All groups that match the filter parameters.\nThe groups structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetApigGroupsGroup:getApigGroupsGroup"
            },
            "type": "array"
          },
          "id": {
            "description": "The variable ID.\n",
            "type": "string"
          },
          "instanceId": {
            "type": "string"
          },
          "name": {
            "description": "The variable name.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "groups",
          "id",
          "instanceId",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getAsConfigurations:getAsConfigurations": {
      "description": "Use this data source to get a list of AS configurations.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst configurations = flexibleengine.getAsConfigurations({});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfigurations = flexibleengine.get_as_configurations()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var configurations = Flexibleengine.GetAsConfigurations.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetAsConfigurations(ctx, \u0026flexibleengine.GetAsConfigurationsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetAsConfigurationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var configurations = FlexibleengineFunctions.getAsConfigurations();\n\n    }\n}\n```\n```yaml\nvariables:\n  configurations:\n    fn::invoke:\n      function: flexibleengine:getAsConfigurations\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getAsConfigurations.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the list.\n"
          },
          "imageId": {
            "type": "string",
            "description": "Specifies the image ID.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the AS configuration name. Supports fuzzy search.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the AS configurations.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAsConfigurations.\n",
        "properties": {
          "configurations": {
            "description": "A list of AS configurations.\nThe configurations object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetAsConfigurationsConfiguration:getAsConfigurationsConfiguration"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of the list.\n",
            "type": "string"
          },
          "imageId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "configurations",
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getAsGroups:getAsGroups": {
      "description": "Use this data source to get a list of AS groups.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst groups = flexibleengine.getAsGroups({});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ngroups = flexibleengine.get_as_groups()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var groups = Flexibleengine.GetAsGroups.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetAsGroups(ctx, \u0026flexibleengine.GetAsGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetAsGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var groups = FlexibleengineFunctions.getAsGroups();\n\n    }\n}\n```\n```yaml\nvariables:\n  groups:\n    fn::invoke:\n      function: flexibleengine:getAsGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getAsGroups.\n",
        "properties": {
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id of the AS group.\nChanging this will create a new resource.\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of the security group.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the AS group name. Fuzzy search is supported.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the AS groups.\nIf omitted, the provider-level region will be used.\n"
          },
          "scalingConfigurationId": {
            "type": "string",
            "description": "Specifies the AS configuration ID, which can be obtained using\nthe API for listing AS configurations.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the AS group status. The options are as follows:\n- **INSERVICE**: indicates that the AS group is functional.\n- **PAUSED**: indicates that the AS group is paused.\n- **ERROR**: indicates that the AS group malfunctions.\n- **DELETING**: indicates that the AS group is being deleted.\n- **FREEZED**: indicates that the AS group has been frozen.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAsGroups.\n",
        "properties": {
          "enterpriseProjectId": {
            "description": "The enterprise project ID.\n",
            "type": "string"
          },
          "groups": {
            "description": "A list of AS groups. The groups object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetAsGroupsGroup:getAsGroupsGroup"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of the security group.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "scalingConfigurationId": {
            "description": "The AS configuration ID.\n",
            "type": "string"
          },
          "status": {
            "description": "The AS group status.\n",
            "type": "string"
          }
        },
        "required": [
          "groups",
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getAvailabilityZones:getAvailabilityZones": {
      "description": "Use this data source to get a list of availability zones from FlexibleEngine.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst zones = flexibleengine.getAvailabilityZones({});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nzones = flexibleengine.get_availability_zones()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var zones = Flexibleengine.GetAvailabilityZones.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetAvailabilityZones(ctx, \u0026flexibleengine.GetAvailabilityZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetAvailabilityZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var zones = FlexibleengineFunctions.getAvailabilityZones();\n\n    }\n}\n```\n```yaml\nvariables:\n  zones:\n    fn::invoke:\n      function: flexibleengine:getAvailabilityZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getAvailabilityZones.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "state": {
            "type": "string",
            "description": "The `state` of the availability zones to match, default (\"available\").\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAvailabilityZones.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "names": {
            "description": "The names of the availability zones, ordered alphanumerically, that match the queried `state`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "region": {
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "names",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getBlockstorageAvailabilityZonesV3:getBlockstorageAvailabilityZonesV3": {
      "description": "Use this data source to get a list of Block Storage availability zones from FlexibleEngine\n\n!\u003e **WARNING:** It has been deprecated, use `flexibleengine.getAvailabilityZones` instead.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst zones = flexibleengine.getBlockstorageAvailabilityZonesV3({});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nzones = flexibleengine.get_blockstorage_availability_zones_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var zones = Flexibleengine.GetBlockstorageAvailabilityZonesV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetBlockstorageAvailabilityZonesV3(ctx, \u0026flexibleengine.GetBlockstorageAvailabilityZonesV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetBlockstorageAvailabilityZonesV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var zones = FlexibleengineFunctions.getBlockstorageAvailabilityZonesV3();\n\n    }\n}\n```\n```yaml\nvariables:\n  zones:\n    fn::invoke:\n      function: flexibleengine:getBlockstorageAvailabilityZonesV3\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getBlockstorageAvailabilityZonesV3.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the Block Storage client.\nIf omitted, the `region` argument of the provider is used.\n"
          },
          "state": {
            "type": "string",
            "description": "The `state` of the availability zones to match. Can\neither be `available` or `unavailable`. Default is `available`.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getBlockstorageAvailabilityZonesV3.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "names": {
            "description": "The names of the availability zones, ordered alphanumerically, that\nmatch the queried `state`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "region": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "state": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "names",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getBlockstorageVolumeV2:getBlockstorageVolumeV2": {
      "description": "Use this data source to get the ID of an available FlexibleEngine volume.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst volume = flexibleengine.getBlockstorageVolumeV2({\n    name: \"test_volume\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nvolume = flexibleengine.get_blockstorage_volume_v2(name=\"test_volume\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var volume = Flexibleengine.GetBlockstorageVolumeV2.Invoke(new()\n    {\n        Name = \"test_volume\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupBlockstorageVolumeV2(ctx, \u0026flexibleengine.LookupBlockstorageVolumeV2Args{\n\t\t\tName: pulumi.StringRef(\"test_volume\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetBlockstorageVolumeV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var volume = FlexibleengineFunctions.getBlockstorageVolumeV2(GetBlockstorageVolumeV2Args.builder()\n            .name(\"test_volume\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  volume:\n    fn::invoke:\n      function: flexibleengine:getBlockstorageVolumeV2\n      arguments:\n        name: test_volume\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getBlockstorageVolumeV2.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the volume.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the volume.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Volume client.\nIf omitted, the `region` argument of the provider is used.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the volume.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getBlockstorageVolumeV2.\n",
        "properties": {
          "id": {
            "description": "The ID of the volume.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getCbrBackup:getCbrBackup": {
      "description": "Use this data source to query the backup detail using its ID within FlexibleEngine.\n\n## Example Usage\n\n### Using backup ID to query the backup detail\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst backupId = config.requireObject(\"backupId\");\nconst test = flexibleengine.getCbrBackup({\n    id: \"backup_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nbackup_id = config.require_object(\"backupId\")\ntest = flexibleengine.get_cbr_backup(id=\"backup_id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var backupId = config.RequireObject\u003cdynamic\u003e(\"backupId\");\n    var test = Flexibleengine.GetCbrBackup.Invoke(new()\n    {\n        Id = \"backup_id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbackupId := cfg.RequireObject(\"backupId\")\n\t\t_, err := flexibleengine.GetCbrBackup(ctx, \u0026flexibleengine.GetCbrBackupArgs{\n\t\t\tId: \"backup_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetCbrBackupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var backupId = config.get(\"backupId\");\n        final var test = FlexibleengineFunctions.getCbrBackup(GetCbrBackupArgs.builder()\n            .id(\"backup_id\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  backupId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getCbrBackup\n      arguments:\n        id: backup_id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getCbrBackup.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Specifies the backup ID.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the backup detail.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object",
        "required": [
          "id"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getCbrBackup.\n",
        "properties": {
          "checkpointId": {
            "description": "The restore point ID of the sub-backup resource.\n",
            "type": "string"
          },
          "childrens": {
            "description": "The backup list of the sub-backup resources.\nThe object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCbrBackupChildren:getCbrBackupChildren"
            },
            "type": "array"
          },
          "createdAt": {
            "description": "The creation time of the sub-backup.\n",
            "type": "string"
          },
          "description": {
            "description": "The sub-backup description.\n",
            "type": "string"
          },
          "enterpriseProjectId": {
            "description": "The enterprise project to which the backup sub-backup resource belongs.\n",
            "type": "string"
          },
          "expiredAt": {
            "description": "The expiration time of the sub-backup.\n",
            "type": "string"
          },
          "extendInfos": {
            "description": "The extended information. The object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCbrBackupExtendInfo:getCbrBackupExtendInfo"
            },
            "type": "array"
          },
          "id": {
            "description": "The sub-backup ID.\n",
            "type": "string"
          },
          "name": {
            "description": "The sub-backup name.\n",
            "type": "string"
          },
          "parentId": {
            "description": "The parent backup ID.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "replicationRecords": {
            "description": "The replication records. The object structure is\ndocumented above.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCbrBackupReplicationRecord:getCbrBackupReplicationRecord"
            },
            "type": "array"
          },
          "resourceAz": {
            "description": "The availability zone where the backup sub-backup resource is located.\n",
            "type": "string"
          },
          "resourceId": {
            "description": "The sub-backup resource ID.\n",
            "type": "string"
          },
          "resourceName": {
            "description": "The sub-backup resource name.\n",
            "type": "string"
          },
          "resourceSize": {
            "description": "The sub-backup resource size, in GB.\n",
            "type": "number"
          },
          "resourceType": {
            "description": "The sub-backup resource type.\n",
            "type": "string"
          },
          "status": {
            "description": "The sub-backup status.\n",
            "type": "string"
          },
          "type": {
            "description": "The sub-backup type.\n",
            "type": "string"
          },
          "updatedAt": {
            "description": "The latest update time of the sub-backup.\n",
            "type": "string"
          },
          "vaultId": {
            "description": "The vault to which the backup resource belongs.\n",
            "type": "string"
          }
        },
        "required": [
          "checkpointId",
          "childrens",
          "createdAt",
          "description",
          "enterpriseProjectId",
          "expiredAt",
          "extendInfos",
          "id",
          "name",
          "parentId",
          "replicationRecords",
          "resourceAz",
          "resourceId",
          "resourceName",
          "resourceSize",
          "resourceType",
          "status",
          "type",
          "updatedAt",
          "vaultId"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getCbrVaults:getCbrVaults": {
      "description": "Use this data source to get available CBR vaults within FlexibleEngine.\n\n## Example Usage\n\n### Get vaults for all server type\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getCbrVaults({\n    type: \"server\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_cbr_vaults(type=\"server\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetCbrVaults.Invoke(new()\n    {\n        Type = \"server\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetCbrVaults(ctx, \u0026flexibleengine.GetCbrVaultsArgs{\n\t\t\tType: pulumi.StringRef(\"server\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetCbrVaultsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getCbrVaults(GetCbrVaultsArgs.builder()\n            .type(\"server\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getCbrVaults\n      arguments:\n        type: server\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getCbrVaults.\n",
        "properties": {
          "autoExpandEnabled": {
            "type": "boolean",
            "description": "Specifies whether to enable automatic expansion of the backup protection\ntype vault. Defaults to **false**.\n"
          },
          "consistentLevel": {
            "type": "string",
            "description": "Specifies the consistent level (specification) of the vault.\nThe valid values are as follows:\n+ **[crash_consistent](https://docs.prod-cloud-ocb.orange-business.com/usermanual/cbr/cbr_03_0109.html)**\n+ **[app_consistent](https://docs.prod-cloud-ocb.orange-business.com/usermanual/cbr/cbr_03_0109.html)**\n\nOnly server type vaults support application consistent.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the ID of the enterprise project to which the vault belongs.\n"
          },
          "id": {
            "type": "string",
            "description": "The vault ID in UUID format.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the vault name. This parameter can contain a maximum of 64\ncharacters, which may consist of letters, digits, underscores(_) and hyphens (-).\n"
          },
          "policyId": {
            "type": "string",
            "description": "Specifies the ID of the policy associated with the vault.\nThe `policy_id` cannot be used with the vault of replicate protection type.\n"
          },
          "protectionType": {
            "type": "string",
            "description": "Specifies the protection type of the vault.\nThe valid values are **backup** and **replication**. Vaults of type **disk** don't support **replication**.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the vaults.\nIf omitted, the provider-level region will be used.\n"
          },
          "size": {
            "type": "number",
            "description": "Specifies the vault sapacity, in GB. The valid value range is `1` to `10,485,760`.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the vault status, including **available**, **lock**, **frozen** and **error**.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the object type of the vault. The vaild values are as follows:\n+ **server** (Cloud Servers)\n+ **disk** (EVS Disks)\n+ **turbo** (SFS Turbo file systems)\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCbrVaults.\n",
        "properties": {
          "autoExpandEnabled": {
            "description": "Whether to enable automatic expansion of the backup protection type vault.\n",
            "type": "boolean"
          },
          "consistentLevel": {
            "description": "The consistent level (specification) of the vault.\n",
            "type": "string"
          },
          "enterpriseProjectId": {
            "description": "The enterprise project ID.\n",
            "type": "string"
          },
          "id": {
            "description": "The vault ID in UUID format.\n",
            "type": "string"
          },
          "name": {
            "description": "The vault name.\n",
            "type": "string"
          },
          "policyId": {
            "description": "The ID of the policy associated with the vault.\n",
            "type": "string"
          },
          "protectionType": {
            "description": "The protection type of the vault.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "size": {
            "description": "The vault capacity, in GB.\n",
            "type": "number"
          },
          "status": {
            "description": "The vault status.\n",
            "type": "string"
          },
          "type": {
            "description": "The object type of the vault.\n",
            "type": "string"
          },
          "vaults": {
            "description": "List of vault details. The object structure of each vault is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCbrVaultsVault:getCbrVaultsVault"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "vaults"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getCceAddonTemplate:getCceAddonTemplate": {
      "description": "Use this data source to get an available FlexibleEngine CCE add-on template.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject(\"clusterId\");\nconst addonName = config.requireObject(\"addonName\");\nconst addonVersion = config.requireObject(\"addonVersion\");\nconst test = flexibleengine.getCceAddonTemplate({\n    clusterId: clusterId,\n    name: addonName,\n    version: addonVersion,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\naddon_name = config.require_object(\"addonName\")\naddon_version = config.require_object(\"addonVersion\")\ntest = flexibleengine.get_cce_addon_template(cluster_id=cluster_id,\n    name=addon_name,\n    version=addon_version)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var clusterId = config.RequireObject\u003cdynamic\u003e(\"clusterId\");\n    var addonName = config.RequireObject\u003cdynamic\u003e(\"addonName\");\n    var addonVersion = config.RequireObject\u003cdynamic\u003e(\"addonVersion\");\n    var test = Flexibleengine.GetCceAddonTemplate.Invoke(new()\n    {\n        ClusterId = clusterId,\n        Name = addonName,\n        Version = addonVersion,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\taddonName := cfg.RequireObject(\"addonName\")\n\t\taddonVersion := cfg.RequireObject(\"addonVersion\")\n\t\t_, err := flexibleengine.GetCceAddonTemplate(ctx, \u0026flexibleengine.GetCceAddonTemplateArgs{\n\t\t\tClusterId: clusterId,\n\t\t\tName:      addonName,\n\t\t\tVersion:   addonVersion,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetCceAddonTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var addonName = config.get(\"addonName\");\n        final var addonVersion = config.get(\"addonVersion\");\n        final var test = FlexibleengineFunctions.getCceAddonTemplate(GetCceAddonTemplateArgs.builder()\n            .clusterId(clusterId)\n            .name(addonName)\n            .version(addonVersion)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  addonName:\n    type: dynamic\n  addonVersion:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getCceAddonTemplate\n      arguments:\n        clusterId: ${clusterId}\n        name: ${addonName}\n        version: ${addonVersion}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getCceAddonTemplate.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "Specifies the ID of CCE cluster.\n"
          },
          "id": {
            "type": "string",
            "description": "The resource id of the addon template.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the add-on name. The supported addons are as follows:\n\n+ **autoscaler**: AutoScaler is a component that automatically adjusts the size of a Kubernetes cluster so that all pods\nhave a place to run and there are no unneeded nodes. Latest version: 1.19.6.\n\n+ **coredns**: CoreDNS is a DNS server that chains plugins and provides Kubernetes DNS Services. Latest version: 1.17.7.\n\n+ **everest**: Everest is a cloud native container storage system based on CSI, used to support cloud storage services\nfor Kubernetes. Latest version: 1.2.9.\n\n+ **metrics-server**: Metrics Server is a cluster-level resource usage data aggregator. Latest version: 1.1.2.\n\n+ **gpu-beta**: A device plugin for nvidia.com/gpu resource on nvidia driver. Latest version: 1.2.2.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "version": {
            "type": "string",
            "description": "Specifies the add-on version.\n"
          }
        },
        "type": "object",
        "required": [
          "clusterId",
          "name",
          "version"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getCceAddonTemplate.\n",
        "properties": {
          "clusterId": {
            "type": "string"
          },
          "description": {
            "description": "The description of the add-on.\n",
            "type": "string"
          },
          "id": {
            "description": "The resource id of the addon template.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "spec": {
            "description": "The detail configuration of the add-on template.\n",
            "type": "string"
          },
          "stable": {
            "description": "Whether the add-on template is a stable version.\n",
            "type": "boolean"
          },
          "supportVersions": {
            "description": "The cluster information.\nThe support_version object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCceAddonTemplateSupportVersion:getCceAddonTemplateSupportVersion"
            },
            "type": "array"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "clusterId",
          "description",
          "id",
          "name",
          "region",
          "spec",
          "stable",
          "supportVersions",
          "version"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getCceClusterV3:getCceClusterV3": {
      "description": "Provides details about a specified CCE cluster.\n\n## Example Usage\n\n \u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterName = config.requireObject(\"clusterName\");\nconst cluster = flexibleengine.getCceClusterV3({\n    name: clusterName,\n    status: \"Available\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_name = config.require_object(\"clusterName\")\ncluster = flexibleengine.get_cce_cluster_v3(name=cluster_name,\n    status=\"Available\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var clusterName = config.RequireObject\u003cdynamic\u003e(\"clusterName\");\n    var cluster = Flexibleengine.GetCceClusterV3.Invoke(new()\n    {\n        Name = clusterName,\n        Status = \"Available\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterName := cfg.RequireObject(\"clusterName\")\n\t\t_, err := flexibleengine.LookupCceClusterV3(ctx, \u0026flexibleengine.LookupCceClusterV3Args{\n\t\t\tName:   pulumi.StringRef(clusterName),\n\t\t\tStatus: pulumi.StringRef(\"Available\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetCceClusterV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterName = config.get(\"clusterName\");\n        final var cluster = FlexibleengineFunctions.getCceClusterV3(GetCceClusterV3Args.builder()\n            .name(clusterName)\n            .status(\"Available\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterName:\n    type: dynamic\nvariables:\n  cluster:\n    fn::invoke:\n      function: flexibleengine:getCceClusterV3\n      arguments:\n        name: ${clusterName}\n        status: Available\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getCceClusterV3.\n",
        "properties": {
          "clusterType": {
            "type": "string",
            "description": "Type of the cluster. Possible values: VirtualMachine, BareMetal or Windows\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of container cluster.\n"
          },
          "name": {
            "type": "string",
            "description": "The Name of the cluster resource.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "status": {
            "type": "string",
            "description": "The state of the cluster.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "The ID of the VPC used to create the node.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCceClusterV3.\n",
        "properties": {
          "authenticationMode": {
            "description": "Authentication mode of the cluster, possible values are x509 and rbac.\n",
            "type": "string"
          },
          "billingMode": {
            "type": "number"
          },
          "clusterType": {
            "type": "string"
          },
          "clusterVersion": {
            "description": "The version of cluster in string format.\n",
            "type": "string"
          },
          "containerNetworkCidr": {
            "description": "The container network segment.\n",
            "type": "string"
          },
          "containerNetworkType": {
            "description": "The container network type: overlay_l2 , underlay_ipvlan or vpc-router.\n",
            "type": "string"
          },
          "customSans": {
            "description": "Custom san list for certificate. (array of string)\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "Cluster description.\n",
            "type": "string"
          },
          "externalApigEndpoint": {
            "description": "The endpoint of the cluster to be accessed through API Gateway.\n",
            "type": "string"
          },
          "externalEndpoint": {
            "description": "The external network address.\n",
            "type": "string"
          },
          "flavorId": {
            "description": "The cluster specification in string format.\n",
            "type": "string"
          },
          "highwaySubnetId": {
            "description": "The ID of the high speed network used to create bare metal nodes.\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of the cluster.\n",
            "type": "string"
          },
          "internalEndpoint": {
            "description": "The internal network address.\n",
            "type": "string"
          },
          "masters": {
            "description": "Advanced configuration of master nodes.\nThe masters object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCceClusterV3Master:getCceClusterV3Master"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the cluster in string format.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "securityGroupId": {
            "description": "Security group ID of the cluster.\n",
            "type": "string"
          },
          "serviceNetworkCidr": {
            "description": "The service network segment.\n",
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the VPC Subnet used to create the node.\n",
            "type": "string"
          },
          "vpcId": {
            "description": "The ID of the VPC used to create the node.\n",
            "type": "string"
          }
        },
        "required": [
          "authenticationMode",
          "billingMode",
          "clusterVersion",
          "containerNetworkCidr",
          "containerNetworkType",
          "customSans",
          "description",
          "externalApigEndpoint",
          "externalEndpoint",
          "flavorId",
          "highwaySubnetId",
          "internalEndpoint",
          "masters",
          "region",
          "securityGroupId",
          "serviceNetworkCidr",
          "subnetId"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getCceClusters:getCceClusters": {
      "description": "Use this data source to get a list of CCE clusters.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterName = config.requireObject(\"clusterName\");\nconst clusters = flexibleengine.getCceClusters({\n    name: clusterName,\n    status: \"Available\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_name = config.require_object(\"clusterName\")\nclusters = flexibleengine.get_cce_clusters(name=cluster_name,\n    status=\"Available\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var clusterName = config.RequireObject\u003cdynamic\u003e(\"clusterName\");\n    var clusters = Flexibleengine.GetCceClusters.Invoke(new()\n    {\n        Name = clusterName,\n        Status = \"Available\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterName := cfg.RequireObject(\"clusterName\")\n\t\t_, err := flexibleengine.GetCceClusters(ctx, \u0026flexibleengine.GetCceClustersArgs{\n\t\t\tName:   pulumi.StringRef(clusterName),\n\t\t\tStatus: pulumi.StringRef(\"Available\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetCceClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterName = config.get(\"clusterName\");\n        final var clusters = FlexibleengineFunctions.getCceClusters(GetCceClustersArgs.builder()\n            .name(clusterName)\n            .status(\"Available\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterName:\n    type: dynamic\nvariables:\n  clusters:\n    fn::invoke:\n      function: flexibleengine:getCceClusters\n      arguments:\n        name: ${clusterName}\n        status: Available\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getCceClusters.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "Specifies the ID of the cluster.\n"
          },
          "clusterType": {
            "type": "string",
            "description": "Specifies the type of the cluster. Possible values: **VirtualMachine**, **BareMetal**.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project ID of the cluster.\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of the cluster.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the cluster.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the CCE clusters. If omitted, the\nprovider-level region will be used.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the status of the cluster.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC ID to which the cluster belongs.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCceClusters.\n",
        "properties": {
          "clusterId": {
            "type": "string"
          },
          "clusterType": {
            "description": "The type of the cluster. Possible values: **VirtualMachine**, **ARM64**.\n",
            "type": "string"
          },
          "clusters": {
            "description": "Indicates a list of CCE clusters found.\nThe clusters object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCceClustersCluster:getCceClustersCluster"
            },
            "type": "array"
          },
          "enterpriseProjectId": {
            "description": "The enterprise project ID of the CCE cluster.\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of the cluster.\n",
            "type": "string"
          },
          "ids": {
            "description": "Indicates a list of IDs of all CCE clusters found.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The user name.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "description": "The status of the cluster.\n",
            "type": "string"
          },
          "vpcId": {
            "description": "The vpc ID of the cluster.\n",
            "type": "string"
          }
        },
        "required": [
          "clusters",
          "id",
          "ids",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getCceNodeIdsV3:getCceNodeIdsV3": {
      "description": "`flexibleengine.getCceNodeIdsV3` provides a list of node ids for a CCE cluster.\nThis data source can be useful for getting back a list of node ids for a CCE cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject(\"clusterId\");\nconst nodeIds = flexibleengine.getCceNodeIdsV3({\n    clusterId: clusterId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nnode_ids = flexibleengine.get_cce_node_ids_v3(cluster_id=cluster_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var clusterId = config.RequireObject\u003cdynamic\u003e(\"clusterId\");\n    var nodeIds = Flexibleengine.GetCceNodeIdsV3.Invoke(new()\n    {\n        ClusterId = clusterId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\t_, err := flexibleengine.GetCceNodeIdsV3(ctx, \u0026flexibleengine.GetCceNodeIdsV3Args{\n\t\t\tClusterId: clusterId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetCceNodeIdsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var nodeIds = FlexibleengineFunctions.getCceNodeIdsV3(GetCceNodeIdsV3Args.builder()\n            .clusterId(clusterId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\nvariables:\n  nodeIds:\n    fn::invoke:\n      function: flexibleengine:getCceNodeIdsV3\n      arguments:\n        clusterId: ${clusterId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getCceNodeIdsV3.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "Specifies the CCE cluster ID used as the query filter.\n"
          },
          "id": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          }
        },
        "type": "object",
        "required": [
          "clusterId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getCceNodeIdsV3.\n",
        "properties": {
          "clusterId": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "ids": {
            "description": "A list of all the node ids found. This data source will fail if none are found.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "clusterId",
          "id",
          "ids",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getCceNodeV3:getCceNodeV3": {
      "description": "To get the specified CCE node in a cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject(\"clusterId\");\nconst nodeName = config.requireObject(\"nodeName\");\nconst node = flexibleengine.getCceNodeV3({\n    clusterId: clusterId,\n    name: nodeName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nnode_name = config.require_object(\"nodeName\")\nnode = flexibleengine.get_cce_node_v3(cluster_id=cluster_id,\n    name=node_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var clusterId = config.RequireObject\u003cdynamic\u003e(\"clusterId\");\n    var nodeName = config.RequireObject\u003cdynamic\u003e(\"nodeName\");\n    var node = Flexibleengine.GetCceNodeV3.Invoke(new()\n    {\n        ClusterId = clusterId,\n        Name = nodeName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tnodeName := cfg.RequireObject(\"nodeName\")\n\t\t_, err := flexibleengine.LookupCceNodeV3(ctx, \u0026flexibleengine.LookupCceNodeV3Args{\n\t\t\tClusterId: clusterId,\n\t\t\tName:      pulumi.StringRef(nodeName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetCceNodeV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var nodeName = config.get(\"nodeName\");\n        final var node = FlexibleengineFunctions.getCceNodeV3(GetCceNodeV3Args.builder()\n            .clusterId(clusterId)\n            .name(nodeName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  nodeName:\n    type: dynamic\nvariables:\n  node:\n    fn::invoke:\n      function: flexibleengine:getCceNodeV3\n      arguments:\n        clusterId: ${clusterId}\n        name: ${nodeName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getCceNodeV3.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "The id of container cluster.\n"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Name of the node.\n"
          },
          "nodeId": {
            "type": "string",
            "description": "The id of the node.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "status": {
            "type": "string",
            "description": "The state of the node.\n"
          }
        },
        "type": "object",
        "required": [
          "clusterId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getCceNodeV3.\n",
        "properties": {
          "availabilityZone": {
            "description": "Available partitions where the node is located.\n",
            "type": "string"
          },
          "bandwidthSize": {
            "description": "Bandwidth (Mbit/s), in the range of [1, 2000].\n",
            "type": "number"
          },
          "billingMode": {
            "description": "Node's billing mode: The value is 0 (on demand).\n",
            "type": "number"
          },
          "chargeMode": {
            "description": "Bandwidth billing type.\n",
            "type": "string"
          },
          "clusterId": {
            "type": "string"
          },
          "dataVolumes": {
            "description": "Represents the data disk to be created.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCceNodeV3DataVolume:getCceNodeV3DataVolume"
            },
            "type": "array"
          },
          "diskSize": {
            "description": "Disk size in GB.\n",
            "type": "number"
          },
          "eipIds": {
            "description": "List of existing elastic IP IDs.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "flavorId": {
            "description": "The flavor id to be used.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "ipType": {
            "description": "Elastic IP address type.\n",
            "type": "string"
          },
          "keyPair": {
            "description": "Key pair name when logging in to select the key pair mode.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "nodeId": {
            "type": "string"
          },
          "privateIp": {
            "description": "Private IP of the node\n",
            "type": "string"
          },
          "publicIp": {
            "description": "Elastic IP parameters of the node.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "serverId": {
            "description": "The node's virtual machine ID in ECS.\n",
            "type": "string"
          },
          "shareType": {
            "description": "Bandwidth sharing type.\n",
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "volumeType": {
            "description": "Disk type.\n",
            "type": "string"
          }
        },
        "required": [
          "availabilityZone",
          "bandwidthSize",
          "billingMode",
          "chargeMode",
          "clusterId",
          "dataVolumes",
          "diskSize",
          "eipIds",
          "flavorId",
          "id",
          "ipType",
          "keyPair",
          "privateIp",
          "publicIp",
          "region",
          "serverId",
          "shareType",
          "volumeType"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getCceNodes:getCceNodes": {
      "description": "Use this data source to get a list of CCE nodes.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject(\"clusterId\");\nconst nodeName = config.requireObject(\"nodeName\");\nconst node = flexibleengine.getCceNodes({\n    clusterId: clusterId,\n    name: nodeName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nnode_name = config.require_object(\"nodeName\")\nnode = flexibleengine.get_cce_nodes(cluster_id=cluster_id,\n    name=node_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var clusterId = config.RequireObject\u003cdynamic\u003e(\"clusterId\");\n    var nodeName = config.RequireObject\u003cdynamic\u003e(\"nodeName\");\n    var node = Flexibleengine.GetCceNodes.Invoke(new()\n    {\n        ClusterId = clusterId,\n        Name = nodeName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tnodeName := cfg.RequireObject(\"nodeName\")\n\t\t_, err := flexibleengine.GetCceNodes(ctx, \u0026flexibleengine.GetCceNodesArgs{\n\t\t\tClusterId: clusterId,\n\t\t\tName:      pulumi.StringRef(nodeName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetCceNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var nodeName = config.get(\"nodeName\");\n        final var node = FlexibleengineFunctions.getCceNodes(GetCceNodesArgs.builder()\n            .clusterId(clusterId)\n            .name(nodeName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  nodeName:\n    type: dynamic\nvariables:\n  node:\n    fn::invoke:\n      function: flexibleengine:getCceNodes\n      arguments:\n        clusterId: ${clusterId}\n        name: ${nodeName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getCceNodes.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "Specifies the ID of CCE cluster.\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of the node.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the node.\n"
          },
          "nodeId": {
            "type": "string",
            "description": "Specifies the ID of the node.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the CCE nodes. If omitted, the provider-level\nregion will be used.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the status of the node.\n"
          }
        },
        "type": "object",
        "required": [
          "clusterId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getCceNodes.\n",
        "properties": {
          "clusterId": {
            "type": "string"
          },
          "id": {
            "description": "The ID of the node.\n",
            "type": "string"
          },
          "ids": {
            "description": "Indicates a list of IDs of all CCE nodes found.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the node.\n",
            "type": "string"
          },
          "nodeId": {
            "type": "string"
          },
          "nodes": {
            "description": "Indicates a list of CCE nodes found. The nodes object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCceNodesNode:getCceNodesNode"
            },
            "type": "array"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "description": "The status of the node.\n",
            "type": "string"
          }
        },
        "required": [
          "clusterId",
          "id",
          "ids",
          "nodes",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getComputeAvailabilityZonesV2:getComputeAvailabilityZonesV2": {
      "description": "Use this data source to get a list of availability zones from FlexibleEngine\n\n!\u003e **WARNING:** It has been deprecated, use `flexibleengine.getAvailabilityZones` instead.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst zones = flexibleengine.getComputeAvailabilityZonesV2({});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nzones = flexibleengine.get_compute_availability_zones_v2()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var zones = Flexibleengine.GetComputeAvailabilityZonesV2.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetComputeAvailabilityZonesV2(ctx, \u0026flexibleengine.GetComputeAvailabilityZonesV2Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetComputeAvailabilityZonesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var zones = FlexibleengineFunctions.getComputeAvailabilityZonesV2();\n\n    }\n}\n```\n```yaml\nvariables:\n  zones:\n    fn::invoke:\n      function: flexibleengine:getComputeAvailabilityZonesV2\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeAvailabilityZonesV2.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "The `region` to fetch availability zones from, defaults to the provider's `region`\n"
          },
          "state": {
            "type": "string",
            "description": "The `state` of the availability zones to match, default (\"available\").\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getComputeAvailabilityZonesV2.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "names": {
            "description": "The names of the availability zones, ordered alphanumerically, that match the queried `state`\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "region": {
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "names",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getComputeBmsFlavorsV2:getComputeBmsFlavorsV2": {
      "description": "Use this data source to get an available BMS Flavor.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst bMSFlavor = flexibleengine.getComputeBmsFlavorsV2({\n    vcpus: 32,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nb_ms_flavor = flexibleengine.get_compute_bms_flavors_v2(vcpus=32)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var bMSFlavor = Flexibleengine.GetComputeBmsFlavorsV2.Invoke(new()\n    {\n        Vcpus = 32,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetComputeBmsFlavorsV2(ctx, \u0026flexibleengine.GetComputeBmsFlavorsV2Args{\n\t\t\tVcpus: pulumi.Float64Ref(32),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetComputeBmsFlavorsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var bMSFlavor = FlexibleengineFunctions.getComputeBmsFlavorsV2(GetComputeBmsFlavorsV2Args.builder()\n            .vcpus(32)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  bMSFlavor:\n    fn::invoke:\n      function: flexibleengine:getComputeBmsFlavorsV2\n      arguments:\n        vcpus: 32\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeBmsFlavorsV2.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the flavor.\n"
          },
          "minDisk": {
            "type": "number",
            "description": "Specifies the minimum disk size in GB. Only the BMSs with a disk size\ngreater than or equal to the minimum size can be queried.\n"
          },
          "minRam": {
            "type": "number",
            "description": "Specifies the minimum memory size in MB. Only the BMSs with the memory size\ngreater than or equal to the minimum size can be queried.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the BMS flavor.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "sortDir": {
            "type": "string",
            "description": "The sorting order, which can be **asc** (ascending) or **desc** (descending).\nThe default value is **asc**.\n"
          },
          "sortKey": {
            "type": "string",
            "description": "The sorting field. The default value is **flavorid**.\nThe available values are **name**, **memory_mb**, **vcpus**, **root_gb**, or **flavorid**.\n"
          },
          "vcpus": {
            "type": "number",
            "description": "Specifies the number of CPU cores in the BMS flavor.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getComputeBmsFlavorsV2.\n",
        "properties": {
          "disk": {
            "description": "The disk size (GB) in the BMS flavor.\n",
            "type": "number"
          },
          "id": {
            "description": "The BMS flavor id.\n",
            "type": "string"
          },
          "minDisk": {
            "type": "number"
          },
          "minRam": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "ram": {
            "description": "The memory size (in MB) of the BMS flavor.\n",
            "type": "number"
          },
          "region": {
            "type": "string"
          },
          "rxTxFactor": {
            "description": "This is a reserved attribute.\n",
            "type": "number"
          },
          "sortDir": {
            "type": "string"
          },
          "sortKey": {
            "type": "string"
          },
          "swap": {
            "description": "This is a reserved attribute.\n",
            "type": "number"
          },
          "vcpus": {
            "type": "number"
          }
        },
        "required": [
          "disk",
          "ram",
          "region",
          "rxTxFactor",
          "swap"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getComputeBmsKeypairsV2:getComputeBmsKeypairsV2": {
      "description": "`flexibleengine.getComputeBmsKeypairsV2` used to query SSH key pairs.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst keypairName = config.requireObject(\"keypairName\");\nconst keypair = flexibleengine.getComputeBmsKeypairsV2({\n    name: keypairName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nkeypair_name = config.require_object(\"keypairName\")\nkeypair = flexibleengine.get_compute_bms_keypairs_v2(name=keypair_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var keypairName = config.RequireObject\u003cdynamic\u003e(\"keypairName\");\n    var keypair = Flexibleengine.GetComputeBmsKeypairsV2.Invoke(new()\n    {\n        Name = keypairName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tkeypairName := cfg.RequireObject(\"keypairName\")\n\t\t_, err := flexibleengine.GetComputeBmsKeypairsV2(ctx, \u0026flexibleengine.GetComputeBmsKeypairsV2Args{\n\t\t\tName: keypairName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetComputeBmsKeypairsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var keypairName = config.get(\"keypairName\");\n        final var keypair = FlexibleengineFunctions.getComputeBmsKeypairsV2(GetComputeBmsKeypairsV2Args.builder()\n            .name(keypairName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  keypairName:\n    type: dynamic\nvariables:\n  keypair:\n    fn::invoke:\n      function: flexibleengine:getComputeBmsKeypairsV2\n      arguments:\n        name: ${keypairName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeBmsKeypairsV2.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "It is the key pair name.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getComputeBmsKeypairsV2.\n",
        "properties": {
          "fingerprint": {
            "description": "It is the fingerprint information about the key pair.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "publicKey": {
            "description": "It gives the information about the public key in the key pair.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "fingerprint",
          "id",
          "name",
          "publicKey",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getComputeBmsNicV2:getComputeBmsNicV2": {
      "description": "`flexibleengine.getComputeBmsNicV2` used to query information about a BMS NIC based on the NIC ID.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst bmsId = config.requireObject(\"bmsId\");\nconst nicId = config.requireObject(\"nicId\");\nconst nic = flexibleengine.getComputeBmsNicV2({\n    serverId: bmsId,\n    id: nicId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nbms_id = config.require_object(\"bmsId\")\nnic_id = config.require_object(\"nicId\")\nnic = flexibleengine.get_compute_bms_nic_v2(server_id=bms_id,\n    id=nic_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var bmsId = config.RequireObject\u003cdynamic\u003e(\"bmsId\");\n    var nicId = config.RequireObject\u003cdynamic\u003e(\"nicId\");\n    var nic = Flexibleengine.GetComputeBmsNicV2.Invoke(new()\n    {\n        ServerId = bmsId,\n        Id = nicId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbmsId := cfg.RequireObject(\"bmsId\")\n\t\tnicId := cfg.RequireObject(\"nicId\")\n\t\t_, err := flexibleengine.GetComputeBmsNicV2(ctx, \u0026flexibleengine.GetComputeBmsNicV2Args{\n\t\t\tServerId: bmsId,\n\t\t\tId:       pulumi.StringRef(nicId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetComputeBmsNicV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bmsId = config.get(\"bmsId\");\n        final var nicId = config.get(\"nicId\");\n        final var nic = FlexibleengineFunctions.getComputeBmsNicV2(GetComputeBmsNicV2Args.builder()\n            .serverId(bmsId)\n            .id(nicId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bmsId:\n    type: dynamic\n  nicId:\n    type: dynamic\nvariables:\n  nic:\n    fn::invoke:\n      function: flexibleengine:getComputeBmsNicV2\n      arguments:\n        serverId: ${bmsId}\n        id: ${nicId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeBmsNicV2.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the NIC.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "serverId": {
            "type": "string",
            "description": "This is the unique BMS id.\n"
          },
          "status": {
            "type": "string",
            "description": "The NIC port status.\n"
          }
        },
        "type": "object",
        "required": [
          "serverId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getComputeBmsNicV2.\n",
        "properties": {
          "fixedIps": {
            "description": "The NIC IP address.\nThe fixed_ips object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetComputeBmsNicV2FixedIp:getComputeBmsNicV2FixedIp"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "macAddress": {
            "description": "It is NIC's mac address.\n",
            "type": "string"
          },
          "networkId": {
            "description": "The ID of the network to which the NIC port belongs.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "serverId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "fixedIps",
          "macAddress",
          "networkId",
          "region",
          "serverId"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getComputeBmsServerV2:getComputeBmsServerV2": {
      "description": "`flexibleengine.ComputeBmsServerV2` used to query a BMS or BMSs details.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst bmsName = config.requireObject(\"bmsName\");\nconst server = flexibleengine.getComputeBmsServerV2({\n    name: bmsName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nbms_name = config.require_object(\"bmsName\")\nserver = flexibleengine.get_compute_bms_server_v2(name=bms_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var bmsName = config.RequireObject\u003cdynamic\u003e(\"bmsName\");\n    var server = Flexibleengine.GetComputeBmsServerV2.Invoke(new()\n    {\n        Name = bmsName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbmsName := cfg.RequireObject(\"bmsName\")\n\t\t_, err := flexibleengine.LookupComputeBmsServerV2(ctx, \u0026flexibleengine.LookupComputeBmsServerV2Args{\n\t\t\tName: pulumi.StringRef(bmsName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetComputeBmsServerV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bmsName = config.get(\"bmsName\");\n        final var server = FlexibleengineFunctions.getComputeBmsServerV2(GetComputeBmsServerV2Args.builder()\n            .name(bmsName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bmsName:\n    type: dynamic\nvariables:\n  server:\n    fn::invoke:\n      function: flexibleengine:getComputeBmsServerV2\n      arguments:\n        name: ${bmsName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeBmsServerV2.\n",
        "properties": {
          "flavorId": {
            "type": "string",
            "description": "It gives the BMS flavor information.\n"
          },
          "hostStatus": {
            "type": "string",
            "description": "The nova-compute status: **UP, UNKNOWN, DOWN, MAINTENANCE** and **Null**.\n"
          },
          "id": {
            "type": "string",
            "description": "The unique ID of the BMS.\n"
          },
          "imageId": {
            "type": "string",
            "description": "The BMS image.\n"
          },
          "keyName": {
            "type": "string",
            "description": "It is the SSH key name.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of BMS.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "status": {
            "type": "string",
            "description": "The BMS status.\n"
          },
          "userId": {
            "type": "string",
            "description": "The ID of the user to which the BMS belongs.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getComputeBmsServerV2.\n",
        "properties": {
          "accessIpV4": {
            "description": "This is a reserved attribute.\n",
            "type": "string"
          },
          "accessIpV6": {
            "description": "This is a reserved attribute.\n",
            "type": "string"
          },
          "availabilityZone": {
            "description": "Specifies the AZ ID.\n",
            "type": "string"
          },
          "configDrive": {
            "description": "This is a reserved attribute.\n",
            "type": "string"
          },
          "description": {
            "description": "Provides supplementary information about the pool.\n",
            "type": "string"
          },
          "flavorId": {
            "type": "string"
          },
          "hostId": {
            "description": "It is the host ID of the BMS.\n",
            "type": "string"
          },
          "hostStatus": {
            "type": "string"
          },
          "hypervisorHostname": {
            "description": "It is the name of a host on the hypervisor.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "imageId": {
            "type": "string"
          },
          "instanceName": {
            "description": "Instance name is specified.\n",
            "type": "string"
          },
          "kernelId": {
            "description": "The UUID of the kernel image when the AMI image is used.\n",
            "type": "string"
          },
          "keyName": {
            "type": "string"
          },
          "locked": {
            "description": "It specifies whether a BMS is locked, true: The BMS is locked, false: The BMS is not locked.\n",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The BMS metadata is specified.\n",
            "type": "object"
          },
          "name": {
            "description": "The name of security_groups.\n",
            "type": "string"
          },
          "networks": {
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetComputeBmsServerV2Network:getComputeBmsServerV2Network"
            },
            "type": "array"
          },
          "progress": {
            "description": "This is a reserved attribute.\n",
            "type": "number"
          },
          "region": {
            "type": "string"
          },
          "securityGroups": {
            "description": "The list of security groups to which the BMS belongs.\nThe security_groups object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetComputeBmsServerV2SecurityGroup:getComputeBmsServerV2SecurityGroup"
            },
            "type": "array"
          },
          "status": {
            "type": "string"
          },
          "tags": {
            "description": "Specifies the BMS tag.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tenantId": {
            "description": "Specifies the ID of the tenant owning the BMS. The value is in UUID format.\nThis parameter specifies the same meaning as project_id.\n",
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "required": [
          "accessIpV4",
          "accessIpV6",
          "availabilityZone",
          "configDrive",
          "description",
          "hostId",
          "hypervisorHostname",
          "instanceName",
          "kernelId",
          "locked",
          "metadata",
          "networks",
          "progress",
          "region",
          "securityGroups",
          "tags",
          "tenantId"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getComputeFlavorsV2:getComputeFlavorsV2": {
      "description": "Use this data source to get the available Compute Flavors.\n\n",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeFlavorsV2.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the AZ name.\n"
          },
          "cpuCore": {
            "type": "number",
            "description": "Specifies the number of vCPUs in the ECS flavor.\n"
          },
          "generation": {
            "type": "string",
            "description": "Specifies the generation of an ECS type.\n"
          },
          "id": {
            "type": "string",
            "description": "Specifies a data source ID in UUID format.\n"
          },
          "memorySize": {
            "type": "number",
            "description": "Specifies the memory size(GB) in the ECS flavor.\n"
          },
          "performanceType": {
            "type": "string",
            "description": "Specifies the ECS flavor type.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the flavors.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getComputeFlavorsV2.\n",
        "properties": {
          "availabilityZone": {
            "type": "string"
          },
          "cpuCore": {
            "type": "number"
          },
          "flavors": {
            "description": "A list of flavors.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "generation": {
            "type": "string"
          },
          "id": {
            "description": "Specifies a data source ID in UUID format.\n",
            "type": "string"
          },
          "memorySize": {
            "type": "number"
          },
          "performanceType": {
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "flavors",
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getComputeInstanceV2:getComputeInstanceV2": {
      "description": "Use this data source to get the details of a specified compute instance.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst serverName = config.requireObject(\"serverName\");\nconst demo = flexibleengine.getComputeInstanceV2({\n    name: serverName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nserver_name = config.require_object(\"serverName\")\ndemo = flexibleengine.get_compute_instance_v2(name=server_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var serverName = config.RequireObject\u003cdynamic\u003e(\"serverName\");\n    var demo = Flexibleengine.GetComputeInstanceV2.Invoke(new()\n    {\n        Name = serverName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tserverName := cfg.RequireObject(\"serverName\")\n\t\t_, err := flexibleengine.LookupComputeInstanceV2(ctx, \u0026flexibleengine.LookupComputeInstanceV2Args{\n\t\t\tName: pulumi.StringRef(serverName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetComputeInstanceV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var serverName = config.get(\"serverName\");\n        final var demo = FlexibleengineFunctions.getComputeInstanceV2(GetComputeInstanceV2Args.builder()\n            .name(serverName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  serverName:\n    type: dynamic\nvariables:\n  demo:\n    fn::invoke:\n      function: flexibleengine:getComputeInstanceV2\n      arguments:\n        name: ${serverName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeInstanceV2.\n",
        "properties": {
          "fixedIpV4": {
            "type": "string",
            "description": "Specifies the IPv4 addresses of the server.\n"
          },
          "flavorId": {
            "type": "string",
            "description": "Specifies the flavor ID.\n"
          },
          "id": {
            "type": "string",
            "description": "The instance ID in UUID format.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the server name, which can be queried with a regular expression.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the server instance. If omitted, the provider-level\nregion will be used.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getComputeInstanceV2.\n",
        "properties": {
          "availabilityZone": {
            "description": "The availability zone where the instance is located.\n",
            "type": "string"
          },
          "blockDevices": {
            "description": "An array of one or more disks to attach to the instance.\nThe block_device object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetComputeInstanceV2BlockDevice:getComputeInstanceV2BlockDevice"
            },
            "type": "array"
          },
          "fixedIpV4": {
            "description": "The fixed IPv4 address of the instance on this network.\n",
            "type": "string"
          },
          "flavorId": {
            "type": "string"
          },
          "flavorName": {
            "description": "The flavor name of the instance.\n",
            "type": "string"
          },
          "floatingIp": {
            "description": "The EIP address that is associated to the instance.\n",
            "type": "string"
          },
          "id": {
            "description": "The instance ID in UUID format.\n",
            "type": "string"
          },
          "imageId": {
            "description": "The image ID of the instance.\n",
            "type": "string"
          },
          "imageName": {
            "description": "The image name of the instance.\n",
            "type": "string"
          },
          "keyPair": {
            "description": "The key pair that is used to authenticate the instance.\n",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The metadata of the instance in key/value format.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "networks": {
            "description": "An array of one or more networks to attach to the instance.\nThe network object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetComputeInstanceV2Network:getComputeInstanceV2Network"
            },
            "type": "array"
          },
          "region": {
            "type": "string"
          },
          "schedulerHints": {
            "description": "The scheduler with hints on how the instance should be launched.\nThe scheduler_hints object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetComputeInstanceV2SchedulerHint:getComputeInstanceV2SchedulerHint"
            },
            "type": "array"
          },
          "securityGroups": {
            "description": "An array of one or more security group names\nto associate with the instance.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "status": {
            "description": "The status of the instance.\n",
            "type": "string"
          },
          "systemDiskId": {
            "description": "The system disk volume ID.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The tags of the instance in key/value format.\n",
            "type": "object"
          },
          "userData": {
            "description": "The user data (information after encoding) configured during instance creation.\n",
            "type": "string"
          }
        },
        "required": [
          "availabilityZone",
          "blockDevices",
          "flavorId",
          "flavorName",
          "floatingIp",
          "id",
          "imageId",
          "imageName",
          "keyPair",
          "metadata",
          "name",
          "networks",
          "region",
          "schedulerHints",
          "securityGroups",
          "status",
          "systemDiskId",
          "tags",
          "userData"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getComputeInstances:getComputeInstances": {
      "description": "Use this data source to get a list of compute instances.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst nameRegex = config.requireObject(\"nameRegex\");\nconst demo = flexibleengine.getComputeInstances({\n    name: nameRegex,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nname_regex = config.require_object(\"nameRegex\")\ndemo = flexibleengine.get_compute_instances(name=name_regex)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var nameRegex = config.RequireObject\u003cdynamic\u003e(\"nameRegex\");\n    var demo = Flexibleengine.GetComputeInstances.Invoke(new()\n    {\n        Name = nameRegex,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnameRegex := cfg.RequireObject(\"nameRegex\")\n\t\t_, err := flexibleengine.GetComputeInstances(ctx, \u0026flexibleengine.GetComputeInstancesArgs{\n\t\t\tName: pulumi.StringRef(nameRegex),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetComputeInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var nameRegex = config.get(\"nameRegex\");\n        final var demo = FlexibleengineFunctions.getComputeInstances(GetComputeInstancesArgs.builder()\n            .name(nameRegex)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  nameRegex:\n    type: dynamic\nvariables:\n  demo:\n    fn::invoke:\n      function: flexibleengine:getComputeInstances\n      arguments:\n        name: ${nameRegex}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeInstances.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the availability zone where the instance is located.\n"
          },
          "fixedIpV4": {
            "type": "string",
            "description": "Specifies the IPv4 addresses of the server.\n"
          },
          "flavorId": {
            "type": "string",
            "description": "Specifies the flavor ID.\n"
          },
          "flavorName": {
            "type": "string",
            "description": "Specifies the flavor name of the instance.\n"
          },
          "id": {
            "type": "string",
            "description": "The instance ID in UUID format.\n"
          },
          "imageId": {
            "type": "string",
            "description": "Specifies the image ID of the instance.\n"
          },
          "keyPair": {
            "type": "string",
            "description": "Specifies the key pair that is used to authenticate the instance.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the server name, which can be queried with a regular expression.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the server instance.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the status of the instance. The valid values are as follows:\n+ **ACTIVE**: The instance is running properly.\n+ **SHUTOFF**: The instance has been properly stopped.\n+ **ERROR**: An error has occurred on the instance.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getComputeInstances.\n",
        "properties": {
          "availabilityZone": {
            "description": "The availability zone where the instance is located.\n",
            "type": "string"
          },
          "fixedIpV4": {
            "description": "The fixed IPv4 address of the instance on this network.\n",
            "type": "string"
          },
          "flavorId": {
            "description": "The flavor ID of the instance.\n",
            "type": "string"
          },
          "flavorName": {
            "description": "The flavor name of the instance.\n",
            "type": "string"
          },
          "id": {
            "description": "The instance ID in UUID format.\n",
            "type": "string"
          },
          "imageId": {
            "description": "The image ID of the instance.\n",
            "type": "string"
          },
          "instances": {
            "description": "List of ECS instance details. The instances object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetComputeInstancesInstance:getComputeInstancesInstance"
            },
            "type": "array"
          },
          "keyPair": {
            "description": "The key pair that is used to authenticate the instance.\n",
            "type": "string"
          },
          "name": {
            "description": "The instance name.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "description": "The status of the instance.\n",
            "type": "string"
          }
        },
        "required": [
          "flavorId",
          "id",
          "instances",
          "name",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getComputeServergroups:getComputeServergroups": {
      "description": "Use this data source to get the list of the compute server groups.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject(\"name\");\nconst test = flexibleengine.getComputeServergroups({\n    name: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\ntest = flexibleengine.get_compute_servergroups(name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.RequireObject\u003cdynamic\u003e(\"name\");\n    var test = Flexibleengine.GetComputeServergroups.Invoke(new()\n    {\n        Name = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\t_, err := flexibleengine.GetComputeServergroups(ctx, \u0026flexibleengine.GetComputeServergroupsArgs{\n\t\t\tName: pulumi.StringRef(name),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetComputeServergroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var test = FlexibleengineFunctions.getComputeServergroups(GetComputeServergroupsArgs.builder()\n            .name(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getComputeServergroups\n      arguments:\n        name: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getComputeServergroups.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The server group ID in UUID format.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the server group name.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the server groups.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getComputeServergroups.\n",
        "properties": {
          "id": {
            "description": "The server group ID in UUID format.\n",
            "type": "string"
          },
          "name": {
            "description": "The server group name.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "servergroups": {
            "description": "List of ECS server groups details. The servergroups object structure is\ndocumented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetComputeServergroupsServergroup:getComputeServergroupsServergroup"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "servergroups"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getCsbsBackupPolicyV1:getCsbsBackupPolicyV1": {
      "description": "The FlexibleEngine CSBS Backup Policy data source allows access of backup Policy resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst policyId = config.requireObject(\"policyId\");\nconst csbsPolicy = flexibleengine.getCsbsBackupPolicyV1({\n    id: policyId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\npolicy_id = config.require_object(\"policyId\")\ncsbs_policy = flexibleengine.get_csbs_backup_policy_v1(id=policy_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var policyId = config.RequireObject\u003cdynamic\u003e(\"policyId\");\n    var csbsPolicy = Flexibleengine.GetCsbsBackupPolicyV1.Invoke(new()\n    {\n        Id = policyId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tpolicyId := cfg.RequireObject(\"policyId\")\n\t\t_, err := flexibleengine.LookupCsbsBackupPolicyV1(ctx, \u0026flexibleengine.LookupCsbsBackupPolicyV1Args{\n\t\t\tId: pulumi.StringRef(policyId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetCsbsBackupPolicyV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var policyId = config.get(\"policyId\");\n        final var csbsPolicy = FlexibleengineFunctions.getCsbsBackupPolicyV1(GetCsbsBackupPolicyV1Args.builder()\n            .id(policyId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  policyId:\n    type: dynamic\nvariables:\n  csbsPolicy:\n    fn::invoke:\n      function: flexibleengine:getCsbsBackupPolicyV1\n      arguments:\n        id: ${policyId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getCsbsBackupPolicyV1.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Specifies the ID of backup policy.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the backup policy name.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the backup policy status.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCsbsBackupPolicyV1.\n",
        "properties": {
          "common": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "General backup policy parameters, which are blank by default.\n",
            "type": "object"
          },
          "description": {
            "description": "Specifies Scheduling period description.\n",
            "type": "string"
          },
          "id": {
            "description": "Specifies the ID of the object to be backed up.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies backup object name.\n",
            "type": "string"
          },
          "providerId": {
            "description": "Provides the Backup provider ID.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "resources": {
            "description": "Backup Object. The resource object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCsbsBackupPolicyV1Resource:getCsbsBackupPolicyV1Resource"
            },
            "type": "array"
          },
          "scheduledOperations": {
            "description": "Backup plan information.\nThe scheduled_operation object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCsbsBackupPolicyV1ScheduledOperation:getCsbsBackupPolicyV1ScheduledOperation"
            },
            "type": "array"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "common",
          "description",
          "id",
          "name",
          "providerId",
          "region",
          "resources",
          "scheduledOperations",
          "status"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getCsbsBackupV1:getCsbsBackupV1": {
      "description": "The FlexibleEngine CSBS Backup data source allows access of backup resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst backupName = config.requireObject(\"backupName\");\nconst csbs = flexibleengine.getCsbsBackupV1({\n    backupName: backupName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nbackup_name = config.require_object(\"backupName\")\ncsbs = flexibleengine.get_csbs_backup_v1(backup_name=backup_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var backupName = config.RequireObject\u003cdynamic\u003e(\"backupName\");\n    var csbs = Flexibleengine.GetCsbsBackupV1.Invoke(new()\n    {\n        BackupName = backupName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbackupName := cfg.RequireObject(\"backupName\")\n\t\t_, err := flexibleengine.LookupCsbsBackupV1(ctx, \u0026flexibleengine.LookupCsbsBackupV1Args{\n\t\t\tBackupName: pulumi.StringRef(backupName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetCsbsBackupV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var backupName = config.get(\"backupName\");\n        final var csbs = FlexibleengineFunctions.getCsbsBackupV1(GetCsbsBackupV1Args.builder()\n            .backupName(backupName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  backupName:\n    type: dynamic\nvariables:\n  csbs:\n    fn::invoke:\n      function: flexibleengine:getCsbsBackupV1\n      arguments:\n        backupName: ${backupName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getCsbsBackupV1.\n",
        "properties": {
          "backupName": {
            "type": "string",
            "description": "Specifies the backup name.\n"
          },
          "backupRecordId": {
            "type": "string",
            "description": "Specifies the backup record ID.\n"
          },
          "id": {
            "type": "string",
            "description": "Specifies the ID of backup.\n"
          },
          "policyId": {
            "type": "string",
            "description": "Specifies the Policy Id.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "resourceId": {
            "type": "string",
            "description": "Specifies the backup object ID.\n"
          },
          "resourceName": {
            "type": "string",
            "description": "Specifies the backup object name.\n"
          },
          "resourceType": {
            "type": "string",
            "description": "Specifies the type of backup objects.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the backup status.\n"
          },
          "vmIp": {
            "type": "string",
            "description": "Specifies the ip of VM.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCsbsBackupV1.\n",
        "properties": {
          "autoTrigger": {
            "description": "Specifies whether automatic trigger is enabled.\n",
            "type": "boolean"
          },
          "averageSpeed": {
            "description": "Specifies the average speed.\n",
            "type": "number"
          },
          "backupName": {
            "type": "string"
          },
          "backupRecordId": {
            "type": "string"
          },
          "description": {
            "description": "Provides the backup description.\n",
            "type": "string"
          },
          "id": {
            "description": "Specifies Cinder backup ID.\n",
            "type": "string"
          },
          "policyId": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "resourceId": {
            "type": "string"
          },
          "resourceName": {
            "type": "string"
          },
          "resourceType": {
            "type": "string"
          },
          "size": {
            "description": "Specifies accumulated size (MB) of backups.\n",
            "type": "number"
          },
          "status": {
            "description": "Status of backup Volume.\n",
            "type": "string"
          },
          "vmIp": {
            "type": "string"
          },
          "vmMetadatas": {
            "description": "The vm_metadata object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCsbsBackupV1VmMetadata:getCsbsBackupV1VmMetadata"
            },
            "type": "array"
          },
          "volumeBackups": {
            "description": "The volume_backups object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCsbsBackupV1VolumeBackup:getCsbsBackupV1VolumeBackup"
            },
            "type": "array"
          }
        },
        "required": [
          "autoTrigger",
          "averageSpeed",
          "backupName",
          "backupRecordId",
          "description",
          "region",
          "resourceId",
          "resourceName",
          "resourceType",
          "size",
          "status",
          "vmMetadatas",
          "volumeBackups"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getCssFlavors:getCssFlavors": {
      "description": "Use this data source to get available flavors of FlexibleEngine CSS node instance.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getCssFlavors({\n    memory: 32,\n    type: \"ess\",\n    vcpus: 4,\n    version: \"7.9.3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_css_flavors(memory=32,\n    type=\"ess\",\n    vcpus=4,\n    version=\"7.9.3\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetCssFlavors.Invoke(new()\n    {\n        Memory = 32,\n        Type = \"ess\",\n        Vcpus = 4,\n        Version = \"7.9.3\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetCssFlavors(ctx, \u0026flexibleengine.GetCssFlavorsArgs{\n\t\t\tMemory:  pulumi.Float64Ref(32),\n\t\t\tType:    pulumi.StringRef(\"ess\"),\n\t\t\tVcpus:   pulumi.Float64Ref(4),\n\t\t\tVersion: pulumi.StringRef(\"7.9.3\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetCssFlavorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getCssFlavors(GetCssFlavorsArgs.builder()\n            .memory(32)\n            .type(\"ess\")\n            .vcpus(4)\n            .version(\"7.9.3\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getCssFlavors\n      arguments:\n        memory: 32\n        type: ess\n        vcpus: 4\n        version: 7.9.3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getCssFlavors.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of CSS flavor.\n"
          },
          "memory": {
            "type": "number",
            "description": "Specifies the memory size(GB) in the CSS flavor.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the CSS flavor.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the CSS flavors. If omitted, the\nprovider-level region will be used.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the node instance type. The options are `ess`, `ess-cold`, `ess-master`\nand `ess-client`.\n"
          },
          "vcpus": {
            "type": "number",
            "description": "Specifies the number of vCPUs in the CSS flavor.\n"
          },
          "version": {
            "type": "string",
            "description": "Specifies the engine version. The options are `6.5.4`, `7.1.1`, `7.6.2`, `7.9.3`\nand `7.10.2`.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCssFlavors.\n",
        "properties": {
          "flavors": {
            "description": "Indicates the flavor information. The flavors object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetCssFlavorsFlavor:getCssFlavorsFlavor"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of CSS flavor.\n",
            "type": "string"
          },
          "memory": {
            "description": "The memory size in GB.\n",
            "type": "number"
          },
          "name": {
            "description": "The name of the CSS flavor. It is referenced by `node_config.flavor` in `flexibleengine_css_cluster`.\n",
            "type": "string"
          },
          "region": {
            "description": "The region where the node resides.\n",
            "type": "string"
          },
          "type": {
            "description": "The node instance type.\n",
            "type": "string"
          },
          "vcpus": {
            "description": "The number of vCPUs.\n",
            "type": "number"
          },
          "version": {
            "description": "The engine version.\n",
            "type": "string"
          }
        },
        "required": [
          "flavors",
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getCtsTrackerV1:getCtsTrackerV1": {
      "description": "CTS Tracker data source allows access of Cloud Tracker.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst bucketName = config.requireObject(\"bucketName\");\nconst trackerV1 = flexibleengine.getCtsTrackerV1({\n    bucketName: bucketName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nbucket_name = config.require_object(\"bucketName\")\ntracker_v1 = flexibleengine.get_cts_tracker_v1(bucket_name=bucket_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var bucketName = config.RequireObject\u003cdynamic\u003e(\"bucketName\");\n    var trackerV1 = Flexibleengine.GetCtsTrackerV1.Invoke(new()\n    {\n        BucketName = bucketName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbucketName := cfg.RequireObject(\"bucketName\")\n\t\t_, err := flexibleengine.LookupCtsTrackerV1(ctx, \u0026flexibleengine.LookupCtsTrackerV1Args{\n\t\t\tBucketName: pulumi.StringRef(bucketName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetCtsTrackerV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bucketName = config.get(\"bucketName\");\n        final var trackerV1 = FlexibleengineFunctions.getCtsTrackerV1(GetCtsTrackerV1Args.builder()\n            .bucketName(bucketName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bucketName:\n    type: dynamic\nvariables:\n  trackerV1:\n    fn::invoke:\n      function: flexibleengine:getCtsTrackerV1\n      arguments:\n        bucketName: ${bucketName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getCtsTrackerV1.\n",
        "properties": {
          "bucketName": {
            "type": "string",
            "description": "The OBS bucket name for a tracker.\n"
          },
          "filePrefixName": {
            "type": "string",
            "description": "The prefix of a log that needs to be stored in an OBS bucket.\n"
          },
          "id": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of a tracker.\n"
          },
          "trackerName": {
            "type": "string",
            "description": "The tracker name.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCtsTrackerV1.\n",
        "properties": {
          "bucketName": {
            "type": "string"
          },
          "filePrefixName": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "trackerName": {
            "type": "string"
          }
        },
        "required": [
          "bucketName",
          "filePrefixName",
          "id",
          "region",
          "status",
          "trackerName"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDcsAzV1:getDcsAzV1": {
      "description": "Use this data source to get the ID of an available Flexibleengine dcs az.\n\n!\u003e **Warning:** It has been deprecated, you can use the availability zone code directly, e.g. eu-west-0b.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst az1 = flexibleengine.getDcsAzV1({\n    code: \"sa-chile-1a\",\n    name: \"AZ1\",\n    port: \"8004\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\naz1 = flexibleengine.get_dcs_az_v1(code=\"sa-chile-1a\",\n    name=\"AZ1\",\n    port=\"8004\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var az1 = Flexibleengine.GetDcsAzV1.Invoke(new()\n    {\n        Code = \"sa-chile-1a\",\n        Name = \"AZ1\",\n        Port = \"8004\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDcsAzV1(ctx, \u0026flexibleengine.GetDcsAzV1Args{\n\t\t\tCode: pulumi.StringRef(\"sa-chile-1a\"),\n\t\t\tName: pulumi.StringRef(\"AZ1\"),\n\t\t\tPort: pulumi.StringRef(\"8004\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDcsAzV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var az1 = FlexibleengineFunctions.getDcsAzV1(GetDcsAzV1Args.builder()\n            .code(\"sa-chile-1a\")\n            .name(\"AZ1\")\n            .port(\"8004\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  az1:\n    fn::invoke:\n      function: flexibleengine:getDcsAzV1\n      arguments:\n        code: sa-chile-1a\n        name: AZ1\n        port: '8004'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDcsAzV1.\n",
        "properties": {
          "code": {
            "type": "string",
            "description": "Indicates the code of an AZ.\n"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Indicates the name of an AZ.\n"
          },
          "port": {
            "type": "string",
            "description": "Indicates the port number of an AZ.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDcsAzV1.\n",
        "properties": {
          "code": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "port": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          }
        },
        "required": [
          "code",
          "id",
          "name",
          "port"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDcsFlavors:getDcsFlavors": {
      "description": "Use this data source to get a list of available DCS flavors.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst flavors = flexibleengine.getDcsFlavors({\n    capacity: 4,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nflavors = flexibleengine.get_dcs_flavors(capacity=4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var flavors = Flexibleengine.GetDcsFlavors.Invoke(new()\n    {\n        Capacity = 4,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDcsFlavors(ctx, \u0026flexibleengine.GetDcsFlavorsArgs{\n\t\t\tCapacity: 4,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDcsFlavorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavors = FlexibleengineFunctions.getDcsFlavors(GetDcsFlavorsArgs.builder()\n            .capacity(\"4\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavors:\n    fn::invoke:\n      function: flexibleengine:getDcsFlavors\n      arguments:\n        capacity: '4'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDcsFlavors.\n",
        "properties": {
          "cacheMode": {
            "type": "string",
            "description": "The mode of a cache engine. The valid values are as follows:\n"
          },
          "capacity": {
            "type": "number",
            "description": "The total memory of the cache, in GB.\n+ **Redis4.0, Redis5.0 and Redis6.0**: Stand-alone and active/standby type instance values:\n`0.125`, `0.25`, `0.5`, `1`, `2`, `4`, `8`, `16`, `32` and `64`.\nCluster instance specifications support `4`,`8`,`16`,`24`, `32`, `48`, `64`, `96`, `128`, `192`,\n`256`, `384`, `512`, `768` and `1024`.\n+ **Redis3.0**: Stand-alone and active/standby type instance values: `2`, `4`, `8`, `16`, `32` and `64`.\nProxy cluster instance specifications support `64`, `128`, `256`, `512`, and `1024`.\n+ **Memcached**: Stand-alone and active/standby type instance values: `2`, `4`, `8`, `16`, `32` and `64`.\n"
          },
          "cpuArchitecture": {
            "type": "string",
            "description": "The CPU architecture of cache instance.\nValid values *x86_64* and *aarch64*.\n"
          },
          "engine": {
            "type": "string",
            "description": "The engine of the cache instance. Valid values are *Redis* and *Memcached*.\nDefault value is *Redis*.\n"
          },
          "engineVersion": {
            "type": "string",
            "description": "The version of a cache engine.\nIt is mandatory when the engine is *Redis*, the value can be `3.0`, `4.0`, `5.0`, or `6.0`.\n"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "The flavor name of the cache instance.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the DCS flavors.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object",
        "required": [
          "capacity"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDcsFlavors.\n",
        "properties": {
          "cacheMode": {
            "description": "The mode of a cache instance.\n",
            "type": "string"
          },
          "capacity": {
            "description": "The total memory of the cache, in GB.\n",
            "type": "number"
          },
          "cpuArchitecture": {
            "description": "The CPU architecture of cache instance. Value is *x86_64* or *aarch64*.\n",
            "type": "string"
          },
          "engine": {
            "description": "The engine of the cache instance. Value is *redis* or *memcached*.\n",
            "type": "string"
          },
          "engineVersion": {
            "type": "string"
          },
          "flavors": {
            "description": "A list of DCS flavors.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDcsFlavorsFlavor:getDcsFlavorsFlavor"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "description": "The flavor name of the cache instance.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "capacity",
          "flavors",
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDcsInstances:getDcsInstances": {
      "description": "Use this data source to get the list of DCS instances.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getDcsInstances({\n    name: \"test_name\",\n    status: \"RUNNING\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_dcs_instances(name=\"test_name\",\n    status=\"RUNNING\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetDcsInstances.Invoke(new()\n    {\n        Name = \"test_name\",\n        Status = \"RUNNING\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDcsInstances(ctx, \u0026flexibleengine.GetDcsInstancesArgs{\n\t\t\tName:   pulumi.StringRef(\"test_name\"),\n\t\t\tStatus: pulumi.StringRef(\"RUNNING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDcsInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getDcsInstances(GetDcsInstancesArgs.builder()\n            .name(\"test_name\")\n            .status(\"RUNNING\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDcsInstances\n      arguments:\n        name: test_name\n        status: RUNNING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDcsInstances.\n",
        "properties": {
          "capacity": {
            "type": "number",
            "description": "Specifies the cache capacity. Unit: GB.\n"
          },
          "id": {
            "type": "string",
            "description": "Indicates the ID of the instance.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of an instance.\n"
          },
          "privateIp": {
            "type": "string",
            "description": "Specifies the subnet Network ID.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the cache instance status. The valid values are **RUNNING**, **ERROR**,\n**RESTARTING**, **FROZEN**, **EXTENDING**, **RESTORING**, **FLUSHING**.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDcsInstances.\n",
        "properties": {
          "capacity": {
            "description": "Indicates the cache capacity. Unit: GB.\n",
            "type": "number"
          },
          "id": {
            "description": "Indicates the ID of the instance.\n",
            "type": "string"
          },
          "instances": {
            "description": "Indicates the list of DCS instances.\nThe Instance structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDcsInstancesInstance:getDcsInstancesInstance"
            },
            "type": "array"
          },
          "name": {
            "description": "Indicates the name of an instance.\n",
            "type": "string"
          },
          "privateIp": {
            "description": "Indicates the IP address of the DCS instance.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "description": "Indicates the cache instance status.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "instances",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDcsMaintainwindowV1:getDcsMaintainwindowV1": {
      "description": "Use this data source to get the ID of an available Flexibleengine DCS maintainwindow.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst maintainwindow1 = flexibleengine.getDcsMaintainwindowV1({\n    \"default\": true,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nmaintainwindow1 = flexibleengine.get_dcs_maintainwindow_v1(default=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var maintainwindow1 = Flexibleengine.GetDcsMaintainwindowV1.Invoke(new()\n    {\n        Default = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDcsMaintainwindowV1(ctx, \u0026flexibleengine.GetDcsMaintainwindowV1Args{\n\t\t\tDefault: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDcsMaintainwindowV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var maintainwindow1 = FlexibleengineFunctions.getDcsMaintainwindowV1(GetDcsMaintainwindowV1Args.builder()\n            .default_(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  maintainwindow1:\n    fn::invoke:\n      function: flexibleengine:getDcsMaintainwindowV1\n      arguments:\n        default: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDcsMaintainwindowV1.\n",
        "properties": {
          "begin": {
            "type": "string",
            "description": "Specifies the time at which a maintenance time window starts.\n"
          },
          "default": {
            "type": "boolean",
            "description": "Specifies whether a maintenance time window is set to the default time segment.\n"
          },
          "end": {
            "type": "string",
            "description": "Specifies the time at which a maintenance time window ends.\n"
          },
          "id": {
            "type": "string"
          },
          "seq": {
            "type": "number",
            "description": "Specifies the sequential number of a maintenance time window.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDcsMaintainwindowV1.\n",
        "properties": {
          "begin": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "default": {
            "description": "See Argument Reference above.\n",
            "type": "boolean"
          },
          "end": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "seq": {
            "type": "number"
          }
        },
        "required": [
          "begin",
          "default",
          "end",
          "id",
          "seq"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDcsProductV1:getDcsProductV1": {
      "description": "Use this data source to get the ID of an available Flexibleengine DCS product.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst product1 = flexibleengine.getDcsProductV1({\n    cacheMode: \"cluster\",\n    capacity: 8,\n    engine: \"redis\",\n    engineVersion: \"4.0;5.0\",\n    replicaCount: 2,\n});\nconst product2 = flexibleengine.getDcsProductV1({\n    cacheMode: \"ha\",\n    capacity: 0.125,\n    engine: \"redis\",\n    engineVersion: \"4.0;5.0\",\n    replicaCount: 2,\n});\nconst product3 = flexibleengine.getDcsProductV1({\n    cacheMode: \"single\",\n    capacity: 1,\n    engine: \"redis\",\n    engineVersion: \"4.0;5.0\",\n});\nconst product4 = flexibleengine.getDcsProductV1({\n    cacheMode: \"proxy\",\n    capacity: 4,\n    engine: \"redis\",\n    engineVersion: \"4.0;5.0\",\n});\nconst product5 = flexibleengine.getDcsProductV1({\n    cacheMode: \"ha\",\n    engine: \"redis\",\n    engineVersion: \"3.0\",\n});\nconst product6 = flexibleengine.getDcsProductV1({\n    cacheMode: \"single\",\n    engine: \"memcached\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nproduct1 = flexibleengine.get_dcs_product_v1(cache_mode=\"cluster\",\n    capacity=8,\n    engine=\"redis\",\n    engine_version=\"4.0;5.0\",\n    replica_count=2)\nproduct2 = flexibleengine.get_dcs_product_v1(cache_mode=\"ha\",\n    capacity=0.125,\n    engine=\"redis\",\n    engine_version=\"4.0;5.0\",\n    replica_count=2)\nproduct3 = flexibleengine.get_dcs_product_v1(cache_mode=\"single\",\n    capacity=1,\n    engine=\"redis\",\n    engine_version=\"4.0;5.0\")\nproduct4 = flexibleengine.get_dcs_product_v1(cache_mode=\"proxy\",\n    capacity=4,\n    engine=\"redis\",\n    engine_version=\"4.0;5.0\")\nproduct5 = flexibleengine.get_dcs_product_v1(cache_mode=\"ha\",\n    engine=\"redis\",\n    engine_version=\"3.0\")\nproduct6 = flexibleengine.get_dcs_product_v1(cache_mode=\"single\",\n    engine=\"memcached\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var product1 = Flexibleengine.GetDcsProductV1.Invoke(new()\n    {\n        CacheMode = \"cluster\",\n        Capacity = 8,\n        Engine = \"redis\",\n        EngineVersion = \"4.0;5.0\",\n        ReplicaCount = 2,\n    });\n\n    var product2 = Flexibleengine.GetDcsProductV1.Invoke(new()\n    {\n        CacheMode = \"ha\",\n        Capacity = 0.125,\n        Engine = \"redis\",\n        EngineVersion = \"4.0;5.0\",\n        ReplicaCount = 2,\n    });\n\n    var product3 = Flexibleengine.GetDcsProductV1.Invoke(new()\n    {\n        CacheMode = \"single\",\n        Capacity = 1,\n        Engine = \"redis\",\n        EngineVersion = \"4.0;5.0\",\n    });\n\n    var product4 = Flexibleengine.GetDcsProductV1.Invoke(new()\n    {\n        CacheMode = \"proxy\",\n        Capacity = 4,\n        Engine = \"redis\",\n        EngineVersion = \"4.0;5.0\",\n    });\n\n    var product5 = Flexibleengine.GetDcsProductV1.Invoke(new()\n    {\n        CacheMode = \"ha\",\n        Engine = \"redis\",\n        EngineVersion = \"3.0\",\n    });\n\n    var product6 = Flexibleengine.GetDcsProductV1.Invoke(new()\n    {\n        CacheMode = \"single\",\n        Engine = \"memcached\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDcsProductV1(ctx, \u0026flexibleengine.GetDcsProductV1Args{\n\t\t\tCacheMode:     pulumi.StringRef(\"cluster\"),\n\t\t\tCapacity:      pulumi.Float64Ref(8),\n\t\t\tEngine:        pulumi.StringRef(\"redis\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"4.0;5.0\"),\n\t\t\tReplicaCount:  pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.GetDcsProductV1(ctx, \u0026flexibleengine.GetDcsProductV1Args{\n\t\t\tCacheMode:     pulumi.StringRef(\"ha\"),\n\t\t\tCapacity:      pulumi.Float64Ref(0.125),\n\t\t\tEngine:        pulumi.StringRef(\"redis\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"4.0;5.0\"),\n\t\t\tReplicaCount:  pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.GetDcsProductV1(ctx, \u0026flexibleengine.GetDcsProductV1Args{\n\t\t\tCacheMode:     pulumi.StringRef(\"single\"),\n\t\t\tCapacity:      pulumi.Float64Ref(1),\n\t\t\tEngine:        pulumi.StringRef(\"redis\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"4.0;5.0\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.GetDcsProductV1(ctx, \u0026flexibleengine.GetDcsProductV1Args{\n\t\t\tCacheMode:     pulumi.StringRef(\"proxy\"),\n\t\t\tCapacity:      pulumi.Float64Ref(4),\n\t\t\tEngine:        pulumi.StringRef(\"redis\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"4.0;5.0\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.GetDcsProductV1(ctx, \u0026flexibleengine.GetDcsProductV1Args{\n\t\t\tCacheMode:     pulumi.StringRef(\"ha\"),\n\t\t\tEngine:        pulumi.StringRef(\"redis\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"3.0\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.GetDcsProductV1(ctx, \u0026flexibleengine.GetDcsProductV1Args{\n\t\t\tCacheMode: pulumi.StringRef(\"single\"),\n\t\t\tEngine:    pulumi.StringRef(\"memcached\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDcsProductV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var product1 = FlexibleengineFunctions.getDcsProductV1(GetDcsProductV1Args.builder()\n            .cacheMode(\"cluster\")\n            .capacity(8)\n            .engine(\"redis\")\n            .engineVersion(\"4.0;5.0\")\n            .replicaCount(2)\n            .build());\n\n        final var product2 = FlexibleengineFunctions.getDcsProductV1(GetDcsProductV1Args.builder()\n            .cacheMode(\"ha\")\n            .capacity(0.125)\n            .engine(\"redis\")\n            .engineVersion(\"4.0;5.0\")\n            .replicaCount(2)\n            .build());\n\n        final var product3 = FlexibleengineFunctions.getDcsProductV1(GetDcsProductV1Args.builder()\n            .cacheMode(\"single\")\n            .capacity(1)\n            .engine(\"redis\")\n            .engineVersion(\"4.0;5.0\")\n            .build());\n\n        final var product4 = FlexibleengineFunctions.getDcsProductV1(GetDcsProductV1Args.builder()\n            .cacheMode(\"proxy\")\n            .capacity(4)\n            .engine(\"redis\")\n            .engineVersion(\"4.0;5.0\")\n            .build());\n\n        final var product5 = FlexibleengineFunctions.getDcsProductV1(GetDcsProductV1Args.builder()\n            .cacheMode(\"ha\")\n            .engine(\"redis\")\n            .engineVersion(\"3.0\")\n            .build());\n\n        final var product6 = FlexibleengineFunctions.getDcsProductV1(GetDcsProductV1Args.builder()\n            .cacheMode(\"single\")\n            .engine(\"memcached\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  product1:\n    fn::invoke:\n      function: flexibleengine:getDcsProductV1\n      arguments:\n        cacheMode: cluster\n        capacity: 8\n        engine: redis\n        engineVersion: 4.0;5.0\n        replicaCount: 2\n  product2:\n    fn::invoke:\n      function: flexibleengine:getDcsProductV1\n      arguments:\n        cacheMode: ha\n        capacity: 0.125\n        engine: redis\n        engineVersion: 4.0;5.0\n        replicaCount: 2\n  product3:\n    fn::invoke:\n      function: flexibleengine:getDcsProductV1\n      arguments:\n        cacheMode: single\n        capacity: 1\n        engine: redis\n        engineVersion: 4.0;5.0\n  product4:\n    fn::invoke:\n      function: flexibleengine:getDcsProductV1\n      arguments:\n        cacheMode: proxy\n        capacity: 4\n        engine: redis\n        engineVersion: 4.0;5.0\n  product5:\n    fn::invoke:\n      function: flexibleengine:getDcsProductV1\n      arguments:\n        cacheMode: ha\n        engine: redis\n        engineVersion: '3.0'\n  product6:\n    fn::invoke:\n      function: flexibleengine:getDcsProductV1\n      arguments:\n        cacheMode: single\n        engine: memcached\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDcsProductV1.\n",
        "properties": {
          "cacheMode": {
            "type": "string",
            "description": "The mode of a cache engine. The valid values are as follows:\n"
          },
          "capacity": {
            "type": "number",
            "description": "The total memory of the cache, in GB.\nIt is valid when the engine is redis 4.0/5.0.\n+ Single-node and Master/Standby instances support:\n`0.125`, `0.25`, `0.5`, `1`, `2`, `4`, `8`, `16`, `24`, `32`, `48` and `64`.\n+ Redis Cluster and Proxy Cluster instances support:\n`4`, `8`, `16`, `24`, `32`, `48`, `64`, `96`, `128`, `192`, `256`, `384`, `512`, `768` and `1024`.\n"
          },
          "engine": {
            "type": "string",
            "description": "The engine of the cache instance. Valid values are *redis* and *memcached*.\nDefault value is *redis*.\n"
          },
          "engineVersion": {
            "type": "string",
            "description": "The version of a cache engine.\nIt is valid when the engine is *redis*, the value can be `3.0`or `4.0;5.0`.\n"
          },
          "id": {
            "type": "string",
            "description": "The found product ID.\n"
          },
          "replicaCount": {
            "type": "number",
            "description": "The number of replicas includes the master.\nIt is valid when the engine is redis 4.0/5.0 with **Master/Standby** or **Redis Cluster** type.\n"
          },
          "specCode": {
            "type": "string",
            "description": "Specifies the DCS instance specification code. You can log in to the DCS console,\nclick *Buy DCS Instance*, and find the corresponding instance specification.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDcsProductV1.\n",
        "properties": {
          "cacheMode": {
            "type": "string"
          },
          "capacity": {
            "type": "number"
          },
          "cpuArchitecture": {
            "description": "The CPU architecture of DCS instance.\n",
            "type": "string"
          },
          "engine": {
            "type": "string"
          },
          "engineVersion": {
            "type": "string"
          },
          "id": {
            "description": "The found product ID.\n",
            "type": "string"
          },
          "replicaCount": {
            "type": "number"
          },
          "specCode": {
            "type": "string"
          }
        },
        "required": [
          "cacheMode",
          "capacity",
          "cpuArchitecture",
          "engineVersion",
          "id",
          "replicaCount",
          "specCode"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDcsTemplates:getDcsTemplates": {
      "description": "Use this data source to get the list of DCS templates.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getDcsTemplates({\n    name: \"test_template_name\",\n    type: \"sys\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_dcs_templates(name=\"test_template_name\",\n    type=\"sys\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetDcsTemplates.Invoke(new()\n    {\n        Name = \"test_template_name\",\n        Type = \"sys\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDcsTemplates(ctx, \u0026flexibleengine.GetDcsTemplatesArgs{\n\t\t\tName: pulumi.StringRef(\"test_template_name\"),\n\t\t\tType: \"sys\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDcsTemplatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getDcsTemplates(GetDcsTemplatesArgs.builder()\n            .name(\"test_template_name\")\n            .type(\"sys\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDcsTemplates\n      arguments:\n        name: test_template_name\n        type: sys\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDcsTemplates.\n",
        "properties": {
          "cacheMode": {
            "type": "string",
            "description": "Specifies the DCS instance type. Value options:\n+ **single**: single-node.\n+ **ha**: master/standby.\n+ **cluster**: Redis Cluster.\n+ **proxy**: Proxy Cluster.\n"
          },
          "engine": {
            "type": "string",
            "description": "Specifies the cache engine. Value options: **Redis**, **Memcached**.\n"
          },
          "engineVersion": {
            "type": "string",
            "description": "Specifies the cache engine version. Value options: **4.0**, **5.0**, **6.0**.\n"
          },
          "id": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the template.\n"
          },
          "productType": {
            "type": "string",
            "description": "Specifies the product edition. Value options:\n+ **generic**: standard edition.\n+ **enterprise**: professional edition.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          },
          "storageType": {
            "type": "string",
            "description": "Specifies the storage type. Value options: **DRAM**, **SSD**.\n"
          },
          "templateId": {
            "type": "string",
            "description": "Specifies the ID of the template.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the type of the template. Value options:\n+ **sys**: system template.\n+ **user**: custom template.\n"
          }
        },
        "type": "object",
        "required": [
          "type"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDcsTemplates.\n",
        "properties": {
          "cacheMode": {
            "description": "Indicates the DCS instance type.\n",
            "type": "string"
          },
          "engine": {
            "description": "Indicates the cache engine.\n",
            "type": "string"
          },
          "engineVersion": {
            "description": "Indicates the cache engine version.\n",
            "type": "string"
          },
          "id": {
            "description": "The resource ID.\n",
            "type": "string"
          },
          "name": {
            "description": "Indicates the name of the template.\n",
            "type": "string"
          },
          "productType": {
            "description": "Indicates the product edition.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "storageType": {
            "description": "Indicates the storage type.\n",
            "type": "string"
          },
          "templateId": {
            "description": "Indicates the ID of the template.\n",
            "type": "string"
          },
          "templates": {
            "description": "Indicates the list of DCS templates.\nThe templates structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDcsTemplatesTemplate:getDcsTemplatesTemplate"
            },
            "type": "array"
          },
          "type": {
            "description": "Indicates the type of the template.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "region",
          "templates",
          "type"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDdmAccounts:getDdmAccounts": {
      "description": "Use this data source to get the list of DDM accounts.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst ddmInstanceId = config.requireObject(\"ddmInstanceId\");\nconst accountName = config.requireObject(\"accountName\");\nconst test = flexibleengine.getDdmAccounts({\n    instanceId: ddmInstanceId,\n    name: accountName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nddm_instance_id = config.require_object(\"ddmInstanceId\")\naccount_name = config.require_object(\"accountName\")\ntest = flexibleengine.get_ddm_accounts(instance_id=ddm_instance_id,\n    name=account_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var ddmInstanceId = config.RequireObject\u003cdynamic\u003e(\"ddmInstanceId\");\n    var accountName = config.RequireObject\u003cdynamic\u003e(\"accountName\");\n    var test = Flexibleengine.GetDdmAccounts.Invoke(new()\n    {\n        InstanceId = ddmInstanceId,\n        Name = accountName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tddmInstanceId := cfg.RequireObject(\"ddmInstanceId\")\n\t\taccountName := cfg.RequireObject(\"accountName\")\n\t\t_, err := flexibleengine.GetDdmAccounts(ctx, \u0026flexibleengine.GetDdmAccountsArgs{\n\t\t\tInstanceId: ddmInstanceId,\n\t\t\tName:       pulumi.StringRef(accountName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDdmAccountsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var ddmInstanceId = config.get(\"ddmInstanceId\");\n        final var accountName = config.get(\"accountName\");\n        final var test = FlexibleengineFunctions.getDdmAccounts(GetDdmAccountsArgs.builder()\n            .instanceId(ddmInstanceId)\n            .name(accountName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  ddmInstanceId:\n    type: dynamic\n  accountName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDdmAccounts\n      arguments:\n        instanceId: ${ddmInstanceId}\n        name: ${accountName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDdmAccounts.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of DDM instance.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the DDM account.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the status of the DDM account.\n"
          }
        },
        "type": "object",
        "required": [
          "instanceId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDdmAccounts.\n",
        "properties": {
          "accounts": {
            "description": "Indicates the list of DDM account.\nThe Account structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDdmAccountsAccount:getDdmAccountsAccount"
            },
            "type": "array"
          },
          "id": {
            "description": "The resource ID.\n",
            "type": "string"
          },
          "instanceId": {
            "type": "string"
          },
          "name": {
            "description": "Indicates the name of the associated schema.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "description": "Indicates the status of the DDM account.\n",
            "type": "string"
          }
        },
        "required": [
          "accounts",
          "id",
          "instanceId",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDdmEngines:getDdmEngines": {
      "description": "Use this data source to get the list of DDM engines.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getDdmEngines({\n    version: \"3.0.8.5\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_ddm_engines(version=\"3.0.8.5\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetDdmEngines.Invoke(new()\n    {\n        Version = \"3.0.8.5\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDdmEngines(ctx, \u0026flexibleengine.GetDdmEnginesArgs{\n\t\t\tVersion: pulumi.StringRef(\"3.0.8.5\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDdmEnginesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getDdmEngines(GetDdmEnginesArgs.builder()\n            .version(\"3.0.8.5\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDdmEngines\n      arguments:\n        version: 3.0.8.5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDdmEngines.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Indicates the ID of the engine.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          },
          "version": {
            "type": "string",
            "description": "Specifies the engine version.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDdmEngines.\n",
        "properties": {
          "engines": {
            "description": "Indicates the list of DDM engine.\nThe Engine structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDdmEnginesEngine:getDdmEnginesEngine"
            },
            "type": "array"
          },
          "id": {
            "description": "Indicates the ID of the engine.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "version": {
            "description": "Indicates the engine version.\n",
            "type": "string"
          }
        },
        "required": [
          "engines",
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDdmFlavors:getDdmFlavors": {
      "description": "Use this data source to get the list of DDM flavors.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst testDdmEngines = flexibleengine.getDdmEngines({\n    version: \"3.0.8.5\",\n});\nconst testDdmFlavors = testDdmEngines.then(testDdmEngines =\u003e flexibleengine.getDdmFlavors({\n    engineId: testDdmEngines.engines?.[0]?.id,\n    cpuArch: \"X86\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest_ddm_engines = flexibleengine.get_ddm_engines(version=\"3.0.8.5\")\ntest_ddm_flavors = flexibleengine.get_ddm_flavors(engine_id=test_ddm_engines.engines[0].id,\n    cpu_arch=\"X86\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testDdmEngines = Flexibleengine.GetDdmEngines.Invoke(new()\n    {\n        Version = \"3.0.8.5\",\n    });\n\n    var testDdmFlavors = Flexibleengine.GetDdmFlavors.Invoke(new()\n    {\n        EngineId = testDdmEngines.Apply(getDdmEnginesResult =\u003e getDdmEnginesResult.Engines[0]?.Id),\n        CpuArch = \"X86\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestDdmEngines, err := flexibleengine.GetDdmEngines(ctx, \u0026flexibleengine.GetDdmEnginesArgs{\n\t\t\tVersion: pulumi.StringRef(\"3.0.8.5\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.GetDdmFlavors(ctx, \u0026flexibleengine.GetDdmFlavorsArgs{\n\t\t\tEngineId: testDdmEngines.Engines[0].Id,\n\t\t\tCpuArch:  pulumi.StringRef(\"X86\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDdmEnginesArgs;\nimport com.pulumi.flexibleengine.inputs.GetDdmFlavorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var testDdmEngines = FlexibleengineFunctions.getDdmEngines(GetDdmEnginesArgs.builder()\n            .version(\"3.0.8.5\")\n            .build());\n\n        final var testDdmFlavors = FlexibleengineFunctions.getDdmFlavors(GetDdmFlavorsArgs.builder()\n            .engineId(testDdmEngines.applyValue(getDdmEnginesResult -\u003e getDdmEnginesResult.engines()[0].id()))\n            .cpuArch(\"X86\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  testDdmEngines:\n    fn::invoke:\n      function: flexibleengine:getDdmEngines\n      arguments:\n        version: 3.0.8.5\n  testDdmFlavors:\n    fn::invoke:\n      function: flexibleengine:getDdmFlavors\n      arguments:\n        engineId: ${testDdmEngines.engines[0].id}\n        cpuArch: X86\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDdmFlavors.\n",
        "properties": {
          "code": {
            "type": "string",
            "description": "Specifies the VM flavor types recorded in DDM.\n"
          },
          "cpuArch": {
            "type": "string",
            "description": "Specifies the compute resource architecture type. The options are **X86** and **ARM**.\n"
          },
          "engineId": {
            "type": "string",
            "description": "Specifies the ID of an engine.\n"
          },
          "id": {
            "type": "string",
            "description": "Indicates the ID of a flavor.\n"
          },
          "memory": {
            "type": "number",
            "description": "Specifies the memory size. Unit GB.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          },
          "vcpus": {
            "type": "number",
            "description": "Specifies the number of CPUs.\n"
          }
        },
        "type": "object",
        "required": [
          "engineId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDdmFlavors.\n",
        "properties": {
          "code": {
            "description": "Indicates the VM flavor types recorded in DDM.\n",
            "type": "string"
          },
          "cpuArch": {
            "description": "Indicates the compute resource architecture type.\n",
            "type": "string"
          },
          "engineId": {
            "type": "string"
          },
          "flavors": {
            "description": "Indicates the list of DDM compute flavors.\nThe Flavor structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDdmFlavorsFlavor:getDdmFlavorsFlavor"
            },
            "type": "array"
          },
          "id": {
            "description": "Indicates the ID of a flavor.\n",
            "type": "string"
          },
          "memory": {
            "description": "Indicates the memory size.\n",
            "type": "number"
          },
          "region": {
            "type": "string"
          },
          "vcpus": {
            "description": "Indicates the number of CPUs.\n",
            "type": "number"
          }
        },
        "required": [
          "engineId",
          "flavors",
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDdmInstanceNodes:getDdmInstanceNodes": {
      "description": "Use this data source to get the list of DDM instance nodes.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst ddmInstanceId = config.requireObject(\"ddmInstanceId\");\nconst test = flexibleengine.getDdmInstanceNodes({\n    instanceId: ddmInstanceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nddm_instance_id = config.require_object(\"ddmInstanceId\")\ntest = flexibleengine.get_ddm_instance_nodes(instance_id=ddm_instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var ddmInstanceId = config.RequireObject\u003cdynamic\u003e(\"ddmInstanceId\");\n    var test = Flexibleengine.GetDdmInstanceNodes.Invoke(new()\n    {\n        InstanceId = ddmInstanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tddmInstanceId := cfg.RequireObject(\"ddmInstanceId\")\n\t\t_, err := flexibleengine.GetDdmInstanceNodes(ctx, \u0026flexibleengine.GetDdmInstanceNodesArgs{\n\t\t\tInstanceId: ddmInstanceId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDdmInstanceNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var ddmInstanceId = config.get(\"ddmInstanceId\");\n        final var test = FlexibleengineFunctions.getDdmInstanceNodes(GetDdmInstanceNodesArgs.builder()\n            .instanceId(ddmInstanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  ddmInstanceId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDdmInstanceNodes\n      arguments:\n        instanceId: ${ddmInstanceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDdmInstanceNodes.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Indicates the ID of the DDM instance node.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of DDM instance.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object",
        "required": [
          "instanceId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDdmInstanceNodes.\n",
        "properties": {
          "id": {
            "description": "Indicates the ID of the DDM instance node.\n",
            "type": "string"
          },
          "instanceId": {
            "type": "string"
          },
          "nodes": {
            "description": "Indicates the list of DDM instance node.\nThe Node structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDdmInstanceNodesNode:getDdmInstanceNodesNode"
            },
            "type": "array"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "instanceId",
          "nodes",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDdmInstances:getDdmInstances": {
      "description": "Use this data source to get the list of DDM instances.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceName = config.requireObject(\"instanceName\");\nconst test = flexibleengine.getDdmInstances({\n    name: instanceName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_name = config.require_object(\"instanceName\")\ntest = flexibleengine.get_ddm_instances(name=instance_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var instanceName = config.RequireObject\u003cdynamic\u003e(\"instanceName\");\n    var test = Flexibleengine.GetDdmInstances.Invoke(new()\n    {\n        Name = instanceName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceName := cfg.RequireObject(\"instanceName\")\n\t\t_, err := flexibleengine.GetDdmInstances(ctx, \u0026flexibleengine.GetDdmInstancesArgs{\n\t\t\tName: pulumi.StringRef(instanceName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDdmInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceName = config.get(\"instanceName\");\n        final var test = FlexibleengineFunctions.getDdmInstances(GetDdmInstancesArgs.builder()\n            .name(instanceName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDdmInstances\n      arguments:\n        name: ${instanceName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDdmInstances.\n",
        "properties": {
          "engineVersion": {
            "type": "string",
            "description": "Specifies the engine version.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id.\n"
          },
          "id": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the instance.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the status of the instance.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDdmInstances.\n",
        "properties": {
          "engineVersion": {
            "description": "Indicates the engine version.\n",
            "type": "string"
          },
          "enterpriseProjectId": {
            "description": "Indicates the enterprise project id.\n",
            "type": "string"
          },
          "id": {
            "description": "The resource ID.\n",
            "type": "string"
          },
          "instances": {
            "description": "Indicates the list of DDM instance.\nThe Instance structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDdmInstancesInstance:getDdmInstancesInstance"
            },
            "type": "array"
          },
          "name": {
            "description": "Indicates the name of the DDM instance.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "description": "Indicates the status of the DDM instance.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "instances",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDdmSchemas:getDdmSchemas": {
      "description": "Use this data source to get the list of DDM schemas.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst ddmInstanceId = config.requireObject(\"ddmInstanceId\");\nconst ddmSchemaName = config.requireObject(\"ddmSchemaName\");\nconst test = flexibleengine.getDdmSchemas({\n    instanceId: ddmInstanceId,\n    name: ddmSchemaName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nddm_instance_id = config.require_object(\"ddmInstanceId\")\nddm_schema_name = config.require_object(\"ddmSchemaName\")\ntest = flexibleengine.get_ddm_schemas(instance_id=ddm_instance_id,\n    name=ddm_schema_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var ddmInstanceId = config.RequireObject\u003cdynamic\u003e(\"ddmInstanceId\");\n    var ddmSchemaName = config.RequireObject\u003cdynamic\u003e(\"ddmSchemaName\");\n    var test = Flexibleengine.GetDdmSchemas.Invoke(new()\n    {\n        InstanceId = ddmInstanceId,\n        Name = ddmSchemaName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tddmInstanceId := cfg.RequireObject(\"ddmInstanceId\")\n\t\tddmSchemaName := cfg.RequireObject(\"ddmSchemaName\")\n\t\t_, err := flexibleengine.GetDdmSchemas(ctx, \u0026flexibleengine.GetDdmSchemasArgs{\n\t\t\tInstanceId: ddmInstanceId,\n\t\t\tName:       pulumi.StringRef(ddmSchemaName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDdmSchemasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var ddmInstanceId = config.get(\"ddmInstanceId\");\n        final var ddmSchemaName = config.get(\"ddmSchemaName\");\n        final var test = FlexibleengineFunctions.getDdmSchemas(GetDdmSchemasArgs.builder()\n            .instanceId(ddmInstanceId)\n            .name(ddmSchemaName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  ddmInstanceId:\n    type: dynamic\n  ddmSchemaName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDdmSchemas\n      arguments:\n        instanceId: ${ddmInstanceId}\n        name: ${ddmSchemaName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDdmSchemas.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Indicates the node ID of the associated RDS instance.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of DDM instance.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the DDM schema.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          },
          "shardMode": {
            "type": "string",
            "description": "Specifies the sharding mode of the schema. Values option: **cluster**, **single**.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the status of the DDM schema.\n"
          }
        },
        "type": "object",
        "required": [
          "instanceId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDdmSchemas.\n",
        "properties": {
          "id": {
            "description": "Indicates the node ID of the associated RDS instance.\n",
            "type": "string"
          },
          "instanceId": {
            "type": "string"
          },
          "name": {
            "description": "Indicates the name of the associated RDS instance.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "schemas": {
            "description": "Indicates the list of DDM schema.\nThe Schema structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDdmSchemasSchema:getDdmSchemasSchema"
            },
            "type": "array"
          },
          "shardMode": {
            "description": "Indicates the sharding mode of the schema.\n",
            "type": "string"
          },
          "status": {
            "description": "Indicates the status of the associated RDS instance\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "instanceId",
          "region",
          "schemas"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDdsFlavorV3:getDdsFlavorV3": {
      "description": "Use this data source to get the ID of an available FlexibleEngine DDS flavor.\nIf you want to get multiple flavors, please use `flexibleengine.getDdsFlavorsV3`.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst flavor = flexibleengine.getDdsFlavorV3({\n    engineName: \"DDS-Community\",\n    region: \"eu-west-0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nflavor = flexibleengine.get_dds_flavor_v3(engine_name=\"DDS-Community\",\n    region=\"eu-west-0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var flavor = Flexibleengine.GetDdsFlavorV3.Invoke(new()\n    {\n        EngineName = \"DDS-Community\",\n        Region = \"eu-west-0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDdsFlavorV3(ctx, \u0026flexibleengine.GetDdsFlavorV3Args{\n\t\t\tEngineName: pulumi.StringRef(\"DDS-Community\"),\n\t\t\tRegion:     pulumi.StringRef(\"eu-west-0\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDdsFlavorV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = FlexibleengineFunctions.getDdsFlavorV3(GetDdsFlavorV3Args.builder()\n            .engineName(\"DDS-Community\")\n            .region(\"eu-west-0\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavor:\n    fn::invoke:\n      function: flexibleengine:getDdsFlavorV3\n      arguments:\n        engineName: DDS-Community\n        region: eu-west-0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Available value for attributes\n\nengine_name | type | vcpus | ram | speccode\n---- | --- | ---\nDDS-Community | mongos | 1 | 4 | dds.mongodb.s3.medium.4.mongos\nDDS-Community | mongos | 2 | 8 | dds.mongodb.s3.large.4.mongos\nDDS-Community | mongos | 4 | 16 | dds.mongodb.s3.xlarge.4.mongos\nDDS-Community | mongos | 8 | 32 | dds.mongodb.s3.2xlarge.4.mongos\nDDS-Community | mongos | 16 | 64 | dds.mongodb.s3.4xlarge.4.mongos\nDDS-Community | shard | 1 | 4 | dds.mongodb.s3.medium.4.shard\nDDS-Community | shard | 2 | 8 | dds.mongodb.s3.large.4.shard\nDDS-Community | shard | 4 | 16 | dds.mongodb.s3.xlarge.4.shard\nDDS-Community | shard | 8 | 32 | dds.mongodb.s3.2xlarge.4.shard\nDDS-Community | shard | 16 | 64 | dds.mongodb.s3.4xlarge.4.shard\nDDS-Community | config | 2 | 4 | dds.mongodb.s3.large.2.config\nDDS-Community | replica | 1 | 4 | dds.mongodb.s3.medium.4.repset\nDDS-Community | replica | 2 | 8 | dds.mongodb.s3.large.4.repset\nDDS-Community | replica | 4 | 16 | dds.mongodb.s3.xlarge.4.repset\nDDS-Community | replica | 8 | 32 | dds.mongodb.s3.2xlarge.4.repset\nDDS-Community | replica | 16 | 64 | dds.mongodb.s3.4xlarge.4.repset\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDdsFlavorV3.\n",
        "properties": {
          "engineName": {
            "type": "string",
            "description": "The engine name of the dds, now only DDS-Community is supported.\n"
          },
          "id": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V3 dds client. If omitted, the provider-level region\nwill be used.\n"
          },
          "specCode": {
            "type": "string",
            "description": "The spec code of a dds flavor.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDdsFlavorV3.\n",
        "properties": {
          "engineName": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "ram": {
            "description": "The ram of the dds flavor.\n",
            "type": "string"
          },
          "region": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "specCode": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "type": {
            "description": "The type of the dds flavor.\n",
            "type": "string"
          },
          "vcpus": {
            "description": "The vcpus of the dds flavor.\n",
            "type": "string"
          }
        },
        "required": [
          "engineName",
          "id",
          "ram",
          "region",
          "specCode",
          "type",
          "vcpus"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDdsFlavorsV3:getDdsFlavorsV3": {
      "description": "Use this data source to get the details of available DDS flavors.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst flavor = flexibleengine.getDdsFlavorsV3({\n    engineName: \"DDS-Community\",\n    memory: \"32\",\n    vcpus: \"8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nflavor = flexibleengine.get_dds_flavors_v3(engine_name=\"DDS-Community\",\n    memory=\"32\",\n    vcpus=\"8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var flavor = Flexibleengine.GetDdsFlavorsV3.Invoke(new()\n    {\n        EngineName = \"DDS-Community\",\n        Memory = \"32\",\n        Vcpus = \"8\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDdsFlavorsV3(ctx, \u0026flexibleengine.GetDdsFlavorsV3Args{\n\t\t\tEngineName: pulumi.StringRef(\"DDS-Community\"),\n\t\t\tMemory:     pulumi.StringRef(\"32\"),\n\t\t\tVcpus:      pulumi.StringRef(\"8\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDdsFlavorsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = FlexibleengineFunctions.getDdsFlavorsV3(GetDdsFlavorsV3Args.builder()\n            .engineName(\"DDS-Community\")\n            .memory(32)\n            .vcpus(8)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavor:\n    fn::invoke:\n      function: flexibleengine:getDdsFlavorsV3\n      arguments:\n        engineName: DDS-Community\n        memory: 32\n        vcpus: 8\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDdsFlavorsV3.\n",
        "properties": {
          "engineName": {
            "type": "string",
            "description": "Specifies the engine name of the dds, the default value is\n\"DDS-Community\".\n"
          },
          "id": {
            "type": "string",
            "description": "Specifies a data source ID.\n"
          },
          "memory": {
            "type": "string",
            "description": "Specifies the ram of the dds flavor in GB.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the type of the dds falvor. \"mongos\", \"shard\", \"config\",\n\"replica\" and \"single\" are supported.\n"
          },
          "vcpus": {
            "type": "string",
            "description": "Specifies the vcpus of the dds flavor.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDdsFlavorsV3.\n",
        "properties": {
          "engineName": {
            "type": "string"
          },
          "flavors": {
            "description": "Indicates the flavors information. The flavors object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDdsFlavorsV3Flavor:getDdsFlavorsV3Flavor"
            },
            "type": "array"
          },
          "id": {
            "description": "Specifies a data source ID.\n",
            "type": "string"
          },
          "memory": {
            "description": "See `memory` above.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "type": {
            "description": "See `type` above.\n",
            "type": "string"
          },
          "vcpus": {
            "description": "See `vcpus` above.\n",
            "type": "string"
          }
        },
        "required": [
          "flavors",
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDdsInstances:getDdsInstances": {
      "description": "Use this data source to get the list of DDS instances.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject(\"vpcId\");\nconst subnetId = config.requireObject(\"subnetId\");\nconst test = flexibleengine.getDdsInstances({\n    name: \"test_name\",\n    mode: \"Sharding\",\n    vpcId: vpcId,\n    subnetId: subnetId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\ntest = flexibleengine.get_dds_instances(name=\"test_name\",\n    mode=\"Sharding\",\n    vpc_id=vpc_id,\n    subnet_id=subnet_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var vpcId = config.RequireObject\u003cdynamic\u003e(\"vpcId\");\n    var subnetId = config.RequireObject\u003cdynamic\u003e(\"subnetId\");\n    var test = Flexibleengine.GetDdsInstances.Invoke(new()\n    {\n        Name = \"test_name\",\n        Mode = \"Sharding\",\n        VpcId = vpcId,\n        SubnetId = subnetId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\t_, err := flexibleengine.GetDdsInstances(ctx, \u0026flexibleengine.GetDdsInstancesArgs{\n\t\t\tName:     pulumi.StringRef(\"test_name\"),\n\t\t\tMode:     pulumi.StringRef(\"Sharding\"),\n\t\t\tVpcId:    pulumi.StringRef(vpcId),\n\t\t\tSubnetId: pulumi.StringRef(subnetId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDdsInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var test = FlexibleengineFunctions.getDdsInstances(GetDdsInstancesArgs.builder()\n            .name(\"test_name\")\n            .mode(\"Sharding\")\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDdsInstances\n      arguments:\n        name: test_name\n        mode: Sharding\n        vpcId: ${vpcId}\n        subnetId: ${subnetId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDdsInstances.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Indicates the node ID.\n"
          },
          "mode": {
            "type": "string",
            "description": "Specifies the mode of the database instance.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the DB instance name.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source. If omitted, the provider-level\nregion will be used.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the subnet Network ID.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC ID.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDdsInstances.\n",
        "properties": {
          "id": {
            "description": "Indicates the node ID.\n",
            "type": "string"
          },
          "instances": {
            "description": "Indicates the list of DDS instances.\nThe instances object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDdsInstancesInstance:getDdsInstancesInstance"
            },
            "type": "array"
          },
          "mode": {
            "description": "Specifies the mode of the database instance.\n",
            "type": "string"
          },
          "name": {
            "description": "Indicates the node name.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "subnetId": {
            "description": "Indicates the subnet Network ID.\n",
            "type": "string"
          },
          "vpcId": {
            "description": "Indicates the VPC ID.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "instances",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDmsKafkaFlavors:getDmsKafkaFlavors": {
      "description": "Use this data source to get the list of available flavor details within FlexibleEngine.\n\n## Example Usage\n\n### Query the list of kafka flavors for cluster type\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getDmsKafkaFlavors({\n    type: \"cluster\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_dms_kafka_flavors(type=\"cluster\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetDmsKafkaFlavors.Invoke(new()\n    {\n        Type = \"cluster\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDmsKafkaFlavors(ctx, \u0026flexibleengine.GetDmsKafkaFlavorsArgs{\n\t\t\tType: pulumi.StringRef(\"cluster\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDmsKafkaFlavorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getDmsKafkaFlavors(GetDmsKafkaFlavorsArgs.builder()\n            .type(\"cluster\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDmsKafkaFlavors\n      arguments:\n        type: cluster\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Query the kafka flavor details of the specified ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getDmsKafkaFlavors({\n    flavorId: \"c6.2u4g.cluster\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_dms_kafka_flavors(flavor_id=\"c6.2u4g.cluster\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetDmsKafkaFlavors.Invoke(new()\n    {\n        FlavorId = \"c6.2u4g.cluster\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDmsKafkaFlavors(ctx, \u0026flexibleengine.GetDmsKafkaFlavorsArgs{\n\t\t\tFlavorId: pulumi.StringRef(\"c6.2u4g.cluster\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDmsKafkaFlavorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getDmsKafkaFlavors(GetDmsKafkaFlavorsArgs.builder()\n            .flavorId(\"c6.2u4g.cluster\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDmsKafkaFlavors\n      arguments:\n        flavorId: c6.2u4g.cluster\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Query list of kafka flavors that available in the availability zone list\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst az1 = config.requireObject(\"az1\");\nconst az2 = config.requireObject(\"az2\");\nconst test = flexibleengine.getDmsKafkaFlavors({\n    availabilityZones: [\n        az1,\n        az2,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\naz1 = config.require_object(\"az1\")\naz2 = config.require_object(\"az2\")\ntest = flexibleengine.get_dms_kafka_flavors(availability_zones=[\n    az1,\n    az2,\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var az1 = config.RequireObject\u003cdynamic\u003e(\"az1\");\n    var az2 = config.RequireObject\u003cdynamic\u003e(\"az2\");\n    var test = Flexibleengine.GetDmsKafkaFlavors.Invoke(new()\n    {\n        AvailabilityZones = new[]\n        {\n            az1,\n            az2,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\naz1 := cfg.RequireObject(\"az1\")\naz2 := cfg.RequireObject(\"az2\")\n_, err := flexibleengine.GetDmsKafkaFlavors(ctx, \u0026flexibleengine.GetDmsKafkaFlavorsArgs{\nAvailabilityZones: interface{}{\naz1,\naz2,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDmsKafkaFlavorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var az1 = config.get(\"az1\");\n        final var az2 = config.get(\"az2\");\n        final var test = FlexibleengineFunctions.getDmsKafkaFlavors(GetDmsKafkaFlavorsArgs.builder()\n            .availabilityZones(            \n                az1,\n                az2)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  az1:\n    type: dynamic\n  az2:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDmsKafkaFlavors\n      arguments:\n        availabilityZones:\n          - ${az1}\n          - ${az2}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDmsKafkaFlavors.\n",
        "properties": {
          "archType": {
            "type": "string",
            "description": "Specifies the type of CPU architecture, e.g. **X86**.\n"
          },
          "availabilityZones": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specifies the list of availability zones with available resources.\n"
          },
          "chargingMode": {
            "type": "string",
            "description": "Specifies the flavor billing mode.\nThe valid valus are **prePaid** and **postPaid**.\n"
          },
          "flavorId": {
            "type": "string",
            "description": "Specifies the DMS flvaor ID, e.g. **c6.2u4g.cluster**.\n"
          },
          "id": {
            "type": "string",
            "description": "The flavor ID.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the dms kafka flavors.\nIf omitted, the provider-level region will be used.\n"
          },
          "storageSpecCode": {
            "type": "string",
            "description": "Specifies the disk IO encoding.\n+ **dms.physical.storage.high.v2**: Type of the disk that uses high I/O.\n+ **dms.physical.storage.ultra.v2**: Type of the disk that uses ultra-high I/O.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies flavor type. The valid values are **single** and **cluster**.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDmsKafkaFlavors.\n",
        "properties": {
          "archType": {
            "type": "string"
          },
          "availabilityZones": {
            "description": "The list of availability zones with available resources.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "chargingMode": {
            "type": "string"
          },
          "flavorId": {
            "type": "string"
          },
          "flavors": {
            "description": "The list of flavor details.\nThe flavors structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDmsKafkaFlavorsFlavor:getDmsKafkaFlavorsFlavor"
            },
            "type": "array"
          },
          "id": {
            "description": "The flavor ID.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "storageSpecCode": {
            "description": "The disk IO encoding.\n",
            "type": "string"
          },
          "type": {
            "description": "The disk type.\n",
            "type": "string"
          },
          "versions": {
            "description": "The supported flavor versions.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "flavors",
          "id",
          "versions"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDmsKafkaInstances:getDmsKafkaInstances": {
      "description": "Use this data source to query the available instances within FlexibleEngine DMS service.\n\n## Example Usage\n\n### Query all instances with the keyword in the name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst keyword = config.requireObject(\"keyword\");\nconst test = flexibleengine.getDmsKafkaInstances({\n    name: keyword,\n    fuzzyMatch: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nkeyword = config.require_object(\"keyword\")\ntest = flexibleengine.get_dms_kafka_instances(name=keyword,\n    fuzzy_match=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var keyword = config.RequireObject\u003cdynamic\u003e(\"keyword\");\n    var test = Flexibleengine.GetDmsKafkaInstances.Invoke(new()\n    {\n        Name = keyword,\n        FuzzyMatch = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tkeyword := cfg.RequireObject(\"keyword\")\n\t\t_, err := flexibleengine.GetDmsKafkaInstances(ctx, \u0026flexibleengine.GetDmsKafkaInstancesArgs{\n\t\t\tName:       pulumi.StringRef(keyword),\n\t\t\tFuzzyMatch: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDmsKafkaInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var keyword = config.get(\"keyword\");\n        final var test = FlexibleengineFunctions.getDmsKafkaInstances(GetDmsKafkaInstancesArgs.builder()\n            .name(keyword)\n            .fuzzyMatch(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  keyword:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDmsKafkaInstances\n      arguments:\n        name: ${keyword}\n        fuzzyMatch: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Query the instance with the specified name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceName = config.requireObject(\"instanceName\");\nconst test = flexibleengine.getDmsKafkaInstances({\n    name: instanceName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_name = config.require_object(\"instanceName\")\ntest = flexibleengine.get_dms_kafka_instances(name=instance_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var instanceName = config.RequireObject\u003cdynamic\u003e(\"instanceName\");\n    var test = Flexibleengine.GetDmsKafkaInstances.Invoke(new()\n    {\n        Name = instanceName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceName := cfg.RequireObject(\"instanceName\")\n\t\t_, err := flexibleengine.GetDmsKafkaInstances(ctx, \u0026flexibleengine.GetDmsKafkaInstancesArgs{\n\t\t\tName: pulumi.StringRef(instanceName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDmsKafkaInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceName = config.get(\"instanceName\");\n        final var test = FlexibleengineFunctions.getDmsKafkaInstances(GetDmsKafkaInstancesArgs.builder()\n            .name(instanceName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDmsKafkaInstances\n      arguments:\n        name: ${instanceName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDmsKafkaInstances.\n",
        "properties": {
          "enterpriseProjectId": {
            "type": "string"
          },
          "fuzzyMatch": {
            "type": "boolean",
            "description": "Specifies whether to match the instance name fuzzily, the default is a exact\nmatch (`flase`).\n"
          },
          "id": {
            "type": "string",
            "description": "The instance ID.\n"
          },
          "includeFailure": {
            "type": "boolean",
            "description": "Specifies whether the query results contain instances that failed to create.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the kafka instance ID to match exactly.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the kafka instance name for data-source queries.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the kafka instance list.\nIf omitted, the provider-level region will be used.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the kafka instance status for data-source queries.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDmsKafkaInstances.\n",
        "properties": {
          "enterpriseProjectId": {
            "type": "string"
          },
          "fuzzyMatch": {
            "type": "boolean"
          },
          "id": {
            "description": "The instance ID.\n",
            "type": "string"
          },
          "includeFailure": {
            "type": "boolean"
          },
          "instanceId": {
            "type": "string"
          },
          "instances": {
            "description": "The result of the query's list of kafka instances. The instances object structure\nis documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDmsKafkaInstancesInstance:getDmsKafkaInstancesInstance"
            },
            "type": "array"
          },
          "name": {
            "description": "The instance name.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "description": "The instance status.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "instances"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDmsMaintainwindow:getDmsMaintainwindow": {
      "description": "Use this data source to get the ID of an available FlexibleEngine dms maintainwindow.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst maintainwindow1 = flexibleengine.getDmsMaintainwindow({\n    seq: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nmaintainwindow1 = flexibleengine.get_dms_maintainwindow(seq=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var maintainwindow1 = Flexibleengine.GetDmsMaintainwindow.Invoke(new()\n    {\n        Seq = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDmsMaintainwindow(ctx, \u0026flexibleengine.GetDmsMaintainwindowArgs{\n\t\t\tSeq: pulumi.Float64Ref(1),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDmsMaintainwindowArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var maintainwindow1 = FlexibleengineFunctions.getDmsMaintainwindow(GetDmsMaintainwindowArgs.builder()\n            .seq(1)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  maintainwindow1:\n    fn::invoke:\n      function: flexibleengine:getDmsMaintainwindow\n      arguments:\n        seq: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDmsMaintainwindow.\n",
        "properties": {
          "begin": {
            "type": "string",
            "description": "Indicates the time at which a maintenance time window starts.\n"
          },
          "default": {
            "type": "boolean",
            "description": "Indicates whether a maintenance time window is set to the default time segment.\n"
          },
          "end": {
            "type": "string",
            "description": "Indicates the time at which a maintenance time window ends.\n"
          },
          "id": {
            "type": "string",
            "description": "Specifies a data source ID in UUID format.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the dms maintainwindows. If omitted, the provider-level\nregion will be used.\n"
          },
          "seq": {
            "type": "number",
            "description": "Indicates the sequential number of a maintenance time window.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDmsMaintainwindow.\n",
        "properties": {
          "begin": {
            "type": "string"
          },
          "default": {
            "type": "boolean"
          },
          "end": {
            "type": "string"
          },
          "id": {
            "description": "Specifies a data source ID in UUID format.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "seq": {
            "type": "number"
          }
        },
        "required": [
          "begin",
          "default",
          "end",
          "id",
          "region",
          "seq"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDmsProduct:getDmsProduct": {
      "description": "Use this data source to get details about an available FlexibleEngine DMS product.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst product1 = flexibleengine.getDmsProduct({\n    bandwidth: \"300MB\",\n    engine: \"kafka\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nproduct1 = flexibleengine.get_dms_product(bandwidth=\"300MB\",\n    engine=\"kafka\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var product1 = Flexibleengine.GetDmsProduct.Invoke(new()\n    {\n        Bandwidth = \"300MB\",\n        Engine = \"kafka\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDmsProduct(ctx, \u0026flexibleengine.GetDmsProductArgs{\n\t\t\tBandwidth: \"300MB\",\n\t\t\tEngine:    pulumi.StringRef(\"kafka\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDmsProductArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var product1 = FlexibleengineFunctions.getDmsProduct(GetDmsProductArgs.builder()\n            .bandwidth(\"300MB\")\n            .engine(\"kafka\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  product1:\n    fn::invoke:\n      function: flexibleengine:getDmsProduct\n      arguments:\n        bandwidth: 300MB\n        engine: kafka\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDmsProduct.\n",
        "properties": {
          "bandwidth": {
            "type": "string",
            "description": "Specifies the bandwidth of a DMS instance.\nThe valid values are **100MB**, **300MB**, **600MB** and **1200MB**.\n"
          },
          "engine": {
            "type": "string",
            "description": "Specifies the name of a message engine. Only **kafka** is supported.\n"
          },
          "engineVersion": {
            "type": "string",
            "description": "Specifies the version of a message engine. The default value is **2.3.0**.\n"
          },
          "id": {
            "type": "string",
            "description": "The DMS product ID.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the DMS products.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object",
        "required": [
          "bandwidth"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDmsProduct.\n",
        "properties": {
          "availabilityZones": {
            "description": "The list of availability zones where there are available resources.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "bandwidth": {
            "type": "string"
          },
          "cpuArch": {
            "description": "The CPU architecture of a DMS instance.\n",
            "type": "string"
          },
          "ecsFlavorId": {
            "description": "The flavor of the corresponding ECS.\n",
            "type": "string"
          },
          "engine": {
            "type": "string"
          },
          "engineVersion": {
            "type": "string"
          },
          "id": {
            "description": "The DMS product ID.\n",
            "type": "string"
          },
          "maxTps": {
            "description": "The maximum number of messages per unit time.\n",
            "type": "number"
          },
          "partitionNum": {
            "description": "The maximum number of topics in a Kafka instance.\n",
            "type": "number"
          },
          "region": {
            "type": "string"
          },
          "specCode": {
            "description": "The DMS product specification, for example, dms.instance.kafka.cluster.c3.small.2.\n",
            "type": "string"
          },
          "storageSpace": {
            "description": "The minimum storage capacity of the DMS product.\n",
            "type": "number"
          },
          "storageSpecCodes": {
            "description": "The list of supported storage specification.\nThe item of the list can be one of **dms.physical.storage.ultra** and **dms.physical.storage.high**.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "availabilityZones",
          "bandwidth",
          "cpuArch",
          "ecsFlavorId",
          "id",
          "maxTps",
          "partitionNum",
          "region",
          "specCode",
          "storageSpace",
          "storageSpecCodes"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDmsRocketmqBroker:getDmsRocketmqBroker": {
      "description": "Use this data source to get the list of DMS rocketMQ broker.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getDmsRocketmqBroker({\n    instanceId: _var.instance_id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_dms_rocketmq_broker(instance_id=var[\"instance_id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetDmsRocketmqBroker.Invoke(new()\n    {\n        InstanceId = @var.Instance_id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDmsRocketmqBroker(ctx, \u0026flexibleengine.GetDmsRocketmqBrokerArgs{\n\t\t\tInstanceId: _var.Instance_id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDmsRocketmqBrokerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getDmsRocketmqBroker(GetDmsRocketmqBrokerArgs.builder()\n            .instanceId(var_.instance_id())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDmsRocketmqBroker\n      arguments:\n        instanceId: ${var.instance_id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDmsRocketmqBroker.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the rocketMQ instance.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object",
        "required": [
          "instanceId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDmsRocketmqBroker.\n",
        "properties": {
          "brokers": {
            "description": "Indicates the list of the brokers.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The resource ID.\n",
            "type": "string"
          },
          "instanceId": {
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "brokers",
          "id",
          "instanceId",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDmsRocketmqInstances:getDmsRocketmqInstances": {
      "description": "Use this data source to get the list of DMS RocketMQ instances.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getDmsRocketmqInstances({\n    name: \"rocketmq_name_test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_dms_rocketmq_instances(name=\"rocketmq_name_test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetDmsRocketmqInstances.Invoke(new()\n    {\n        Name = \"rocketmq_name_test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDmsRocketmqInstances(ctx, \u0026flexibleengine.GetDmsRocketmqInstancesArgs{\n\t\t\tName: pulumi.StringRef(\"rocketmq_name_test\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDmsRocketmqInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getDmsRocketmqInstances(GetDmsRocketmqInstancesArgs.builder()\n            .name(\"rocketmq_name_test\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getDmsRocketmqInstances\n      arguments:\n        name: rocketmq_name_test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDmsRocketmqInstances.\n",
        "properties": {
          "exactMatchName": {
            "type": "string",
            "description": "Specifies whether to search for the instance that precisely matches a\nspecified instance name. Value options: **true**, **false**. Defaults to **false**.\n"
          },
          "id": {
            "type": "string",
            "description": "Indicates the ID of the DMS RocketMQ instance.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the ID of the RocketMQ instance.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the DMS RocketMQ instance.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the status of the DMS RocketMQ instance.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDmsRocketmqInstances.\n",
        "properties": {
          "exactMatchName": {
            "type": "string"
          },
          "id": {
            "description": "Indicates the ID of the DMS RocketMQ instance.\n",
            "type": "string"
          },
          "instanceId": {
            "type": "string"
          },
          "instances": {
            "description": "Indicates the list of DMS RocketMQ instances.\nThe instances object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDmsRocketmqInstancesInstance:getDmsRocketmqInstancesInstance"
            },
            "type": "array"
          },
          "name": {
            "description": "Indicates the name of the DMS RocketMQ instance.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "description": "Indicates the status of the DMS RocketMQ instance.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "instances",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDnsZoneV2:getDnsZoneV2": {
      "description": "Use this data source to get the ID of an available FlexibleEngine DNS zone.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst zone1 = flexibleengine.getDnsZoneV2({\n    name: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nzone1 = flexibleengine.get_dns_zone_v2(name=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var zone1 = Flexibleengine.GetDnsZoneV2.Invoke(new()\n    {\n        Name = \"example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupDnsZoneV2(ctx, \u0026flexibleengine.LookupDnsZoneV2Args{\n\t\t\tName: pulumi.StringRef(\"example.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDnsZoneV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var zone1 = FlexibleengineFunctions.getDnsZoneV2(GetDnsZoneV2Args.builder()\n            .name(\"example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  zone1:\n    fn::invoke:\n      function: flexibleengine:getDnsZoneV2\n      arguments:\n        name: example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDnsZoneV2.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "A description of the zone.\n"
          },
          "email": {
            "type": "string",
            "description": "The email contact for the zone record.\n"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "The name of the zone.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 DNS client.\nA DNS client is needed to retrieve zone ids. If omitted, the `region` argument of the provider is used.\n"
          },
          "status": {
            "type": "string",
            "description": "The zone's status.\n"
          },
          "ttl": {
            "type": "number",
            "description": "The time to live (TTL) of the zone.\n"
          },
          "zoneType": {
            "type": "string",
            "description": "The type of the zone. Can either be `public` or `private`.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDnsZoneV2.\n",
        "properties": {
          "description": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "email": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "masters": {
            "description": "An array of master DNS servers.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "poolId": {
            "description": "The ID of the pool hosting the zone.\n",
            "type": "string"
          },
          "projectId": {
            "description": "The project ID that owns the zone.\n",
            "type": "string"
          },
          "region": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "serial": {
            "description": "The serial number of the zone.\n",
            "type": "number"
          },
          "status": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "ttl": {
            "description": "See Argument Reference above.\n",
            "type": "number"
          },
          "zoneType": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "masters",
          "poolId",
          "projectId",
          "region",
          "serial"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getDwsFlavors:getDwsFlavors": {
      "description": "Use this data source to get available flavors of FlexibleEngine DWS cluster node.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst flavor = flexibleengine.getDwsFlavors({\n    availabilityZone: \"eu-west-0a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nflavor = flexibleengine.get_dws_flavors(availability_zone=\"eu-west-0a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var flavor = Flexibleengine.GetDwsFlavors.Invoke(new()\n    {\n        AvailabilityZone = \"eu-west-0a\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetDwsFlavors(ctx, \u0026flexibleengine.GetDwsFlavorsArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(\"eu-west-0a\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetDwsFlavorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = FlexibleengineFunctions.getDwsFlavors(GetDwsFlavorsArgs.builder()\n            .availabilityZone(\"eu-west-0a\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavor:\n    fn::invoke:\n      function: flexibleengine:getDwsFlavors\n      arguments:\n        availabilityZone: eu-west-0a\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDwsFlavors.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the availability zone name.\n"
          },
          "datastoreType": {
            "type": "string",
            "description": "The type of datastore. The options are as follows:\n- **dws**: OLAP, elastic scaling, unlimited scaling of compute and storage capacity.\n- **hybrid**: a single data warehouse used for transaction and analytics workloads,\nin single-node or cluster mode.\n- **stream**: built-in time series operators; up to 40:1 compression ratio; applicable to IoT services.\n"
          },
          "id": {
            "type": "string",
            "description": "Indicates a data source ID.\n"
          },
          "memory": {
            "type": "number",
            "description": "Specifies the ram of the DWS node flavor in GB.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the DWS cluster client.\nIf omitted, the provider-level region will be used.\n"
          },
          "vcpus": {
            "type": "number",
            "description": "Specifies the vcpus of the DWS node flavor.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDwsFlavors.\n",
        "properties": {
          "availabilityZone": {
            "type": "string"
          },
          "datastoreType": {
            "description": "The type of datastore.The options are as follows:\n- **dws**: OLAP, elastic scaling, unlimited scaling of compute and storage capacity.\n- **hybrid**: a single data warehouse used for transaction and analytics workloads,\nin single-node or cluster mode.\n- **stream**: built-in time series operators; up to 40:1 compression ratio; applicable to IoT services.\n",
            "type": "string"
          },
          "flavors": {
            "description": "Indicates the flavors information. The flavors object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetDwsFlavorsFlavor:getDwsFlavorsFlavor"
            },
            "type": "array"
          },
          "id": {
            "description": "Indicates a data source ID.\n",
            "type": "string"
          },
          "memory": {
            "description": "Indicates the ram of the DWS node flavor in GB.\n",
            "type": "number"
          },
          "region": {
            "type": "string"
          },
          "vcpus": {
            "description": "Indicates the vcpus of the DWS node flavor.\n",
            "type": "number"
          }
        },
        "required": [
          "flavors",
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getElbCertificate:getElbCertificate": {
      "description": "Use this data source to get the ELB certificate in FlexibleEngine.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst certificateName = config.requireObject(\"certificateName\");\nconst test = flexibleengine.getElbCertificate({\n    name: certificateName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncertificate_name = config.require_object(\"certificateName\")\ntest = flexibleengine.get_elb_certificate(name=certificate_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var certificateName = config.RequireObject\u003cdynamic\u003e(\"certificateName\");\n    var test = Flexibleengine.GetElbCertificate.Invoke(new()\n    {\n        Name = certificateName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tcertificateName := cfg.RequireObject(\"certificateName\")\n\t\t_, err := flexibleengine.LookupElbCertificate(ctx, \u0026flexibleengine.LookupElbCertificateArgs{\n\t\t\tName: certificateName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetElbCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var certificateName = config.get(\"certificateName\");\n        final var test = FlexibleengineFunctions.getElbCertificate(GetElbCertificateArgs.builder()\n            .name(certificateName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  certificateName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getElbCertificate\n      arguments:\n        name: ${certificateName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getElbCertificate.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The certificate ID in UUID format.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of certificate. The value is case sensitive and does not supports fuzzy matching.\n\n\u003e **NOTE:** The certificate name is not unique. Only returns the last created one when matched multiple certificates.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the Dedicated ELB certificate. If omitted, the\nprovider-level region will be used.\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getElbCertificate.\n",
        "properties": {
          "description": {
            "description": "Human-readable description for the certificate.\n",
            "type": "string"
          },
          "domain": {
            "description": "The domain of the certificate. This parameter is valid only when `type` is \"server\".\n",
            "type": "string"
          },
          "expiration": {
            "description": "Indicates the time when the certificate expires.\n",
            "type": "string"
          },
          "id": {
            "description": "The certificate ID in UUID format.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "type": {
            "description": "Specifies the certificate type. The value can be one of the following:\n",
            "type": "string"
          }
        },
        "required": [
          "description",
          "domain",
          "expiration",
          "id",
          "name",
          "region",
          "type"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getElbFlavors:getElbFlavors": {
      "description": "Use this data source to get the available **Dedicated** ELB Flavors.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst flavors = flexibleengine.getElbFlavors({\n    type: \"L7\",\n    maxConnections: 200000,\n    cps: 2000,\n    bandwidth: 50,\n});\n// Create Dedicated Load Balancer with the first matched flavor\nconst lb = new flexibleengine.LbLoadbalancerV3(\"lb\", {l7FlavorId: flavors.then(flavors =\u003e flavors.ids?.[0])});\n// Other properties...\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nflavors = flexibleengine.get_elb_flavors(type=\"L7\",\n    max_connections=200000,\n    cps=2000,\n    bandwidth=50)\n# Create Dedicated Load Balancer with the first matched flavor\nlb = flexibleengine.LbLoadbalancerV3(\"lb\", l7_flavor_id=flavors.ids[0])\n# Other properties...\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var flavors = Flexibleengine.GetElbFlavors.Invoke(new()\n    {\n        Type = \"L7\",\n        MaxConnections = 200000,\n        Cps = 2000,\n        Bandwidth = 50,\n    });\n\n    // Create Dedicated Load Balancer with the first matched flavor\n    var lb = new Flexibleengine.LbLoadbalancerV3(\"lb\", new()\n    {\n        L7FlavorId = flavors.Apply(getElbFlavorsResult =\u003e getElbFlavorsResult.Ids[0]),\n    });\n\n    // Other properties...\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tflavors, err := flexibleengine.GetElbFlavors(ctx, \u0026flexibleengine.GetElbFlavorsArgs{\n\t\t\tType:           pulumi.StringRef(\"L7\"),\n\t\t\tMaxConnections: pulumi.Float64Ref(200000),\n\t\t\tCps:            pulumi.Float64Ref(2000),\n\t\t\tBandwidth:      pulumi.Float64Ref(50),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create Dedicated Load Balancer with the first matched flavor\n\t\t_, err = flexibleengine.NewLbLoadbalancerV3(ctx, \"lb\", \u0026flexibleengine.LbLoadbalancerV3Args{\n\t\t\tL7FlavorId: pulumi.String(flavors.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetElbFlavorsArgs;\nimport com.pulumi.flexibleengine.LbLoadbalancerV3;\nimport com.pulumi.flexibleengine.LbLoadbalancerV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavors = FlexibleengineFunctions.getElbFlavors(GetElbFlavorsArgs.builder()\n            .type(\"L7\")\n            .maxConnections(200000)\n            .cps(2000)\n            .bandwidth(50)\n            .build());\n\n        // Create Dedicated Load Balancer with the first matched flavor\n        var lb = new LbLoadbalancerV3(\"lb\", LbLoadbalancerV3Args.builder()\n            .l7FlavorId(flavors.applyValue(getElbFlavorsResult -\u003e getElbFlavorsResult.ids()[0]))\n            .build());\n\n        // Other properties...\n    }\n}\n```\n```yaml\nresources:\n  # Create Dedicated Load Balancer with the first matched flavor\n  lb:\n    type: flexibleengine:LbLoadbalancerV3\n    properties:\n      l7FlavorId: ${flavors.ids[0]}\nvariables:\n  flavors:\n    fn::invoke:\n      function: flexibleengine:getElbFlavors\n      arguments:\n        type: L7\n        maxConnections: 200000\n        cps: 2000\n        bandwidth: 50\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getElbFlavors.\n",
        "properties": {
          "bandwidth": {
            "type": "number",
            "description": "Specifies the bandwidth size(Mbit/s) in the flavor.\n"
          },
          "cps": {
            "type": "number",
            "description": "Specifies the cps in the flavor.\n"
          },
          "id": {
            "type": "string",
            "description": "ID of the flavor.\n"
          },
          "maxConnections": {
            "type": "number",
            "description": "Specifies the maximum connections in the flavor.\n"
          },
          "qps": {
            "type": "number",
            "description": "Specifies the qps in the L7 flavor.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the flavors. If omitted, the provider-level region will be\nused.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the flavor type. Valid values are **L4** and **L7**.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getElbFlavors.\n",
        "properties": {
          "bandwidth": {
            "description": "Bandwidth size(Mbit/s) of the flavor.\n",
            "type": "number"
          },
          "cps": {
            "description": "Cps of the flavor.\n",
            "type": "number"
          },
          "flavors": {
            "description": "A list of flavors. Each element contains the following attributes:\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetElbFlavorsFlavor:getElbFlavorsFlavor"
            },
            "type": "array"
          },
          "id": {
            "description": "ID of the flavor.\n",
            "type": "string"
          },
          "ids": {
            "description": "A list of flavor IDs.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "maxConnections": {
            "description": "Maximum connections of the flavor.\n",
            "type": "number"
          },
          "qps": {
            "description": "Qps of the L7 flavor.\n",
            "type": "number"
          },
          "region": {
            "type": "string"
          },
          "type": {
            "description": "Type of the flavor.\n",
            "type": "string"
          }
        },
        "required": [
          "flavors",
          "id",
          "ids",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getElbLoadbalancers:getElbLoadbalancers": {
      "description": "Use this data source to get the list of ELB load blancers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst loadbalancerName = config.requireObject(\"loadbalancerName\");\nconst test = flexibleengine.getElbLoadbalancers({\n    name: loadbalancerName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nloadbalancer_name = config.require_object(\"loadbalancerName\")\ntest = flexibleengine.get_elb_loadbalancers(name=loadbalancer_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var loadbalancerName = config.RequireObject\u003cdynamic\u003e(\"loadbalancerName\");\n    var test = Flexibleengine.GetElbLoadbalancers.Invoke(new()\n    {\n        Name = loadbalancerName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tloadbalancerName := cfg.RequireObject(\"loadbalancerName\")\n\t\t_, err := flexibleengine.GetElbLoadbalancers(ctx, \u0026flexibleengine.GetElbLoadbalancersArgs{\n\t\t\tName: pulumi.StringRef(loadbalancerName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetElbLoadbalancersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var loadbalancerName = config.get(\"loadbalancerName\");\n        final var test = FlexibleengineFunctions.getElbLoadbalancers(GetElbLoadbalancersArgs.builder()\n            .name(loadbalancerName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  loadbalancerName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getElbLoadbalancers\n      arguments:\n        name: ${loadbalancerName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getElbLoadbalancers.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies the description of the ELB load balancer.\n"
          },
          "id": {
            "type": "string",
            "description": "The load balancer ID.\n"
          },
          "ipv4SubnetId": {
            "type": "string",
            "description": "Specifies the ID of the IPv4 subnet where the load balancer resides.\n"
          },
          "ipv6NetworkId": {
            "type": "string",
            "description": "Specifies the ID of the port bound to the IPv6 address of the load balancer.\n"
          },
          "l4FlavorId": {
            "type": "string",
            "description": "Specifies the ID of a flavor at Layer 4.\n"
          },
          "l7FlavorId": {
            "type": "string",
            "description": "Specifies the ID of a flavor at Layer 7.\n"
          },
          "loadbalancerId": {
            "type": "string",
            "description": "Specifies the ID of the ELB load balancer.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the ELB load balancer.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies whether the load balancer is a dedicated load balancer, Value options:\n**dedicated**, **share**.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of the VPC where the load balancer resides.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getElbLoadbalancers.\n",
        "properties": {
          "description": {
            "description": "The description of load balancer.\n",
            "type": "string"
          },
          "id": {
            "description": "The load balancer ID.\n",
            "type": "string"
          },
          "ipv4SubnetId": {
            "description": "The  ID of the IPv4 subnet where the load balancer resides.\n",
            "type": "string"
          },
          "ipv6NetworkId": {
            "description": "The ID of the IPv6 subnet where the load balancer resides.\n",
            "type": "string"
          },
          "l4FlavorId": {
            "description": "The ID of a flavor at Layer 4.\n",
            "type": "string"
          },
          "l7FlavorId": {
            "description": "The ID of a flavor at Layer 7\n",
            "type": "string"
          },
          "loadbalancerId": {
            "type": "string"
          },
          "loadbalancers": {
            "description": "Lists the loadalancers.\nThe loadbalancers structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetElbLoadbalancersLoadbalancer:getElbLoadbalancersLoadbalancer"
            },
            "type": "array"
          },
          "name": {
            "description": "The load balancer name.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "type": {
            "description": "Whether the load balancer is a dedicated load balancer.\n",
            "type": "string"
          },
          "vpcId": {
            "description": "The ID of the VPC where the load balancer resides.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "loadbalancers",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getEnterpriseProject:getEnterpriseProject": {
      "description": "Use this data source to get an enterprise project from Flexibleengine.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getEnterpriseProject({\n    name: \"test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_enterprise_project(name=\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetEnterpriseProject.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupEnterpriseProject(ctx, \u0026flexibleengine.LookupEnterpriseProjectArgs{\n\t\t\tName: pulumi.StringRef(\"test\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetEnterpriseProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getEnterpriseProject(GetEnterpriseProjectArgs.builder()\n            .name(\"test\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getEnterpriseProject\n      arguments:\n        name: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getEnterpriseProject.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Specifies the ID of an enterprise project. The value \"0\" indicates the default enterprise project.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the enterprise project name. Fuzzy search is supported.\n"
          },
          "status": {
            "type": "number",
            "description": "Specifies the status of an enterprise project.\n+ 1 indicates Enabled.\n+ 2 indicates Disabled.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getEnterpriseProject.\n",
        "properties": {
          "createdAt": {
            "description": "The UTC time when the enterprise project was created. Example: 2018-05-18T06:49:06Z\n",
            "type": "string"
          },
          "description": {
            "description": "The supplementary information about the enterprise project.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "number"
          },
          "updatedAt": {
            "description": "The UTC time when the enterprise project was modified. Example: 2018-05-28T02:21:36Z\n",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "description",
          "id",
          "name",
          "status",
          "updatedAt"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getFgsDependencies:getFgsDependencies": {
      "description": "Use this data source to filter dependent packages of FGS from FlexibleEngine.\n\n## Example Usage\n\n### Obtain all public dependent packages\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getFgsDependencies({});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_fgs_dependencies()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetFgsDependencies.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetFgsDependencies(ctx, \u0026flexibleengine.GetFgsDependenciesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetFgsDependenciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getFgsDependencies();\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getFgsDependencies\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Obtain specific public dependent package by name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getFgsDependencies({\n    name: \"obssdk\",\n    type: \"public\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_fgs_dependencies(name=\"obssdk\",\n    type=\"public\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetFgsDependencies.Invoke(new()\n    {\n        Name = \"obssdk\",\n        Type = \"public\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetFgsDependencies(ctx, \u0026flexibleengine.GetFgsDependenciesArgs{\n\t\t\tName: pulumi.StringRef(\"obssdk\"),\n\t\t\tType: pulumi.StringRef(\"public\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetFgsDependenciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getFgsDependencies(GetFgsDependenciesArgs.builder()\n            .name(\"obssdk\")\n            .type(\"public\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getFgsDependencies\n      arguments:\n        name: obssdk\n        type: public\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Obtain all public Python2.7 dependent packages\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getFgsDependencies({\n    runtime: \"Python2.7\",\n    type: \"public\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_fgs_dependencies(runtime=\"Python2.7\",\n    type=\"public\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetFgsDependencies.Invoke(new()\n    {\n        Runtime = \"Python2.7\",\n        Type = \"public\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetFgsDependencies(ctx, \u0026flexibleengine.GetFgsDependenciesArgs{\n\t\t\tRuntime: pulumi.StringRef(\"Python2.7\"),\n\t\t\tType:    pulumi.StringRef(\"public\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetFgsDependenciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getFgsDependencies(GetFgsDependenciesArgs.builder()\n            .runtime(\"Python2.7\")\n            .type(\"public\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getFgsDependencies\n      arguments:\n        runtime: Python2.7\n        type: public\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getFgsDependencies.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Dependent package ID.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the dependent package runtime to match.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the dependent packages. If omitted, the\nprovider-level region will be used.\n"
          },
          "runtime": {
            "type": "string",
            "description": "Specifies the dependent package runtime to match. Valid values: **Java8**,\n**Node.js6.10**, **Node.js8.10**, **Node.js10.16**, **Node.js12.13**, **Python2.7**, **Python3.6**, **Go1.8**,\n**Go1.x**, **C#(.NET Core 2.0)**, **C#(.NET Core 2.1)**, **C#(.NET Core 3.1)** and **PHP7.3**.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the dependent package type to match. Valid values: **public** and **private**.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getFgsDependencies.\n",
        "properties": {
          "id": {
            "description": "Dependent package ID.\n",
            "type": "string"
          },
          "name": {
            "description": "Dependent package name.\n",
            "type": "string"
          },
          "packages": {
            "description": "All dependent packages that match.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetFgsDependenciesPackage:getFgsDependenciesPackage"
            },
            "type": "array"
          },
          "region": {
            "type": "string"
          },
          "runtime": {
            "description": "Dependent package runtime.\n",
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "packages",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getGaussdbCassandraFlavors:getGaussdbCassandraFlavors": {
      "description": "Use this data source to get available FlexibleEngine gaussdb cassandra flavors.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst flavors = flexibleengine.getGaussdbCassandraFlavors({});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nflavors = flexibleengine.get_gaussdb_cassandra_flavors()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var flavors = Flexibleengine.GetGaussdbCassandraFlavors.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetGaussdbCassandraFlavors(ctx, \u0026flexibleengine.GetGaussdbCassandraFlavorsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetGaussdbCassandraFlavorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavors = FlexibleengineFunctions.getGaussdbCassandraFlavors();\n\n    }\n}\n```\n```yaml\nvariables:\n  flavors:\n    fn::invoke:\n      function: flexibleengine:getGaussdbCassandraFlavors\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getGaussdbCassandraFlavors.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Specifies the data source ID.\n"
          },
          "memory": {
            "type": "string",
            "description": "Specifies the memory size of the flavors.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the flavors. If omitted, the provider-level region will be\nused.\n"
          },
          "vcpus": {
            "type": "string",
            "description": "Specifies the count of vcpus of the flavors.\n"
          },
          "version": {
            "type": "string",
            "description": "Specifies the engine version of the flavors.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getGaussdbCassandraFlavors.\n",
        "properties": {
          "flavors": {
            "description": "Indicates the flavors information. The flavors object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetGaussdbCassandraFlavorsFlavor:getGaussdbCassandraFlavorsFlavor"
            },
            "type": "array"
          },
          "id": {
            "description": "Specifies the data source ID.\n",
            "type": "string"
          },
          "memory": {
            "description": "Indicates the memory size in GB.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "vcpus": {
            "description": "Indicates the CPU size.\n",
            "type": "string"
          },
          "version": {
            "description": "Indicates the database version.\n",
            "type": "string"
          }
        },
        "required": [
          "flavors",
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getGaussdbCassandraInstances:getGaussdbCassandraInstances": {
      "description": "Use this data source to get available FlexibleEngine gaussdb cassandra instances.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst _this = flexibleengine.getGaussdbCassandraInstances({\n    name: \"gaussdb-instance\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nthis = flexibleengine.get_gaussdb_cassandra_instances(name=\"gaussdb-instance\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = Flexibleengine.GetGaussdbCassandraInstances.Invoke(new()\n    {\n        Name = \"gaussdb-instance\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetGaussdbCassandraInstances(ctx, \u0026flexibleengine.GetGaussdbCassandraInstancesArgs{\n\t\t\tName: pulumi.StringRef(\"gaussdb-instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetGaussdbCassandraInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = FlexibleengineFunctions.getGaussdbCassandraInstances(GetGaussdbCassandraInstancesArgs.builder()\n            .name(\"gaussdb-instance\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  this:\n    fn::invoke:\n      function: flexibleengine:getGaussdbCassandraInstances\n      arguments:\n        name: gaussdb-instance\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getGaussdbCassandraInstances.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Indicates the node ID.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the instance.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the instance. If omitted, the provider-level region will\nbe used.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the network ID of a subnet.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC ID.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getGaussdbCassandraInstances.\n",
        "properties": {
          "id": {
            "description": "Indicates the node ID.\n",
            "type": "string"
          },
          "instances": {
            "description": "An array of available instances. The instances object structure is documented\nbelow.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetGaussdbCassandraInstancesInstance:getGaussdbCassandraInstancesInstance"
            },
            "type": "array"
          },
          "name": {
            "description": "Indicates the node name.\n",
            "type": "string"
          },
          "region": {
            "description": "The region of the instance.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "Indicates the network ID of a subnet.\n",
            "type": "string"
          },
          "vpcId": {
            "description": "Indicates the VPC ID.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "instances",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getGaussdbNosqlFlavors:getGaussdbNosqlFlavors": {
      "description": "Use this data source to get available FlexibleEngine GaussDB (for NoSQL) flavors.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst flavors = flexibleengine.getGaussdbNosqlFlavors({\n    memory: 8,\n    vcpus: 4,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nflavors = flexibleengine.get_gaussdb_nosql_flavors(memory=8,\n    vcpus=4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var flavors = Flexibleengine.GetGaussdbNosqlFlavors.Invoke(new()\n    {\n        Memory = 8,\n        Vcpus = 4,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetGaussdbNosqlFlavors(ctx, \u0026flexibleengine.GetGaussdbNosqlFlavorsArgs{\n\t\t\tMemory: pulumi.Float64Ref(8),\n\t\t\tVcpus:  pulumi.Float64Ref(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetGaussdbNosqlFlavorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavors = FlexibleengineFunctions.getGaussdbNosqlFlavors(GetGaussdbNosqlFlavorsArgs.builder()\n            .memory(8)\n            .vcpus(4)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavors:\n    fn::invoke:\n      function: flexibleengine:getGaussdbNosqlFlavors\n      arguments:\n        memory: 8\n        vcpus: 4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getGaussdbNosqlFlavors.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the availability zone (AZ) of the GaussDB specifications.\n"
          },
          "engine": {
            "type": "string",
            "description": "Specifies the type of the database engine. The valid values are as follows:\n+ **cassandra**: The default value and means to query GaussDB (for Cassandra) instance specifications.\n+ **influxdb**: Means to query GaussDB (for Influx) instance specifications.\n"
          },
          "engineVersion": {
            "type": "string",
            "description": "Specifies the version of the database engine.\n"
          },
          "id": {
            "type": "string",
            "description": "Data source ID.\n"
          },
          "memory": {
            "type": "number",
            "description": "Specifies the memory size in gigabytes (GB).\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the GaussDB specifications.\nIf omitted, the provider-level region will be used.\n"
          },
          "vcpus": {
            "type": "number",
            "description": "Specifies the number of vCPUs.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getGaussdbNosqlFlavors.\n",
        "properties": {
          "availabilityZone": {
            "type": "string"
          },
          "engine": {
            "description": "The type of the database engine.\n",
            "type": "string"
          },
          "engineVersion": {
            "description": "The version of the database engine.\n",
            "type": "string"
          },
          "flavors": {
            "description": "The information of the GaussDB specifications. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetGaussdbNosqlFlavorsFlavor:getGaussdbNosqlFlavorsFlavor"
            },
            "type": "array"
          },
          "id": {
            "description": "Data source ID.\n",
            "type": "string"
          },
          "memory": {
            "description": "The memory size, in GB.\n",
            "type": "number"
          },
          "region": {
            "type": "string"
          },
          "vcpus": {
            "description": "The number of vCPUs.\n",
            "type": "number"
          }
        },
        "required": [
          "flavors",
          "id"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getIdentityCustomRoleV3:getIdentityCustomRoleV3": {
      "description": "Use this data source to get the ID of an IAM **custom policy**.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst role = flexibleengine.getIdentityCustomRoleV3({\n    name: \"custom_role\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nrole = flexibleengine.get_identity_custom_role_v3(name=\"custom_role\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var role = Flexibleengine.GetIdentityCustomRoleV3.Invoke(new()\n    {\n        Name = \"custom_role\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetIdentityCustomRoleV3(ctx, \u0026flexibleengine.GetIdentityCustomRoleV3Args{\n\t\t\tName: pulumi.StringRef(\"custom_role\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetIdentityCustomRoleV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var role = FlexibleengineFunctions.getIdentityCustomRoleV3(GetIdentityCustomRoleV3Args.builder()\n            .name(\"custom_role\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  role:\n    fn::invoke:\n      function: flexibleengine:getIdentityCustomRoleV3\n      arguments:\n        name: custom_role\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getIdentityCustomRoleV3.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the custom policy.\n"
          },
          "domainId": {
            "type": "string",
            "description": "The domain the policy belongs to.\n"
          },
          "id": {
            "type": "string",
            "description": "ID of the custom policy.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the custom policy.\n"
          },
          "references": {
            "type": "number",
            "description": "The number of citations for the custom policy.\n"
          },
          "type": {
            "type": "string",
            "description": "Display mode. Valid options are AX: Account level and XA: Project level.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIdentityCustomRoleV3.\n",
        "properties": {
          "catalog": {
            "description": "The catalog of the custom policy.\n",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "domainId": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "policy": {
            "description": "Document of the custom policy.\n",
            "type": "string"
          },
          "references": {
            "type": "number"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "catalog",
          "policy"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getIdentityGroup:getIdentityGroup": {
      "description": "Use this data source to get details of the specified IAM user group.\n\n\u003e You *must* have IAM read privileges to use this data source.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst group = flexibleengine.getIdentityGroup({\n    name: \"my_group\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ngroup = flexibleengine.get_identity_group(name=\"my_group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @group = Flexibleengine.GetIdentityGroup.Invoke(new()\n    {\n        Name = \"my_group\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetIdentityGroup(ctx, \u0026flexibleengine.GetIdentityGroupArgs{\n\t\t\tName: pulumi.StringRef(\"my_group\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetIdentityGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var group = FlexibleengineFunctions.getIdentityGroup(GetIdentityGroupArgs.builder()\n            .name(\"my_group\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  group:\n    fn::invoke:\n      function: flexibleengine:getIdentityGroup\n      arguments:\n        name: my_group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getIdentityGroup.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies the description of the identity group.\n"
          },
          "id": {
            "type": "string",
            "description": "Specifies the ID of the identity group.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the identity group.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIdentityGroup.\n",
        "properties": {
          "description": {
            "description": "Indicates the description of the IAM user.\n",
            "type": "string"
          },
          "domainId": {
            "description": "Indicates the domain the group belongs to.\n",
            "type": "string"
          },
          "id": {
            "description": "Indicates the ID of the User.\n",
            "type": "string"
          },
          "name": {
            "description": "Indicates the IAM user name.\n",
            "type": "string"
          },
          "users": {
            "description": "Indicates the users the group contains. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetIdentityGroupUser:getIdentityGroupUser"
            },
            "type": "array"
          }
        },
        "required": [
          "description",
          "domainId",
          "id",
          "name",
          "users"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getIdentityProjectV3:getIdentityProjectV3": {
      "description": "Use this data source to get the ID of a FlexibleEngine project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst project1 = flexibleengine.getIdentityProjectV3({\n    name: \"eu-west-0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nproject1 = flexibleengine.get_identity_project_v3(name=\"eu-west-0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var project1 = Flexibleengine.GetIdentityProjectV3.Invoke(new()\n    {\n        Name = \"eu-west-0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupIdentityProjectV3(ctx, \u0026flexibleengine.LookupIdentityProjectV3Args{\n\t\t\tName: pulumi.StringRef(\"eu-west-0\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetIdentityProjectV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var project1 = FlexibleengineFunctions.getIdentityProjectV3(GetIdentityProjectV3Args.builder()\n            .name(\"eu-west-0\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  project1:\n    fn::invoke:\n      function: flexibleengine:getIdentityProjectV3\n      arguments:\n        name: eu-west-0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getIdentityProjectV3.\n",
        "properties": {
          "domainId": {
            "type": "string",
            "description": "The domain this project belongs to.\n"
          },
          "enabled": {
            "type": "boolean",
            "description": "The enabling status of this project.\n"
          },
          "id": {
            "type": "string"
          },
          "isDomain": {
            "type": "boolean",
            "description": "Indicates whether the user calling the API is a tenant.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the project.\n"
          },
          "parentId": {
            "type": "string",
            "description": "The parent of this project.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIdentityProjectV3.\n",
        "properties": {
          "description": {
            "description": "The description of the project.\n",
            "type": "string"
          },
          "domainId": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "isDomain": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "parentId": {
            "type": "string"
          }
        },
        "required": [
          "description",
          "domainId",
          "enabled",
          "id",
          "isDomain"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getIdentityProjects:getIdentityProjects": {
      "description": "Use this data source to query the IAM project list within FlexibleEngine.\n\n\u003e **NOTE:** You *must* have IAM read privileges to use this data source.\n\n## Example Usage\n\n### Obtain project information by name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getIdentityProjects({\n    name: \"eu-west-0_demo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_identity_projects(name=\"eu-west-0_demo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetIdentityProjects.Invoke(new()\n    {\n        Name = \"eu-west-0_demo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetIdentityProjects(ctx, \u0026flexibleengine.GetIdentityProjectsArgs{\n\t\t\tName: pulumi.StringRef(\"eu-west-0_demo\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetIdentityProjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getIdentityProjects(GetIdentityProjectsArgs.builder()\n            .name(\"eu-west-0_demo\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getIdentityProjects\n      arguments:\n        name: eu-west-0_demo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Obtain special project information by name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getIdentityProjects({\n    name: \"MOS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_identity_projects(name=\"MOS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetIdentityProjects.Invoke(new()\n    {\n        Name = \"MOS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetIdentityProjects(ctx, \u0026flexibleengine.GetIdentityProjectsArgs{\n\t\t\tName: pulumi.StringRef(\"MOS\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetIdentityProjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getIdentityProjects(GetIdentityProjectsArgs.builder()\n            .name(\"MOS\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getIdentityProjects\n      arguments:\n        name: MOS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getIdentityProjects.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The IAM project ID.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the IAM project name to query.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIdentityProjects.\n",
        "properties": {
          "id": {
            "description": "The IAM project ID.\n",
            "type": "string"
          },
          "name": {
            "description": "The IAM project name.\n",
            "type": "string"
          },
          "projects": {
            "description": "The details of the query projects. The projects object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetIdentityProjectsProject:getIdentityProjectsProject"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "projects"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getIdentityRoleV3:getIdentityRoleV3": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst securityAdmin = flexibleengine.getIdentityRoleV3({\n    name: \"secu_admin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nsecurity_admin = flexibleengine.get_identity_role_v3(name=\"secu_admin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var securityAdmin = Flexibleengine.GetIdentityRoleV3.Invoke(new()\n    {\n        Name = \"secu_admin\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupIdentityRoleV3(ctx, \u0026flexibleengine.LookupIdentityRoleV3Args{\n\t\t\tName: \"secu_admin\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetIdentityRoleV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var securityAdmin = FlexibleengineFunctions.getIdentityRoleV3(GetIdentityRoleV3Args.builder()\n            .name(\"secu_admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  securityAdmin:\n    fn::invoke:\n      function: flexibleengine:getIdentityRoleV3\n      arguments:\n        name: secu_admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getIdentityRoleV3.\n",
        "properties": {
          "domainId": {
            "type": "string",
            "description": "The domain the role belongs to.\n"
          },
          "id": {
            "type": "string",
            "description": "The data source ID in UUID format.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the role.\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getIdentityRoleV3.\n",
        "properties": {
          "catalog": {
            "description": "The service catalog of the policy.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the policy.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the role displayed on the console.\n",
            "type": "string"
          },
          "domainId": {
            "type": "string"
          },
          "id": {
            "description": "The data source ID in UUID format.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "policy": {
            "description": "The content of the policy.\n",
            "type": "string"
          },
          "type": {
            "description": "The display mode of the policy.\n",
            "type": "string"
          }
        },
        "required": [
          "catalog",
          "description",
          "displayName",
          "domainId",
          "id",
          "name",
          "policy",
          "type"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getIdentityUsers:getIdentityUsers": {
      "description": "Use this data source to query the IAM user list within FlexibleEngine.\n\n\u003e You *must* have IAM read privileges to use this data source.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst all = flexibleengine.getIdentityUsers({});\nconst one = flexibleengine.getIdentityUsers({\n    name: \"user_name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nall = flexibleengine.get_identity_users()\none = flexibleengine.get_identity_users(name=\"user_name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var all = Flexibleengine.GetIdentityUsers.Invoke();\n\n    var one = Flexibleengine.GetIdentityUsers.Invoke(new()\n    {\n        Name = \"user_name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetIdentityUsers(ctx, \u0026flexibleengine.GetIdentityUsersArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.GetIdentityUsers(ctx, \u0026flexibleengine.GetIdentityUsersArgs{\n\t\t\tName: pulumi.StringRef(\"user_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetIdentityUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var all = FlexibleengineFunctions.getIdentityUsers();\n\n        final var one = FlexibleengineFunctions.getIdentityUsers(GetIdentityUsersArgs.builder()\n            .name(\"user_name\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  all:\n    fn::invoke:\n      function: flexibleengine:getIdentityUsers\n      arguments: {}\n  one:\n    fn::invoke:\n      function: flexibleengine:getIdentityUsers\n      arguments:\n        name: user_name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getIdentityUsers.\n",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Specifies the status of the IAM user, the default value is **true**.\n"
          },
          "id": {
            "type": "string",
            "description": "Indicates the ID of the User.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the IAM user name.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIdentityUsers.\n",
        "properties": {
          "enabled": {
            "description": "Indicates the whether the IAM user is enabled.\n",
            "type": "boolean"
          },
          "id": {
            "description": "Indicates the ID of the User.\n",
            "type": "string"
          },
          "name": {
            "description": "Indicates the IAM user name.\n",
            "type": "string"
          },
          "users": {
            "description": "The details of the queried IAM users. The structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetIdentityUsersUser:getIdentityUsersUser"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "users"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getImagesImage:getImagesImage": {
      "description": "Use this data source to get the ID of an available FlexibleEngine image.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst ubuntu = flexibleengine.getImagesImage({\n    name: \"OBS Ubuntu 18.04\",\n    visibility: \"public\",\n});\nconst centos_1 = flexibleengine.getImagesImage({\n    architecture: \"x86\",\n    mostRecent: true,\n    osVersion: \"CentOS 7.4 64bit\",\n    visibility: \"public\",\n});\nconst centos_2 = flexibleengine.getImagesImage({\n    architecture: \"x86\",\n    mostRecent: true,\n    nameRegex: \"^OBS CentOS 7.4\",\n    visibility: \"public\",\n});\nconst bmsImage = flexibleengine.getImagesImage({\n    architecture: \"x86\",\n    imageType: \"Ironic\",\n    mostRecent: true,\n    osVersion: \"CentOS 7.4 64bit\",\n    visibility: \"public\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nubuntu = flexibleengine.get_images_image(name=\"OBS Ubuntu 18.04\",\n    visibility=\"public\")\ncentos_1 = flexibleengine.get_images_image(architecture=\"x86\",\n    most_recent=True,\n    os_version=\"CentOS 7.4 64bit\",\n    visibility=\"public\")\ncentos_2 = flexibleengine.get_images_image(architecture=\"x86\",\n    most_recent=True,\n    name_regex=\"^OBS CentOS 7.4\",\n    visibility=\"public\")\nbms_image = flexibleengine.get_images_image(architecture=\"x86\",\n    image_type=\"Ironic\",\n    most_recent=True,\n    os_version=\"CentOS 7.4 64bit\",\n    visibility=\"public\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ubuntu = Flexibleengine.GetImagesImage.Invoke(new()\n    {\n        Name = \"OBS Ubuntu 18.04\",\n        Visibility = \"public\",\n    });\n\n    var centos_1 = Flexibleengine.GetImagesImage.Invoke(new()\n    {\n        Architecture = \"x86\",\n        MostRecent = true,\n        OsVersion = \"CentOS 7.4 64bit\",\n        Visibility = \"public\",\n    });\n\n    var centos_2 = Flexibleengine.GetImagesImage.Invoke(new()\n    {\n        Architecture = \"x86\",\n        MostRecent = true,\n        NameRegex = \"^OBS CentOS 7.4\",\n        Visibility = \"public\",\n    });\n\n    var bmsImage = Flexibleengine.GetImagesImage.Invoke(new()\n    {\n        Architecture = \"x86\",\n        ImageType = \"Ironic\",\n        MostRecent = true,\n        OsVersion = \"CentOS 7.4 64bit\",\n        Visibility = \"public\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupImagesImage(ctx, \u0026flexibleengine.LookupImagesImageArgs{\n\t\t\tName:       pulumi.StringRef(\"OBS Ubuntu 18.04\"),\n\t\t\tVisibility: pulumi.StringRef(\"public\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.LookupImagesImage(ctx, \u0026flexibleengine.LookupImagesImageArgs{\n\t\t\tArchitecture: pulumi.StringRef(\"x86\"),\n\t\t\tMostRecent:   pulumi.BoolRef(true),\n\t\t\tOsVersion:    pulumi.StringRef(\"CentOS 7.4 64bit\"),\n\t\t\tVisibility:   pulumi.StringRef(\"public\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.LookupImagesImage(ctx, \u0026flexibleengine.LookupImagesImageArgs{\n\t\t\tArchitecture: pulumi.StringRef(\"x86\"),\n\t\t\tMostRecent:   pulumi.BoolRef(true),\n\t\t\tNameRegex:    pulumi.StringRef(\"^OBS CentOS 7.4\"),\n\t\t\tVisibility:   pulumi.StringRef(\"public\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.LookupImagesImage(ctx, \u0026flexibleengine.LookupImagesImageArgs{\n\t\t\tArchitecture: pulumi.StringRef(\"x86\"),\n\t\t\tImageType:    pulumi.StringRef(\"Ironic\"),\n\t\t\tMostRecent:   pulumi.BoolRef(true),\n\t\t\tOsVersion:    pulumi.StringRef(\"CentOS 7.4 64bit\"),\n\t\t\tVisibility:   pulumi.StringRef(\"public\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetImagesImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ubuntu = FlexibleengineFunctions.getImagesImage(GetImagesImageArgs.builder()\n            .name(\"OBS Ubuntu 18.04\")\n            .visibility(\"public\")\n            .build());\n\n        final var centos-1 = FlexibleengineFunctions.getImagesImage(GetImagesImageArgs.builder()\n            .architecture(\"x86\")\n            .mostRecent(true)\n            .osVersion(\"CentOS 7.4 64bit\")\n            .visibility(\"public\")\n            .build());\n\n        final var centos-2 = FlexibleengineFunctions.getImagesImage(GetImagesImageArgs.builder()\n            .architecture(\"x86\")\n            .mostRecent(true)\n            .nameRegex(\"^OBS CentOS 7.4\")\n            .visibility(\"public\")\n            .build());\n\n        final var bmsImage = FlexibleengineFunctions.getImagesImage(GetImagesImageArgs.builder()\n            .architecture(\"x86\")\n            .imageType(\"Ironic\")\n            .mostRecent(true)\n            .osVersion(\"CentOS 7.4 64bit\")\n            .visibility(\"public\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  ubuntu:\n    fn::invoke:\n      function: flexibleengine:getImagesImage\n      arguments:\n        name: OBS Ubuntu 18.04\n        visibility: public\n  centos-1:\n    fn::invoke:\n      function: flexibleengine:getImagesImage\n      arguments:\n        architecture: x86\n        mostRecent: true\n        osVersion: CentOS 7.4 64bit\n        visibility: public\n  centos-2:\n    fn::invoke:\n      function: flexibleengine:getImagesImage\n      arguments:\n        architecture: x86\n        mostRecent: true\n        nameRegex: ^OBS CentOS 7.4\n        visibility: public\n  bmsImage:\n    fn::invoke:\n      function: flexibleengine:getImagesImage\n      arguments:\n        architecture: x86\n        imageType: Ironic\n        mostRecent: true\n        osVersion: CentOS 7.4 64bit\n        visibility: public\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getImagesImage.\n",
        "properties": {
          "architecture": {
            "type": "string",
            "description": "Specifies the image architecture type. The value can be **x86** and **arm**.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project ID of the image.\n"
          },
          "flavorId": {
            "type": "string",
            "description": "Specifies the ECS flavor ID used to filter out available images.\nYou can specify only one flavor ID and only ECS flavor ID is valid, BMS flavor is not supported.\n"
          },
          "id": {
            "type": "string",
            "description": "Specifies a resource ID in UUID format.\n"
          },
          "imageType": {
            "type": "string",
            "description": "Specifies the environment where the image is used. For a BMS image, the value is **Ironic**.\n"
          },
          "mostRecent": {
            "type": "boolean",
            "description": "If more than one result is returned, use the latest updated image.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the image. Cannot be used simultaneously with `name_regex`.\n"
          },
          "nameRegex": {
            "type": "string",
            "description": "The regular expressian of the name of the image.\nCannot be used simultaneously with `name`.\n"
          },
          "os": {
            "type": "string",
            "description": "Specifies the image OS type. The value can be **Windows**, **Ubuntu**,\n**RedHat**, **SUSE**, **CentOS**, **Debian**, **OpenSUSE**, **Oracle Linux**, **Fedora**, **Other**,\n**CoreOS**, or **EulerOS**.\n"
          },
          "osVersion": {
            "type": "string",
            "description": "Specifies the OS version. For example, *CentOS 7.4 64bit* or *Ubuntu 18.04 server 64bit*.\n"
          },
          "owner": {
            "type": "string",
            "description": "The owner (UUID) of the image.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the images. If omitted, the provider-level region will be\nused.\n"
          },
          "sizeMax": {
            "type": "number",
            "deprecationMessage": "Deprecated"
          },
          "sizeMin": {
            "type": "number",
            "deprecationMessage": "Deprecated"
          },
          "sortDirection": {
            "type": "string",
            "description": "Order the results in either `asc` or `desc`.\n"
          },
          "sortKey": {
            "type": "string",
            "description": "Sort images based on a certain key. Must be one of\n\"name\", \"container_format\", \"disk_format\", \"status\", \"id\" or \"size\". Defaults to `name`.\n"
          },
          "tag": {
            "type": "string",
            "description": "Search for images with a specific tag in \"Key=Value\" format.\n"
          },
          "visibility": {
            "type": "string",
            "description": "The visibility of the image. Must be one of\n**public**, **private**, **market** or **shared**.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getImagesImage.\n",
        "properties": {
          "architecture": {
            "type": "string"
          },
          "backupId": {
            "description": "The backup ID of the whole image in the CBR vault.\n",
            "type": "string"
          },
          "checksum": {
            "description": "The checksum of the data associated with the image.\n",
            "type": "string"
          },
          "containerFormat": {
            "description": "The format of the image's container.\n",
            "type": "string"
          },
          "createdAt": {
            "description": "The date when the image was created.\n",
            "type": "string"
          },
          "diskFormat": {
            "description": "The format of the image's disk.\n",
            "type": "string"
          },
          "enterpriseProjectId": {
            "type": "string"
          },
          "file": {
            "description": "the trailing path after the glance endpoint that represent the location of the image or the path to retrieve\nit.\n",
            "type": "string"
          },
          "flavorId": {
            "type": "string"
          },
          "id": {
            "description": "Specifies a resource ID in UUID format.\n",
            "type": "string"
          },
          "imageType": {
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The metadata associated with the image. Image metadata allow for meaningfully define the image properties\nand tags.\n",
            "type": "object"
          },
          "minDiskGb": {
            "description": "The minimum amount of disk space required to use the image.\n",
            "type": "number"
          },
          "minRamMb": {
            "description": "The minimum amount of ram required to use the image.\n",
            "type": "number"
          },
          "mostRecent": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "nameRegex": {
            "type": "string"
          },
          "os": {
            "type": "string"
          },
          "osVersion": {
            "type": "string"
          },
          "owner": {
            "type": "string"
          },
          "protected": {
            "description": "Whether or not the image is protected.\n",
            "type": "boolean"
          },
          "region": {
            "type": "string"
          },
          "schema": {
            "description": "The path to the JSON-schema that represent the image or image.\n",
            "type": "string"
          },
          "sizeBytes": {
            "description": "The size of the image (in bytes).\n",
            "type": "number"
          },
          "sizeMax": {
            "deprecationMessage": "Deprecated",
            "type": "number"
          },
          "sizeMin": {
            "deprecationMessage": "Deprecated",
            "type": "number"
          },
          "sortDirection": {
            "type": "string"
          },
          "sortKey": {
            "type": "string"
          },
          "status": {
            "description": "The status of the image.\n",
            "type": "string"
          },
          "tag": {
            "type": "string"
          },
          "updatedAt": {
            "description": "The date when the image was last updated.\n",
            "type": "string"
          },
          "visibility": {
            "type": "string"
          }
        },
        "required": [
          "backupId",
          "checksum",
          "containerFormat",
          "createdAt",
          "diskFormat",
          "enterpriseProjectId",
          "file",
          "flavorId",
          "id",
          "imageType",
          "metadata",
          "minDiskGb",
          "minRamMb",
          "name",
          "os",
          "osVersion",
          "owner",
          "protected",
          "region",
          "schema",
          "sizeBytes",
          "status",
          "updatedAt",
          "visibility"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getImagesImageV2:getImagesImageV2": {
      "description": "Use this data source to get the ID of an available FlexibleEngine image.\n\n!\u003e **WARNING:** It has been deprecated, please use `flexibleengine.ImagesImage` instead.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst ubuntu = flexibleengine.getImagesImageV2({\n    name: \"OBS Ubuntu 18.04\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nubuntu = flexibleengine.get_images_image_v2(name=\"OBS Ubuntu 18.04\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ubuntu = Flexibleengine.GetImagesImageV2.Invoke(new()\n    {\n        Name = \"OBS Ubuntu 18.04\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupImagesImageV2(ctx, \u0026flexibleengine.LookupImagesImageV2Args{\n\t\t\tName: pulumi.StringRef(\"OBS Ubuntu 18.04\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetImagesImageV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ubuntu = FlexibleengineFunctions.getImagesImageV2(GetImagesImageV2Args.builder()\n            .name(\"OBS Ubuntu 18.04\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  ubuntu:\n    fn::invoke:\n      function: flexibleengine:getImagesImageV2\n      arguments:\n        name: OBS Ubuntu 18.04\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getImagesImageV2.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "mostRecent": {
            "type": "boolean",
            "description": "If more than one result is returned, use the most\nrecent image.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the image. Exact matching is used.\n"
          },
          "owner": {
            "type": "string",
            "description": "The owner (UUID) of the image.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the image.\nIf omitted, the `region` argument of the provider is used.\n"
          },
          "sizeMax": {
            "type": "number",
            "description": "The maximum size (in bytes) of the image to return.\n"
          },
          "sizeMin": {
            "type": "number",
            "description": "The minimum size (in bytes) of the image to return.\n"
          },
          "sortDirection": {
            "type": "string",
            "description": "Order the results in either `asc` or `desc`.\n"
          },
          "sortKey": {
            "type": "string",
            "description": "Sort images based on a certain key. Defaults to `name`.\n"
          },
          "tag": {
            "type": "string",
            "description": "Search for images with a specific tag.\n"
          },
          "visibility": {
            "type": "string",
            "description": "The visibility of the image. Must be one of\n\"public\", \"private\", \"community\", or \"shared\".\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getImagesImageV2.\n",
        "properties": {
          "checksum": {
            "description": "The checksum of the data associated with the image.\n",
            "type": "string"
          },
          "containerFormat": {
            "description": "The format of the image's container.\n",
            "type": "string"
          },
          "createdAt": {
            "description": "The date the image was created.\n",
            "type": "string"
          },
          "diskFormat": {
            "description": "The format of the image's disk.\n",
            "type": "string"
          },
          "file": {
            "description": "The URL for uploading and downloading the image file.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The metadata associated with the image.\nImage metadata allow for meaningfully define the image properties and tags.\n",
            "type": "object"
          },
          "minDiskGb": {
            "description": "The minimum amount of disk space required to use the image.\n",
            "type": "number"
          },
          "minRamMb": {
            "description": "The minimum amount of ram required to use the image.\n",
            "type": "number"
          },
          "mostRecent": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "owner": {
            "type": "string"
          },
          "protected": {
            "description": "Whether the image is protected.\n",
            "type": "boolean"
          },
          "region": {
            "type": "string"
          },
          "schema": {
            "description": "The path to the JSON-schema that represent\nthe image or image\n",
            "type": "string"
          },
          "sizeBytes": {
            "description": "The size of the image (in bytes).\n",
            "type": "number"
          },
          "sizeMax": {
            "type": "number"
          },
          "sizeMin": {
            "type": "number"
          },
          "sortDirection": {
            "type": "string"
          },
          "sortKey": {
            "type": "string"
          },
          "tag": {
            "type": "string"
          },
          "updatedAt": {
            "description": "The date the image was last updated.\n",
            "type": "string"
          },
          "visibility": {
            "type": "string"
          }
        },
        "required": [
          "checksum",
          "containerFormat",
          "createdAt",
          "diskFormat",
          "file",
          "id",
          "metadata",
          "minDiskGb",
          "minRamMb",
          "protected",
          "region",
          "schema",
          "sizeBytes",
          "updatedAt"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getImagesImages:getImagesImages": {
      "description": "Use this data source to get available FlexibleEngine IMS images.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst ubuntu = flexibleengine.getImagesImages({\n    name: \"OBS Ubuntu 18.04\",\n    visibility: \"public\",\n});\nconst centos_1 = flexibleengine.getImagesImages({\n    architecture: \"x86\",\n    osVersion: \"CentOS 7.4 64bit\",\n    visibility: \"public\",\n});\nconst centos_2 = flexibleengine.getImagesImages({\n    architecture: \"x86\",\n    nameRegex: \"^OBS CentOS 7.4\",\n    visibility: \"public\",\n});\nconst bmsImage = flexibleengine.getImagesImages({\n    architecture: \"x86\",\n    imageType: \"Ironic\",\n    osVersion: \"CentOS 7.4 64bit\",\n    visibility: \"public\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nubuntu = flexibleengine.get_images_images(name=\"OBS Ubuntu 18.04\",\n    visibility=\"public\")\ncentos_1 = flexibleengine.get_images_images(architecture=\"x86\",\n    os_version=\"CentOS 7.4 64bit\",\n    visibility=\"public\")\ncentos_2 = flexibleengine.get_images_images(architecture=\"x86\",\n    name_regex=\"^OBS CentOS 7.4\",\n    visibility=\"public\")\nbms_image = flexibleengine.get_images_images(architecture=\"x86\",\n    image_type=\"Ironic\",\n    os_version=\"CentOS 7.4 64bit\",\n    visibility=\"public\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ubuntu = Flexibleengine.GetImagesImages.Invoke(new()\n    {\n        Name = \"OBS Ubuntu 18.04\",\n        Visibility = \"public\",\n    });\n\n    var centos_1 = Flexibleengine.GetImagesImages.Invoke(new()\n    {\n        Architecture = \"x86\",\n        OsVersion = \"CentOS 7.4 64bit\",\n        Visibility = \"public\",\n    });\n\n    var centos_2 = Flexibleengine.GetImagesImages.Invoke(new()\n    {\n        Architecture = \"x86\",\n        NameRegex = \"^OBS CentOS 7.4\",\n        Visibility = \"public\",\n    });\n\n    var bmsImage = Flexibleengine.GetImagesImages.Invoke(new()\n    {\n        Architecture = \"x86\",\n        ImageType = \"Ironic\",\n        OsVersion = \"CentOS 7.4 64bit\",\n        Visibility = \"public\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetImagesImages(ctx, \u0026flexibleengine.GetImagesImagesArgs{\n\t\t\tName:       pulumi.StringRef(\"OBS Ubuntu 18.04\"),\n\t\t\tVisibility: pulumi.StringRef(\"public\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.GetImagesImages(ctx, \u0026flexibleengine.GetImagesImagesArgs{\n\t\t\tArchitecture: pulumi.StringRef(\"x86\"),\n\t\t\tOsVersion:    pulumi.StringRef(\"CentOS 7.4 64bit\"),\n\t\t\tVisibility:   pulumi.StringRef(\"public\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.GetImagesImages(ctx, \u0026flexibleengine.GetImagesImagesArgs{\n\t\t\tArchitecture: pulumi.StringRef(\"x86\"),\n\t\t\tNameRegex:    pulumi.StringRef(\"^OBS CentOS 7.4\"),\n\t\t\tVisibility:   pulumi.StringRef(\"public\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.GetImagesImages(ctx, \u0026flexibleengine.GetImagesImagesArgs{\n\t\t\tArchitecture: pulumi.StringRef(\"x86\"),\n\t\t\tImageType:    pulumi.StringRef(\"Ironic\"),\n\t\t\tOsVersion:    pulumi.StringRef(\"CentOS 7.4 64bit\"),\n\t\t\tVisibility:   pulumi.StringRef(\"public\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetImagesImagesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ubuntu = FlexibleengineFunctions.getImagesImages(GetImagesImagesArgs.builder()\n            .name(\"OBS Ubuntu 18.04\")\n            .visibility(\"public\")\n            .build());\n\n        final var centos-1 = FlexibleengineFunctions.getImagesImages(GetImagesImagesArgs.builder()\n            .architecture(\"x86\")\n            .osVersion(\"CentOS 7.4 64bit\")\n            .visibility(\"public\")\n            .build());\n\n        final var centos-2 = FlexibleengineFunctions.getImagesImages(GetImagesImagesArgs.builder()\n            .architecture(\"x86\")\n            .nameRegex(\"^OBS CentOS 7.4\")\n            .visibility(\"public\")\n            .build());\n\n        final var bmsImage = FlexibleengineFunctions.getImagesImages(GetImagesImagesArgs.builder()\n            .architecture(\"x86\")\n            .imageType(\"Ironic\")\n            .osVersion(\"CentOS 7.4 64bit\")\n            .visibility(\"public\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  ubuntu:\n    fn::invoke:\n      function: flexibleengine:getImagesImages\n      arguments:\n        name: OBS Ubuntu 18.04\n        visibility: public\n  centos-1:\n    fn::invoke:\n      function: flexibleengine:getImagesImages\n      arguments:\n        architecture: x86\n        osVersion: CentOS 7.4 64bit\n        visibility: public\n  centos-2:\n    fn::invoke:\n      function: flexibleengine:getImagesImages\n      arguments:\n        architecture: x86\n        nameRegex: ^OBS CentOS 7.4\n        visibility: public\n  bmsImage:\n    fn::invoke:\n      function: flexibleengine:getImagesImages\n      arguments:\n        architecture: x86\n        imageType: Ironic\n        osVersion: CentOS 7.4 64bit\n        visibility: public\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getImagesImages.\n",
        "properties": {
          "architecture": {
            "type": "string",
            "description": "Specifies the image architecture type. The value can be **x86** and **arm**.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project ID of the image.\n"
          },
          "flavorId": {
            "type": "string",
            "description": "Specifies the ECS flavor ID used to filter out available images.\nYou can specify only one flavor ID and only ECS flavor ID is valid, BMS flavor is not supported.\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of the image\n"
          },
          "imageType": {
            "type": "string",
            "description": "Specifies the environment where the image is used. For a BMS image, the value is **Ironic**.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the image. Cannot be used simultaneously with `name_regex`.\n"
          },
          "nameRegex": {
            "type": "string",
            "description": "The regular expressian of the name of the image.\nCannot be used simultaneously with `name`.\n"
          },
          "os": {
            "type": "string",
            "description": "Specifies the image OS type. The value can be **Windows**, **Ubuntu**,\n**RedHat**, **SUSE**, **CentOS**, **Debian**, **OpenSUSE**, **Oracle Linux**, **Fedora**, **Other**,\n**CoreOS**, or **EulerOS**.\n"
          },
          "osVersion": {
            "type": "string",
            "description": "Specifies the OS version. For example, *CentOS 7.4 64bit* or *Ubuntu 18.04 server 64bit*.\n"
          },
          "owner": {
            "type": "string",
            "description": "The owner (UUID) of the image.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the images. If omitted, the provider-level region will be\nused.\n"
          },
          "sortDirection": {
            "type": "string",
            "description": "Order the results in either `asc` or `desc`.\n"
          },
          "sortKey": {
            "type": "string",
            "description": "Sort images based on a certain key. Must be one of\n\"name\", \"container_format\", \"disk_format\", \"status\", \"id\" or \"size\". Defaults to `name`.\n"
          },
          "tag": {
            "type": "string",
            "description": "Search for images with a specific tag in \"Key=Value\" format.\n"
          },
          "visibility": {
            "type": "string",
            "description": "The visibility of the image. Must be one of\n**public**, **private**, **market** or **shared**.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getImagesImages.\n",
        "properties": {
          "architecture": {
            "type": "string"
          },
          "enterpriseProjectId": {
            "description": "The enterprise project ID of the image.\n",
            "type": "string"
          },
          "flavorId": {
            "type": "string"
          },
          "id": {
            "description": "The ID of the image\n",
            "type": "string"
          },
          "imageType": {
            "description": "The environment where the image is used. For a BMS image, the value is **Ironic**.\n",
            "type": "string"
          },
          "images": {
            "description": "Indicates the images information. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetImagesImagesImage:getImagesImagesImage"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the image.\n",
            "type": "string"
          },
          "nameRegex": {
            "type": "string"
          },
          "os": {
            "description": "Specifies the image OS type.\n",
            "type": "string"
          },
          "osVersion": {
            "description": "The OS version.\n",
            "type": "string"
          },
          "owner": {
            "description": "The owner (UUID) of the image.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "sortDirection": {
            "type": "string"
          },
          "sortKey": {
            "type": "string"
          },
          "tag": {
            "type": "string"
          },
          "visibility": {
            "description": "The visibility of the image.\n",
            "type": "string"
          }
        },
        "required": [
          "enterpriseProjectId",
          "id",
          "imageType",
          "images",
          "os",
          "osVersion",
          "owner",
          "region",
          "visibility"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getKmsDataKeyV1:getKmsDataKeyV1": {
      "description": "Use this data source to get the plaintext and the ciphertext of an available\nFlexibleEngine KMS DEK (data encryption key).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst key1 = new flexibleengine.KmsKeyV1(\"key1\", {\n    keyAlias: \"key_1\",\n    pendingDays: \"7\",\n    keyDescription: \"first test key\",\n});\nconst kmsDatakey1 = flexibleengine.getKmsDataKeyV1Output({\n    keyId: key1.kmsKeyV1Id,\n    datakeyLength: \"512\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nkey1 = flexibleengine.KmsKeyV1(\"key1\",\n    key_alias=\"key_1\",\n    pending_days=\"7\",\n    key_description=\"first test key\")\nkms_datakey1 = flexibleengine.get_kms_data_key_v1_output(key_id=key1.kms_key_v1_id,\n    datakey_length=\"512\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var key1 = new Flexibleengine.KmsKeyV1(\"key1\", new()\n    {\n        KeyAlias = \"key_1\",\n        PendingDays = \"7\",\n        KeyDescription = \"first test key\",\n    });\n\n    var kmsDatakey1 = Flexibleengine.GetKmsDataKeyV1.Invoke(new()\n    {\n        KeyId = key1.KmsKeyV1Id,\n        DatakeyLength = \"512\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkey1, err := flexibleengine.NewKmsKeyV1(ctx, \"key1\", \u0026flexibleengine.KmsKeyV1Args{\n\t\t\tKeyAlias:       pulumi.String(\"key_1\"),\n\t\t\tPendingDays:    pulumi.String(\"7\"),\n\t\t\tKeyDescription: pulumi.String(\"first test key\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = flexibleengine.GetKmsDataKeyV1Output(ctx, flexibleengine.GetKmsDataKeyV1OutputArgs{\n\t\t\tKeyId:         key1.KmsKeyV1Id,\n\t\t\tDatakeyLength: pulumi.String(\"512\"),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.KmsKeyV1;\nimport com.pulumi.flexibleengine.KmsKeyV1Args;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetKmsDataKeyV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var key1 = new KmsKeyV1(\"key1\", KmsKeyV1Args.builder()\n            .keyAlias(\"key_1\")\n            .pendingDays(\"7\")\n            .keyDescription(\"first test key\")\n            .build());\n\n        final var kmsDatakey1 = FlexibleengineFunctions.getKmsDataKeyV1(GetKmsDataKeyV1Args.builder()\n            .keyId(key1.kmsKeyV1Id())\n            .datakeyLength(\"512\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  key1:\n    type: flexibleengine:KmsKeyV1\n    properties:\n      keyAlias: key_1\n      pendingDays: '7'\n      keyDescription: first test key\nvariables:\n  kmsDatakey1:\n    fn::invoke:\n      function: flexibleengine:getKmsDataKeyV1\n      arguments:\n        keyId: ${key1.kmsKeyV1Id}\n        datakeyLength: '512'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getKmsDataKeyV1.\n",
        "properties": {
          "datakeyLength": {
            "type": "string",
            "description": "Number of bits in the length of a DEK (data encryption keys).\nThe maximum number is 512. Changing this gets the new data encryption key.\n"
          },
          "encryptionContext": {
            "type": "string",
            "description": "The value of this parameter must be a series of\n\"key:value\" pairs used to record resource context information. The value of this\nparameter must not contain sensitive information and must be within 8192 characters\nin length. Example: {\"Key1\":\"Value1\",\"Key2\":\"Value2\"}\n"
          },
          "id": {
            "type": "string"
          },
          "keyId": {
            "type": "string",
            "description": "The globally unique identifier for the key.\nChanging this gets the new data encryption key.\n"
          }
        },
        "type": "object",
        "required": [
          "datakeyLength",
          "keyId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getKmsDataKeyV1.\n",
        "properties": {
          "cipherText": {
            "description": "The ciphertext of a DEK is expressed in hexadecimal format, and two characters indicate one byte.\n",
            "type": "string"
          },
          "datakeyLength": {
            "type": "string"
          },
          "encryptionContext": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "keyId": {
            "type": "string"
          },
          "plainText": {
            "description": "The plaintext of a DEK is expressed in hexadecimal format, and two characters indicate one byte.\n",
            "type": "string"
          }
        },
        "required": [
          "cipherText",
          "datakeyLength",
          "id",
          "keyId",
          "plainText"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getKmsKeyV1:getKmsKeyV1": {
      "description": "Use this data source to get the ID of an available FlexibleEngine KMS key.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst key1 = flexibleengine.getKmsKeyV1({\n    keyAlias: \"test_key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nkey1 = flexibleengine.get_kms_key_v1(key_alias=\"test_key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var key1 = Flexibleengine.GetKmsKeyV1.Invoke(new()\n    {\n        KeyAlias = \"test_key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupKmsKeyV1(ctx, \u0026flexibleengine.LookupKmsKeyV1Args{\n\t\t\tKeyAlias: pulumi.StringRef(\"test_key\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetKmsKeyV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var key1 = FlexibleengineFunctions.getKmsKeyV1(GetKmsKeyV1Args.builder()\n            .keyAlias(\"test_key\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  key1:\n    fn::invoke:\n      function: flexibleengine:getKmsKeyV1\n      arguments:\n        keyAlias: test_key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getKmsKeyV1.\n",
        "properties": {
          "defaultKeyFlag": {
            "type": "string",
            "description": "Identification of a Master Key. The value \"1\" indicates a Default\nMaster Key, and the value \"0\" indicates a key. Changing this gets a new key.\n"
          },
          "domainId": {
            "type": "string",
            "description": "ID of a user domain for the key. Changing this gets a new key.\n"
          },
          "id": {
            "type": "string",
            "description": "The data source ID in UUID format.\n"
          },
          "keyAlias": {
            "type": "string",
            "description": "The alias in which to create the key. It is **required** when\nwe create a new key. Changing this gets the new key.\n"
          },
          "keyDescription": {
            "type": "string",
            "description": "The description of the key as viewed in FlexibleEngine console.\nChanging this gets a new key.\n"
          },
          "keyId": {
            "type": "string",
            "description": "The globally unique identifier for the key. Changing this gets the new key.\n"
          },
          "keyState": {
            "type": "string",
            "description": "The state of a key. \"2\" indicates that the key is enabled.\n\"3\" indicates that the key is disabled. \"4\" indicates that the key is scheduled for deletion.\nChanging this gets a new key.\n"
          },
          "origin": {
            "type": "string",
            "description": "Origin of a key. such as: kms. Changing this gets a new key.\n"
          },
          "realm": {
            "type": "string",
            "description": "Region where a key resides. Changing this gets a new key.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getKmsKeyV1.\n",
        "properties": {
          "creationDate": {
            "description": "Creation time (time stamp) of a key.\n",
            "type": "string"
          },
          "defaultKeyFlag": {
            "type": "string"
          },
          "domainId": {
            "type": "string"
          },
          "id": {
            "description": "The data source ID in UUID format.\n",
            "type": "string"
          },
          "keyAlias": {
            "type": "string"
          },
          "keyDescription": {
            "type": "string"
          },
          "keyId": {
            "type": "string"
          },
          "keyState": {
            "type": "string"
          },
          "origin": {
            "type": "string"
          },
          "realm": {
            "type": "string"
          },
          "rotationEnabled": {
            "description": "Indicates whether the key rotation is enabled or not.\n",
            "type": "boolean"
          },
          "rotationInterval": {
            "description": "The key rotation interval. It's valid when rotation is enabled.\n",
            "type": "number"
          },
          "rotationNumber": {
            "description": "The total number of key rotations. It's valid when rotation is enabled.\n",
            "type": "number"
          },
          "scheduledDeletionDate": {
            "description": "Scheduled deletion time (time stamp) of a key.\n",
            "type": "string"
          }
        },
        "required": [
          "creationDate",
          "defaultKeyFlag",
          "domainId",
          "id",
          "keyState",
          "origin",
          "realm",
          "rotationEnabled",
          "rotationInterval",
          "rotationNumber",
          "scheduledDeletionDate"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getLbCertificateV2:getLbCertificateV2": {
      "description": "Use this data source to get the certificate details in FlexibleEngine Elastic Load Balance (ELB).\n\n## Example Usage\n\nThe following example shows how one might accept a certificate name as a variable to fetch this data source.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst certName = config.requireObject(\"certName\");\nconst byName = flexibleengine.getLbCertificateV2({\n    name: certName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ncert_name = config.require_object(\"certName\")\nby_name = flexibleengine.get_lb_certificate_v2(name=cert_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var certName = config.RequireObject\u003cdynamic\u003e(\"certName\");\n    var byName = Flexibleengine.GetLbCertificateV2.Invoke(new()\n    {\n        Name = certName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tcertName := cfg.RequireObject(\"certName\")\n\t\t_, err := flexibleengine.LookupLbCertificateV2(ctx, \u0026flexibleengine.LookupLbCertificateV2Args{\n\t\t\tName: pulumi.StringRef(certName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetLbCertificateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var certName = config.get(\"certName\");\n        final var byName = FlexibleengineFunctions.getLbCertificateV2(GetLbCertificateV2Args.builder()\n            .name(certName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  certName:\n    type: dynamic\nvariables:\n  byName:\n    fn::invoke:\n      function: flexibleengine:getLbCertificateV2\n      arguments:\n        name: ${certName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getLbCertificateV2.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Human-readable description for the Certificate.\n"
          },
          "domain": {
            "type": "string",
            "description": "The domain of the Certificate.\n"
          },
          "id": {
            "type": "string",
            "description": "The id of the specific Certificate to retrieve.\n"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for the Certificate. Does not have to be unique.\n"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getLbCertificateV2.\n",
        "properties": {
          "certificate": {
            "description": "The public encrypted key of the Certificate, PEM format.\n",
            "type": "string"
          },
          "createTime": {
            "description": "Indicates the creation time.\n",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "privateKey": {
            "description": "The private encrypted key of the Certificate, PEM format.\n",
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "updateTime": {
            "description": "Indicates the update time.\n",
            "type": "string"
          }
        },
        "required": [
          "certificate",
          "createTime",
          "description",
          "domain",
          "id",
          "name",
          "privateKey",
          "type",
          "updateTime"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getLbListenersV2:getLbListenersV2": {
      "description": "Use this data source to query the list of ELB listeners.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst protocol = config.requireObject(\"protocol\");\nconst test = flexibleengine.getLbListenersV2({\n    protocol: protocol,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nprotocol = config.require_object(\"protocol\")\ntest = flexibleengine.get_lb_listeners_v2(protocol=protocol)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var protocol = config.RequireObject\u003cdynamic\u003e(\"protocol\");\n    var test = Flexibleengine.GetLbListenersV2.Invoke(new()\n    {\n        Protocol = protocol,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tprotocol := cfg.RequireObject(\"protocol\")\n\t\t_, err := flexibleengine.GetLbListenersV2(ctx, \u0026flexibleengine.GetLbListenersV2Args{\n\t\t\tProtocol: pulumi.StringRef(protocol),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetLbListenersV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var protocol = config.get(\"protocol\");\n        final var test = FlexibleengineFunctions.getLbListenersV2(GetLbListenersV2Args.builder()\n            .protocol(protocol)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  protocol:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getLbListenersV2\n      arguments:\n        protocol: ${protocol}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getLbListenersV2.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ELB loadbalancer ID.\n"
          },
          "name": {
            "type": "string",
            "description": "The listener name.\n"
          },
          "protocol": {
            "type": "string",
            "description": "The listener protocol.  \nThe valid values are **TCP**, **UDP**, **HTTP** and **TERMINATED_HTTPS**.\n"
          },
          "protocolPort": {
            "type": "string",
            "description": "The front-end listening port of the listener.  \nThe valid value is range from `1` to `65535`.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getLbListenersV2.\n",
        "properties": {
          "id": {
            "description": "The ELB loadbalancer ID.\n",
            "type": "string"
          },
          "listeners": {
            "description": "Listener list.\nThe listeners structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetLbListenersV2Listener:getLbListenersV2Listener"
            },
            "type": "array"
          },
          "name": {
            "description": "The listener name.\n",
            "type": "string"
          },
          "protocol": {
            "description": "The listener protocol.\n",
            "type": "string"
          },
          "protocolPort": {
            "description": "The front-end listening port of the listener.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "listeners",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getLbLoadbalancerV2:getLbLoadbalancerV2": {
      "description": "Use this data source to get a specific elb loadbalancer within FlexibleEngine.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst lbName = config.requireObject(\"lbName\");\nconst test = flexibleengine.getLbLoadbalancerV2({\n    name: lbName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nlb_name = config.require_object(\"lbName\")\ntest = flexibleengine.get_lb_loadbalancer_v2(name=lb_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var lbName = config.RequireObject\u003cdynamic\u003e(\"lbName\");\n    var test = Flexibleengine.GetLbLoadbalancerV2.Invoke(new()\n    {\n        Name = lbName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tlbName := cfg.RequireObject(\"lbName\")\n\t\t_, err := flexibleengine.LookupLbLoadbalancerV2(ctx, \u0026flexibleengine.LookupLbLoadbalancerV2Args{\n\t\t\tName: pulumi.StringRef(lbName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetLbLoadbalancerV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var lbName = config.get(\"lbName\");\n        final var test = FlexibleengineFunctions.getLbLoadbalancerV2(GetLbLoadbalancerV2Args.builder()\n            .name(lbName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  lbName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getLbLoadbalancerV2\n      arguments:\n        name: ${lbName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getLbLoadbalancerV2.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies the supplementary information about the load balancer.\n"
          },
          "id": {
            "type": "string",
            "description": "Specifies the data source ID of the load balancer in UUID format.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the load balancer.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "vipAddress": {
            "type": "string",
            "description": "Specifies the private IP address of the load balancer.\n"
          },
          "vipSubnetId": {
            "type": "string",
            "description": "Specifies the ID of the subnet where the load balancer works.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getLbLoadbalancerV2.\n",
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "description": "The operating status of the load balancer.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The tags associated with the load balancer.\n",
            "type": "object"
          },
          "vipAddress": {
            "type": "string"
          },
          "vipPortId": {
            "description": "The ID of the port bound to the private IP address of the load balancer.\n",
            "type": "string"
          },
          "vipSubnetId": {
            "type": "string"
          }
        },
        "required": [
          "region",
          "status",
          "tags",
          "vipPortId"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getModelartsDatasetVersions:getModelartsDatasetVersions": {
      "description": "Use this data source to get a list of ModelArts dataset versions.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst datasetId = config.requireObject(\"datasetId\");\nconst test = flexibleengine.getModelartsDatasetVersions({\n    datasetId: datasetId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ndataset_id = config.require_object(\"datasetId\")\ntest = flexibleengine.get_modelarts_dataset_versions(dataset_id=dataset_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var datasetId = config.RequireObject\u003cdynamic\u003e(\"datasetId\");\n    var test = Flexibleengine.GetModelartsDatasetVersions.Invoke(new()\n    {\n        DatasetId = datasetId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdatasetId := cfg.RequireObject(\"datasetId\")\n\t\t_, err := flexibleengine.GetModelartsDatasetVersions(ctx, \u0026flexibleengine.GetModelartsDatasetVersionsArgs{\n\t\t\tDatasetId: datasetId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetModelartsDatasetVersionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var datasetId = config.get(\"datasetId\");\n        final var test = FlexibleengineFunctions.getModelartsDatasetVersions(GetModelartsDatasetVersionsArgs.builder()\n            .datasetId(datasetId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  datasetId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getModelartsDatasetVersions\n      arguments:\n        datasetId: ${datasetId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getModelartsDatasetVersions.\n",
        "properties": {
          "datasetId": {
            "type": "string",
            "description": "Specifies the ID of dataset.\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of the dataset version.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the dataset version.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain dataset versions. If omitted, the\nprovider-level region will be used.\n"
          },
          "splitRatio": {
            "type": "string",
            "description": "Specifies the range of splitting ratio which randomly divides a labeled sample\ninto a training set and a validation set. Separate the minimum and maximum split ratios with commas,\nfor example: \"0.0,1.0\".\n"
          }
        },
        "type": "object",
        "required": [
          "datasetId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getModelartsDatasetVersions.\n",
        "properties": {
          "datasetId": {
            "type": "string"
          },
          "id": {
            "description": "The ID of the dataset version.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the dataset version.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "splitRatio": {
            "description": "The ratio of splitting which randomly divides a labeled sample into a training set and\na validation set.\n",
            "type": "string"
          },
          "versions": {
            "description": "Indicates a list of all dataset versions found. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetModelartsDatasetVersionsVersion:getModelartsDatasetVersionsVersion"
            },
            "type": "array"
          }
        },
        "required": [
          "datasetId",
          "id",
          "region",
          "versions"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getModelartsDatasets:getModelartsDatasets": {
      "description": "Use this data source to get a list of ModelArts datasets.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getModelartsDatasets({\n    name: \"your_dataset_name\",\n    type: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_modelarts_datasets(name=\"your_dataset_name\",\n    type=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetModelartsDatasets.Invoke(new()\n    {\n        Name = \"your_dataset_name\",\n        Type = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetModelartsDatasets(ctx, \u0026flexibleengine.GetModelartsDatasetsArgs{\n\t\t\tName: pulumi.StringRef(\"your_dataset_name\"),\n\t\t\tType: pulumi.Float64Ref(1),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetModelartsDatasetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getModelartsDatasets(GetModelartsDatasetsArgs.builder()\n            .name(\"your_dataset_name\")\n            .type(1)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getModelartsDatasets\n      arguments:\n        name: your_dataset_name\n        type: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getModelartsDatasets.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the dataset.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of datasets.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain datasets. If omitted, the provider-level region\nwill be used.\n"
          },
          "type": {
            "type": "number",
            "description": "Specifies the type of datasets. The options are:\n+ **0**: Image classification, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **1**: Object detection, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **3**: Image segmentation, supported formats: `.jpg`, `.png`, `.jpeg`, `.bmp`.\n+ **100**: Text classification, supported formats: `.txt`, `.csv`.\n+ **200**: Sound classification, Supported formats: `.wav`.\n+ **400**: Table type, supported formats: Carbon type.\n+ **600**: Video, supported formats: `.mp4`\n+ **900**: Free format.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getModelartsDatasets.\n",
        "properties": {
          "datasets": {
            "description": "Indicates a list of all datasets found. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetModelartsDatasetsDataset:getModelartsDatasetsDataset"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of the dataset.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of label.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "type": {
            "description": "The field type. Valid values include: `String`, `Short`, `Int`, `Long`, `Double`, `Float`, `Byte`,\n`Date`, `Timestamp`, `Bool`.\n",
            "type": "number"
          }
        },
        "required": [
          "datasets",
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getModelartsModelTemplates:getModelartsModelTemplates": {
      "description": "Use this data source to get model templates of ModelArts.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getModelartsModelTemplates({\n    type: \"Classification\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_modelarts_model_templates(type=\"Classification\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetModelartsModelTemplates.Invoke(new()\n    {\n        Type = \"Classification\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetModelartsModelTemplates(ctx, \u0026flexibleengine.GetModelartsModelTemplatesArgs{\n\t\t\tType: pulumi.StringRef(\"Classification\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetModelartsModelTemplatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getModelartsModelTemplates(GetModelartsModelTemplatesArgs.builder()\n            .type(\"Classification\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getModelartsModelTemplates\n      arguments:\n        type: Classification\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getModelartsModelTemplates.\n",
        "properties": {
          "engine": {
            "type": "string",
            "description": "The AI engine.  \nThe valid values are **Caffe**, **Caffe1.0 CPU**, **Caffe1.0 GPU**, **MXNet**, **MXNet1.2.1**,\n**MindSpore**, **PyTorch**, **PyTorch1.0**, **TensorFlow**, and **TensorFlow1.8**.\n"
          },
          "environment": {
            "type": "string",
            "description": "Model runtime environment.  \nThe valid values are **ascend-arm-py2.7**, **python2.7**, and **python3.6**.\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of the input parameter.\n"
          },
          "keyword": {
            "type": "string",
            "description": "Keywords to search in name or description. Fuzzy match is supported.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          },
          "type": {
            "type": "string",
            "description": "The type of model. The valid values are **Classification** and **Common**.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getModelartsModelTemplates.\n",
        "properties": {
          "engine": {
            "description": "The AI engine.  \nThe valid values are **Caffe**, **MXNet**, **MindSpore**, **PyTorch**, and **TensorFlow**.\n",
            "type": "string"
          },
          "environment": {
            "description": "Model runtime environment.  \nThe valid values are **aarch64**, **python2.7**, **python2.7-cpu**, **python2.7-gpu**, **python3.6**,\n**python3.6-gpu**, and **python3.6-gpu**.\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of the input parameter.\n",
            "type": "string"
          },
          "keyword": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "templates": {
            "description": "The list of model templates.\nThe templates structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetModelartsModelTemplatesTemplate:getModelartsModelTemplatesTemplate"
            },
            "type": "array"
          },
          "type": {
            "description": "The type of the input parameter.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "region",
          "templates"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getNatGatewayV2:getNatGatewayV2": {
      "description": "Use this data source to get the information of an available FlexibleEngine NAT gateway.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst natgateway = flexibleengine.getNatGatewayV2({\n    name: \"test_natgateway\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nnatgateway = flexibleengine.get_nat_gateway_v2(name=\"test_natgateway\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var natgateway = Flexibleengine.GetNatGatewayV2.Invoke(new()\n    {\n        Name = \"test_natgateway\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupNatGatewayV2(ctx, \u0026flexibleengine.LookupNatGatewayV2Args{\n\t\t\tName: pulumi.StringRef(\"test_natgateway\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetNatGatewayV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var natgateway = FlexibleengineFunctions.getNatGatewayV2(GetNatGatewayV2Args.builder()\n            .name(\"test_natgateway\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  natgateway:\n    fn::invoke:\n      function: flexibleengine:getNatGatewayV2\n      arguments:\n        name: test_natgateway\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getNatGatewayV2.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Specifies the description of the NAT gateway. The value contains 0 to 255\ncharacters, and angle brackets (\u003c) and (\u003e) are not allowed.\n"
          },
          "id": {
            "type": "string",
            "description": "Specifies the ID of the NAT gateway.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the NAT gateway name. The name can contain only digits, letters,\nunderscores (_), and hyphens(-).\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "spec": {
            "type": "string",
            "description": "The NAT gateway type. The value can be:\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the status of the NAT gateway.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the ID of the VPC Subnet of the downstream interface\n(the next hop of the DVR) of the NAT gateway.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the ID of the VPC this NAT gateway belongs to.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNatGatewayV2.\n",
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "spec": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "subnetId": {
            "type": "string"
          },
          "vpcId": {
            "type": "string"
          }
        },
        "required": [
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getNetworkingNetworkV2:getNetworkingNetworkV2": {
      "description": "Use this data source to get the ID of an available FlexibleEngine network.\n\n!\u003e **Warning:** It has been deprecated, using `data.flexibleengine_vpc_subnet_v1` instead.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst network = flexibleengine.getNetworkingNetworkV2({\n    name: \"tf_test_network\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nnetwork = flexibleengine.get_networking_network_v2(name=\"tf_test_network\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var network = Flexibleengine.GetNetworkingNetworkV2.Invoke(new()\n    {\n        Name = \"tf_test_network\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupNetworkingNetworkV2(ctx, \u0026flexibleengine.LookupNetworkingNetworkV2Args{\n\t\t\tName: pulumi.StringRef(\"tf_test_network\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetNetworkingNetworkV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var network = FlexibleengineFunctions.getNetworkingNetworkV2(GetNetworkingNetworkV2Args.builder()\n            .name(\"tf_test_network\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  network:\n    fn::invoke:\n      function: flexibleengine:getNetworkingNetworkV2\n      arguments:\n        name: tf_test_network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getNetworkingNetworkV2.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "matchingSubnetCidr": {
            "type": "string",
            "description": "The CIDR of a subnet within the network.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the network.\n"
          },
          "networkId": {
            "type": "string",
            "description": "The ID of the network.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Neutron client.\nA Neutron client is needed to retrieve networks ids. If omitted, the\n`region` argument of the provider is used.\n"
          },
          "tenantId": {
            "type": "string",
            "description": "The owner of the network.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNetworkingNetworkV2.\n",
        "properties": {
          "adminStateUp": {
            "description": "(Optional) The administrative state of the network.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "matchingSubnetCidr": {
            "type": "string"
          },
          "name": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "networkId": {
            "type": "string"
          },
          "region": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "shared": {
            "description": "(Optional)  Specifies whether the network resource can be accessed\nby any tenant or not.\n",
            "type": "string"
          },
          "tenantId": {
            "type": "string"
          }
        },
        "required": [
          "adminStateUp",
          "id",
          "region",
          "shared"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getNetworkingPort:getNetworkingPort": {
      "description": "Use this data source to get the ID of an available FlexibleEngine port.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst port1 = flexibleengine.getNetworkingPort({\n    networkId: _var.network_id,\n    fixedIp: \"192.168.0.100\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nport1 = flexibleengine.get_networking_port(network_id=var[\"network_id\"],\n    fixed_ip=\"192.168.0.100\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var port1 = Flexibleengine.GetNetworkingPort.Invoke(new()\n    {\n        NetworkId = @var.Network_id,\n        FixedIp = \"192.168.0.100\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetNetworkingPort(ctx, \u0026flexibleengine.GetNetworkingPortArgs{\n\t\t\tNetworkId: pulumi.StringRef(_var.Network_id),\n\t\t\tFixedIp:   pulumi.StringRef(\"192.168.0.100\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetNetworkingPortArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var port1 = FlexibleengineFunctions.getNetworkingPort(GetNetworkingPortArgs.builder()\n            .networkId(var_.network_id())\n            .fixedIp(\"192.168.0.100\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  port1:\n    fn::invoke:\n      function: flexibleengine:getNetworkingPort\n      arguments:\n        networkId: ${var.network_id}\n        fixedIp: 192.168.0.100\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getNetworkingPort.\n",
        "properties": {
          "adminStateUp": {
            "type": "boolean",
            "deprecationMessage": "Deprecated"
          },
          "deviceId": {
            "type": "string",
            "description": "The ID of the device the port belongs to.\n"
          },
          "deviceOwner": {
            "type": "string",
            "description": "The device owner of the port.\n"
          },
          "fixedIp": {
            "type": "string",
            "description": "Specifies the port IP address filter.\n"
          },
          "id": {
            "type": "string",
            "description": "The data source ID in UUID format.\n"
          },
          "macAddress": {
            "type": "string",
            "description": "Specifies the MAC address of the port.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the port.\n"
          },
          "networkId": {
            "type": "string",
            "description": "Specifies the ID of the network the port belongs to.\n"
          },
          "portId": {
            "type": "string",
            "description": "Specifies the ID of the port.\n"
          },
          "projectId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the port. If omitted, the provider-level region\nwill be used.\n"
          },
          "securityGroupIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The list of port security group IDs to filter.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the status of the port.\n"
          },
          "tenantId": {
            "type": "string",
            "deprecationMessage": "Deprecated"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNetworkingPort.\n",
        "properties": {
          "adminStateUp": {
            "deprecationMessage": "Deprecated",
            "type": "boolean"
          },
          "allAllowedIps": {
            "description": "The collection of allowed IP addresses on the port.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "allFixedIps": {
            "description": "The collection of Fixed IP addresses on the port.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "allSecurityGroupIds": {
            "description": "The collection of security group IDs applied on the port.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "deviceId": {
            "description": "The ID of the device the port belongs to.\n",
            "type": "string"
          },
          "deviceOwner": {
            "description": "The device owner of the port.\n",
            "type": "string"
          },
          "fixedIp": {
            "type": "string"
          },
          "id": {
            "description": "The data source ID in UUID format.\n",
            "type": "string"
          },
          "macAddress": {
            "type": "string"
          },
          "name": {
            "description": "The name of the port.\n",
            "type": "string"
          },
          "networkId": {
            "type": "string"
          },
          "portId": {
            "type": "string"
          },
          "projectId": {
            "deprecationMessage": "Deprecated",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "securityGroupIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "status": {
            "type": "string"
          },
          "tenantId": {
            "deprecationMessage": "Deprecated",
            "type": "string"
          }
        },
        "required": [
          "adminStateUp",
          "allAllowedIps",
          "allFixedIps",
          "allSecurityGroupIds",
          "deviceId",
          "deviceOwner",
          "id",
          "macAddress",
          "name",
          "networkId",
          "portId",
          "region",
          "status"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getNetworkingSecgroupV2:getNetworkingSecgroupV2": {
      "description": "Use this data source to get the ID of an available FlexibleEngine security group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst secgroup = flexibleengine.getNetworkingSecgroupV2({\n    name: \"tf_test_secgroup\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nsecgroup = flexibleengine.get_networking_secgroup_v2(name=\"tf_test_secgroup\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var secgroup = Flexibleengine.GetNetworkingSecgroupV2.Invoke(new()\n    {\n        Name = \"tf_test_secgroup\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupNetworkingSecgroupV2(ctx, \u0026flexibleengine.LookupNetworkingSecgroupV2Args{\n\t\t\tName: pulumi.StringRef(\"tf_test_secgroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetNetworkingSecgroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var secgroup = FlexibleengineFunctions.getNetworkingSecgroupV2(GetNetworkingSecgroupV2Args.builder()\n            .name(\"tf_test_secgroup\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  secgroup:\n    fn::invoke:\n      function: flexibleengine:getNetworkingSecgroupV2\n      arguments:\n        name: tf_test_secgroup\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getNetworkingSecgroupV2.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "The name of the security group.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V2 Neutron client.\nA Neutron client is needed to retrieve security groups ids. If omitted, the\n`region` argument of the provider is used.\n"
          },
          "secgroupId": {
            "type": "string",
            "description": "The ID of the security group.\n"
          },
          "tenantId": {
            "type": "string",
            "description": "The owner of the security group.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNetworkingSecgroupV2.\n",
        "properties": {
          "description": {
            "description": "The description of the security group.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "region": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "secgroupId": {
            "type": "string"
          },
          "tenantId": {
            "type": "string"
          }
        },
        "required": [
          "description",
          "id",
          "region",
          "tenantId"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getObsBucketObject:getObsBucketObject": {
      "description": "Use this data source to get info of special FlexibleEngine obs object.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst object = flexibleengine.getObsBucketObject({\n    bucket: \"my-test-bucket\",\n    key: \"new-key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nobject = flexibleengine.get_obs_bucket_object(bucket=\"my-test-bucket\",\n    key=\"new-key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @object = Flexibleengine.GetObsBucketObject.Invoke(new()\n    {\n        Bucket = \"my-test-bucket\",\n        Key = \"new-key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupObsBucketObject(ctx, \u0026flexibleengine.LookupObsBucketObjectArgs{\n\t\t\tBucket: \"my-test-bucket\",\n\t\t\tKey:    \"new-key\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetObsBucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var object = FlexibleengineFunctions.getObsBucketObject(GetObsBucketObjectArgs.builder()\n            .bucket(\"my-test-bucket\")\n            .key(\"new-key\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  object:\n    fn::invoke:\n      function: flexibleengine:getObsBucketObject\n      arguments:\n        bucket: my-test-bucket\n        key: new-key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getObsBucketObject.\n",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "The name of the bucket to put the file in.\n"
          },
          "id": {
            "type": "string",
            "description": "the `key` of the resource supplied above.\n"
          },
          "key": {
            "type": "string",
            "description": "The name of the object once it is in the bucket.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the OBS object. If omitted, the provider-level region will\nbe used.\n"
          }
        },
        "type": "object",
        "required": [
          "bucket",
          "key"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getObsBucketObject.\n",
        "properties": {
          "body": {
            "description": "The content of an object which is available only for objects which have a human-readable Content-Type\n(text/* and application/json) and smaller than **64KB**. This is to prevent printing unsafe characters and\npotentially downloading large amount of data.\n",
            "type": "string"
          },
          "bucket": {
            "type": "string"
          },
          "contentType": {
            "description": "a standard MIME type describing the format of the object data, e.g. application/octet-stream. All\nValid MIME Types are valid for this input.\n",
            "type": "string"
          },
          "etag": {
            "description": "the ETag generated for the object (an MD5 sum of the object content). When the object is encrypted on the\nserver side, the ETag value is not the MD5 value of the object, but the unique identifier calculated through the\nserver-side encryption.\n",
            "type": "string"
          },
          "id": {
            "description": "the `key` of the resource supplied above.\n",
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "size": {
            "description": "the size of the object in bytes.\n",
            "type": "number"
          },
          "storageClass": {
            "description": "specifies the storage class of the object.\n",
            "type": "string"
          },
          "versionId": {
            "description": "a unique version ID value for the object, if bucket versioning is enabled.\n",
            "type": "string"
          }
        },
        "required": [
          "body",
          "bucket",
          "contentType",
          "etag",
          "id",
          "key",
          "region",
          "size",
          "storageClass",
          "versionId"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getObsBuckets:getObsBuckets": {
      "description": "Use this data source to get all OBS buckets.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst buckets = flexibleengine.getObsBuckets({\n    bucket: \"your-bucket-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nbuckets = flexibleengine.get_obs_buckets(bucket=\"your-bucket-name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var buckets = Flexibleengine.GetObsBuckets.Invoke(new()\n    {\n        Bucket = \"your-bucket-name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetObsBuckets(ctx, \u0026flexibleengine.GetObsBucketsArgs{\n\t\t\tBucket: pulumi.StringRef(\"your-bucket-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetObsBucketsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var buckets = FlexibleengineFunctions.getObsBuckets(GetObsBucketsArgs.builder()\n            .bucket(\"your-bucket-name\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  buckets:\n    fn::invoke:\n      function: flexibleengine:getObsBuckets\n      arguments:\n        bucket: your-bucket-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getObsBuckets.\n",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "The name of the OBS bucket.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "The enterprise project id of the OBS bucket.\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of the list.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the OBS bucket.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getObsBuckets.\n",
        "properties": {
          "bucket": {
            "description": "The name of the OBS bucket.\n",
            "type": "string"
          },
          "buckets": {
            "description": "A list of OBS buckets. The buckets object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetObsBucketsBucket:getObsBucketsBucket"
            },
            "type": "array"
          },
          "enterpriseProjectId": {
            "description": "The enterprise project id of the OBS bucket.\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of the list.\n",
            "type": "string"
          },
          "region": {
            "description": "The region where the OBS bucket belongs.\n",
            "type": "string"
          }
        },
        "required": [
          "buckets",
          "id"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getRdsBackups:getRdsBackups": {
      "description": "Use this data source to get the list of RDS backups.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst test = flexibleengine.getRdsBackups({\n    instanceId: instanceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = flexibleengine.get_rds_backups(instance_id=instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var instanceId = config.RequireObject\u003cdynamic\u003e(\"instanceId\");\n    var test = Flexibleengine.GetRdsBackups.Invoke(new()\n    {\n        InstanceId = instanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := flexibleengine.GetRdsBackups(ctx, \u0026flexibleengine.GetRdsBackupsArgs{\n\t\t\tInstanceId: instanceId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetRdsBackupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var test = FlexibleengineFunctions.getRdsBackups(GetRdsBackupsArgs.builder()\n            .instanceId(instanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getRdsBackups\n      arguments:\n        instanceId: ${instanceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getRdsBackups.\n",
        "properties": {
          "backupId": {
            "type": "string",
            "description": "Specifies the backup ID.\n"
          },
          "backupType": {
            "type": "string",
            "description": "Specifies the backup type. The options are as follows:\n- **auto**: Automated full backup.\n- **manual**: Manual full backup.\n- **fragment**: Differential full backup.\n- **incremental**: Automated incremental backup.\n"
          },
          "beginTime": {
            "type": "string",
            "description": "Specifies the start time for obtaining the backup list.\nThe format of the start time is \"yyyy-mm-ddThh:mm:ssZ\".\n"
          },
          "endTime": {
            "type": "string",
            "description": "Specifies the end time for obtaining the backup list.\nThe format of the end time is \"yyyy-mm-ddThh:mm:ssZ\" and the end time must be later than the start time.\n"
          },
          "id": {
            "type": "string",
            "description": "Backup ID.\n"
          },
          "instanceId": {
            "type": "string",
            "description": "Specifies the DB instance ID.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the backup name.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object",
        "required": [
          "instanceId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getRdsBackups.\n",
        "properties": {
          "backupId": {
            "type": "string"
          },
          "backupType": {
            "type": "string"
          },
          "backups": {
            "description": "Backup list. For details, see Data structure of the Backup field.\nThe backups structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetRdsBackupsBackup:getRdsBackupsBackup"
            },
            "type": "array"
          },
          "beginTime": {
            "description": "Backup start time in the \"yyyy-mm-ddThh:mm:ssZ\" format.\n",
            "type": "string"
          },
          "endTime": {
            "description": "Backup end time in the \"yyyy-mm-ddThh:mm:ssZ\" format.\n",
            "type": "string"
          },
          "id": {
            "description": "Backup ID.\n",
            "type": "string"
          },
          "instanceId": {
            "description": "RDS instance ID.\n",
            "type": "string"
          },
          "name": {
            "description": "Database to be backed up for Microsoft SQL Server.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "backups",
          "id",
          "instanceId",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getRdsEngineVersions:getRdsEngineVersions": {
      "description": "Use this data source to obtain all version information of the specified engine type of FlexibleEngine.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getRdsEngineVersions({\n    type: \"SQLServer\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_rds_engine_versions(type=\"SQLServer\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetRdsEngineVersions.Invoke(new()\n    {\n        Type = \"SQLServer\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetRdsEngineVersions(ctx, \u0026flexibleengine.GetRdsEngineVersionsArgs{\n\t\t\tType: pulumi.StringRef(\"SQLServer\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetRdsEngineVersionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getRdsEngineVersions(GetRdsEngineVersionsArgs.builder()\n            .type(\"SQLServer\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getRdsEngineVersions\n      arguments:\n        type: SQLServer\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getRdsEngineVersions.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Indicates the database version ID. Its value is unique.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the RDS engine versions.\nIf omitted, the provider-level region will be used.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the RDS engine type.\nThe valid values are **MySQL**, **PostgreSQL**, **SQLServer** and **MariaDB**, default to **MySQL**.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRdsEngineVersions.\n",
        "properties": {
          "id": {
            "description": "Indicates the database version ID. Its value is unique.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "versions": {
            "description": "Indicates the list of database versions. The versions object structure is\ndocumented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetRdsEngineVersionsVersion:getRdsEngineVersionsVersion"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "versions"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getRdsFlavorsV1:getRdsFlavorsV1": {
      "description": "Use this data source to get the ID of an available FlexibleEngine rds flavor.\n\n!\u003e **Warning:** It has been deprecated, using `flexibleengine.getRdsFlavorsV3` instead.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst flavor = flexibleengine.getRdsFlavorsV1({\n    datastoreName: \"PostgreSQL\",\n    datastoreVersion: \"9.5.5\",\n    region: \"eu-de\",\n    speccode: \"rds.pg.s1.medium\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nflavor = flexibleengine.get_rds_flavors_v1(datastore_name=\"PostgreSQL\",\n    datastore_version=\"9.5.5\",\n    region=\"eu-de\",\n    speccode=\"rds.pg.s1.medium\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var flavor = Flexibleengine.GetRdsFlavorsV1.Invoke(new()\n    {\n        DatastoreName = \"PostgreSQL\",\n        DatastoreVersion = \"9.5.5\",\n        Region = \"eu-de\",\n        Speccode = \"rds.pg.s1.medium\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetRdsFlavorsV1(ctx, \u0026flexibleengine.GetRdsFlavorsV1Args{\n\t\t\tDatastoreName:    \"PostgreSQL\",\n\t\t\tDatastoreVersion: \"9.5.5\",\n\t\t\tRegion:           pulumi.StringRef(\"eu-de\"),\n\t\t\tSpeccode:         pulumi.StringRef(\"rds.pg.s1.medium\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetRdsFlavorsV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = FlexibleengineFunctions.getRdsFlavorsV1(GetRdsFlavorsV1Args.builder()\n            .datastoreName(\"PostgreSQL\")\n            .datastoreVersion(\"9.5.5\")\n            .region(\"eu-de\")\n            .speccode(\"rds.pg.s1.medium\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavor:\n    fn::invoke:\n      function: flexibleengine:getRdsFlavorsV1\n      arguments:\n        datastoreName: PostgreSQL\n        datastoreVersion: 9.5.5\n        region: eu-de\n        speccode: rds.pg.s1.medium\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Available value for attributes\n\n\u003c!-- markdownlint-disable MD033 --\u003e\ndatastore_name | datastore_version | speccode\n---- | --- | ---\nPostgreSQL | 9.5.5 \u003cbr\u003e 9.6.3 \u003cbr\u003e 9.6.5| rds.pg.s1.xlarge rds.pg.m1.2xlarge rds.pg.c2.xlarge rds.pg.s1.medium rds.pg.c2.medium rds.pg.s1.large rds.pg.c2.large rds.pg.m1.large rds.pg.s1.2xlarge rds.pg.m1.xlarge\nMySQL| 5.6.33 \u003cbr\u003e5.6.30  \u003cbr\u003e5.6.34 \u003cbr\u003e5.6.35 \u003cbr\u003e5.7.17 | rds.mysql.s1.medium rds.mysql.s1.large rds.mysql.s1.xlarge rds.mysql.s1.2xlarge rds.mysql.m1.2xlarge rds.mysql.c2.medium rds.mysql.c2.large rds.mysql.c2.xlarge rds.mysql.m1.large rds.mysql.m1.xlarge\nSQLServer| 2014 SP2 SE | rds.mssql.s1.xlarge rds.mssql.m1.2xlarge rds.mssql.c2.xlarge rds.mssql.s1.2xlarge rds.mssql.m1.xlarge\n",
      "inputs": {
        "description": "A collection of arguments for invoking getRdsFlavorsV1.\n",
        "properties": {
          "datastoreName": {
            "type": "string",
            "description": "The datastore name of the rds.\n"
          },
          "datastoreVersion": {
            "type": "string",
            "description": "The datastore version of the rds.\n"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "The name of the rds flavor.\n"
          },
          "ram": {
            "type": "number",
            "description": "The name of the rds flavor.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V1 rds client.\n"
          },
          "speccode": {
            "type": "string",
            "description": "The spec code of a rds flavor.\n"
          }
        },
        "type": "object",
        "required": [
          "datastoreName",
          "datastoreVersion"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getRdsFlavorsV1.\n",
        "properties": {
          "datastoreName": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "datastoreVersion": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "description": "The name of the rds flavor.\n",
            "type": "string"
          },
          "ram": {
            "description": "The name of the rds flavor.\n",
            "type": "number"
          },
          "region": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "speccode": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          }
        },
        "required": [
          "datastoreName",
          "datastoreVersion",
          "id",
          "name",
          "ram",
          "region",
          "speccode"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getRdsFlavorsV3:getRdsFlavorsV3": {
      "description": "Use this data source to get available FlexibleEngine RDS flavors.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst flavor = flexibleengine.getRdsFlavorsV3({\n    dbType: \"PostgreSQL\",\n    dbVersion: \"12\",\n    instanceMode: \"ha\",\n    vcpus: 4,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nflavor = flexibleengine.get_rds_flavors_v3(db_type=\"PostgreSQL\",\n    db_version=\"12\",\n    instance_mode=\"ha\",\n    vcpus=4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var flavor = Flexibleengine.GetRdsFlavorsV3.Invoke(new()\n    {\n        DbType = \"PostgreSQL\",\n        DbVersion = \"12\",\n        InstanceMode = \"ha\",\n        Vcpus = 4,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetRdsFlavorsV3(ctx, \u0026flexibleengine.GetRdsFlavorsV3Args{\n\t\t\tDbType:       \"PostgreSQL\",\n\t\t\tDbVersion:    pulumi.StringRef(\"12\"),\n\t\t\tInstanceMode: pulumi.StringRef(\"ha\"),\n\t\t\tVcpus:        pulumi.Float64Ref(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetRdsFlavorsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = FlexibleengineFunctions.getRdsFlavorsV3(GetRdsFlavorsV3Args.builder()\n            .dbType(\"PostgreSQL\")\n            .dbVersion(\"12\")\n            .instanceMode(\"ha\")\n            .vcpus(4)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavor:\n    fn::invoke:\n      function: flexibleengine:getRdsFlavorsV3\n      arguments:\n        dbType: PostgreSQL\n        dbVersion: '12'\n        instanceMode: ha\n        vcpus: 4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getRdsFlavorsV3.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the availability zone which the RDS flavor belongs to.\n"
          },
          "dbType": {
            "type": "string",
            "description": "Specifies the DB engine. Value: **MySQL**, **PostgreSQL**, **SQLServer** and **MariaDB**.\n"
          },
          "dbVersion": {
            "type": "string",
            "description": "Specifies the database version. The supported versions of each database\nare as follows:\n- **MySQL**: MySQL databases support **5.6**, **5.7** and **8.0**.\n- **PostgreSQL**: PostgreSQL databases support **9.5**, **9.6**, **10**, **11**, **12**, **13**, **14** and\n**1.0 (Enhanced Edition)**.\n- **SQLServer**: Microsoft SQL Server databases support **2014_SE**, **2016_SE** and **2016_EE**.\n- **MariaDB**: MariaDB databases support **10.5**.\n"
          },
          "groupType": {
            "type": "string",
            "description": "Specifies the performance specification, the valid values are as follows:\n- **normal**: General enhanced.\n- **normal2**: General enhanced type II.\n- **dedicatedNormal**: (dedicatedNormalLocalssd): Dedicated for x86.\n- **normalLocalssd**: x86 general type.\n- **general**: General type.\n- **bigmem**: Large memory type.\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of the rds flavor.\n"
          },
          "instanceMode": {
            "type": "string",
            "description": "The mode of instance. Value: *ha*(indicates primary/standby instance),\n*single*(indicates single instance) and *replica*(indicates read replicas).\n"
          },
          "memory": {
            "type": "number",
            "description": "Specifies the memory size(GB) in the RDS flavor.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "vcpus": {
            "type": "number",
            "description": "Specifies the number of vCPUs in the RDS flavor.\n"
          }
        },
        "type": "object",
        "required": [
          "dbType"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getRdsFlavorsV3.\n",
        "properties": {
          "availabilityZone": {
            "type": "string"
          },
          "dbType": {
            "type": "string"
          },
          "dbVersion": {
            "type": "string"
          },
          "flavors": {
            "description": "Indicates the flavors information. The flavors object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetRdsFlavorsV3Flavor:getRdsFlavorsV3Flavor"
            },
            "type": "array"
          },
          "groupType": {
            "description": "The performance specification.\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of the rds flavor.\n",
            "type": "string"
          },
          "instanceMode": {
            "description": "The mode of instance.\n",
            "type": "string"
          },
          "memory": {
            "description": "The memory size in GB.\n",
            "type": "number"
          },
          "region": {
            "type": "string"
          },
          "vcpus": {
            "description": "The CPU size.\n",
            "type": "number"
          }
        },
        "required": [
          "dbType",
          "flavors",
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getRdsInstances:getRdsInstances": {
      "description": "Use this data source to list all available RDS instances.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst test = flexibleengine.getRdsInstances({\n    name: \"rds-instance\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ntest = flexibleengine.get_rds_instances(name=\"rds-instance\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Flexibleengine.GetRdsInstances.Invoke(new()\n    {\n        Name = \"rds-instance\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetRdsInstances(ctx, \u0026flexibleengine.GetRdsInstancesArgs{\n\t\t\tName: pulumi.StringRef(\"rds-instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetRdsInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = FlexibleengineFunctions.getRdsInstances(GetRdsInstancesArgs.builder()\n            .name(\"rds-instance\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getRdsInstances\n      arguments:\n        name: rds-instance\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getRdsInstances.\n",
        "properties": {
          "datastoreType": {
            "type": "string",
            "description": "Specifies the type of the database. Valid values are:\n**MySQL**, **PostgreSQL**, **SQLServer** and **MariaDB**.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id.\n"
          },
          "id": {
            "type": "string",
            "description": "Indicates the node ID.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the instance.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which query obtain the instances. If omitted, the provider-level region\nwill be used.\n"
          },
          "subnetId": {
            "type": "string",
            "description": "Specifies the network ID of a subnet.\n"
          },
          "type": {
            "type": "string",
            "description": "Specifies the type of the instance. Valid values are:\n**Single**, **Ha**, **Replica**, and **Enterprise**.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC ID.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRdsInstances.\n",
        "properties": {
          "datastoreType": {
            "type": "string"
          },
          "enterpriseProjectId": {
            "description": "Indicates the enterprise project id.\n",
            "type": "string"
          },
          "id": {
            "description": "Indicates the node ID.\n",
            "type": "string"
          },
          "instances": {
            "description": "An array of available instances. The instances object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetRdsInstancesInstance:getRdsInstancesInstance"
            },
            "type": "array"
          },
          "name": {
            "description": "Indicates the node name.\n",
            "type": "string"
          },
          "region": {
            "description": "The region of the instance.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "Indicates the network ID of a subnet.\n",
            "type": "string"
          },
          "type": {
            "description": "Indicates the volume type.\n",
            "type": "string"
          },
          "vpcId": {
            "description": "Indicates the VPC ID.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "instances",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getRdsSqlserverCollations:getRdsSqlserverCollations": {
      "description": "Use this data source to get the list of RDS SQLServer collations.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst collations = flexibleengine.getRdsSqlserverCollations({});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ncollations = flexibleengine.get_rds_sqlserver_collations()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var collations = Flexibleengine.GetRdsSqlserverCollations.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetRdsSqlserverCollations(ctx, \u0026flexibleengine.GetRdsSqlserverCollationsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetRdsSqlserverCollationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var collations = FlexibleengineFunctions.getRdsSqlserverCollations();\n\n    }\n}\n```\n```yaml\nvariables:\n  collations:\n    fn::invoke:\n      function: flexibleengine:getRdsSqlserverCollations\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getRdsSqlserverCollations.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRdsSqlserverCollations.\n",
        "properties": {
          "charSets": {
            "description": "Indicates the character set information list.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The resource ID.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "charSets",
          "id",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getRdsStorageTypes:getRdsStorageTypes": {
      "description": "Use this data source to get the list of RDS storage types.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject(\"instanceId\");\nconst test = flexibleengine.getRdsStorageTypes({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = flexibleengine.get_rds_storage_types(db_type=\"MySQL\",\n    db_version=\"8.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var instanceId = config.RequireObject\u003cdynamic\u003e(\"instanceId\");\n    var test = Flexibleengine.GetRdsStorageTypes.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := flexibleengine.GetRdsStorageTypes(ctx, \u0026flexibleengine.GetRdsStorageTypesArgs{\n\t\t\tDbType:    \"MySQL\",\n\t\t\tDbVersion: \"8.0\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetRdsStorageTypesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var test = FlexibleengineFunctions.getRdsStorageTypes(GetRdsStorageTypesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getRdsStorageTypes\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getRdsStorageTypes.\n",
        "properties": {
          "dbType": {
            "type": "string",
            "description": "Specifies the DB engine type. Its value can be any of the following and\nis case-insensitive: **MySQL**, **PostgreSQL**, **SQLServer** and **MariaDB**.\n"
          },
          "dbVersion": {
            "type": "string",
            "description": "Specifies the database version. For details about how to obtain the database\nversion, see section [Querying Version Information About a DB Engine](https://docs.prod-cloud-ocb.orange-business.com/en-us/api/rds/rds_06_0001.html).\n"
          },
          "id": {
            "type": "string",
            "description": "The resource ID.\n"
          },
          "instanceMode": {
            "type": "string",
            "description": "Specifies the HA mode. The value options are as\nfollows: **single**, **ha**, **replica**.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object",
        "required": [
          "dbType",
          "dbVersion"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getRdsStorageTypes.\n",
        "properties": {
          "dbType": {
            "type": "string"
          },
          "dbVersion": {
            "type": "string"
          },
          "id": {
            "description": "The resource ID.\n",
            "type": "string"
          },
          "instanceMode": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "storageTypes": {
            "description": "Indicates the DB instance specifications information list. For details, see Data structure of\nthe storage_type field. The storage_types structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetRdsStorageTypesStorageType:getRdsStorageTypesStorageType"
            },
            "type": "array"
          }
        },
        "required": [
          "dbType",
          "dbVersion",
          "id",
          "region",
          "storageTypes"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getRtsSoftwareConfigV1:getRtsSoftwareConfigV1": {
      "description": "The RTS Software Config data source provides details about a specific RTS Software Config.\n\n",
      "inputs": {
        "description": "A collection of arguments for invoking getRtsSoftwareConfigV1.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the software configuration.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the software configuration.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRtsSoftwareConfigV1.\n",
        "properties": {
          "config": {
            "description": "The software configuration code.\n",
            "type": "string"
          },
          "group": {
            "description": "The namespace that groups this software configuration by when it is delivered to a server.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "inputValues": {
            "description": "A list of software configuration inputs.\n",
            "items": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "options": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The software configuration options.\n",
            "type": "object"
          },
          "outputValues": {
            "description": "A list of software configuration outputs.\n",
            "items": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "type": "array"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "config",
          "group",
          "inputValues",
          "options",
          "outputValues",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getRtsStackResourceV1:getRtsStackResourceV1": {
      "description": "The FlexibleEngine RTS Stack Resource data source allows access to stack resource metadata.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst stackName = config.requireObject(\"stackName\");\nconst resourceName = config.requireObject(\"resourceName\");\nconst stackresource = flexibleengine.getRtsStackResourceV1({\n    stackName: stackName,\n    resourceName: resourceName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nstack_name = config.require_object(\"stackName\")\nresource_name = config.require_object(\"resourceName\")\nstackresource = flexibleengine.get_rts_stack_resource_v1(stack_name=stack_name,\n    resource_name=resource_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var stackName = config.RequireObject\u003cdynamic\u003e(\"stackName\");\n    var resourceName = config.RequireObject\u003cdynamic\u003e(\"resourceName\");\n    var stackresource = Flexibleengine.GetRtsStackResourceV1.Invoke(new()\n    {\n        StackName = stackName,\n        ResourceName = resourceName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tstackName := cfg.RequireObject(\"stackName\")\n\t\tresourceName := cfg.RequireObject(\"resourceName\")\n\t\t_, err := flexibleengine.GetRtsStackResourceV1(ctx, \u0026flexibleengine.GetRtsStackResourceV1Args{\n\t\t\tStackName:    stackName,\n\t\t\tResourceName: pulumi.StringRef(resourceName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetRtsStackResourceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var stackName = config.get(\"stackName\");\n        final var resourceName = config.get(\"resourceName\");\n        final var stackresource = FlexibleengineFunctions.getRtsStackResourceV1(GetRtsStackResourceV1Args.builder()\n            .stackName(stackName)\n            .resourceName(resourceName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  stackName:\n    type: dynamic\n  resourceName:\n    type: dynamic\nvariables:\n  stackresource:\n    fn::invoke:\n      function: flexibleengine:getRtsStackResourceV1\n      arguments:\n        stackName: ${stackName}\n        resourceName: ${resourceName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getRtsStackResourceV1.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "physicalResourceId": {
            "type": "string",
            "description": "The physical resource ID.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "resourceName": {
            "type": "string",
            "description": "The name of a resource in the stack.\n"
          },
          "resourceType": {
            "type": "string",
            "description": "The resource type.\n"
          },
          "stackName": {
            "type": "string",
            "description": "The unique stack name.\n"
          }
        },
        "type": "object",
        "required": [
          "stackName"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getRtsStackResourceV1.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "logicalResourceId": {
            "description": "The logical resource ID.\n",
            "type": "string"
          },
          "physicalResourceId": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "requiredBies": {
            "description": "Specifies the resource dependency.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceName": {
            "type": "string"
          },
          "resourceStatus": {
            "description": "The status of the resource.\n",
            "type": "string"
          },
          "resourceStatusReason": {
            "description": "The resource operation reason.\n",
            "type": "string"
          },
          "resourceType": {
            "type": "string"
          },
          "stackName": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "logicalResourceId",
          "region",
          "requiredBies",
          "resourceStatus",
          "resourceStatusReason",
          "stackName"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getRtsStackV1:getRtsStackV1": {
      "description": "The FlexibleEngine RTS Stack data source allows access to stack outputs and other useful data including the template body.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst stackName = config.requireObject(\"stackName\");\nconst mystack = flexibleengine.getRtsStackV1({\n    name: stackName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nstack_name = config.require_object(\"stackName\")\nmystack = flexibleengine.get_rts_stack_v1(name=stack_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var stackName = config.RequireObject\u003cdynamic\u003e(\"stackName\");\n    var mystack = Flexibleengine.GetRtsStackV1.Invoke(new()\n    {\n        Name = stackName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tstackName := cfg.RequireObject(\"stackName\")\n\t\t_, err := flexibleengine.LookupRtsStackV1(ctx, \u0026flexibleengine.LookupRtsStackV1Args{\n\t\t\tName: stackName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetRtsStackV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var stackName = config.get(\"stackName\");\n        final var mystack = FlexibleengineFunctions.getRtsStackV1(GetRtsStackV1Args.builder()\n            .name(stackName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  stackName:\n    type: dynamic\nvariables:\n  mystack:\n    fn::invoke:\n      function: flexibleengine:getRtsStackV1\n      arguments:\n        name: ${stackName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getRtsStackV1.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique identifier of the stack.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the stack.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getRtsStackV1.\n",
        "properties": {
          "capabilities": {
            "description": "List of stack capabilities for stack.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "disableRollback": {
            "description": "Whether the rollback of the stack is disabled when stack creation fails.\n",
            "type": "boolean"
          },
          "id": {
            "description": "A unique identifier of the stack.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "notificationTopics": {
            "description": "List of notification topics for stack.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "outputs": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A list of stack outputs.\n",
            "type": "object"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters that specify input parameters for the stack.\n",
            "type": "object"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "description": "Specifies the stack status.\n",
            "type": "string"
          },
          "statusReason": {
            "type": "string"
          },
          "templateBody": {
            "description": "Structure containing the template body.\n",
            "type": "string"
          },
          "timeoutMins": {
            "description": "Specifies the timeout duration.\n",
            "type": "number"
          }
        },
        "required": [
          "capabilities",
          "disableRollback",
          "id",
          "name",
          "notificationTopics",
          "outputs",
          "parameters",
          "region",
          "status",
          "statusReason",
          "templateBody",
          "timeoutMins"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getS3BucketObject:getS3BucketObject": {
      "description": "The S3 object data source allows access to the metadata and\n*optionally* (see below) content of an object stored inside S3 bucket.\n\n\u003e **Note:** The content of an object (`body` field) is available only for objects which have a human-readable\n  `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and\n  potentially downloading large amount of data which would be thrown away in favor of metadata.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst s3BucketObject = flexibleengine.getS3BucketObject({\n    bucket: \"my-test-bucket\",\n    key: \"hello-world.zip\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ns3_bucket_object = flexibleengine.get_s3_bucket_object(bucket=\"my-test-bucket\",\n    key=\"hello-world.zip\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var s3BucketObject = Flexibleengine.GetS3BucketObject.Invoke(new()\n    {\n        Bucket = \"my-test-bucket\",\n        Key = \"hello-world.zip\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupS3BucketObject(ctx, \u0026flexibleengine.LookupS3BucketObjectArgs{\n\t\t\tBucket: \"my-test-bucket\",\n\t\t\tKey:    \"hello-world.zip\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetS3BucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var s3BucketObject = FlexibleengineFunctions.getS3BucketObject(GetS3BucketObjectArgs.builder()\n            .bucket(\"my-test-bucket\")\n            .key(\"hello-world.zip\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  s3BucketObject:\n    fn::invoke:\n      function: flexibleengine:getS3BucketObject\n      arguments:\n        bucket: my-test-bucket\n        key: hello-world.zip\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getS3BucketObject.\n",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "The name of the bucket to read the object from.\n"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string",
            "description": "The full path to the object inside the bucket.\n"
          },
          "range": {
            "type": "string",
            "description": "Obtains the specified range bytes of an object. The value is a range starting from 0 to\nmaximum object length minus one. If the range is invalid, all object data is returned.\n"
          },
          "versionId": {
            "type": "string",
            "description": "Specific version ID of the object returned (defaults to latest version).\n"
          }
        },
        "type": "object",
        "required": [
          "bucket",
          "key"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getS3BucketObject.\n",
        "properties": {
          "body": {
            "description": "Object data (see **limitations above** to understand cases in which this field is actually available).\n",
            "type": "string"
          },
          "bucket": {
            "type": "string"
          },
          "cacheControl": {
            "description": "Specifies caching behavior along the request/reply chain.\n",
            "type": "string"
          },
          "contentDisposition": {
            "description": "Specifies presentational information for the object.\n",
            "type": "string"
          },
          "contentEncoding": {
            "description": "Specifies what content encodings have been applied to the object and thus what decoding\nmechanisms must be applied to obtain the media-type referenced by the Content-Type header field.\n",
            "type": "string"
          },
          "contentLanguage": {
            "description": "The language the content is in.\n",
            "type": "string"
          },
          "contentLength": {
            "description": "Size of the body in bytes.\n",
            "type": "number"
          },
          "contentType": {
            "description": "A standard MIME type describing the format of the object data.\n",
            "type": "string"
          },
          "etag": {
            "description": "[ETag](https://en.wikipedia.org/wiki/HTTP_ETag) generated for the object\n(an MD5 sum of the object content in case it's not encrypted).\n",
            "type": "string"
          },
          "expiration": {
            "description": "If the object expiration is configured, the field includes this header. It includes the expiry-date and\nrule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.\n",
            "type": "string"
          },
          "expires": {
            "description": "The date and time at which the object is no longer cacheable.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "lastModified": {
            "description": "Last modified date of the object in RFC1123 format (e.g. `Mon, 02 Jan 2006 15:04:05 MST`).\n",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of metadata stored with the object in S3.\n",
            "type": "object"
          },
          "range": {
            "type": "string"
          },
          "serverSideEncryption": {
            "description": "If the object is stored using server-side encryption (KMS or Amazon S3-managed encryption\nkey), this field includes the chosen encryption and algorithm used.\n",
            "type": "string"
          },
          "sseKmsKeyId": {
            "description": "If present, specifies the ID of the Key Management Service (KMS) master encryption key that\nwas used for the object.\n",
            "type": "string"
          },
          "versionId": {
            "type": "string"
          },
          "websiteRedirectLocation": {
            "description": "If the bucket is configured as a website, redirects requests for this object to\nanother object in the same bucket or to an external URL. S3 stores the value of this header in the object metadata.\n",
            "type": "string"
          }
        },
        "required": [
          "body",
          "bucket",
          "cacheControl",
          "contentDisposition",
          "contentEncoding",
          "contentLanguage",
          "contentLength",
          "contentType",
          "etag",
          "expiration",
          "expires",
          "id",
          "key",
          "lastModified",
          "metadata",
          "serverSideEncryption",
          "sseKmsKeyId",
          "versionId",
          "websiteRedirectLocation"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getSdrsDomainV1:getSdrsDomainV1": {
      "description": "Use this data source to get the ID of an available FlexibleEngine SDRS domain.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst dom1 = flexibleengine.getSdrsDomainV1({\n    name: \"SDRS_HypeDomain01\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ndom1 = flexibleengine.get_sdrs_domain_v1(name=\"SDRS_HypeDomain01\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dom1 = Flexibleengine.GetSdrsDomainV1.Invoke(new()\n    {\n        Name = \"SDRS_HypeDomain01\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetSdrsDomainV1(ctx, \u0026flexibleengine.GetSdrsDomainV1Args{\n\t\t\tName: pulumi.StringRef(\"SDRS_HypeDomain01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetSdrsDomainV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var dom1 = FlexibleengineFunctions.getSdrsDomainV1(GetSdrsDomainV1Args.builder()\n            .name(\"SDRS_HypeDomain01\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  dom1:\n    fn::invoke:\n      function: flexibleengine:getSdrsDomainV1\n      arguments:\n        name: SDRS_HypeDomain01\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSdrsDomainV1.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of an active-active domain. Currently only support SDRS_HypeDomain01.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSdrsDomainV1.\n",
        "properties": {
          "description": {
            "description": "Specifies the description of an active-active domain.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "description",
          "id",
          "name"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getSfsFileSystemV2:getSfsFileSystemV2": {
      "description": "Provides information about an Shared File System (SFS).\n\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSfsFileSystemV2.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The UUID of the shared file system.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the shared file system.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the data source. If omitted, the provider-level region\nwill be used.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the shared file system.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSfsFileSystemV2.\n",
        "properties": {
          "accessLevel": {
            "description": "The level of the access rule.\n",
            "type": "string"
          },
          "accessTo": {
            "description": "The access that the back end grants or denies.\n",
            "type": "string"
          },
          "accessType": {
            "description": "The type of the share access rule.\n",
            "type": "string"
          },
          "availabilityZone": {
            "description": "The availability zone name.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the shared file system.\n",
            "type": "string"
          },
          "exportLocation": {
            "description": "The path for accessing the shared file system.\n",
            "type": "string"
          },
          "exportLocations": {
            "description": "The list of mount locations.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "host": {
            "description": "The host name of the shared file system.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "isPublic": {
            "description": "The level of visibility for the shared file system.\n",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metadata key and value pairs as a dictionary of strings.\n",
            "type": "object"
          },
          "mountId": {
            "description": "The UUID of the mount location of the shared file system.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "preferred": {
            "description": "Identifies which mount locations are most efficient and are used preferentially\nwhen multiple mount locations exist.\n",
            "type": "boolean"
          },
          "projectId": {
            "description": "The project ID of the operating user.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "shareAccessId": {
            "description": "The UUID of the share access rule.\n",
            "type": "string"
          },
          "shareInstanceId": {
            "description": "The access that the back end grants or denies.\n",
            "type": "string"
          },
          "shareProto": {
            "description": "The protocol for sharing file systems.\n",
            "type": "string"
          },
          "shareType": {
            "description": "The storage service type for the shared file system, such as high-performance storage (composed of SSDs)\nor large-capacity storage (composed of SATA disks).\n",
            "type": "string"
          },
          "size": {
            "description": "The size (GB) of the shared file system.\n",
            "type": "number"
          },
          "state": {
            "description": "The status of the access rule.\n",
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "volumeType": {
            "description": "The volume type.\n",
            "type": "string"
          }
        },
        "required": [
          "accessLevel",
          "accessTo",
          "accessType",
          "availabilityZone",
          "description",
          "exportLocation",
          "exportLocations",
          "host",
          "isPublic",
          "metadata",
          "mountId",
          "preferred",
          "projectId",
          "region",
          "shareAccessId",
          "shareInstanceId",
          "shareProto",
          "shareType",
          "size",
          "state",
          "volumeType"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getSfsTurbos:getSfsTurbos": {
      "description": "Use this data source to get the list of the available SFS turbos.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst sfsTurboName = config.requireObject(\"sfsTurboName\");\nconst test = flexibleengine.getSfsTurbos({\n    name: sfsTurboName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nsfs_turbo_name = config.require_object(\"sfsTurboName\")\ntest = flexibleengine.get_sfs_turbos(name=sfs_turbo_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var sfsTurboName = config.RequireObject\u003cdynamic\u003e(\"sfsTurboName\");\n    var test = Flexibleengine.GetSfsTurbos.Invoke(new()\n    {\n        Name = sfsTurboName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsfsTurboName := cfg.RequireObject(\"sfsTurboName\")\n\t\t_, err := flexibleengine.GetSfsTurbos(ctx, \u0026flexibleengine.GetSfsTurbosArgs{\n\t\t\tName: pulumi.StringRef(sfsTurboName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetSfsTurbosArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sfsTurboName = config.get(\"sfsTurboName\");\n        final var test = FlexibleengineFunctions.getSfsTurbos(GetSfsTurbosArgs.builder()\n            .name(sfsTurboName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sfsTurboName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getSfsTurbos\n      arguments:\n        name: ${sfsTurboName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSfsTurbos.\n",
        "properties": {
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id of the SFS turbo file systems\nresource.\n"
          },
          "id": {
            "type": "string",
            "description": "The resource ID of the SFS turbo file system.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the SFS turbo file system.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the SFS turbo file systems. If omitted, the provider-level\nregion will be used.\n"
          },
          "shareProto": {
            "type": "string",
            "description": "Specifies the protocol of the SFS turbo file system. The valid value is **NFS**.\n"
          },
          "shareType": {
            "type": "string",
            "description": "Specifies the type of the SFS turbo file system.\nThe valid values are **STANDARD** and **PERFORMANCE**.\n"
          },
          "size": {
            "type": "number",
            "description": "Specifies the capacity of the SFS turbo file system, in GB.\nThe value ranges from `500` to `32,768`, and must be larger than `10,240` for an enhanced file system.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSfsTurbos.\n",
        "properties": {
          "enterpriseProjectId": {
            "description": "The enterprise project id to which the SFS turbo belongs.\n",
            "type": "string"
          },
          "id": {
            "description": "The resource ID of the SFS turbo file system.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the SFS turbo file system.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "shareProto": {
            "description": "The protocol of the SFS turbo file system.\n",
            "type": "string"
          },
          "shareType": {
            "description": "The type of the SFS turbo file system.\n",
            "type": "string"
          },
          "size": {
            "description": "The capacity of the SFS turbo file system.\n",
            "type": "number"
          },
          "turbos": {
            "description": "The list of the SFS turbo file systems. The turbos object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetSfsTurbosTurbo:getSfsTurbosTurbo"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "turbos"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getSmnMessageTemplates:getSmnMessageTemplates": {
      "description": "Use this data source to get the list of SMN message templates.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject(\"name\");\nconst test = flexibleengine.getSmnMessageTemplates({\n    name: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\ntest = flexibleengine.get_smn_message_templates(name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.RequireObject\u003cdynamic\u003e(\"name\");\n    var test = Flexibleengine.GetSmnMessageTemplates.Invoke(new()\n    {\n        Name = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\t_, err := flexibleengine.GetSmnMessageTemplates(ctx, \u0026flexibleengine.GetSmnMessageTemplatesArgs{\n\t\t\tName: pulumi.StringRef(name),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetSmnMessageTemplatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var test = FlexibleengineFunctions.getSmnMessageTemplates(GetSmnMessageTemplatesArgs.builder()\n            .name(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: flexibleengine:getSmnMessageTemplates\n      arguments:\n        name: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSmnMessageTemplates.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Indicates the message template ID.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the message template.\n"
          },
          "protocol": {
            "type": "string",
            "description": "Specifies the protocol of the message template.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to query the data source.\nIf omitted, the provider-level region will be used.\n"
          },
          "templateId": {
            "type": "string",
            "description": "Specifies the message template ID.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSmnMessageTemplates.\n",
        "properties": {
          "id": {
            "description": "Indicates the message template ID.\n",
            "type": "string"
          },
          "name": {
            "description": "Indicates the message template name.\n",
            "type": "string"
          },
          "protocol": {
            "description": "Indicates the protocol supported by the template.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "templateId": {
            "type": "string"
          },
          "templates": {
            "description": "The list of message templates.\nThe templates structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetSmnMessageTemplatesTemplate:getSmnMessageTemplatesTemplate"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "region",
          "templates"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getSmnTopics:getSmnTopics": {
      "description": "Use this data source to get an array of SMN topics.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst topicName = config.requireObject(\"topicName\");\nconst tpoic1 = flexibleengine.getSmnTopics({\n    name: topicName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ntopic_name = config.require_object(\"topicName\")\ntpoic1 = flexibleengine.get_smn_topics(name=topic_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var topicName = config.RequireObject\u003cdynamic\u003e(\"topicName\");\n    var tpoic1 = Flexibleengine.GetSmnTopics.Invoke(new()\n    {\n        Name = topicName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttopicName := cfg.RequireObject(\"topicName\")\n\t\t_, err := flexibleengine.GetSmnTopics(ctx, \u0026flexibleengine.GetSmnTopicsArgs{\n\t\t\tName: pulumi.StringRef(topicName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetSmnTopicsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var topicName = config.get(\"topicName\");\n        final var tpoic1 = FlexibleengineFunctions.getSmnTopics(GetSmnTopicsArgs.builder()\n            .name(topicName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  topicName:\n    type: dynamic\nvariables:\n  tpoic1:\n    fn::invoke:\n      function: flexibleengine:getSmnTopics\n      arguments:\n        name: ${topicName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSmnTopics.\n",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "Specifies the topic display name.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id of the topic.\n"
          },
          "id": {
            "type": "string",
            "description": "The topic ID. The value is the topic URN.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the topic.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the SMN topics. If omitted, the\nprovider-level region will be used.\n"
          },
          "topicUrn": {
            "type": "string",
            "description": "Specifies the topic URN.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSmnTopics.\n",
        "properties": {
          "displayName": {
            "description": "The topic display name.\n",
            "type": "string"
          },
          "enterpriseProjectId": {
            "description": "The enterprise project id of the topic.\n",
            "type": "string"
          },
          "id": {
            "description": "The topic ID. The value is the topic URN.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the topic.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "topicUrn": {
            "description": "The topic URN.\n",
            "type": "string"
          },
          "topics": {
            "description": "An array of SMN topics found. The topics object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetSmnTopicsTopic:getSmnTopicsTopic"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "region",
          "topics"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getSmsSourceServers:getSmsSourceServers": {
      "description": "Use this data source to get a list of SMS source servers.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst serverName = config.requireObject(\"serverName\");\nconst demo = flexibleengine.getSmsSourceServers({\n    name: serverName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nserver_name = config.require_object(\"serverName\")\ndemo = flexibleengine.get_sms_source_servers(name=server_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var serverName = config.RequireObject\u003cdynamic\u003e(\"serverName\");\n    var demo = Flexibleengine.GetSmsSourceServers.Invoke(new()\n    {\n        Name = serverName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tserverName := cfg.RequireObject(\"serverName\")\n\t\t_, err := flexibleengine.GetSmsSourceServers(ctx, \u0026flexibleengine.GetSmsSourceServersArgs{\n\t\t\tName: pulumi.StringRef(serverName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetSmsSourceServersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var serverName = config.get(\"serverName\");\n        final var demo = FlexibleengineFunctions.getSmsSourceServers(GetSmsSourceServersArgs.builder()\n            .name(serverName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  serverName:\n    type: dynamic\nvariables:\n  demo:\n    fn::invoke:\n      function: flexibleengine:getSmsSourceServers\n      arguments:\n        name: ${serverName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSmsSourceServers.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Specifies the ID of the source server.\n"
          },
          "ip": {
            "type": "string",
            "description": "Specifies the IP address of the source server.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the source server.\n"
          },
          "state": {
            "type": "string",
            "description": "Specifies the status of the source server.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSmsSourceServers.\n",
        "properties": {
          "id": {
            "description": "The ID of the source server.\n",
            "type": "string"
          },
          "ip": {
            "description": "The IP address of the source server.\n",
            "type": "string"
          },
          "name": {
            "description": "The disk name, for example, /dev/vda.\n",
            "type": "string"
          },
          "servers": {
            "description": "An array of SMS source servers found. The servers object structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetSmsSourceServersServer:getSmsSourceServersServer"
            },
            "type": "array"
          },
          "state": {
            "description": "The status of the source server.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "servers"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVbsBackupPolicyV2:getVbsBackupPolicyV2": {
      "description": "The VBS Backup Policy data source provides details about a specific VBS backup policy.\n\n## Example Usage\n\n \u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst policyName = config.requireObject(\"policyName\");\nconst policies = flexibleengine.getVbsBackupPolicyV2({\n    name: policyName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\npolicy_name = config.require_object(\"policyName\")\npolicies = flexibleengine.get_vbs_backup_policy_v2(name=policy_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var policyName = config.RequireObject\u003cdynamic\u003e(\"policyName\");\n    var policies = Flexibleengine.GetVbsBackupPolicyV2.Invoke(new()\n    {\n        Name = policyName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tpolicyName := cfg.RequireObject(\"policyName\")\n\t\t_, err := flexibleengine.LookupVbsBackupPolicyV2(ctx, \u0026flexibleengine.LookupVbsBackupPolicyV2Args{\n\t\t\tName: pulumi.StringRef(policyName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVbsBackupPolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var policyName = config.get(\"policyName\");\n        final var policies = FlexibleengineFunctions.getVbsBackupPolicyV2(GetVbsBackupPolicyV2Args.builder()\n            .name(policyName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  policyName:\n    type: dynamic\nvariables:\n  policies:\n    fn::invoke:\n      function: flexibleengine:getVbsBackupPolicyV2\n      arguments:\n        name: ${policyName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVbsBackupPolicyV2.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the specific VBS backup policy to retrieve.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the specific VBS backup policy to retrieve.\n"
          },
          "policyResourceCount": {
            "type": "number",
            "description": "Specifies the number of volumes associated with the backup policy.\n"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "description": "The status of the specific VBS backup policy to retrieve. The values can be ON or OFF\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVbsBackupPolicyV2.\n",
        "properties": {
          "frequency": {
            "description": "Specifies the backup interval. The value is in the range of 1 to 14 days.\n",
            "type": "number"
          },
          "id": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "name": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "policyResourceCount": {
            "description": "Specifies the number of volumes associated with the backup policy.\n",
            "type": "number"
          },
          "region": {
            "type": "string"
          },
          "remainFirstBackup": {
            "type": "string"
          },
          "rententionNum": {
            "description": "Specifies number of retained backups.\n",
            "type": "number"
          },
          "startTime": {
            "description": "Specifies the start time of the backup job.The value is in the HH:mm format.\n",
            "type": "string"
          },
          "status": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          }
        },
        "required": [
          "frequency",
          "region",
          "remainFirstBackup",
          "rententionNum",
          "startTime"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVbsBackupV2:getVbsBackupV2": {
      "description": "The VBS Backup data source provides details about a specific VBS Backup.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst backupName = config.requireObject(\"backupName\");\nconst mybackup = flexibleengine.getVbsBackupV2({\n    name: backupName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nbackup_name = config.require_object(\"backupName\")\nmybackup = flexibleengine.get_vbs_backup_v2(name=backup_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var backupName = config.RequireObject\u003cdynamic\u003e(\"backupName\");\n    var mybackup = Flexibleengine.GetVbsBackupV2.Invoke(new()\n    {\n        Name = backupName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbackupName := cfg.RequireObject(\"backupName\")\n\t\t_, err := flexibleengine.LookupVbsBackupV2(ctx, \u0026flexibleengine.LookupVbsBackupV2Args{\n\t\t\tName: pulumi.StringRef(backupName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVbsBackupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var backupName = config.get(\"backupName\");\n        final var mybackup = FlexibleengineFunctions.getVbsBackupV2(GetVbsBackupV2Args.builder()\n            .name(backupName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  backupName:\n    type: dynamic\nvariables:\n  mybackup:\n    fn::invoke:\n      function: flexibleengine:getVbsBackupV2\n      arguments:\n        name: ${backupName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVbsBackupV2.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the vbs backup.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the vbs backup.\n"
          },
          "region": {
            "type": "string"
          },
          "snapshotId": {
            "type": "string",
            "description": "ID of the snapshot associated with the backup.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the VBS backup.\n"
          },
          "volumeId": {
            "type": "string",
            "description": "The source volume ID of the backup.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVbsBackupV2.\n",
        "properties": {
          "availabilityZone": {
            "description": "The AZ where the backup resides.\n",
            "type": "string"
          },
          "container": {
            "description": "The container of the backup.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the vbs backup.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "serviceMetadata": {
            "description": "The metadata of the vbs backup.\n",
            "type": "string"
          },
          "size": {
            "description": "The size of the vbs backup.\n",
            "type": "number"
          },
          "snapshotId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "volumeId": {
            "type": "string"
          }
        },
        "required": [
          "availabilityZone",
          "container",
          "description",
          "region",
          "serviceMetadata",
          "size"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVpcEip:getVpcEip": {
      "description": "Use this data source to get the details of an available EIP.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst byAddress = flexibleengine.getVpcEip({\n    publicIp: \"123.60.208.163\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nby_address = flexibleengine.get_vpc_eip(public_ip=\"123.60.208.163\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var byAddress = Flexibleengine.GetVpcEip.Invoke(new()\n    {\n        PublicIp = \"123.60.208.163\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupVpcEip(ctx, \u0026flexibleengine.LookupVpcEipArgs{\n\t\t\tPublicIp: pulumi.StringRef(\"123.60.208.163\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcEipArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var byAddress = FlexibleengineFunctions.getVpcEip(GetVpcEipArgs.builder()\n            .publicIp(\"123.60.208.163\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  byAddress:\n    fn::invoke:\n      function: flexibleengine:getVpcEip\n      arguments:\n        publicIp: 123.60.208.163\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcEip.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The data source ID in UUID format.\n"
          },
          "portId": {
            "type": "string",
            "description": "The port id of the EIP.\n"
          },
          "publicIp": {
            "type": "string",
            "description": "The public ip address of the EIP.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the EIP.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcEip.\n",
        "properties": {
          "bandwidthId": {
            "description": "The bandwidth id of the EIP.\n",
            "type": "string"
          },
          "bandwidthShareType": {
            "description": "The bandwidth share type of the EIP.\n",
            "type": "string"
          },
          "bandwidthSize": {
            "description": "The bandwidth size of the EIP.\n",
            "type": "number"
          },
          "id": {
            "description": "The data source ID in UUID format.\n",
            "type": "string"
          },
          "portId": {
            "type": "string"
          },
          "privateIp": {
            "description": "The private ip of the EIP.\n",
            "type": "string"
          },
          "publicIp": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "description": "The status of the EIP.\n",
            "type": "string"
          },
          "type": {
            "description": "The type of the EIP.\n",
            "type": "string"
          }
        },
        "required": [
          "bandwidthId",
          "bandwidthShareType",
          "bandwidthSize",
          "id",
          "privateIp",
          "region",
          "status",
          "type"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVpcEipV1:getVpcEipV1": {
      "inputs": {
        "description": "A collection of arguments for invoking getVpcEipV1.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "portId": {
            "type": "string"
          },
          "publicIp": {
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcEipV1.\n",
        "properties": {
          "bandwidthId": {
            "type": "string"
          },
          "bandwidthShareType": {
            "type": "string"
          },
          "bandwidthSize": {
            "type": "number"
          },
          "id": {
            "type": "string"
          },
          "portId": {
            "type": "string"
          },
          "privateIp": {
            "type": "string"
          },
          "publicIp": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "bandwidthId",
          "bandwidthShareType",
          "bandwidthSize",
          "id",
          "privateIp",
          "region",
          "status",
          "type"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVpcPeeringConnectionV2:getVpcPeeringConnectionV2": {
      "description": "The VPC Peering Connection data source provides details about a specific VPC peering connection.\n\n## Example Usage\n\n \u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst peering = flexibleengine.getVpcPeeringConnectionV2({\n    vpcId: flexibleengine_vpc_v1.vpc.id,\n    peerVpcId: flexibleengine_vpc_v1.peer_vpc.id,\n});\nconst vpcRoute = new flexibleengine.VpcRouteV2(\"vpcRoute\", {\n    type: \"peering\",\n    nexthop: peering.then(peering =\u003e peering.id),\n    destination: \"192.168.0.0/16\",\n    vpcId: flexibleengine_vpc_v1.vpc.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\npeering = flexibleengine.get_vpc_peering_connection_v2(vpc_id=flexibleengine_vpc_v1[\"vpc\"][\"id\"],\n    peer_vpc_id=flexibleengine_vpc_v1[\"peer_vpc\"][\"id\"])\nvpc_route = flexibleengine.VpcRouteV2(\"vpcRoute\",\n    type=\"peering\",\n    nexthop=peering.id,\n    destination=\"192.168.0.0/16\",\n    vpc_id=flexibleengine_vpc_v1[\"vpc\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var peering = Flexibleengine.GetVpcPeeringConnectionV2.Invoke(new()\n    {\n        VpcId = flexibleengine_vpc_v1.Vpc.Id,\n        PeerVpcId = flexibleengine_vpc_v1.Peer_vpc.Id,\n    });\n\n    var vpcRoute = new Flexibleengine.VpcRouteV2(\"vpcRoute\", new()\n    {\n        Type = \"peering\",\n        Nexthop = peering.Apply(getVpcPeeringConnectionV2Result =\u003e getVpcPeeringConnectionV2Result.Id),\n        Destination = \"192.168.0.0/16\",\n        VpcId = flexibleengine_vpc_v1.Vpc.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpeering, err := flexibleengine.LookupVpcPeeringConnectionV2(ctx, \u0026flexibleengine.LookupVpcPeeringConnectionV2Args{\n\t\t\tVpcId:     pulumi.StringRef(flexibleengine_vpc_v1.Vpc.Id),\n\t\t\tPeerVpcId: pulumi.StringRef(flexibleengine_vpc_v1.Peer_vpc.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcRouteV2(ctx, \"vpcRoute\", \u0026flexibleengine.VpcRouteV2Args{\n\t\t\tType:        pulumi.String(\"peering\"),\n\t\t\tNexthop:     pulumi.String(peering.Id),\n\t\t\tDestination: pulumi.String(\"192.168.0.0/16\"),\n\t\t\tVpcId:       pulumi.Any(flexibleengine_vpc_v1.Vpc.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcPeeringConnectionV2Args;\nimport com.pulumi.flexibleengine.VpcRouteV2;\nimport com.pulumi.flexibleengine.VpcRouteV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var peering = FlexibleengineFunctions.getVpcPeeringConnectionV2(GetVpcPeeringConnectionV2Args.builder()\n            .vpcId(flexibleengine_vpc_v1.vpc().id())\n            .peerVpcId(flexibleengine_vpc_v1.peer_vpc().id())\n            .build());\n\n        var vpcRoute = new VpcRouteV2(\"vpcRoute\", VpcRouteV2Args.builder()\n            .type(\"peering\")\n            .nexthop(peering.applyValue(getVpcPeeringConnectionV2Result -\u003e getVpcPeeringConnectionV2Result.id()))\n            .destination(\"192.168.0.0/16\")\n            .vpcId(flexibleengine_vpc_v1.vpc().id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpcRoute:\n    type: flexibleengine:VpcRouteV2\n    properties:\n      type: peering\n      nexthop: ${peering.id}\n      destination: 192.168.0.0/16\n      vpcId: ${flexibleengine_vpc_v1.vpc.id}\nvariables:\n  peering:\n    fn::invoke:\n      function: flexibleengine:getVpcPeeringConnectionV2\n      arguments:\n        vpcId: ${flexibleengine_vpc_v1.vpc.id}\n        peerVpcId: ${flexibleengine_vpc_v1.peer_vpc.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcPeeringConnectionV2.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the specific VPC Peering Connection to retrieve.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the specific VPC Peering Connection to retrieve.\n"
          },
          "peerTenantId": {
            "type": "string",
            "description": "The Tenant ID of the accepter/peer VPC\nof the specific VPC Peering Connection to retrieve.\n"
          },
          "peerVpcId": {
            "type": "string",
            "description": "The ID of the accepter/peer VPC of the specific VPC Peering Connection to retrieve.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V1 VPC client. A VPC client is needed to retrieve VPCs.\nIf omitted, the region argument of the provider is used.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the specific VPC Peering Connection to retrieve.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "The ID of the requester VPC of the specific VPC Peering Connection to retrieve.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcPeeringConnectionV2.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "peerTenantId": {
            "type": "string"
          },
          "peerVpcId": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "vpcId": {
            "type": "string"
          }
        },
        "required": [
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVpcRouteIdsV2:getVpcRouteIdsV2": {
      "description": "!\u003e **WARNING:** It has been deprecated, use `flexibleengine.VpcRouteTable` to get the route details.\n\n`flexibleengine.getVpcRouteIdsV2` provides a list of route ids for a vpc_id.\n\nThis resource can be useful for getting back a list of route ids for a vpc.\n\n## Example Usage\n\n \u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject(\"vpcId\");\nconst example = flexibleengine.getVpcRouteIdsV2({\n    vpcId: vpcId,\n});\nconst vpcRoute = .map(__index =\u003e (flexibleengine.getVpcRouteV2({\n    id: _arg0_.ids[__index],\n})));\nexport const routeNexthop = vpcRoute.then(vpcRoute =\u003e vpcRoute.map(__item =\u003e __item.nexthop));\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nexample = flexibleengine.get_vpc_route_ids_v2(vpc_id=vpc_id)\nvpc_route = [flexibleengine.get_vpc_route_v2(id=example.ids[__index]) for __index in range(len(example.ids))]\npulumi.export(\"routeNexthop\", [__item.nexthop for __item in vpc_route])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var vpcId = config.RequireObject\u003cdynamic\u003e(\"vpcId\");\n    var example = Flexibleengine.GetVpcRouteIdsV2.Invoke(new()\n    {\n        VpcId = vpcId,\n    });\n\n    var vpcRoute = ;\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"routeNexthop\"] = vpcRoute.Apply(vpcRoute =\u003e vpcRoute.Select(__item =\u003e __item.Nexthop).ToList()),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nvpcId := cfg.RequireObject(\"vpcId\")\nexample, err := flexibleengine.GetVpcRouteIdsV2(ctx, \u0026flexibleengine.GetVpcRouteIdsV2Args{\nVpcId: vpcId,\n}, nil);\nif err != nil {\nreturn err\n}\nvpcRoute := \"TODO: For expression\";\nctx.Export(\"routeNexthop\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ #-functions-%sflexibleengine:index-getVpcRouteIdsV2:getVpcRouteIdsV2.pp:9,13-31)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcRouteIdsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var example = FlexibleengineFunctions.getVpcRouteIdsV2(GetVpcRouteIdsV2Args.builder()\n            .vpcId(vpcId)\n            .build());\n\n        final var vpcRoute = \"TODO: ForExpression\";\n\n        ctx.export(\"routeNexthop\", vpcRoute.stream().map(element -\u003e element.nexthop()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcRouteIdsV2.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V1 VPC client. A VPC client is needed to retrieve VPCs.\nIf omitted, the region argument of the provider is used.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "The VPC ID that you want to filter from.\n"
          }
        },
        "type": "object",
        "required": [
          "vpcId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getVpcRouteIdsV2.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "ids": {
            "description": "A list of all the route ids found. This data source will fail if none are found.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "region": {
            "type": "string"
          },
          "vpcId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "ids",
          "region",
          "vpcId"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVpcRouteTable:getVpcRouteTable": {
      "description": "Provides details about a specific VPC route table.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject(\"vpcId\");\nconst _default = flexibleengine.getVpcRouteTable({\n    vpcId: vpcId,\n});\nconst custom = flexibleengine.getVpcRouteTable({\n    vpcId: vpcId,\n    name: \"demo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\ndefault = flexibleengine.get_vpc_route_table(vpc_id=vpc_id)\ncustom = flexibleengine.get_vpc_route_table(vpc_id=vpc_id,\n    name=\"demo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var vpcId = config.RequireObject\u003cdynamic\u003e(\"vpcId\");\n    var @default = Flexibleengine.GetVpcRouteTable.Invoke(new()\n    {\n        VpcId = vpcId,\n    });\n\n    var custom = Flexibleengine.GetVpcRouteTable.Invoke(new()\n    {\n        VpcId = vpcId,\n        Name = \"demo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\t_, err := flexibleengine.LookupVpcRouteTable(ctx, \u0026flexibleengine.LookupVpcRouteTableArgs{\n\t\t\tVpcId: vpcId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.LookupVpcRouteTable(ctx, \u0026flexibleengine.LookupVpcRouteTableArgs{\n\t\t\tVpcId: vpcId,\n\t\t\tName:  pulumi.StringRef(\"demo\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcRouteTableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var default = FlexibleengineFunctions.getVpcRouteTable(GetVpcRouteTableArgs.builder()\n            .vpcId(vpcId)\n            .build());\n\n        final var custom = FlexibleengineFunctions.getVpcRouteTable(GetVpcRouteTableArgs.builder()\n            .vpcId(vpcId)\n            .name(\"demo\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\nvariables:\n  default:\n    fn::invoke:\n      function: flexibleengine:getVpcRouteTable\n      arguments:\n        vpcId: ${vpcId}\n  custom:\n    fn::invoke:\n      function: flexibleengine:getVpcRouteTable\n      arguments:\n        vpcId: ${vpcId}\n        name: demo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcRouteTable.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Specifies the ID of the route table.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the route table.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the vpc route table.\nIf omitted, the provider-level region will be used.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC ID where the route table resides.\n"
          }
        },
        "type": "object",
        "required": [
          "vpcId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getVpcRouteTable.\n",
        "properties": {
          "default": {
            "description": "(Bool) - Whether the route table is default or not.\n",
            "type": "boolean"
          },
          "description": {
            "description": "(String) - The description about the route.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "routes": {
            "description": "(List) - The route object list. The route object is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetVpcRouteTableRoute:getVpcRouteTableRoute"
            },
            "type": "array"
          },
          "subnets": {
            "description": "(List) - An array of one or more subnets associating with the route table.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "vpcId": {
            "type": "string"
          }
        },
        "required": [
          "default",
          "description",
          "id",
          "name",
          "region",
          "routes",
          "subnets",
          "vpcId"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVpcRouteV2:getVpcRouteV2": {
      "description": "!\u003e **WARNING:** It has been deprecated, use `flexibleengine.VpcRouteTable` to get the route details.\n\n`flexibleengine.VpcRouteV2` provides details about a specific VPC route.\n\n## Example Usage\n\n \u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst routeId = config.requireObject(\"routeId\");\nconst vpcRoute = flexibleengine.getVpcRouteV2({\n    id: routeId,\n});\nconst subnetV1 = new flexibleengine.VpcSubnetV1(\"subnetV1\", {\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: vpcRoute.then(vpcRoute =\u003e vpcRoute.vpcId),\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nroute_id = config.require_object(\"routeId\")\nvpc_route = flexibleengine.get_vpc_route_v2(id=route_id)\nsubnet_v1 = flexibleengine.VpcSubnetV1(\"subnetV1\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=vpc_route.vpc_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var routeId = config.RequireObject\u003cdynamic\u003e(\"routeId\");\n    var vpcRoute = Flexibleengine.GetVpcRouteV2.Invoke(new()\n    {\n        Id = routeId,\n    });\n\n    var subnetV1 = new Flexibleengine.VpcSubnetV1(\"subnetV1\", new()\n    {\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = vpcRoute.Apply(getVpcRouteV2Result =\u003e getVpcRouteV2Result.VpcId),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\trouteId := cfg.RequireObject(\"routeId\")\n\t\tvpcRoute, err := flexibleengine.LookupVpcRouteV2(ctx, \u0026flexibleengine.LookupVpcRouteV2Args{\n\t\t\tId: pulumi.StringRef(routeId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.NewVpcSubnetV1(ctx, \"subnetV1\", \u0026flexibleengine.VpcSubnetV1Args{\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     pulumi.String(vpcRoute.VpcId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcRouteV2Args;\nimport com.pulumi.flexibleengine.VpcSubnetV1;\nimport com.pulumi.flexibleengine.VpcSubnetV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var routeId = config.get(\"routeId\");\n        final var vpcRoute = FlexibleengineFunctions.getVpcRouteV2(GetVpcRouteV2Args.builder()\n            .id(routeId)\n            .build());\n\n        var subnetV1 = new VpcSubnetV1(\"subnetV1\", VpcSubnetV1Args.builder()\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(vpcRoute.applyValue(getVpcRouteV2Result -\u003e getVpcRouteV2Result.vpcId()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  routeId:\n    type: dynamic\nresources:\n  subnetV1:\n    type: flexibleengine:VpcSubnetV1\n    properties:\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${vpcRoute.vpcId}\nvariables:\n  vpcRoute:\n    fn::invoke:\n      function: flexibleengine:getVpcRouteV2\n      arguments:\n        id: ${routeId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcRouteV2.\n",
        "properties": {
          "destination": {
            "type": "string",
            "description": "The route destination address (CIDR).\n"
          },
          "id": {
            "type": "string",
            "description": "The id of the specific route to retrieve.\n"
          },
          "nexthop": {
            "type": "string",
            "description": "The next hop of the route. If the route type is peering, it will provide VPC peering connection ID.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V1 VPC client. A VPC client is needed to retrieve VPCs.\nIf omitted, the region argument of the provider is used.\n"
          },
          "tenantId": {
            "type": "string",
            "description": "Only the administrator can specify the tenant ID of other tenants.\n"
          },
          "type": {
            "type": "string",
            "description": "Route type for filtering.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "The id of the VPC that the desired route belongs to.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcRouteV2.\n",
        "properties": {
          "destination": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "nexthop": {
            "description": "The next hop of the route. If the route type is peering, it will provide VPC peering connection ID.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "tenantId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "vpcId": {
            "type": "string"
          }
        },
        "required": [
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVpcSubnetIdsV1:getVpcSubnetIdsV1": {
      "description": "Provides a list of subnet ids for a vpc_id\n\nThis data source can be useful for getting back a list of subnet ids for a vpc.\n\n## Example Usage\n\nThe following example shows outputing all cidr blocks for every subnet id in a vpc.\n\n \u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst subnetIds = flexibleengine.getVpcSubnetIdsV1({\n    vpcId: _var.vpc_id,\n});\nconst subnet = .map(__index =\u003e (flexibleengine.getVpcSubnetV1({\n    id: _arg0_.ids[__index],\n})));\nexport const subnetCidrBlocks = subnet.then(subnet =\u003e subnet.map(__item =\u003e __item.cidr));\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nsubnet_ids = flexibleengine.get_vpc_subnet_ids_v1(vpc_id=var[\"vpc_id\"])\nsubnet = [flexibleengine.get_vpc_subnet_v1(id=subnet_ids.ids[__index]) for __index in range(len(subnet_ids.ids))]\npulumi.export(\"subnetCidrBlocks\", [__item.cidr for __item in subnet])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var subnetIds = Flexibleengine.GetVpcSubnetIdsV1.Invoke(new()\n    {\n        VpcId = @var.Vpc_id,\n    });\n\n    var subnet = ;\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"subnetCidrBlocks\"] = subnet.Apply(subnet =\u003e subnet.Select(__item =\u003e __item.Cidr).ToList()),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nsubnetIds, err := flexibleengine.GetVpcSubnetIdsV1(ctx, \u0026flexibleengine.GetVpcSubnetIdsV1Args{\nVpcId: _var.Vpc_id,\n}, nil);\nif err != nil {\nreturn err\n}\nsubnet := \"TODO: For expression\";\nctx.Export(\"subnetCidrBlocks\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ #-functions-%sflexibleengine:index-getVpcSubnetIdsV1:getVpcSubnetIdsV1.pp:8,11-24)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcSubnetIdsV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var subnetIds = FlexibleengineFunctions.getVpcSubnetIdsV1(GetVpcSubnetIdsV1Args.builder()\n            .vpcId(var_.vpc_id())\n            .build());\n\n        final var subnet = \"TODO: ForExpression\";\n\n        ctx.export(\"subnetCidrBlocks\", subnet.stream().map(element -\u003e element.cidr()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcSubnetIdsV1.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Specifies a data source ID in UUID format.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V1 VPC client. A VPC client is needed to retrieve VPCs.\nIf omitted, the region argument of the provider is used.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the VPC ID used as the query filter.\n"
          }
        },
        "type": "object",
        "required": [
          "vpcId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getVpcSubnetIdsV1.\n",
        "properties": {
          "id": {
            "description": "Specifies a data source ID in UUID format.\n",
            "type": "string"
          },
          "ids": {
            "description": "A list of all the subnet ids found. This data source will fail if none are found.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "region": {
            "type": "string"
          },
          "vpcId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "ids",
          "region",
          "vpcId"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVpcSubnetV1:getVpcSubnetV1": {
      "description": "Provides details about a specific VPC subnet.\n\nThis data source can prove useful when a module accepts a subnet id as\nan input variable and needs to, for example, determine the id of the\nVPC that the subnet belongs to.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst subnetV1 = flexibleengine.getVpcSubnetV1({\n    id: _var.subnet_id,\n});\nexport const subnetVpcId = subnetV1.then(subnetV1 =\u003e subnetV1.vpcId);\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nsubnet_v1 = flexibleengine.get_vpc_subnet_v1(id=var[\"subnet_id\"])\npulumi.export(\"subnetVpcId\", subnet_v1.vpc_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var subnetV1 = Flexibleengine.GetVpcSubnetV1.Invoke(new()\n    {\n        Id = @var.Subnet_id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"subnetVpcId\"] = subnetV1.Apply(getVpcSubnetV1Result =\u003e getVpcSubnetV1Result.VpcId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsubnetV1, err := flexibleengine.LookupVpcSubnetV1(ctx, \u0026flexibleengine.LookupVpcSubnetV1Args{\n\t\t\tId: pulumi.StringRef(_var.Subnet_id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"subnetVpcId\", subnetV1.VpcId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcSubnetV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var subnetV1 = FlexibleengineFunctions.getVpcSubnetV1(GetVpcSubnetV1Args.builder()\n            .id(var_.subnet_id())\n            .build());\n\n        ctx.export(\"subnetVpcId\", subnetV1.applyValue(getVpcSubnetV1Result -\u003e getVpcSubnetV1Result.vpcId()));\n    }\n}\n```\n```yaml\nvariables:\n  subnetV1:\n    fn::invoke:\n      function: flexibleengine:getVpcSubnetV1\n      arguments:\n        id: ${var.subnet_id}\noutputs:\n  subnetVpcId: ${subnetV1.vpcId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## **Attributes Reference**\n\nAll of the argument attributes are also exported as\nresult attributes. This data source will complete the data by populating\nany fields that are not included in the configuration with the data for\nthe selected subnet.\n\n* `dns_list` - The IP address list of DNS servers on the subnet.\n\n* `dhcp_enable` - DHCP function for the subnet.\n\n* `ipv4_subnet_id` - The ID of the IPv4 subnet (Native OpenStack API).\n\n* `ipv6_enable` - Whether the IPv6 is enabled.\n\n* `ipv6_subnet_id` - The ID of the IPv6 subnet (Native OpenStack API).\n\n* `ipv6_cidr` - The IPv6 subnet CIDR block.\n\n* `ipv6_gateway` - The IPv6 subnet gateway.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcSubnetV1.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "The availability zone (AZ) to which the subnet should belong.\n"
          },
          "cidr": {
            "type": "string",
            "description": "The network segment of specific subnet to retrieve. The value must be in CIDR format.\n"
          },
          "gatewayIp": {
            "type": "string",
            "description": "The subnet gateway address of specific subnet.\n"
          },
          "id": {
            "type": "string",
            "description": "Specifies the ID in UUID format.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the specific subnet to retrieve.\n"
          },
          "primaryDns": {
            "type": "string",
            "description": "The IP address of DNS server 1 on the specific subnet.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V1 VPC client. A VPC client is needed to retrieve VPCs.\nIf omitted, the region argument of the provider is used.\n"
          },
          "secondaryDns": {
            "type": "string",
            "description": "The IP address of DNS server 2 on the specific subnet.\n"
          },
          "status": {
            "type": "string",
            "description": "The value can be ACTIVE, DOWN, UNKNOWN, or ERROR.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "The id of the VPC that the desired subnet belongs to.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcSubnetV1.\n",
        "properties": {
          "availabilityZone": {
            "type": "string"
          },
          "cidr": {
            "type": "string"
          },
          "dhcpEnable": {
            "type": "boolean"
          },
          "dnsLists": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "gatewayIp": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "ipv4SubnetId": {
            "type": "string"
          },
          "ipv6Cidr": {
            "type": "string"
          },
          "ipv6Enable": {
            "type": "boolean"
          },
          "ipv6Gateway": {
            "type": "string"
          },
          "ipv6SubnetId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primaryDns": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "secondaryDns": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "subnetId": {
            "type": "string"
          },
          "vpcId": {
            "type": "string"
          }
        },
        "required": [
          "dhcpEnable",
          "dnsLists",
          "id",
          "ipv4SubnetId",
          "ipv6Cidr",
          "ipv6Enable",
          "ipv6Gateway",
          "ipv6SubnetId",
          "region",
          "subnetId"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVpcSubnets:getVpcSubnets": {
      "description": "Use this data source to get a list of VPC subnet.\n\n## Example Usage\n\nAn example filter by name and tag\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst subnet = flexibleengine.getVpcSubnets({\n    name: _var.subnet_name,\n    tags: {\n        foo: \"bar\",\n    },\n});\nexport const subnetVpcIds = subnet.then(subnet =\u003e subnet.subnets.map(__item =\u003e __item.vpcId));\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nsubnet = flexibleengine.get_vpc_subnets(name=var[\"subnet_name\"],\n    tags={\n        \"foo\": \"bar\",\n    })\npulumi.export(\"subnetVpcIds\", [__item.vpc_id for __item in subnet.subnets])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var subnet = Flexibleengine.GetVpcSubnets.Invoke(new()\n    {\n        Name = @var.Subnet_name,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"subnetVpcIds\"] = subnet.Apply(getVpcSubnetsResult =\u003e getVpcSubnetsResult.Subnets).Select(__item =\u003e __item.VpcId).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nsubnet, err := flexibleengine.GetVpcSubnets(ctx, \u0026flexibleengine.GetVpcSubnetsArgs{\nName: pulumi.StringRef(_var.Subnet_name),\nTags: map[string]interface{}{\n\"foo\": \"bar\",\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"subnetVpcIds\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ #-functions-%sflexibleengine:index-getVpcSubnets:getVpcSubnets.pp:7,11-34)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcSubnetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var subnet = FlexibleengineFunctions.getVpcSubnets(GetVpcSubnetsArgs.builder()\n            .name(var_.subnet_name())\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n        ctx.export(\"subnetVpcIds\", subnet.applyValue(getVpcSubnetsResult -\u003e getVpcSubnetsResult.subnets()).stream().map(element -\u003e element.vpcId()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## **Attributes Reference**\n\nThe following attributes are exported:\n\n* `id` - Indicates a data source ID.\n* `subnets` - Indicates a list of all subnets found. The subnets structure is documented below.\n\n\u003ca name=\"vpc_subnets\"\u003e\u003c/a\u003e\nThe `subnets` block supports:\n\n* `id` - Indicates the ID of the subnet.\n* `name` - Indicates the name of the subnet.\n* `description` - Indicates the description of the subnet.\n* `cidr` - Indicates the cidr block of the subnet.\n* `status` - Indicates the current status of the subnet.\n* `vpc_id` - Indicates the Id of the VPC that the subnet belongs to.\n* `gateway_ip` - Indicates the subnet gateway address of the subnet.\n* `primary_dns` - Indicates the IP address of DNS server 1 on the subnet.\n* `secondary_dns` - Indicates the IP address of DNS server 2 on the subnet.\n* `availability_zone` - Indicates the availability zone (AZ) to which the subnet belongs to.\n* `dhcp_enable` - Indicates whether the DHCP is enabled.\n* `dns_list` - Indicates The IP address list of DNS servers on the subnet.\n* `ipv4_subnet_id` - Indicates the ID of the IPv4 subnet (Native OpenStack API).\n* `ipv6_enable` - Indicates whether the IPv6 is enabled.\n* `ipv6_subnet_id` - Indicates the ID of the IPv6 subnet (Native OpenStack API).\n* `ipv6_cidr` - Indicates the IPv6 subnet CIDR block.\n* `ipv6_gateway` - Indicates the IPv6 subnet gateway.\n* `tags` - Indicates the key/value pairs which associated with the subnet.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcSubnets.\n",
        "properties": {
          "availabilityZone": {
            "type": "string",
            "description": "Specifies the availability zone (AZ) to which the desired subnet belongs to.\n"
          },
          "cidr": {
            "type": "string",
            "description": "Specifies the network segment of desired subnet. The value must be in CIDR format.\n"
          },
          "gatewayIp": {
            "type": "string",
            "description": "Specifies the subnet gateway address of desired subnet.\n"
          },
          "id": {
            "type": "string",
            "description": "Specifies the id of the desired subnet.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the desired subnet.\n"
          },
          "primaryDns": {
            "type": "string",
            "description": "Specifies the IP address of DNS server 1 on the desired subnet.\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the subnet.\nIf omitted, the provider-level region will be used.\n"
          },
          "secondaryDns": {
            "type": "string",
            "description": "Specifies the IP address of DNS server 2 on the desired subnet.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the current status of the desired subnet.\nthe value can be ACTIVE, DOWN, UNKNOWN, or ERROR.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the included key/value pairs which associated with the desired subnet.\n\n\u003e A maximum of 10 tag keys are allowed for each query operation. Each tag key can have up to 10 tag values.\nThe tag key cannot be left blank or set to an empty string. Each tag key must be unique, and each tag value in a\ntag must be unique, use commas(,) to separate the multiple values. An empty for values indicates any value.\nThe values are in the OR relationship.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the id of the VPC that the desired subnet belongs to.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcSubnets.\n",
        "properties": {
          "availabilityZone": {
            "type": "string"
          },
          "cidr": {
            "type": "string"
          },
          "gatewayIp": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primaryDns": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "secondaryDns": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "subnets": {
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetVpcSubnetsSubnet:getVpcSubnetsSubnet"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "vpcId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "region",
          "subnets"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVpcV1:getVpcV1": {
      "description": "flexibleengine_vpc_v1 provides details about a specific VPC.\n\nThis data source can prove useful when a module accepts a vpc id as an input variable and needs to, for example,\ndetermine the CIDR block of that VPC.\n\n## Example Usage\n\nThe following example shows how one might accept a VPC id as a variable and use this data source to\nobtain the data necessary to create a subnet within it.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vpcName = config.requireObject(\"vpcName\");\nconst vpc = flexibleengine.getVpcV1({\n    name: vpcName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvpc_name = config.require_object(\"vpcName\")\nvpc = flexibleengine.get_vpc_v1(name=vpc_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var vpcName = config.RequireObject\u003cdynamic\u003e(\"vpcName\");\n    var vpc = Flexibleengine.GetVpcV1.Invoke(new()\n    {\n        Name = vpcName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcName := cfg.RequireObject(\"vpcName\")\n\t\t_, err := flexibleengine.LookupVpcV1(ctx, \u0026flexibleengine.LookupVpcV1Args{\n\t\t\tName: pulumi.StringRef(vpcName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcName = config.get(\"vpcName\");\n        final var vpc = FlexibleengineFunctions.getVpcV1(GetVpcV1Args.builder()\n            .name(vpcName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcName:\n    type: dynamic\nvariables:\n  vpc:\n    fn::invoke:\n      function: flexibleengine:getVpcV1\n      arguments:\n        name: ${vpcName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcV1.\n",
        "properties": {
          "cidr": {
            "type": "string",
            "description": "The cidr block of the desired VPC.\n"
          },
          "id": {
            "type": "string",
            "description": "The id of the specific VPC to retrieve.\n"
          },
          "name": {
            "type": "string",
            "description": "A unique name for the VPC. The name must be unique for a tenant. The value is a string of\nno more than 64 characters and can contain digits, letters, underscores (_), and hyphens (-).\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the V1 VPC client. A VPC client is needed to retrieve VPCs.\nIf omitted, the region argument of the provider is used.\n"
          },
          "shared": {
            "type": "boolean",
            "description": "Specifies whether the cross-tenant sharing is supported.\n"
          },
          "status": {
            "type": "string",
            "description": "The current status of the desired VPC. Can be either CREATING, OK, DOWN, PENDING_UPDATE,\nPENDING_DELETE, or ERROR.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcV1.\n",
        "properties": {
          "cidr": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "id": {
            "description": "ID of the VPC.\n",
            "type": "string"
          },
          "name": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "region": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          },
          "routes": {
            "description": "The list of route information with destination and nexthop fields.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetVpcV1Route:getVpcV1Route"
            },
            "type": "array"
          },
          "shared": {
            "description": "Specifies whether the cross-tenant sharing is supported.\n",
            "type": "boolean"
          },
          "status": {
            "description": "See Argument Reference above.\n",
            "type": "string"
          }
        },
        "required": [
          "region",
          "routes"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVpcepEndpoints:getVpcepEndpoints": {
      "description": "Use this data source to get VPC endpoints.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcepEndpointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var allEndpoints = FlexibleengineFunctions.getVpcepEndpoints();\n\n        final var dnsEndpoints = FlexibleengineFunctions.getVpcepEndpoints(GetVpcepEndpointsArgs.builder()\n            .endpointServiceName(\"dns\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  allEndpoints:\n    fn::invoke:\n      function: flexibleengine:getVpcepEndpoints\n      arguments: {}\n  dnsEndpoints:\n    fn::invoke:\n      function: flexibleengine:getVpcepEndpoints\n      arguments:\n        endpointServiceName: dns\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcepEndpoints.\n",
        "properties": {
          "endpointId": {
            "type": "string",
            "description": "Specifies the unique ID of the VPC endpoint.\n"
          },
          "id": {
            "type": "string",
            "description": "The unique ID of the public VPC endpoint service.\n"
          },
          "serviceName": {
            "type": "string",
            "description": "Specifies the name of the VPC endpoint service.\nThe value is not case-sensitive and supports fuzzy match.\n"
          },
          "vpcId": {
            "type": "string",
            "description": "Specifies the unique ID of the vpc holding the VPC endpoint service.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcepEndpoints.\n",
        "properties": {
          "endpointId": {
            "type": "string"
          },
          "endpoints": {
            "description": "Indicates the public VPC endpoints information. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetVpcepEndpointsEndpoint:getVpcepEndpointsEndpoint"
            },
            "type": "array"
          },
          "id": {
            "description": "The unique ID of the public VPC endpoint service.\n",
            "type": "string"
          },
          "serviceName": {
            "description": "The name of the VPC endpoint service.\n",
            "type": "string"
          },
          "vpcId": {
            "description": "The ID of the VPC holding the VPC endpoint service.\n",
            "type": "string"
          }
        },
        "required": [
          "endpoints",
          "id"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVpcepPublicServices:getVpcepPublicServices": {
      "description": "Use this data source to get available public VPC endpoint services.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst allServices = flexibleengine.getVpcepPublicServices({});\nconst dnsService = flexibleengine.getVpcepPublicServices({\n    serviceName: \"dns\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nall_services = flexibleengine.get_vpcep_public_services()\ndns_service = flexibleengine.get_vpcep_public_services(service_name=\"dns\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var allServices = Flexibleengine.GetVpcepPublicServices.Invoke();\n\n    var dnsService = Flexibleengine.GetVpcepPublicServices.Invoke(new()\n    {\n        ServiceName = \"dns\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.GetVpcepPublicServices(ctx, \u0026flexibleengine.GetVpcepPublicServicesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = flexibleengine.GetVpcepPublicServices(ctx, \u0026flexibleengine.GetVpcepPublicServicesArgs{\n\t\t\tServiceName: pulumi.StringRef(\"dns\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcepPublicServicesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var allServices = FlexibleengineFunctions.getVpcepPublicServices();\n\n        final var dnsService = FlexibleengineFunctions.getVpcepPublicServices(GetVpcepPublicServicesArgs.builder()\n            .serviceName(\"dns\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  allServices:\n    fn::invoke:\n      function: flexibleengine:getVpcepPublicServices\n      arguments: {}\n  dnsService:\n    fn::invoke:\n      function: flexibleengine:getVpcepPublicServices\n      arguments:\n        serviceName: dns\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcepPublicServices.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique ID of the public VPC endpoint service.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to obtain the public VPC endpoint services.\nIf omitted, the provider-level region will be used.\n"
          },
          "serviceId": {
            "type": "string",
            "description": "Specifies the unique ID of the public VPC endpoint service.\n"
          },
          "serviceName": {
            "type": "string",
            "description": "Specifies the name of the public VPC endpoint service.\nThe value is not case-sensitive and supports fuzzy match.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcepPublicServices.\n",
        "properties": {
          "id": {
            "description": "The unique ID of the public VPC endpoint service.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "serviceId": {
            "type": "string"
          },
          "serviceName": {
            "description": "The name of the public VPC endpoint service.\n",
            "type": "string"
          },
          "services": {
            "description": "Indicates the public VPC endpoint services information. Structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetVpcepPublicServicesService:getVpcepPublicServicesService"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "region",
          "services"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getVpcs:getVpcs": {
      "description": "Use this data source to get a list of VPC.\n\n## Example Usage\n\nAn example filter by name and tag\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst vpcName = config.requireObject(\"vpcName\");\nconst vpc = flexibleengine.getVpcs({\n    name: vpcName,\n    tags: {\n        foo: \"bar\",\n    },\n});\nexport const vpcIds = vpc.then(vpc =\u003e vpc.vpcs.map(__item =\u003e __item.id));\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\nvpc_name = config.require_object(\"vpcName\")\nvpc = flexibleengine.get_vpcs(name=vpc_name,\n    tags={\n        \"foo\": \"bar\",\n    })\npulumi.export(\"vpcIds\", [__item.id for __item in vpc.vpcs])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var vpcName = config.RequireObject\u003cdynamic\u003e(\"vpcName\");\n    var vpc = Flexibleengine.GetVpcs.Invoke(new()\n    {\n        Name = vpcName,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcIds\"] = vpc.Apply(getVpcsResult =\u003e getVpcsResult.Vpcs).Select(__item =\u003e __item.Id).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nvpcName := cfg.RequireObject(\"vpcName\")\nvpc, err := flexibleengine.GetVpcs(ctx, \u0026flexibleengine.GetVpcsArgs{\nName: pulumi.StringRef(vpcName),\nTags: map[string]interface{}{\n\"foo\": \"bar\",\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"vpcIds\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ #-functions-%sflexibleengine:index-getVpcs:getVpcs.pp:8,11-25)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetVpcsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcName = config.get(\"vpcName\");\n        final var vpc = FlexibleengineFunctions.getVpcs(GetVpcsArgs.builder()\n            .name(vpcName)\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n        ctx.export(\"vpcIds\", vpc.applyValue(getVpcsResult -\u003e getVpcsResult.vpcs()).stream().map(element -\u003e element.id()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVpcs.\n",
        "properties": {
          "cidr": {
            "type": "string",
            "description": "Specifies the cidr block of the desired VPC.\n"
          },
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project ID which the desired VPC belongs to.\n"
          },
          "id": {
            "type": "string",
            "description": "Specifies the id of the desired VPC.\n"
          },
          "name": {
            "type": "string",
            "description": "Specifies the name of the desired VPC. The value is a string of no more than 64 characters\nand can contain digits, letters, underscores (_) and hyphens (-).\n"
          },
          "region": {
            "type": "string",
            "description": "Specifies the region in which to obtain the VPC. If omitted, the provider-level region\nwill be used.\n"
          },
          "status": {
            "type": "string",
            "description": "Specifies the current status of the desired VPC. The value can be CREATING, OK or ERROR.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the included key/value pairs which associated with the desired VPC.\n\n\u003e A maximum of 10 tag keys are allowed for each query operation. Each tag key can have up to 10 tag values.\nThe tag key cannot be left blank or set to an empty string. Each tag key must be unique, and each tag value in a\ntag must be unique, use commas(,) to separate the multiple values. An empty for values indicates any value.\nThe values are in the OR relationship.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpcs.\n",
        "properties": {
          "cidr": {
            "description": "Indicates the cidr block of the VPC.\n",
            "type": "string"
          },
          "enterpriseProjectId": {
            "description": "Indicates the the enterprise project ID of the VPC.\n",
            "type": "string"
          },
          "id": {
            "description": "Indicates the ID of the VPC.\n",
            "type": "string"
          },
          "name": {
            "description": "Indicates the name of the VPC.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "status": {
            "description": "Indicates the current status of the VPC.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Indicates the key/value pairs which associated with the VPC.\n",
            "type": "object"
          },
          "vpcs": {
            "description": "Indicates a list of all VPCs found. The vpcs Structure is documented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetVpcsVpc:getVpcsVpc"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "region",
          "vpcs"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getWafCertificate:getWafCertificate": {
      "description": "Get the certificate in the WAF, including the one pushed from SCM.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst certificate1 = flexibleengine.getWafCertificate({\n    name: \"certificate name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\ncertificate1 = flexibleengine.get_waf_certificate(name=\"certificate name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var certificate1 = Flexibleengine.GetWafCertificate.Invoke(new()\n    {\n        Name = \"certificate name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\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 := flexibleengine.LookupWafCertificate(ctx, \u0026flexibleengine.LookupWafCertificateArgs{\n\t\t\tName: \"certificate name\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetWafCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var certificate1 = FlexibleengineFunctions.getWafCertificate(GetWafCertificateArgs.builder()\n            .name(\"certificate name\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  certificate1:\n    fn::invoke:\n      function: flexibleengine:getWafCertificate\n      arguments:\n        name: certificate name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getWafCertificate.\n",
        "properties": {
          "enterpriseProjectId": {
            "type": "string"
          },
          "expireStatus": {
            "type": "number",
            "description": "The expired status of certificate. Defaults is **0**. The value can be:\n+ **0**: not expire.\n+ **1**: has expired.\n+ **2**: will be expired soon.\n"
          },
          "id": {
            "type": "string",
            "description": "The certificate ID in UUID format.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of certificate. The value is case-sensitive and supports fuzzy matching.\nThe certificate name is not unique. Only returns the last created one when matched multiple certificates.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the WAF. If omitted, the provider-level region will be\nused.\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getWafCertificate.\n",
        "properties": {
          "enterpriseProjectId": {
            "type": "string"
          },
          "expiration": {
            "description": "Indicates the time when the certificate expires.\n",
            "type": "string"
          },
          "expireStatus": {
            "type": "number"
          },
          "id": {
            "description": "The certificate ID in UUID format.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "expiration",
          "id",
          "name",
          "region"
        ],
        "type": "object"
      }
    },
    "flexibleengine:index/getWafDedicatedInstances:getWafDedicatedInstances": {
      "description": "Use this data source to get a list of WAF dedicated instances.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as flexibleengine from \"@pulumi/flexibleengine\";\n\nconst config = new pulumi.Config();\nconst instanceName = config.requireObject(\"instanceName\");\nconst instances = flexibleengine.getWafDedicatedInstances({\n    name: instanceName,\n});\n```\n```python\nimport pulumi\nimport pulumi_flexibleengine as flexibleengine\n\nconfig = pulumi.Config()\ninstance_name = config.require_object(\"instanceName\")\ninstances = flexibleengine.get_waf_dedicated_instances(name=instance_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Flexibleengine = Pulumi.Flexibleengine;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var instanceName = config.RequireObject\u003cdynamic\u003e(\"instanceName\");\n    var instances = Flexibleengine.GetWafDedicatedInstances.Invoke(new()\n    {\n        Name = instanceName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceName := cfg.RequireObject(\"instanceName\")\n\t\t_, err := flexibleengine.GetWafDedicatedInstances(ctx, \u0026flexibleengine.GetWafDedicatedInstancesArgs{\n\t\t\tName: pulumi.StringRef(instanceName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.flexibleengine.FlexibleengineFunctions;\nimport com.pulumi.flexibleengine.inputs.GetWafDedicatedInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceName = config.get(\"instanceName\");\n        final var instances = FlexibleengineFunctions.getWafDedicatedInstances(GetWafDedicatedInstancesArgs.builder()\n            .name(instanceName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceName:\n    type: dynamic\nvariables:\n  instances:\n    fn::invoke:\n      function: flexibleengine:getWafDedicatedInstances\n      arguments:\n        name: ${instanceName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getWafDedicatedInstances.\n",
        "properties": {
          "enterpriseProjectId": {
            "type": "string",
            "description": "Specifies the enterprise project id of the  WAF dedicated instance.\n"
          },
          "id": {
            "type": "string",
            "description": "The id of WAF dedicated instance.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of WAF dedicated instance.\n"
          },
          "region": {
            "type": "string",
            "description": "The region in which to query the WAF dedicated instance.\nIf omitted, the provider-level region will be used.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getWafDedicatedInstances.\n",
        "properties": {
          "enterpriseProjectId": {
            "type": "string"
          },
          "id": {
            "description": "The id of WAF dedicated instance.\n",
            "type": "string"
          },
          "instances": {
            "description": "An array of available WAF dedicated instances. The instances object structure is\ndocumented below.\n",
            "items": {
              "$ref": "#/types/flexibleengine:index%2FgetWafDedicatedInstancesInstance:getWafDedicatedInstancesInstance"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of WAF dedicated instance.\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "instances",
          "region"
        ],
        "type": "object"
      }
    }
  },
  "parameterization": {
    "baseProvider": {
      "name": "terraform-provider",
      "version": "0.10.0"
    },
    "parameter": "eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2ZsZXhpYmxlZW5naW5lY2xvdWQvZmxleGlibGVlbmdpbmUiLCJ2ZXJzaW9uIjoiMS40Ni4wIn19"
  }
}
