{
    "name": "formal",
    "displayName": "Formal",
    "description": "A Pulumi package for creating and managing Formal resources.",
    "keywords": [
        "formal",
        "category/cloud",
        "category/database",
        "category/network"
    ],
    "homepage": "https://joinformal.com",
    "license": "MPL-2.0",
    "attribution": "This Pulumi package is based on the [`formal` Terraform Provider](https://github.com/formalco/terraform-provider-formal).",
    "repository": "https://github.com/formalco/pulumi-formal",
    "logoUrl": "https://avatars3.githubusercontent.com/formalco",
    "pluginDownloadURL": "github://api.github.com/formalco",
    "publisher": "Formal",
    "meta": {
        "moduleFormat": "(.*)(?:/[^/]*)"
    },
    "language": {
        "csharp": {
            "packageReferences": {
                "Pulumi": "3.*"
            },
            "namespaces": {
                "formal": "Pulumi"
            },
            "compatibility": "tfbridge20",
            "rootNamespace": "Formal",
            "respectSchemaVersion": true
        },
        "go": {
            "importBasePath": "github.com/formalco/pulumi-formal/sdk/go/formal",
            "generateResourceContainerTypes": true,
            "generateExtraInputTypes": true,
            "respectSchemaVersion": true
        },
        "nodejs": {
            "packageName": "@formalco/pulumi",
            "packageDescription": "A Pulumi package for creating and managing Formal resources.",
            "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/formalco/terraform-provider-formal)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-formal` repo](https://github.com/formalco/pulumi-formal/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-formal` repo](https://github.com/formalco/terraform-provider-formal/issues).",
            "compatibility": "tfbridge20",
            "disableUnionOutputTypes": true,
            "respectSchemaVersion": true
        },
        "python": {
            "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/formalco/terraform-provider-formal)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-formal` repo](https://github.com/formalco/pulumi-formal/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-formal` repo](https://github.com/formalco/terraform-provider-formal/issues).",
            "compatibility": "tfbridge20",
            "respectSchemaVersion": true,
            "pyproject": {
                "enabled": true
            }
        }
    },
    "config": {
        "variables": {
            "apiKey": {
                "type": "string"
            },
            "retrieveSensitiveValues": {
                "type": "boolean"
            }
        }
    },
    "types": {
        "formal:index/ConnectorAiProviderAnthropic:ConnectorAiProviderAnthropic": {
            "properties": {
                "apiKey": {
                    "type": "string",
                    "description": "**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nThe API key. This value is not stored in Terraform state.\n",
                    "secret": true
                },
                "apiKeyVersion": {
                    "type": "integer",
                    "description": "Version trigger for \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\" pulumi-lang-hcl=\"`api_key`\"\u003e`apiKey`\u003c/span\u003e. Increment this value to update the key.\n"
                }
            },
            "type": "object",
            "required": [
                "apiKey",
                "apiKeyVersion"
            ]
        },
        "formal:index/ConnectorAiProviderAwsBedrock:ConnectorAiProviderAwsBedrock": {
            "properties": {
                "region": {
                    "type": "string",
                    "description": "The AWS region.\n"
                }
            },
            "type": "object",
            "required": [
                "region"
            ]
        },
        "formal:index/ConnectorAiProviderAzureAi:ConnectorAiProviderAzureAi": {
            "properties": {
                "apiKey": {
                    "type": "string",
                    "description": "**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nThe API key. This value is not stored in Terraform state.\n",
                    "secret": true
                },
                "apiKeyVersion": {
                    "type": "integer",
                    "description": "Version trigger for \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\" pulumi-lang-hcl=\"`api_key`\"\u003e`apiKey`\u003c/span\u003e. Increment this value to update the key.\n"
                },
                "endpoint": {
                    "type": "string",
                    "description": "The Azure AI Foundry endpoint URL.\n"
                }
            },
            "type": "object",
            "required": [
                "apiKey",
                "apiKeyVersion",
                "endpoint"
            ]
        },
        "formal:index/ConnectorAiProviderFormalAiSatellite:ConnectorAiProviderFormalAiSatellite": {
            "type": "object"
        },
        "formal:index/ConnectorAiProviderGemini:ConnectorAiProviderGemini": {
            "properties": {
                "apiKey": {
                    "type": "string",
                    "description": "**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nThe API key. This value is not stored in Terraform state.\n",
                    "secret": true
                },
                "apiKeyVersion": {
                    "type": "integer",
                    "description": "Version trigger for \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\" pulumi-lang-hcl=\"`api_key`\"\u003e`apiKey`\u003c/span\u003e. Increment this value to update the key.\n"
                }
            },
            "type": "object",
            "required": [
                "apiKey",
                "apiKeyVersion"
            ]
        },
        "formal:index/ConnectorAiProviderGoogleVertexAi:ConnectorAiProviderGoogleVertexAi": {
            "properties": {
                "gcpProjectId": {
                    "type": "string",
                    "description": "The GCP project ID.\n"
                },
                "region": {
                    "type": "string",
                    "description": "The GCP region.\n"
                }
            },
            "type": "object",
            "required": [
                "gcpProjectId",
                "region"
            ]
        },
        "formal:index/ConnectorAiProviderOpenai:ConnectorAiProviderOpenai": {
            "properties": {
                "apiKey": {
                    "type": "string",
                    "description": "**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nThe API key. This value is not stored in Terraform state.\n",
                    "secret": true
                },
                "apiKeyVersion": {
                    "type": "integer",
                    "description": "Version trigger for \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\" pulumi-lang-hcl=\"`api_key`\"\u003e`apiKey`\u003c/span\u003e. Increment this value to update the key.\n"
                }
            },
            "type": "object",
            "required": [
                "apiKey",
                "apiKeyVersion"
            ]
        },
        "formal:index/FormField:FormField": {
            "properties": {
                "config": {
                    "$ref": "#/types/formal:index/FormFieldConfig:FormFieldConfig",
                    "description": "Optional field configuration for select-like field types.\n"
                },
                "id": {
                    "type": "string",
                    "description": "Unique field identifier.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Display name of the field.\n"
                },
                "type": {
                    "type": "string",
                    "description": "Field type.\n"
                }
            },
            "type": "object",
            "required": [
                "id",
                "name",
                "type"
            ]
        },
        "formal:index/FormFieldConfig:FormFieldConfig": {
            "properties": {
                "options": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/formal:index/FormFieldConfigOption:FormFieldConfigOption"
                    },
                    "description": "Static options for select-like fields.\n"
                },
                "optionsSource": {
                    "$ref": "#/types/formal:index/FormFieldConfigOptionsSource:FormFieldConfigOptionsSource",
                    "description": "Dynamic source used to fetch options.\n"
                }
            },
            "type": "object"
        },
        "formal:index/FormFieldConfigOption:FormFieldConfigOption": {
            "properties": {
                "label": {
                    "type": "string",
                    "description": "Option label.\n"
                },
                "value": {
                    "type": "string",
                    "description": "Option value.\n"
                }
            },
            "type": "object",
            "required": [
                "label",
                "value"
            ]
        },
        "formal:index/FormFieldConfigOptionsSource:FormFieldConfigOptionsSource": {
            "properties": {
                "app": {
                    "type": "string",
                    "description": "Service/app name used to fetch options.\n"
                },
                "command": {
                    "$ref": "#/types/formal:index/FormFieldConfigOptionsSourceCommand:FormFieldConfigOptionsSourceCommand",
                    "description": "Command configuration for options retrieval.\n"
                },
                "input": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Optional payload for options retrieval.\n"
                },
                "inputJson": {
                    "type": "string",
                    "description": "Optional payload for options retrieval as a JSON object string. Use this when the payload contains non-string JSON values such as numbers, booleans, arrays, or nested objects. Mutually exclusive with input.\n"
                },
                "machineUserId": {
                    "type": "string",
                    "description": "Machine user used to authenticate options retrieval.\n"
                },
                "transform": {
                    "type": "string",
                    "description": "CEL expression that transforms the response into options.\n"
                }
            },
            "type": "object",
            "required": [
                "app",
                "command",
                "machineUserId",
                "transform"
            ]
        },
        "formal:index/FormFieldConfigOptionsSourceCommand:FormFieldConfigOptionsSourceCommand": {
            "properties": {
                "name": {
                    "type": "string",
                    "description": "Command name.\n"
                }
            },
            "type": "object",
            "required": [
                "name"
            ]
        },
        "formal:index/IntegrationBiMetabase:IntegrationBiMetabase": {
            "properties": {
                "hostname": {
                    "type": "string",
                    "description": "Metabase server hostname. Required when `sync=true`.\n",
                    "willReplaceOnChanges": true
                },
                "password": {
                    "type": "string",
                    "description": "Metabase admin password. Required when `sync=true`.\n",
                    "willReplaceOnChanges": true
                },
                "username": {
                    "type": "string",
                    "description": "Metabase admin username. Required when `sync=true`.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object"
        },
        "formal:index/IntegrationCloudAws:IntegrationCloudAws": {
            "properties": {
                "allowS3Access": {
                    "type": "boolean",
                    "description": "Allows the Cloud Integration to access S3 buckets for Log Integrations.\n"
                },
                "autodiscoveryRegions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The regions to enable resource autodiscovery for.\n"
                },
                "awsCustomerRoleArn": {
                    "type": "string",
                    "description": "The ARN of the IAM role that Formal assumes in your AWS account to access your resources.\n"
                },
                "enableEc2Autodiscovery": {
                    "type": "boolean",
                    "description": "Enables resource autodiscovery for EC2 instances.\n"
                },
                "enableEcsAutodiscovery": {
                    "type": "boolean",
                    "description": "Enables resource autodiscovery for ECS clusters.\n"
                },
                "enableEksAutodiscovery": {
                    "type": "boolean",
                    "description": "Enables resource autodiscovery for EKS clusters.\n"
                },
                "enableRdsAutodiscovery": {
                    "type": "boolean",
                    "description": "Enables resource autodiscovery for RDS instances (PostgreSQL, MySQL, MongoDB).\n"
                },
                "enableRedshiftAutodiscovery": {
                    "type": "boolean",
                    "description": "Enables resource autodiscovery for Redshift clusters.\n"
                },
                "enableS3Autodiscovery": {
                    "type": "boolean",
                    "description": "Enables resource autodiscovery for S3 buckets.\n"
                },
                "s3BucketArn": {
                    "type": "string",
                    "description": "The S3 bucket ARN this Cloud Integration is allowed to use for Log Integrations.\n"
                },
                "templateVersion": {
                    "type": "string",
                    "description": "The template version of the CloudFormation stack. Use \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\" pulumi-lang-hcl=\"`latest`\"\u003e`latest`\u003c/span\u003e to stay in sync.\n"
                }
            },
            "type": "object",
            "required": [
                "templateVersion"
            ],
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "autodiscoveryRegions",
                        "templateVersion"
                    ]
                }
            }
        },
        "formal:index/IntegrationLogAwsS3:IntegrationLogAwsS3": {
            "properties": {
                "cloudIntegrationId": {
                    "type": "string",
                    "description": "Cloud Integration ID.\n"
                },
                "region": {
                    "type": "string",
                    "description": "AWS Region.\n"
                },
                "s3BucketName": {
                    "type": "string",
                    "description": "AWS S3 Bucket Name.\n"
                },
                "s3BucketPrefix": {
                    "type": "string",
                    "description": "AWS S3 bucket prefix to write logs under. Defaults to the bucket root.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "cloudIntegrationId",
                "s3BucketName"
            ],
            "language": {
                "nodejs": {
                    "requiredOutputs": [
                        "cloudIntegrationId",
                        "region",
                        "s3BucketName"
                    ]
                }
            }
        },
        "formal:index/IntegrationLogDatadog:IntegrationLogDatadog": {
            "properties": {
                "accountId": {
                    "type": "string",
                    "description": "Account ID of Datadog.\n"
                },
                "apiKey": {
                    "type": "string",
                    "description": "API Key of Datadog.\n"
                },
                "site": {
                    "type": "string",
                    "description": "URL of your Datadog app.\n"
                }
            },
            "type": "object",
            "required": [
                "accountId",
                "apiKey",
                "site"
            ]
        },
        "formal:index/IntegrationLogSplunk:IntegrationLogSplunk": {
            "properties": {
                "accessToken": {
                    "type": "string",
                    "description": "Access Token of Splunk.\n"
                },
                "host": {
                    "type": "string",
                    "description": "URL of your Splunk app.\n"
                },
                "port": {
                    "type": "integer",
                    "description": "Port of your Splunk app.\n"
                }
            },
            "type": "object",
            "required": [
                "accessToken",
                "host",
                "port"
            ]
        },
        "formal:index/IntegrationMdmKandji:IntegrationMdmKandji": {
            "properties": {
                "apiKey": {
                    "type": "string",
                    "description": "API Key of your Kandji organization.\n"
                },
                "apiUrl": {
                    "type": "string",
                    "description": "API URL of your Kandji organization.\n"
                }
            },
            "type": "object",
            "required": [
                "apiKey",
                "apiUrl"
            ]
        },
        "formal:index/LogConfigurationRequest:LogConfigurationRequest": {
            "properties": {
                "encrypt": {
                    "type": "boolean",
                    "description": "Whether to encrypt request payloads.\n"
                },
                "maxPayloadSize": {
                    "type": "integer",
                    "description": "Maximum size of request payloads to log.\n"
                },
                "policyEvalInputRetention": {
                    "type": "string",
                    "description": "Duration to retain policy evaluation inputs for requests. Valid values: 1d, 2d, 3d, 7d, 14d, 21d, 30d.\n"
                },
                "sql": {
                    "$ref": "#/types/formal:index/LogConfigurationRequestSql:LogConfigurationRequestSql",
                    "description": "SQL logging configuration for requests.\n"
                }
            },
            "type": "object",
            "required": [
                "encrypt"
            ]
        },
        "formal:index/LogConfigurationRequestSql:LogConfigurationRequestSql": {
            "properties": {
                "encrypt": {
                    "type": "boolean",
                    "description": "Whether to encrypt SQL queries in logs.\n"
                },
                "stripValues": {
                    "type": "boolean",
                    "description": "Whether to obfuscate SQL queries in logs.\n"
                }
            },
            "type": "object",
            "required": [
                "encrypt",
                "stripValues"
            ]
        },
        "formal:index/LogConfigurationResponse:LogConfigurationResponse": {
            "properties": {
                "encrypt": {
                    "type": "boolean",
                    "description": "Whether to encrypt response payloads.\n"
                },
                "maxPayloadSize": {
                    "type": "integer",
                    "description": "Maximum size of response payloads to log.\n"
                },
                "policyEvalInputRetention": {
                    "type": "string",
                    "description": "Duration to retain policy evaluation inputs for responses. Valid values: 1d, 2d, 3d, 7d, 14d, 21d, 30d.\n"
                }
            },
            "type": "object",
            "required": [
                "encrypt"
            ]
        },
        "formal:index/LogConfigurationScope:LogConfigurationScope": {
            "properties": {
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the connector (required when type is connector).\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "The ID of the resource (required when type is resource).\n"
                },
                "spaceId": {
                    "type": "string",
                    "description": "The ID of the space (required when type is space).\n"
                },
                "type": {
                    "type": "string",
                    "description": "The type of scope (resource, connector, space, org).\n"
                }
            },
            "type": "object",
            "required": [
                "type"
            ]
        },
        "formal:index/LogConfigurationSession:LogConfigurationSession": {
            "properties": {
                "policyEvalInputRetention": {
                    "type": "string",
                    "description": "Duration to retain policy evaluation inputs for sessions. Valid values: 1d, 2d, 3d, 7d, 14d, 21d, 30d.\n"
                }
            },
            "type": "object"
        },
        "formal:index/LogConfigurationStream:LogConfigurationStream": {
            "properties": {
                "encrypt": {
                    "type": "boolean",
                    "description": "Whether to encrypt stream data.\n"
                }
            },
            "type": "object",
            "required": [
                "encrypt"
            ]
        }
    },
    "provider": {
        "description": "The provider type for the formal package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
        "properties": {
            "apiKey": {
                "type": "string"
            },
            "retrieveSensitiveValues": {
                "type": "boolean"
            }
        },
        "inputProperties": {
            "apiKey": {
                "type": "string"
            },
            "retrieveSensitiveValues": {
                "type": "boolean"
            }
        },
        "methods": {
            "terraformConfig": "pulumi:providers:formal/terraformConfig"
        }
    },
    "resources": {
        "formal:index/connector:Connector": {
            "description": "Registering a Connector with Formal.\n",
            "properties": {
                "apiKey": {
                    "type": "string",
                    "description": "Api key for the deployed Connector.\n",
                    "secret": true
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for this Connector.\n"
                },
                "spaceId": {
                    "type": "string",
                    "description": "The ID of the Space to create the Connector in.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Connector cannot be deleted.\n"
                }
            },
            "required": [
                "apiKey",
                "name"
            ],
            "inputProperties": {
                "name": {
                    "type": "string",
                    "description": "Friendly name for this Connector.\n"
                },
                "spaceId": {
                    "type": "string",
                    "description": "The ID of the Space to create the Connector in.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Connector cannot be deleted.\n"
                }
            },
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Connector resources.\n",
                "properties": {
                    "apiKey": {
                        "type": "string",
                        "description": "Api key for the deployed Connector.\n",
                        "secret": true
                    },
                    "name": {
                        "type": "string",
                        "description": "Friendly name for this Connector.\n"
                    },
                    "spaceId": {
                        "type": "string",
                        "description": "The ID of the Space to create the Connector in.\n"
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this Connector cannot be deleted.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/connectorAiProvider:ConnectorAiProvider": {
            "description": "Configures the AI provider for a connector's session analyzer.\n",
            "properties": {
                "anthropic": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderAnthropic:ConnectorAiProviderAnthropic",
                    "description": "Use Anthropic as the provider."
                },
                "awsBedrock": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderAwsBedrock:ConnectorAiProviderAwsBedrock",
                    "description": "Use AWS Bedrock as the provider."
                },
                "azureAi": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderAzureAi:ConnectorAiProviderAzureAi",
                    "description": "Use Azure AI Foundry as the provider."
                },
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the connector this AI provider is linked to.\n"
                },
                "formalAiSatellite": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderFormalAiSatellite:ConnectorAiProviderFormalAiSatellite",
                    "description": "Use the Formal AI satellite as the provider."
                },
                "gemini": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderGemini:ConnectorAiProviderGemini",
                    "description": "Use Google Gemini as the provider."
                },
                "googleVertexAi": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderGoogleVertexAi:ConnectorAiProviderGoogleVertexAi",
                    "description": "Use Google Vertex AI as the provider."
                },
                "openai": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderOpenai:ConnectorAiProviderOpenai",
                    "description": "Use OpenAI as the provider."
                }
            },
            "required": [
                "connectorId"
            ],
            "inputProperties": {
                "anthropic": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderAnthropic:ConnectorAiProviderAnthropic",
                    "description": "Use Anthropic as the provider."
                },
                "awsBedrock": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderAwsBedrock:ConnectorAiProviderAwsBedrock",
                    "description": "Use AWS Bedrock as the provider."
                },
                "azureAi": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderAzureAi:ConnectorAiProviderAzureAi",
                    "description": "Use Azure AI Foundry as the provider."
                },
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the connector this AI provider is linked to.\n",
                    "willReplaceOnChanges": true
                },
                "formalAiSatellite": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderFormalAiSatellite:ConnectorAiProviderFormalAiSatellite",
                    "description": "Use the Formal AI satellite as the provider."
                },
                "gemini": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderGemini:ConnectorAiProviderGemini",
                    "description": "Use Google Gemini as the provider."
                },
                "googleVertexAi": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderGoogleVertexAi:ConnectorAiProviderGoogleVertexAi",
                    "description": "Use Google Vertex AI as the provider."
                },
                "openai": {
                    "$ref": "#/types/formal:index/ConnectorAiProviderOpenai:ConnectorAiProviderOpenai",
                    "description": "Use OpenAI as the provider."
                }
            },
            "requiredInputs": [
                "connectorId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ConnectorAiProvider resources.\n",
                "properties": {
                    "anthropic": {
                        "$ref": "#/types/formal:index/ConnectorAiProviderAnthropic:ConnectorAiProviderAnthropic",
                        "description": "Use Anthropic as the provider."
                    },
                    "awsBedrock": {
                        "$ref": "#/types/formal:index/ConnectorAiProviderAwsBedrock:ConnectorAiProviderAwsBedrock",
                        "description": "Use AWS Bedrock as the provider."
                    },
                    "azureAi": {
                        "$ref": "#/types/formal:index/ConnectorAiProviderAzureAi:ConnectorAiProviderAzureAi",
                        "description": "Use Azure AI Foundry as the provider."
                    },
                    "connectorId": {
                        "type": "string",
                        "description": "The ID of the connector this AI provider is linked to.\n",
                        "willReplaceOnChanges": true
                    },
                    "formalAiSatellite": {
                        "$ref": "#/types/formal:index/ConnectorAiProviderFormalAiSatellite:ConnectorAiProviderFormalAiSatellite",
                        "description": "Use the Formal AI satellite as the provider."
                    },
                    "gemini": {
                        "$ref": "#/types/formal:index/ConnectorAiProviderGemini:ConnectorAiProviderGemini",
                        "description": "Use Google Gemini as the provider."
                    },
                    "googleVertexAi": {
                        "$ref": "#/types/formal:index/ConnectorAiProviderGoogleVertexAi:ConnectorAiProviderGoogleVertexAi",
                        "description": "Use Google Vertex AI as the provider."
                    },
                    "openai": {
                        "$ref": "#/types/formal:index/ConnectorAiProviderOpenai:ConnectorAiProviderOpenai",
                        "description": "Use OpenAI as the provider."
                    }
                },
                "type": "object"
            }
        },
        "formal:index/connectorConfiguration:ConnectorConfiguration": {
            "description": "Registering a Connector Configuration with Formal.\n",
            "properties": {
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the Connector this configuration is linked to.\n"
                },
                "logLevel": {
                    "type": "string",
                    "description": "The log level to be configured for this Connector.\n"
                },
                "otelEndpointHostname": {
                    "type": "string",
                    "description": "The OpenTelemetry endpoint hostname for this Connector. Defaults to 'localhost'.\n"
                },
                "otelEndpointPort": {
                    "type": "integer",
                    "description": "The OpenTelemetry endpoint port for this Connector. Defaults to 4317.\n"
                },
                "resourcesHealthChecksFrequency": {
                    "type": "integer",
                    "description": "The frequency in seconds for resource health checks. Must be between 10 and 3600 seconds. Defaults to 60.\n"
                }
            },
            "required": [
                "connectorId"
            ],
            "inputProperties": {
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the Connector this configuration is linked to.\n",
                    "willReplaceOnChanges": true
                },
                "logLevel": {
                    "type": "string",
                    "description": "The log level to be configured for this Connector.\n"
                },
                "otelEndpointHostname": {
                    "type": "string",
                    "description": "The OpenTelemetry endpoint hostname for this Connector. Defaults to 'localhost'.\n"
                },
                "otelEndpointPort": {
                    "type": "integer",
                    "description": "The OpenTelemetry endpoint port for this Connector. Defaults to 4317.\n"
                },
                "resourcesHealthChecksFrequency": {
                    "type": "integer",
                    "description": "The frequency in seconds for resource health checks. Must be between 10 and 3600 seconds. Defaults to 60.\n"
                }
            },
            "requiredInputs": [
                "connectorId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ConnectorConfiguration resources.\n",
                "properties": {
                    "connectorId": {
                        "type": "string",
                        "description": "The ID of the Connector this configuration is linked to.\n",
                        "willReplaceOnChanges": true
                    },
                    "logLevel": {
                        "type": "string",
                        "description": "The log level to be configured for this Connector.\n"
                    },
                    "otelEndpointHostname": {
                        "type": "string",
                        "description": "The OpenTelemetry endpoint hostname for this Connector. Defaults to 'localhost'.\n"
                    },
                    "otelEndpointPort": {
                        "type": "integer",
                        "description": "The OpenTelemetry endpoint port for this Connector. Defaults to 4317.\n"
                    },
                    "resourcesHealthChecksFrequency": {
                        "type": "integer",
                        "description": "The frequency in seconds for resource health checks. Must be between 10 and 3600 seconds. Defaults to 60.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/connectorHostname:ConnectorHostname": {
            "description": "Registering a Connector Hostname with Formal.\n",
            "properties": {
                "certificate": {
                    "type": "string",
                    "description": "The TLS certificate for this hostname. It should be in PEM format and only be set if the hostname is not managed by Formal.\n",
                    "secret": true
                },
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the Connector this hostname is linked to.\n"
                },
                "dnsRecord": {
                    "type": "string",
                    "description": "The DNS record for this hostname.\n"
                },
                "dnsRecordStatus": {
                    "type": "string",
                    "description": "The status of the DNS record for this hostname. Accepted values are \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\" pulumi-lang-hcl=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pending`\" pulumi-lang-dotnet=\"`Pending`\" pulumi-lang-go=\"`pending`\" pulumi-lang-python=\"`pending`\" pulumi-lang-yaml=\"`pending`\" pulumi-lang-java=\"`pending`\" pulumi-lang-hcl=\"`pending`\"\u003e`pending`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\" pulumi-lang-hcl=\"`success`\"\u003e`success`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`failed`\" pulumi-lang-dotnet=\"`Failed`\" pulumi-lang-go=\"`failed`\" pulumi-lang-python=\"`failed`\" pulumi-lang-yaml=\"`failed`\" pulumi-lang-java=\"`failed`\" pulumi-lang-hcl=\"`failed`\"\u003e`failed`\u003c/span\u003e.\n"
                },
                "hostname": {
                    "type": "string",
                    "description": "The hostname for this Connector hostname.\n"
                },
                "managedTls": {
                    "type": "boolean",
                    "description": "Deprecated: If set to true, Formal will manage the TLS certificate for this hostname.\n",
                    "deprecationMessage": "This field is deprecated and has no effect. It will be removed in a future release."
                },
                "privateKey": {
                    "type": "string",
                    "description": "The TLS private key for this hostname. It should be in PEM format and only be set if the hostname is not managed by Formal.\n",
                    "secret": true
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this connector hostname cannot be deleted.\n"
                },
                "tlsCertificateStatus": {
                    "type": "string",
                    "description": "The status of the TLS certificate for this hostname. Accepted values are \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\" pulumi-lang-hcl=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`issuing`\" pulumi-lang-dotnet=\"`Issuing`\" pulumi-lang-go=\"`issuing`\" pulumi-lang-python=\"`issuing`\" pulumi-lang-yaml=\"`issuing`\" pulumi-lang-java=\"`issuing`\" pulumi-lang-hcl=\"`issuing`\"\u003e`issuing`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`issued`\" pulumi-lang-dotnet=\"`Issued`\" pulumi-lang-go=\"`issued`\" pulumi-lang-python=\"`issued`\" pulumi-lang-yaml=\"`issued`\" pulumi-lang-java=\"`issued`\" pulumi-lang-hcl=\"`issued`\"\u003e`issued`\u003c/span\u003e.\n"
                }
            },
            "required": [
                "connectorId",
                "dnsRecordStatus",
                "hostname",
                "tlsCertificateStatus"
            ],
            "inputProperties": {
                "certificate": {
                    "type": "string",
                    "description": "The TLS certificate for this hostname. It should be in PEM format and only be set if the hostname is not managed by Formal.\n",
                    "secret": true
                },
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the Connector this hostname is linked to.\n",
                    "willReplaceOnChanges": true
                },
                "dnsRecord": {
                    "type": "string",
                    "description": "The DNS record for this hostname.\n"
                },
                "hostname": {
                    "type": "string",
                    "description": "The hostname for this Connector hostname.\n",
                    "willReplaceOnChanges": true
                },
                "managedTls": {
                    "type": "boolean",
                    "description": "Deprecated: If set to true, Formal will manage the TLS certificate for this hostname.\n",
                    "deprecationMessage": "This field is deprecated and has no effect. It will be removed in a future release."
                },
                "privateKey": {
                    "type": "string",
                    "description": "The TLS private key for this hostname. It should be in PEM format and only be set if the hostname is not managed by Formal.\n",
                    "secret": true
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this connector hostname cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "connectorId",
                "hostname"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ConnectorHostname resources.\n",
                "properties": {
                    "certificate": {
                        "type": "string",
                        "description": "The TLS certificate for this hostname. It should be in PEM format and only be set if the hostname is not managed by Formal.\n",
                        "secret": true
                    },
                    "connectorId": {
                        "type": "string",
                        "description": "The ID of the Connector this hostname is linked to.\n",
                        "willReplaceOnChanges": true
                    },
                    "dnsRecord": {
                        "type": "string",
                        "description": "The DNS record for this hostname.\n"
                    },
                    "dnsRecordStatus": {
                        "type": "string",
                        "description": "The status of the DNS record for this hostname. Accepted values are \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\" pulumi-lang-hcl=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pending`\" pulumi-lang-dotnet=\"`Pending`\" pulumi-lang-go=\"`pending`\" pulumi-lang-python=\"`pending`\" pulumi-lang-yaml=\"`pending`\" pulumi-lang-java=\"`pending`\" pulumi-lang-hcl=\"`pending`\"\u003e`pending`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\" pulumi-lang-hcl=\"`success`\"\u003e`success`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`failed`\" pulumi-lang-dotnet=\"`Failed`\" pulumi-lang-go=\"`failed`\" pulumi-lang-python=\"`failed`\" pulumi-lang-yaml=\"`failed`\" pulumi-lang-java=\"`failed`\" pulumi-lang-hcl=\"`failed`\"\u003e`failed`\u003c/span\u003e.\n"
                    },
                    "hostname": {
                        "type": "string",
                        "description": "The hostname for this Connector hostname.\n",
                        "willReplaceOnChanges": true
                    },
                    "managedTls": {
                        "type": "boolean",
                        "description": "Deprecated: If set to true, Formal will manage the TLS certificate for this hostname.\n",
                        "deprecationMessage": "This field is deprecated and has no effect. It will be removed in a future release."
                    },
                    "privateKey": {
                        "type": "string",
                        "description": "The TLS private key for this hostname. It should be in PEM format and only be set if the hostname is not managed by Formal.\n",
                        "secret": true
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this connector hostname cannot be deleted.\n"
                    },
                    "tlsCertificateStatus": {
                        "type": "string",
                        "description": "The status of the TLS certificate for this hostname. Accepted values are \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\" pulumi-lang-hcl=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`issuing`\" pulumi-lang-dotnet=\"`Issuing`\" pulumi-lang-go=\"`issuing`\" pulumi-lang-python=\"`issuing`\" pulumi-lang-yaml=\"`issuing`\" pulumi-lang-java=\"`issuing`\" pulumi-lang-hcl=\"`issuing`\"\u003e`issuing`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`issued`\" pulumi-lang-dotnet=\"`Issued`\" pulumi-lang-go=\"`issued`\" pulumi-lang-python=\"`issued`\" pulumi-lang-yaml=\"`issued`\" pulumi-lang-java=\"`issued`\" pulumi-lang-hcl=\"`issued`\"\u003e`issued`\u003c/span\u003e.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/connectorListener:ConnectorListener": {
            "description": "Registering a Connector Listener with Formal.\n",
            "properties": {
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the connector this listener is associated with.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the connector listener.\n"
                },
                "port": {
                    "type": "integer",
                    "description": "The listening port for this connector listener.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this connector listener cannot be deleted.\n"
                }
            },
            "required": [
                "name",
                "port"
            ],
            "inputProperties": {
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the connector this listener is associated with.\n",
                    "willReplaceOnChanges": true
                },
                "name": {
                    "type": "string",
                    "description": "The name of the connector listener.\n",
                    "willReplaceOnChanges": true
                },
                "port": {
                    "type": "integer",
                    "description": "The listening port for this connector listener.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this connector listener cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "port"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ConnectorListener resources.\n",
                "properties": {
                    "connectorId": {
                        "type": "string",
                        "description": "The ID of the connector this listener is associated with.\n",
                        "willReplaceOnChanges": true
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the connector listener.\n",
                        "willReplaceOnChanges": true
                    },
                    "port": {
                        "type": "integer",
                        "description": "The listening port for this connector listener.\n"
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this connector listener cannot be deleted.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/connectorListenerLink:ConnectorListenerLink": {
            "description": "Registering a Connector Listener Link with Formal.\n",
            "properties": {
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the Connector Listener you want to link to a connector.\n"
                },
                "connectorListenerId": {
                    "type": "string",
                    "description": "The ID of the Connector Listener you want to link to a connector.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this connector cannot be deleted.\n"
                }
            },
            "required": [
                "connectorId",
                "connectorListenerId"
            ],
            "inputProperties": {
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the Connector Listener you want to link to a connector.\n",
                    "willReplaceOnChanges": true
                },
                "connectorListenerId": {
                    "type": "string",
                    "description": "The ID of the Connector Listener you want to link to a connector.\n",
                    "willReplaceOnChanges": true
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this connector cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "connectorId",
                "connectorListenerId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ConnectorListenerLink resources.\n",
                "properties": {
                    "connectorId": {
                        "type": "string",
                        "description": "The ID of the Connector Listener you want to link to a connector.\n",
                        "willReplaceOnChanges": true
                    },
                    "connectorListenerId": {
                        "type": "string",
                        "description": "The ID of the Connector Listener you want to link to a connector.\n",
                        "willReplaceOnChanges": true
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this connector cannot be deleted.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/connectorListenerRule:ConnectorListenerRule": {
            "description": "Registering a Connector Listener Rule with Formal.\n",
            "properties": {
                "connectorListenerId": {
                    "type": "string",
                    "description": "The ID of the listener this rule is associated with.\n"
                },
                "rule": {
                    "type": "string",
                    "description": "The rule to apply to the listener. It should be either the id of the resource or the name of the technology.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this connector listener rule cannot be deleted.\n"
                },
                "type": {
                    "type": "string",
                    "description": "The type of the rule. It can be either \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\" pulumi-lang-hcl=\"`any`\"\u003e`any`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`resource`\" pulumi-lang-dotnet=\"`Resource`\" pulumi-lang-go=\"`resource`\" pulumi-lang-python=\"`resource`\" pulumi-lang-yaml=\"`resource`\" pulumi-lang-java=\"`resource`\" pulumi-lang-hcl=\"`resource`\"\u003e`resource`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`technology`\" pulumi-lang-dotnet=\"`Technology`\" pulumi-lang-go=\"`technology`\" pulumi-lang-python=\"`technology`\" pulumi-lang-yaml=\"`technology`\" pulumi-lang-java=\"`technology`\" pulumi-lang-hcl=\"`technology`\"\u003e`technology`\u003c/span\u003e\n"
                }
            },
            "required": [
                "connectorListenerId",
                "rule",
                "type"
            ],
            "inputProperties": {
                "connectorListenerId": {
                    "type": "string",
                    "description": "The ID of the listener this rule is associated with.\n",
                    "willReplaceOnChanges": true
                },
                "rule": {
                    "type": "string",
                    "description": "The rule to apply to the listener. It should be either the id of the resource or the name of the technology.\n",
                    "willReplaceOnChanges": true
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this connector listener rule cannot be deleted.\n"
                },
                "type": {
                    "type": "string",
                    "description": "The type of the rule. It can be either \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\" pulumi-lang-hcl=\"`any`\"\u003e`any`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`resource`\" pulumi-lang-dotnet=\"`Resource`\" pulumi-lang-go=\"`resource`\" pulumi-lang-python=\"`resource`\" pulumi-lang-yaml=\"`resource`\" pulumi-lang-java=\"`resource`\" pulumi-lang-hcl=\"`resource`\"\u003e`resource`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`technology`\" pulumi-lang-dotnet=\"`Technology`\" pulumi-lang-go=\"`technology`\" pulumi-lang-python=\"`technology`\" pulumi-lang-yaml=\"`technology`\" pulumi-lang-java=\"`technology`\" pulumi-lang-hcl=\"`technology`\"\u003e`technology`\u003c/span\u003e\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "connectorListenerId",
                "rule",
                "type"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ConnectorListenerRule resources.\n",
                "properties": {
                    "connectorListenerId": {
                        "type": "string",
                        "description": "The ID of the listener this rule is associated with.\n",
                        "willReplaceOnChanges": true
                    },
                    "rule": {
                        "type": "string",
                        "description": "The rule to apply to the listener. It should be either the id of the resource or the name of the technology.\n",
                        "willReplaceOnChanges": true
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this connector listener rule cannot be deleted.\n"
                    },
                    "type": {
                        "type": "string",
                        "description": "The type of the rule. It can be either \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\" pulumi-lang-hcl=\"`any`\"\u003e`any`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`resource`\" pulumi-lang-dotnet=\"`Resource`\" pulumi-lang-go=\"`resource`\" pulumi-lang-python=\"`resource`\" pulumi-lang-yaml=\"`resource`\" pulumi-lang-java=\"`resource`\" pulumi-lang-hcl=\"`resource`\"\u003e`resource`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`technology`\" pulumi-lang-dotnet=\"`Technology`\" pulumi-lang-go=\"`technology`\" pulumi-lang-python=\"`technology`\" pulumi-lang-yaml=\"`technology`\" pulumi-lang-java=\"`technology`\" pulumi-lang-hcl=\"`technology`\"\u003e`technology`\u003c/span\u003e\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "formal:index/connectorSatelliteLink:ConnectorSatelliteLink": {
            "description": "Link a Connector to a Satellite.\n",
            "properties": {
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the Connector to link to the satellite.\n"
                },
                "createdAt": {
                    "type": "string",
                    "description": "The timestamp when the connector satellite link was created.\n"
                },
                "satelliteId": {
                    "type": "string",
                    "description": "The ID of the Satellite to link to the connector.\n"
                },
                "satelliteType": {
                    "type": "string",
                    "description": "The type of satellite being linked. Must be one of: \u003cspan pulumi-lang-nodejs=\"`ai`\" pulumi-lang-dotnet=\"`Ai`\" pulumi-lang-go=\"`ai`\" pulumi-lang-python=\"`ai`\" pulumi-lang-yaml=\"`ai`\" pulumi-lang-java=\"`ai`\" pulumi-lang-hcl=\"`ai`\"\u003e`ai`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dataClassifier`\" pulumi-lang-dotnet=\"`DataClassifier`\" pulumi-lang-go=\"`dataClassifier`\" pulumi-lang-python=\"`data_classifier`\" pulumi-lang-yaml=\"`dataClassifier`\" pulumi-lang-java=\"`dataClassifier`\" pulumi-lang-hcl=\"`data_classifier`\"\u003e`dataClassifier`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`policyDataLoader`\" pulumi-lang-dotnet=\"`PolicyDataLoader`\" pulumi-lang-go=\"`policyDataLoader`\" pulumi-lang-python=\"`policy_data_loader`\" pulumi-lang-yaml=\"`policyDataLoader`\" pulumi-lang-java=\"`policyDataLoader`\" pulumi-lang-hcl=\"`policy_data_loader`\"\u003e`policyDataLoader`\u003c/span\u003e.\n"
                },
                "updatedAt": {
                    "type": "string",
                    "description": "The timestamp when the connector satellite link was last updated.\n"
                }
            },
            "required": [
                "connectorId",
                "createdAt",
                "satelliteId",
                "satelliteType",
                "updatedAt"
            ],
            "inputProperties": {
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the Connector to link to the satellite.\n",
                    "willReplaceOnChanges": true
                },
                "satelliteId": {
                    "type": "string",
                    "description": "The ID of the Satellite to link to the connector.\n",
                    "willReplaceOnChanges": true
                },
                "satelliteType": {
                    "type": "string",
                    "description": "The type of satellite being linked. Must be one of: \u003cspan pulumi-lang-nodejs=\"`ai`\" pulumi-lang-dotnet=\"`Ai`\" pulumi-lang-go=\"`ai`\" pulumi-lang-python=\"`ai`\" pulumi-lang-yaml=\"`ai`\" pulumi-lang-java=\"`ai`\" pulumi-lang-hcl=\"`ai`\"\u003e`ai`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dataClassifier`\" pulumi-lang-dotnet=\"`DataClassifier`\" pulumi-lang-go=\"`dataClassifier`\" pulumi-lang-python=\"`data_classifier`\" pulumi-lang-yaml=\"`dataClassifier`\" pulumi-lang-java=\"`dataClassifier`\" pulumi-lang-hcl=\"`data_classifier`\"\u003e`dataClassifier`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`policyDataLoader`\" pulumi-lang-dotnet=\"`PolicyDataLoader`\" pulumi-lang-go=\"`policyDataLoader`\" pulumi-lang-python=\"`policy_data_loader`\" pulumi-lang-yaml=\"`policyDataLoader`\" pulumi-lang-java=\"`policyDataLoader`\" pulumi-lang-hcl=\"`policy_data_loader`\"\u003e`policyDataLoader`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "connectorId",
                "satelliteId",
                "satelliteType"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ConnectorSatelliteLink resources.\n",
                "properties": {
                    "connectorId": {
                        "type": "string",
                        "description": "The ID of the Connector to link to the satellite.\n",
                        "willReplaceOnChanges": true
                    },
                    "createdAt": {
                        "type": "string",
                        "description": "The timestamp when the connector satellite link was created.\n"
                    },
                    "satelliteId": {
                        "type": "string",
                        "description": "The ID of the Satellite to link to the connector.\n",
                        "willReplaceOnChanges": true
                    },
                    "satelliteType": {
                        "type": "string",
                        "description": "The type of satellite being linked. Must be one of: \u003cspan pulumi-lang-nodejs=\"`ai`\" pulumi-lang-dotnet=\"`Ai`\" pulumi-lang-go=\"`ai`\" pulumi-lang-python=\"`ai`\" pulumi-lang-yaml=\"`ai`\" pulumi-lang-java=\"`ai`\" pulumi-lang-hcl=\"`ai`\"\u003e`ai`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dataClassifier`\" pulumi-lang-dotnet=\"`DataClassifier`\" pulumi-lang-go=\"`dataClassifier`\" pulumi-lang-python=\"`data_classifier`\" pulumi-lang-yaml=\"`dataClassifier`\" pulumi-lang-java=\"`dataClassifier`\" pulumi-lang-hcl=\"`data_classifier`\"\u003e`dataClassifier`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`policyDataLoader`\" pulumi-lang-dotnet=\"`PolicyDataLoader`\" pulumi-lang-go=\"`policyDataLoader`\" pulumi-lang-python=\"`policy_data_loader`\" pulumi-lang-yaml=\"`policyDataLoader`\" pulumi-lang-java=\"`policyDataLoader`\" pulumi-lang-hcl=\"`policy_data_loader`\"\u003e`policyDataLoader`\u003c/span\u003e.\n",
                        "willReplaceOnChanges": true
                    },
                    "updatedAt": {
                        "type": "string",
                        "description": "The timestamp when the connector satellite link was last updated.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/dataDiscovery:DataDiscovery": {
            "description": "Registering a Data Discovery with Formal.\n",
            "properties": {
                "createdAt": {
                    "type": "integer",
                    "description": "Creation time of the Data Discovery.\n"
                },
                "deletionPolicy": {
                    "type": "string",
                    "description": "Deletion policy of the Data Discovery. Possible values: \u003cspan pulumi-lang-nodejs=\"`delete`\" pulumi-lang-dotnet=\"`Delete`\" pulumi-lang-go=\"`delete`\" pulumi-lang-python=\"`delete`\" pulumi-lang-yaml=\"`delete`\" pulumi-lang-java=\"`delete`\" pulumi-lang-hcl=\"`delete`\"\u003e`delete`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`markForDeletion`\" pulumi-lang-dotnet=\"`MarkForDeletion`\" pulumi-lang-go=\"`markForDeletion`\" pulumi-lang-python=\"`mark_for_deletion`\" pulumi-lang-yaml=\"`markForDeletion`\" pulumi-lang-java=\"`markForDeletion`\" pulumi-lang-hcl=\"`mark_for_deletion`\"\u003e`markForDeletion`\u003c/span\u003e.\n"
                },
                "nativeUserId": {
                    "type": "string",
                    "description": "Native user ID linked to this Data Discovery.\n"
                },
                "path": {
                    "type": "string",
                    "description": "Path of the inventory object.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID linked to this Data Discovery.\n"
                },
                "schedule": {
                    "type": "string",
                    "description": "Schedule at which the Data Discovery will be executed. Possible values: \u003cspan pulumi-lang-nodejs=\"`6h`\" pulumi-lang-dotnet=\"`6h`\" pulumi-lang-go=\"`6h`\" pulumi-lang-python=\"`6h`\" pulumi-lang-yaml=\"`6h`\" pulumi-lang-java=\"`6h`\" pulumi-lang-hcl=\"`6h`\"\u003e`6h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12h`\" pulumi-lang-dotnet=\"`12h`\" pulumi-lang-go=\"`12h`\" pulumi-lang-python=\"`12h`\" pulumi-lang-yaml=\"`12h`\" pulumi-lang-java=\"`12h`\" pulumi-lang-hcl=\"`12h`\"\u003e`12h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`18h`\" pulumi-lang-dotnet=\"`18h`\" pulumi-lang-go=\"`18h`\" pulumi-lang-python=\"`18h`\" pulumi-lang-yaml=\"`18h`\" pulumi-lang-java=\"`18h`\" pulumi-lang-hcl=\"`18h`\"\u003e`18h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24h`\" pulumi-lang-dotnet=\"`24h`\" pulumi-lang-go=\"`24h`\" pulumi-lang-python=\"`24h`\" pulumi-lang-yaml=\"`24h`\" pulumi-lang-java=\"`24h`\" pulumi-lang-hcl=\"`24h`\"\u003e`24h`\u003c/span\u003e or a valid cron expression, for example `0 4,16 * * *` to run daily at 04:00 and 16:00 UTC.\n"
                }
            },
            "required": [
                "createdAt",
                "deletionPolicy",
                "nativeUserId",
                "resourceId",
                "schedule"
            ],
            "inputProperties": {
                "deletionPolicy": {
                    "type": "string",
                    "description": "Deletion policy of the Data Discovery. Possible values: \u003cspan pulumi-lang-nodejs=\"`delete`\" pulumi-lang-dotnet=\"`Delete`\" pulumi-lang-go=\"`delete`\" pulumi-lang-python=\"`delete`\" pulumi-lang-yaml=\"`delete`\" pulumi-lang-java=\"`delete`\" pulumi-lang-hcl=\"`delete`\"\u003e`delete`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`markForDeletion`\" pulumi-lang-dotnet=\"`MarkForDeletion`\" pulumi-lang-go=\"`markForDeletion`\" pulumi-lang-python=\"`mark_for_deletion`\" pulumi-lang-yaml=\"`markForDeletion`\" pulumi-lang-java=\"`markForDeletion`\" pulumi-lang-hcl=\"`mark_for_deletion`\"\u003e`markForDeletion`\u003c/span\u003e.\n"
                },
                "nativeUserId": {
                    "type": "string",
                    "description": "Native user ID linked to this Data Discovery.\n",
                    "willReplaceOnChanges": true
                },
                "path": {
                    "type": "string",
                    "description": "Path of the inventory object.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID linked to this Data Discovery.\n",
                    "willReplaceOnChanges": true
                },
                "schedule": {
                    "type": "string",
                    "description": "Schedule at which the Data Discovery will be executed. Possible values: \u003cspan pulumi-lang-nodejs=\"`6h`\" pulumi-lang-dotnet=\"`6h`\" pulumi-lang-go=\"`6h`\" pulumi-lang-python=\"`6h`\" pulumi-lang-yaml=\"`6h`\" pulumi-lang-java=\"`6h`\" pulumi-lang-hcl=\"`6h`\"\u003e`6h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12h`\" pulumi-lang-dotnet=\"`12h`\" pulumi-lang-go=\"`12h`\" pulumi-lang-python=\"`12h`\" pulumi-lang-yaml=\"`12h`\" pulumi-lang-java=\"`12h`\" pulumi-lang-hcl=\"`12h`\"\u003e`12h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`18h`\" pulumi-lang-dotnet=\"`18h`\" pulumi-lang-go=\"`18h`\" pulumi-lang-python=\"`18h`\" pulumi-lang-yaml=\"`18h`\" pulumi-lang-java=\"`18h`\" pulumi-lang-hcl=\"`18h`\"\u003e`18h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24h`\" pulumi-lang-dotnet=\"`24h`\" pulumi-lang-go=\"`24h`\" pulumi-lang-python=\"`24h`\" pulumi-lang-yaml=\"`24h`\" pulumi-lang-java=\"`24h`\" pulumi-lang-hcl=\"`24h`\"\u003e`24h`\u003c/span\u003e or a valid cron expression, for example `0 4,16 * * *` to run daily at 04:00 and 16:00 UTC.\n"
                }
            },
            "requiredInputs": [
                "deletionPolicy",
                "nativeUserId",
                "resourceId",
                "schedule"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering DataDiscovery resources.\n",
                "properties": {
                    "createdAt": {
                        "type": "integer",
                        "description": "Creation time of the Data Discovery.\n"
                    },
                    "deletionPolicy": {
                        "type": "string",
                        "description": "Deletion policy of the Data Discovery. Possible values: \u003cspan pulumi-lang-nodejs=\"`delete`\" pulumi-lang-dotnet=\"`Delete`\" pulumi-lang-go=\"`delete`\" pulumi-lang-python=\"`delete`\" pulumi-lang-yaml=\"`delete`\" pulumi-lang-java=\"`delete`\" pulumi-lang-hcl=\"`delete`\"\u003e`delete`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`markForDeletion`\" pulumi-lang-dotnet=\"`MarkForDeletion`\" pulumi-lang-go=\"`markForDeletion`\" pulumi-lang-python=\"`mark_for_deletion`\" pulumi-lang-yaml=\"`markForDeletion`\" pulumi-lang-java=\"`markForDeletion`\" pulumi-lang-hcl=\"`mark_for_deletion`\"\u003e`markForDeletion`\u003c/span\u003e.\n"
                    },
                    "nativeUserId": {
                        "type": "string",
                        "description": "Native user ID linked to this Data Discovery.\n",
                        "willReplaceOnChanges": true
                    },
                    "path": {
                        "type": "string",
                        "description": "Path of the inventory object.\n"
                    },
                    "resourceId": {
                        "type": "string",
                        "description": "Resource ID linked to this Data Discovery.\n",
                        "willReplaceOnChanges": true
                    },
                    "schedule": {
                        "type": "string",
                        "description": "Schedule at which the Data Discovery will be executed. Possible values: \u003cspan pulumi-lang-nodejs=\"`6h`\" pulumi-lang-dotnet=\"`6h`\" pulumi-lang-go=\"`6h`\" pulumi-lang-python=\"`6h`\" pulumi-lang-yaml=\"`6h`\" pulumi-lang-java=\"`6h`\" pulumi-lang-hcl=\"`6h`\"\u003e`6h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12h`\" pulumi-lang-dotnet=\"`12h`\" pulumi-lang-go=\"`12h`\" pulumi-lang-python=\"`12h`\" pulumi-lang-yaml=\"`12h`\" pulumi-lang-java=\"`12h`\" pulumi-lang-hcl=\"`12h`\"\u003e`12h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`18h`\" pulumi-lang-dotnet=\"`18h`\" pulumi-lang-go=\"`18h`\" pulumi-lang-python=\"`18h`\" pulumi-lang-yaml=\"`18h`\" pulumi-lang-java=\"`18h`\" pulumi-lang-hcl=\"`18h`\"\u003e`18h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24h`\" pulumi-lang-dotnet=\"`24h`\" pulumi-lang-go=\"`24h`\" pulumi-lang-python=\"`24h`\" pulumi-lang-yaml=\"`24h`\" pulumi-lang-java=\"`24h`\" pulumi-lang-hcl=\"`24h`\"\u003e`24h`\u003c/span\u003e or a valid cron expression, for example `0 4,16 * * *` to run daily at 04:00 and 16:00 UTC.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/dataLabel:DataLabel": {
            "description": "Registering a Data Label with Formal.\n",
            "properties": {
                "classifierData": {
                    "type": "string",
                    "description": "Data for the classifier (pattern for regex or label name for prompt).\n"
                },
                "classifierType": {
                    "type": "string",
                    "description": "Type of classifier for the data label (regex or prompt)\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for this data label.\n"
                }
            },
            "required": [
                "classifierData",
                "classifierType",
                "name"
            ],
            "inputProperties": {
                "classifierData": {
                    "type": "string",
                    "description": "Data for the classifier (pattern for regex or label name for prompt).\n"
                },
                "classifierType": {
                    "type": "string",
                    "description": "Type of classifier for the data label (regex or prompt)\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for this data label.\n"
                }
            },
            "requiredInputs": [
                "classifierData",
                "classifierType"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering DataLabel resources.\n",
                "properties": {
                    "classifierData": {
                        "type": "string",
                        "description": "Data for the classifier (pattern for regex or label name for prompt).\n"
                    },
                    "classifierType": {
                        "type": "string",
                        "description": "Type of classifier for the data label (regex or prompt)\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "Friendly name for this data label.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/encryptionKey:EncryptionKey": {
            "description": "Registering an Encryption Key with Formal.\n",
            "properties": {
                "algorithm": {
                    "type": "string",
                    "description": "The algorithm used for encryption. One of 'aes*random', 'aes*deterministic' (symmetric), or 'rsaes*oaep*sha256' (asymmetric).\n"
                },
                "createdAt": {
                    "type": "string",
                    "description": "When the encryption key was created.\n"
                },
                "decryptorUri": {
                    "type": "string",
                    "description": "The URI of the decryptor (e.g., a URL to a Lambda function, either directly or via API Gateway). This is used to decrypt the data on the frontend only (and is never called by the Formal Control Plane backend).\n"
                },
                "keyId": {
                    "type": "string",
                    "description": "The ID of the key in the provider's system (e.g., key ARN for AWS KMS).\n"
                },
                "keyProvider": {
                    "type": "string",
                    "description": "The provider of the encryption key. Currently only 'aws' is supported.\n"
                },
                "publicKeyPem": {
                    "type": "string",
                    "description": "PEM-encoded RSA public key for client-side encryption. Required when 'algorithm' is 'rsaes*oaep*sha256'. Typically wired from another resource, e.g. `data.aws_kms_public_key.\u003cname\u003e.public_key_pem` for an asymmetric AWS KMS key.\n"
                },
                "updatedAt": {
                    "type": "string",
                    "description": "Last update time.\n"
                }
            },
            "required": [
                "algorithm",
                "createdAt",
                "keyId",
                "keyProvider",
                "updatedAt"
            ],
            "inputProperties": {
                "algorithm": {
                    "type": "string",
                    "description": "The algorithm used for encryption. One of 'aes*random', 'aes*deterministic' (symmetric), or 'rsaes*oaep*sha256' (asymmetric).\n"
                },
                "decryptorUri": {
                    "type": "string",
                    "description": "The URI of the decryptor (e.g., a URL to a Lambda function, either directly or via API Gateway). This is used to decrypt the data on the frontend only (and is never called by the Formal Control Plane backend).\n"
                },
                "keyId": {
                    "type": "string",
                    "description": "The ID of the key in the provider's system (e.g., key ARN for AWS KMS).\n"
                },
                "keyProvider": {
                    "type": "string",
                    "description": "The provider of the encryption key. Currently only 'aws' is supported.\n"
                },
                "publicKeyPem": {
                    "type": "string",
                    "description": "PEM-encoded RSA public key for client-side encryption. Required when 'algorithm' is 'rsaes*oaep*sha256'. Typically wired from another resource, e.g. `data.aws_kms_public_key.\u003cname\u003e.public_key_pem` for an asymmetric AWS KMS key.\n"
                }
            },
            "requiredInputs": [
                "algorithm",
                "keyId",
                "keyProvider"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering EncryptionKey resources.\n",
                "properties": {
                    "algorithm": {
                        "type": "string",
                        "description": "The algorithm used for encryption. One of 'aes*random', 'aes*deterministic' (symmetric), or 'rsaes*oaep*sha256' (asymmetric).\n"
                    },
                    "createdAt": {
                        "type": "string",
                        "description": "When the encryption key was created.\n"
                    },
                    "decryptorUri": {
                        "type": "string",
                        "description": "The URI of the decryptor (e.g., a URL to a Lambda function, either directly or via API Gateway). This is used to decrypt the data on the frontend only (and is never called by the Formal Control Plane backend).\n"
                    },
                    "keyId": {
                        "type": "string",
                        "description": "The ID of the key in the provider's system (e.g., key ARN for AWS KMS).\n"
                    },
                    "keyProvider": {
                        "type": "string",
                        "description": "The provider of the encryption key. Currently only 'aws' is supported.\n"
                    },
                    "publicKeyPem": {
                        "type": "string",
                        "description": "PEM-encoded RSA public key for client-side encryption. Required when 'algorithm' is 'rsaes*oaep*sha256'. Typically wired from another resource, e.g. `data.aws_kms_public_key.\u003cname\u003e.public_key_pem` for an asymmetric AWS KMS key.\n"
                    },
                    "updatedAt": {
                        "type": "string",
                        "description": "Last update time.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/form:Form": {
            "description": "Forms define reusable input schemas for workflows.\n",
            "properties": {
                "createdAt": {
                    "type": "string",
                    "description": "When the form was created.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The form description.\n"
                },
                "fields": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/formal:index/FormField:FormField"
                    },
                    "description": "List of fields that define the form schema.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the form. Must be unique within the organization.\n"
                },
                "updatedAt": {
                    "type": "string",
                    "description": "Last update time.\n"
                }
            },
            "required": [
                "createdAt",
                "fields",
                "name",
                "updatedAt"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "The form description.\n"
                },
                "fields": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/formal:index/FormField:FormField"
                    },
                    "description": "List of fields that define the form schema.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the form. Must be unique within the organization.\n"
                }
            },
            "requiredInputs": [
                "fields"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Form resources.\n",
                "properties": {
                    "createdAt": {
                        "type": "string",
                        "description": "When the form was created.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The form description.\n"
                    },
                    "fields": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/formal:index/FormField:FormField"
                        },
                        "description": "List of fields that define the form schema.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the form. Must be unique within the organization.\n"
                    },
                    "updatedAt": {
                        "type": "string",
                        "description": "Last update time.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/group:Group": {
            "description": "Creating a Group in Formal.\n",
            "properties": {
                "description": {
                    "type": "string",
                    "description": "Description for this Group.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly Name for this Group.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Group cannot be deleted.\n"
                }
            },
            "required": [
                "description",
                "name"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "Description for this Group.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly Name for this Group.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Group cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "description"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Group resources.\n",
                "properties": {
                    "description": {
                        "type": "string",
                        "description": "Description for this Group.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "Friendly Name for this Group.\n"
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this Group cannot be deleted.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/groupUserLink:GroupUserLink": {
            "description": "Linking a User to a Group in Formal.\n",
            "properties": {
                "groupId": {
                    "type": "string",
                    "description": "The Formal ID for the group to be linked.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Link cannot be deleted.\n"
                },
                "userId": {
                    "type": "string",
                    "description": "The Formal ID of the user to be linked.\n"
                }
            },
            "required": [
                "groupId",
                "userId"
            ],
            "inputProperties": {
                "groupId": {
                    "type": "string",
                    "description": "The Formal ID for the group to be linked.\n",
                    "willReplaceOnChanges": true
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Link cannot be deleted.\n"
                },
                "userId": {
                    "type": "string",
                    "description": "The Formal ID of the user to be linked.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "groupId",
                "userId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering GroupUserLink resources.\n",
                "properties": {
                    "groupId": {
                        "type": "string",
                        "description": "The Formal ID for the group to be linked.\n",
                        "willReplaceOnChanges": true
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this Link cannot be deleted.\n"
                    },
                    "userId": {
                        "type": "string",
                        "description": "The Formal ID of the user to be linked.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "formal:index/integrationBi:IntegrationBi": {
            "description": "Registering a BI App.\n",
            "properties": {
                "metabase": {
                    "$ref": "#/types/formal:index/IntegrationBiMetabase:IntegrationBiMetabase",
                    "description": "Configuration block for Metabase integration. This block is optional and may be omitted if not configuring a Metabase integration.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for this app.\n"
                },
                "sync": {
                    "type": "boolean",
                    "description": "Auto synchronize users from Metabase to Formal (occurs every hour). When disabled, a worker will need to be deployed in your infrastructure to synchronise users.\n"
                }
            },
            "required": [
                "name",
                "sync"
            ],
            "inputProperties": {
                "metabase": {
                    "$ref": "#/types/formal:index/IntegrationBiMetabase:IntegrationBiMetabase",
                    "description": "Configuration block for Metabase integration. This block is optional and may be omitted if not configuring a Metabase integration.\n",
                    "willReplaceOnChanges": true
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for this app.\n",
                    "willReplaceOnChanges": true
                },
                "sync": {
                    "type": "boolean",
                    "description": "Auto synchronize users from Metabase to Formal (occurs every hour). When disabled, a worker will need to be deployed in your infrastructure to synchronise users.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "sync"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering IntegrationBi resources.\n",
                "properties": {
                    "metabase": {
                        "$ref": "#/types/formal:index/IntegrationBiMetabase:IntegrationBiMetabase",
                        "description": "Configuration block for Metabase integration. This block is optional and may be omitted if not configuring a Metabase integration.\n",
                        "willReplaceOnChanges": true
                    },
                    "name": {
                        "type": "string",
                        "description": "Friendly name for this app.\n",
                        "willReplaceOnChanges": true
                    },
                    "sync": {
                        "type": "boolean",
                        "description": "Auto synchronize users from Metabase to Formal (occurs every hour). When disabled, a worker will need to be deployed in your infrastructure to synchronise users.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "formal:index/integrationCloud:IntegrationCloud": {
            "description": "Registering a Cloud integration.\n",
            "properties": {
                "aws": {
                    "$ref": "#/types/formal:index/IntegrationCloudAws:IntegrationCloudAws",
                    "description": "Configuration block for AWS integration.\n"
                },
                "awsAllowS3Access": {
                    "type": "boolean",
                    "description": "Whether AWS S3 access is allowed or not.\n"
                },
                "awsEnableEc2Autodiscovery": {
                    "type": "boolean",
                    "description": "Whether AWS EC2 autodiscovery is enabled or not.\n"
                },
                "awsEnableEcsAutodiscovery": {
                    "type": "boolean",
                    "description": "Whether AWS ECS autodiscovery is enabled or not.\n"
                },
                "awsEnableEksAutodiscovery": {
                    "type": "boolean",
                    "description": "Whether AWS EKS autodiscovery is enabled or not.\n"
                },
                "awsEnableRdsAutodiscovery": {
                    "type": "boolean",
                    "description": "Whether AWS RDS autodiscovery is enabled or not.\n"
                },
                "awsEnableRedshiftAutodiscovery": {
                    "type": "boolean",
                    "description": "Whether AWS Redshift autodiscovery is enabled or not.\n"
                },
                "awsEnableS3Autodiscovery": {
                    "type": "boolean",
                    "description": "Whether AWS S3 autodiscovery is enabled or not.\n"
                },
                "awsFormalIamRole": {
                    "type": "string",
                    "description": "The IAM role ID Formal will use to access your resources.\n"
                },
                "awsFormalIamRoleArn": {
                    "type": "string",
                    "description": "The ARN of the IAM role Formal will use to access your resources.\n"
                },
                "awsFormalPingbackArn": {
                    "type": "string",
                    "description": "The SNS topic ARN CloudFormation can use to send events to Formal.\n"
                },
                "awsFormalStackName": {
                    "type": "string",
                    "description": "A generated name for your CloudFormation stack.\n"
                },
                "awsS3BucketArn": {
                    "type": "string",
                    "description": "The AWS S3 bucket ARN this Cloud Integration is allowed to use for Log Integrations, if it is allowed to access S3.\n"
                },
                "awsTemplateBody": {
                    "type": "string",
                    "description": "The template body of the CloudFormation stack.\n"
                },
                "cloudRegion": {
                    "type": "string",
                    "description": "Region of the cloud provider.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Name of the Integration.\n"
                },
                "type": {
                    "type": "string",
                    "description": "Type of the Integration. (Supported: aws)\n",
                    "deprecationMessage": "This field is deprecated and will be removed in a future version."
                }
            },
            "required": [
                "awsAllowS3Access",
                "awsEnableEc2Autodiscovery",
                "awsEnableEcsAutodiscovery",
                "awsEnableEksAutodiscovery",
                "awsEnableRdsAutodiscovery",
                "awsEnableRedshiftAutodiscovery",
                "awsEnableS3Autodiscovery",
                "awsFormalIamRole",
                "awsFormalIamRoleArn",
                "awsFormalPingbackArn",
                "awsFormalStackName",
                "awsS3BucketArn",
                "awsTemplateBody",
                "cloudRegion",
                "name"
            ],
            "inputProperties": {
                "aws": {
                    "$ref": "#/types/formal:index/IntegrationCloudAws:IntegrationCloudAws",
                    "description": "Configuration block for AWS integration.\n"
                },
                "cloudRegion": {
                    "type": "string",
                    "description": "Region of the cloud provider.\n",
                    "willReplaceOnChanges": true
                },
                "name": {
                    "type": "string",
                    "description": "Name of the Integration.\n",
                    "willReplaceOnChanges": true
                },
                "type": {
                    "type": "string",
                    "description": "Type of the Integration. (Supported: aws)\n",
                    "deprecationMessage": "This field is deprecated and will be removed in a future version."
                }
            },
            "requiredInputs": [
                "cloudRegion"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering IntegrationCloud resources.\n",
                "properties": {
                    "aws": {
                        "$ref": "#/types/formal:index/IntegrationCloudAws:IntegrationCloudAws",
                        "description": "Configuration block for AWS integration.\n"
                    },
                    "awsAllowS3Access": {
                        "type": "boolean",
                        "description": "Whether AWS S3 access is allowed or not.\n"
                    },
                    "awsEnableEc2Autodiscovery": {
                        "type": "boolean",
                        "description": "Whether AWS EC2 autodiscovery is enabled or not.\n"
                    },
                    "awsEnableEcsAutodiscovery": {
                        "type": "boolean",
                        "description": "Whether AWS ECS autodiscovery is enabled or not.\n"
                    },
                    "awsEnableEksAutodiscovery": {
                        "type": "boolean",
                        "description": "Whether AWS EKS autodiscovery is enabled or not.\n"
                    },
                    "awsEnableRdsAutodiscovery": {
                        "type": "boolean",
                        "description": "Whether AWS RDS autodiscovery is enabled or not.\n"
                    },
                    "awsEnableRedshiftAutodiscovery": {
                        "type": "boolean",
                        "description": "Whether AWS Redshift autodiscovery is enabled or not.\n"
                    },
                    "awsEnableS3Autodiscovery": {
                        "type": "boolean",
                        "description": "Whether AWS S3 autodiscovery is enabled or not.\n"
                    },
                    "awsFormalIamRole": {
                        "type": "string",
                        "description": "The IAM role ID Formal will use to access your resources.\n"
                    },
                    "awsFormalIamRoleArn": {
                        "type": "string",
                        "description": "The ARN of the IAM role Formal will use to access your resources.\n"
                    },
                    "awsFormalPingbackArn": {
                        "type": "string",
                        "description": "The SNS topic ARN CloudFormation can use to send events to Formal.\n"
                    },
                    "awsFormalStackName": {
                        "type": "string",
                        "description": "A generated name for your CloudFormation stack.\n"
                    },
                    "awsS3BucketArn": {
                        "type": "string",
                        "description": "The AWS S3 bucket ARN this Cloud Integration is allowed to use for Log Integrations, if it is allowed to access S3.\n"
                    },
                    "awsTemplateBody": {
                        "type": "string",
                        "description": "The template body of the CloudFormation stack.\n"
                    },
                    "cloudRegion": {
                        "type": "string",
                        "description": "Region of the cloud provider.\n",
                        "willReplaceOnChanges": true
                    },
                    "name": {
                        "type": "string",
                        "description": "Name of the Integration.\n",
                        "willReplaceOnChanges": true
                    },
                    "type": {
                        "type": "string",
                        "description": "Type of the Integration. (Supported: aws)\n",
                        "deprecationMessage": "This field is deprecated and will be removed in a future version."
                    }
                },
                "type": "object"
            }
        },
        "formal:index/integrationLog:IntegrationLog": {
            "description": "Registering a Integration Logs app.\n",
            "properties": {
                "awsS3": {
                    "$ref": "#/types/formal:index/IntegrationLogAwsS3:IntegrationLogAwsS3",
                    "description": "Configuration block for AWS S3 integration.\n"
                },
                "datadog": {
                    "$ref": "#/types/formal:index/IntegrationLogDatadog:IntegrationLogDatadog",
                    "description": "Configuration block for Datadog integration.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for the Integration app.\n"
                },
                "splunk": {
                    "$ref": "#/types/formal:index/IntegrationLogSplunk:IntegrationLogSplunk",
                    "description": "Configuration block for Splunk integration.\n"
                }
            },
            "required": [
                "name"
            ],
            "inputProperties": {
                "awsS3": {
                    "$ref": "#/types/formal:index/IntegrationLogAwsS3:IntegrationLogAwsS3",
                    "description": "Configuration block for AWS S3 integration.\n",
                    "willReplaceOnChanges": true
                },
                "datadog": {
                    "$ref": "#/types/formal:index/IntegrationLogDatadog:IntegrationLogDatadog",
                    "description": "Configuration block for Datadog integration.\n",
                    "willReplaceOnChanges": true
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for the Integration app.\n",
                    "willReplaceOnChanges": true
                },
                "splunk": {
                    "$ref": "#/types/formal:index/IntegrationLogSplunk:IntegrationLogSplunk",
                    "description": "Configuration block for Splunk integration.\n",
                    "willReplaceOnChanges": true
                }
            },
            "stateInputs": {
                "description": "Input properties used for looking up and filtering IntegrationLog resources.\n",
                "properties": {
                    "awsS3": {
                        "$ref": "#/types/formal:index/IntegrationLogAwsS3:IntegrationLogAwsS3",
                        "description": "Configuration block for AWS S3 integration.\n",
                        "willReplaceOnChanges": true
                    },
                    "datadog": {
                        "$ref": "#/types/formal:index/IntegrationLogDatadog:IntegrationLogDatadog",
                        "description": "Configuration block for Datadog integration.\n",
                        "willReplaceOnChanges": true
                    },
                    "name": {
                        "type": "string",
                        "description": "Friendly name for the Integration app.\n",
                        "willReplaceOnChanges": true
                    },
                    "splunk": {
                        "$ref": "#/types/formal:index/IntegrationLogSplunk:IntegrationLogSplunk",
                        "description": "Configuration block for Splunk integration.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "formal:index/integrationMdm:IntegrationMdm": {
            "description": "Registering a Integration MDM app.\n",
            "properties": {
                "kandji": {
                    "$ref": "#/types/formal:index/IntegrationMdmKandji:IntegrationMdmKandji",
                    "description": "Configuration block for Kandji integration.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for the Integration app.\n"
                }
            },
            "required": [
                "name"
            ],
            "inputProperties": {
                "kandji": {
                    "$ref": "#/types/formal:index/IntegrationMdmKandji:IntegrationMdmKandji",
                    "description": "Configuration block for Kandji integration.\n",
                    "willReplaceOnChanges": true
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for the Integration app.\n",
                    "willReplaceOnChanges": true
                }
            },
            "stateInputs": {
                "description": "Input properties used for looking up and filtering IntegrationMdm resources.\n",
                "properties": {
                    "kandji": {
                        "$ref": "#/types/formal:index/IntegrationMdmKandji:IntegrationMdmKandji",
                        "description": "Configuration block for Kandji integration.\n",
                        "willReplaceOnChanges": true
                    },
                    "name": {
                        "type": "string",
                        "description": "Friendly name for the Integration app.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "formal:index/inventoryObject:InventoryObject": {
            "description": "Registering an inventory object (db, schema, table, column) with Formal. Useful for seeding the inventory in test fixtures so that connectors load it at startup instead of relying on inline discovery.\n",
            "properties": {
                "dataType": {
                    "type": "string",
                    "description": "Column data type (e.g. \u003cspan pulumi-lang-nodejs=\"`varchar`\" pulumi-lang-dotnet=\"`Varchar`\" pulumi-lang-go=\"`varchar`\" pulumi-lang-python=\"`varchar`\" pulumi-lang-yaml=\"`varchar`\" pulumi-lang-java=\"`varchar`\" pulumi-lang-hcl=\"`varchar`\"\u003e`varchar`\u003c/span\u003e). Required when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\" pulumi-lang-hcl=\"`type`\"\u003e`type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\" pulumi-lang-hcl=\"`column`\"\u003e`column`\u003c/span\u003e, ignored otherwise.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Last segment of the path (e.g. \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\" pulumi-lang-hcl=\"`email`\"\u003e`email`\u003c/span\u003e).\n"
                },
                "path": {
                    "type": "string",
                    "description": "Hierarchical path of the object (e.g. `mydb.public.users.email`).\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource (datastore) ID this object belongs to.\n"
                },
                "type": {
                    "type": "string",
                    "description": "Object type. One of \u003cspan pulumi-lang-nodejs=\"`db`\" pulumi-lang-dotnet=\"`Db`\" pulumi-lang-go=\"`db`\" pulumi-lang-python=\"`db`\" pulumi-lang-yaml=\"`db`\" pulumi-lang-java=\"`db`\" pulumi-lang-hcl=\"`db`\"\u003e`db`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`schema`\" pulumi-lang-dotnet=\"`Schema`\" pulumi-lang-go=\"`schema`\" pulumi-lang-python=\"`schema`\" pulumi-lang-yaml=\"`schema`\" pulumi-lang-java=\"`schema`\" pulumi-lang-hcl=\"`schema`\"\u003e`schema`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`table`\" pulumi-lang-dotnet=\"`Table`\" pulumi-lang-go=\"`table`\" pulumi-lang-python=\"`table`\" pulumi-lang-yaml=\"`table`\" pulumi-lang-java=\"`table`\" pulumi-lang-hcl=\"`table`\"\u003e`table`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\" pulumi-lang-hcl=\"`column`\"\u003e`column`\u003c/span\u003e.\n"
                }
            },
            "required": [
                "name",
                "path",
                "resourceId",
                "type"
            ],
            "inputProperties": {
                "dataType": {
                    "type": "string",
                    "description": "Column data type (e.g. \u003cspan pulumi-lang-nodejs=\"`varchar`\" pulumi-lang-dotnet=\"`Varchar`\" pulumi-lang-go=\"`varchar`\" pulumi-lang-python=\"`varchar`\" pulumi-lang-yaml=\"`varchar`\" pulumi-lang-java=\"`varchar`\" pulumi-lang-hcl=\"`varchar`\"\u003e`varchar`\u003c/span\u003e). Required when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\" pulumi-lang-hcl=\"`type`\"\u003e`type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\" pulumi-lang-hcl=\"`column`\"\u003e`column`\u003c/span\u003e, ignored otherwise.\n",
                    "willReplaceOnChanges": true
                },
                "name": {
                    "type": "string",
                    "description": "Last segment of the path (e.g. \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\" pulumi-lang-hcl=\"`email`\"\u003e`email`\u003c/span\u003e).\n",
                    "willReplaceOnChanges": true
                },
                "path": {
                    "type": "string",
                    "description": "Hierarchical path of the object (e.g. `mydb.public.users.email`).\n",
                    "willReplaceOnChanges": true
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource (datastore) ID this object belongs to.\n",
                    "willReplaceOnChanges": true
                },
                "type": {
                    "type": "string",
                    "description": "Object type. One of \u003cspan pulumi-lang-nodejs=\"`db`\" pulumi-lang-dotnet=\"`Db`\" pulumi-lang-go=\"`db`\" pulumi-lang-python=\"`db`\" pulumi-lang-yaml=\"`db`\" pulumi-lang-java=\"`db`\" pulumi-lang-hcl=\"`db`\"\u003e`db`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`schema`\" pulumi-lang-dotnet=\"`Schema`\" pulumi-lang-go=\"`schema`\" pulumi-lang-python=\"`schema`\" pulumi-lang-yaml=\"`schema`\" pulumi-lang-java=\"`schema`\" pulumi-lang-hcl=\"`schema`\"\u003e`schema`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`table`\" pulumi-lang-dotnet=\"`Table`\" pulumi-lang-go=\"`table`\" pulumi-lang-python=\"`table`\" pulumi-lang-yaml=\"`table`\" pulumi-lang-java=\"`table`\" pulumi-lang-hcl=\"`table`\"\u003e`table`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\" pulumi-lang-hcl=\"`column`\"\u003e`column`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "path",
                "resourceId",
                "type"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering InventoryObject resources.\n",
                "properties": {
                    "dataType": {
                        "type": "string",
                        "description": "Column data type (e.g. \u003cspan pulumi-lang-nodejs=\"`varchar`\" pulumi-lang-dotnet=\"`Varchar`\" pulumi-lang-go=\"`varchar`\" pulumi-lang-python=\"`varchar`\" pulumi-lang-yaml=\"`varchar`\" pulumi-lang-java=\"`varchar`\" pulumi-lang-hcl=\"`varchar`\"\u003e`varchar`\u003c/span\u003e). Required when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\" pulumi-lang-hcl=\"`type`\"\u003e`type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\" pulumi-lang-hcl=\"`column`\"\u003e`column`\u003c/span\u003e, ignored otherwise.\n",
                        "willReplaceOnChanges": true
                    },
                    "name": {
                        "type": "string",
                        "description": "Last segment of the path (e.g. \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\" pulumi-lang-hcl=\"`email`\"\u003e`email`\u003c/span\u003e).\n",
                        "willReplaceOnChanges": true
                    },
                    "path": {
                        "type": "string",
                        "description": "Hierarchical path of the object (e.g. `mydb.public.users.email`).\n",
                        "willReplaceOnChanges": true
                    },
                    "resourceId": {
                        "type": "string",
                        "description": "Resource (datastore) ID this object belongs to.\n",
                        "willReplaceOnChanges": true
                    },
                    "type": {
                        "type": "string",
                        "description": "Object type. One of \u003cspan pulumi-lang-nodejs=\"`db`\" pulumi-lang-dotnet=\"`Db`\" pulumi-lang-go=\"`db`\" pulumi-lang-python=\"`db`\" pulumi-lang-yaml=\"`db`\" pulumi-lang-java=\"`db`\" pulumi-lang-hcl=\"`db`\"\u003e`db`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`schema`\" pulumi-lang-dotnet=\"`Schema`\" pulumi-lang-go=\"`schema`\" pulumi-lang-python=\"`schema`\" pulumi-lang-yaml=\"`schema`\" pulumi-lang-java=\"`schema`\" pulumi-lang-hcl=\"`schema`\"\u003e`schema`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`table`\" pulumi-lang-dotnet=\"`Table`\" pulumi-lang-go=\"`table`\" pulumi-lang-python=\"`table`\" pulumi-lang-yaml=\"`table`\" pulumi-lang-java=\"`table`\" pulumi-lang-hcl=\"`table`\"\u003e`table`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\" pulumi-lang-hcl=\"`column`\"\u003e`column`\u003c/span\u003e.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "formal:index/inventoryObjectDataLabelLink:InventoryObjectDataLabelLink": {
            "description": "Registering a Data Label with Formal.\n",
            "properties": {
                "dataLabel": {
                    "type": "string",
                    "description": "Data label to link to the inventory object.\n"
                },
                "locked": {
                    "type": "boolean",
                    "description": "Whether the inventory object is locked.\n"
                },
                "path": {
                    "type": "string",
                    "description": "Path of the inventory object.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID to which the inventory object belongs.\n"
                }
            },
            "required": [
                "dataLabel",
                "locked",
                "path",
                "resourceId"
            ],
            "inputProperties": {
                "dataLabel": {
                    "type": "string",
                    "description": "Data label to link to the inventory object.\n"
                },
                "locked": {
                    "type": "boolean",
                    "description": "Whether the inventory object is locked.\n"
                },
                "path": {
                    "type": "string",
                    "description": "Path of the inventory object.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID to which the inventory object belongs.\n"
                }
            },
            "requiredInputs": [
                "dataLabel",
                "locked",
                "path",
                "resourceId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering InventoryObjectDataLabelLink resources.\n",
                "properties": {
                    "dataLabel": {
                        "type": "string",
                        "description": "Data label to link to the inventory object.\n"
                    },
                    "locked": {
                        "type": "boolean",
                        "description": "Whether the inventory object is locked.\n"
                    },
                    "path": {
                        "type": "string",
                        "description": "Path of the inventory object.\n"
                    },
                    "resourceId": {
                        "type": "string",
                        "description": "Resource ID to which the inventory object belongs.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/logConfiguration:LogConfiguration": {
            "description": "Managing Log Configuration with Formal.\n",
            "properties": {
                "createdAt": {
                    "type": "string",
                    "description": "When the log configuration was created.\n"
                },
                "encryptionKeyId": {
                    "type": "string",
                    "description": "The ID of the encryption key to use for this log configuration.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of this log configuration.\n"
                },
                "request": {
                    "$ref": "#/types/formal:index/LogConfigurationRequest:LogConfigurationRequest",
                    "description": "Request logging configuration.\n"
                },
                "response": {
                    "$ref": "#/types/formal:index/LogConfigurationResponse:LogConfigurationResponse",
                    "description": "Response logging configuration.\n"
                },
                "scope": {
                    "$ref": "#/types/formal:index/LogConfigurationScope:LogConfigurationScope",
                    "description": "The scope configuration for this log configuration.\n"
                },
                "session": {
                    "$ref": "#/types/formal:index/LogConfigurationSession:LogConfigurationSession",
                    "description": "Session logging configuration.\n"
                },
                "stream": {
                    "$ref": "#/types/formal:index/LogConfigurationStream:LogConfigurationStream",
                    "description": "Stream logging configuration.\n"
                },
                "updatedAt": {
                    "type": "string",
                    "description": "Last update time.\n"
                }
            },
            "required": [
                "createdAt",
                "name",
                "request",
                "response",
                "scope",
                "updatedAt"
            ],
            "inputProperties": {
                "encryptionKeyId": {
                    "type": "string",
                    "description": "The ID of the encryption key to use for this log configuration.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of this log configuration.\n"
                },
                "request": {
                    "$ref": "#/types/formal:index/LogConfigurationRequest:LogConfigurationRequest",
                    "description": "Request logging configuration.\n"
                },
                "response": {
                    "$ref": "#/types/formal:index/LogConfigurationResponse:LogConfigurationResponse",
                    "description": "Response logging configuration.\n"
                },
                "scope": {
                    "$ref": "#/types/formal:index/LogConfigurationScope:LogConfigurationScope",
                    "description": "The scope configuration for this log configuration.\n"
                },
                "session": {
                    "$ref": "#/types/formal:index/LogConfigurationSession:LogConfigurationSession",
                    "description": "Session logging configuration.\n"
                },
                "stream": {
                    "$ref": "#/types/formal:index/LogConfigurationStream:LogConfigurationStream",
                    "description": "Stream logging configuration.\n"
                }
            },
            "requiredInputs": [
                "request",
                "response",
                "scope"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering LogConfiguration resources.\n",
                "properties": {
                    "createdAt": {
                        "type": "string",
                        "description": "When the log configuration was created.\n"
                    },
                    "encryptionKeyId": {
                        "type": "string",
                        "description": "The ID of the encryption key to use for this log configuration.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of this log configuration.\n"
                    },
                    "request": {
                        "$ref": "#/types/formal:index/LogConfigurationRequest:LogConfigurationRequest",
                        "description": "Request logging configuration.\n"
                    },
                    "response": {
                        "$ref": "#/types/formal:index/LogConfigurationResponse:LogConfigurationResponse",
                        "description": "Response logging configuration.\n"
                    },
                    "scope": {
                        "$ref": "#/types/formal:index/LogConfigurationScope:LogConfigurationScope",
                        "description": "The scope configuration for this log configuration.\n"
                    },
                    "session": {
                        "$ref": "#/types/formal:index/LogConfigurationSession:LogConfigurationSession",
                        "description": "Session logging configuration.\n"
                    },
                    "stream": {
                        "$ref": "#/types/formal:index/LogConfigurationStream:LogConfigurationStream",
                        "description": "Stream logging configuration.\n"
                    },
                    "updatedAt": {
                        "type": "string",
                        "description": "Last update time.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/nativeUser:NativeUser": {
            "description": "This resource creates a Native User.\n",
            "properties": {
                "nativeUserId": {
                    "type": "string",
                    "description": "The username of the Native User.\n"
                },
                "nativeUserSecret": {
                    "type": "string",
                    "description": "The password of the Native User. Prefer using \u003cspan pulumi-lang-nodejs=\"`nativeUserSecretWo`\" pulumi-lang-dotnet=\"`NativeUserSecretWo`\" pulumi-lang-go=\"`nativeUserSecretWo`\" pulumi-lang-python=\"`native_user_secret_wo`\" pulumi-lang-yaml=\"`nativeUserSecretWo`\" pulumi-lang-java=\"`nativeUserSecretWo`\" pulumi-lang-hcl=\"`native_user_secret_wo`\"\u003e`nativeUserSecretWo`\u003c/span\u003e to avoid storing the secret in Terraform state.",
                    "secret": true
                },
                "nativeUserSecretWo": {
                    "type": "string",
                    "description": "**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nWrite-only password of the Native User. This value is not stored in Terraform state. Requires Terraform 1.11+.",
                    "secret": true
                },
                "nativeUserSecretWoVersion": {
                    "type": "integer",
                    "description": "Version trigger for \u003cspan pulumi-lang-nodejs=\"`nativeUserSecretWo`\" pulumi-lang-dotnet=\"`NativeUserSecretWo`\" pulumi-lang-go=\"`nativeUserSecretWo`\" pulumi-lang-python=\"`native_user_secret_wo`\" pulumi-lang-yaml=\"`nativeUserSecretWo`\" pulumi-lang-java=\"`nativeUserSecretWo`\" pulumi-lang-hcl=\"`native_user_secret_wo`\"\u003e`nativeUserSecretWo`\u003c/span\u003e. Increment this value to update the secret."
                },
                "resourceId": {
                    "type": "string",
                    "description": "The Sidecar ID for the resource this Native User is for.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Native User cannot be deleted."
                },
                "useAsDefault": {
                    "type": "boolean",
                    "description": "The password of the Native User."
                }
            },
            "required": [
                "nativeUserId",
                "resourceId"
            ],
            "inputProperties": {
                "nativeUserId": {
                    "type": "string",
                    "description": "The username of the Native User.\n",
                    "willReplaceOnChanges": true
                },
                "nativeUserSecret": {
                    "type": "string",
                    "description": "The password of the Native User. Prefer using \u003cspan pulumi-lang-nodejs=\"`nativeUserSecretWo`\" pulumi-lang-dotnet=\"`NativeUserSecretWo`\" pulumi-lang-go=\"`nativeUserSecretWo`\" pulumi-lang-python=\"`native_user_secret_wo`\" pulumi-lang-yaml=\"`nativeUserSecretWo`\" pulumi-lang-java=\"`nativeUserSecretWo`\" pulumi-lang-hcl=\"`native_user_secret_wo`\"\u003e`nativeUserSecretWo`\u003c/span\u003e to avoid storing the secret in Terraform state.",
                    "secret": true
                },
                "nativeUserSecretWo": {
                    "type": "string",
                    "description": "**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nWrite-only password of the Native User. This value is not stored in Terraform state. Requires Terraform 1.11+.",
                    "secret": true
                },
                "nativeUserSecretWoVersion": {
                    "type": "integer",
                    "description": "Version trigger for \u003cspan pulumi-lang-nodejs=\"`nativeUserSecretWo`\" pulumi-lang-dotnet=\"`NativeUserSecretWo`\" pulumi-lang-go=\"`nativeUserSecretWo`\" pulumi-lang-python=\"`native_user_secret_wo`\" pulumi-lang-yaml=\"`nativeUserSecretWo`\" pulumi-lang-java=\"`nativeUserSecretWo`\" pulumi-lang-hcl=\"`native_user_secret_wo`\"\u003e`nativeUserSecretWo`\u003c/span\u003e. Increment this value to update the secret."
                },
                "resourceId": {
                    "type": "string",
                    "description": "The Sidecar ID for the resource this Native User is for.\n",
                    "willReplaceOnChanges": true
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Native User cannot be deleted."
                },
                "useAsDefault": {
                    "type": "boolean",
                    "description": "The password of the Native User."
                }
            },
            "requiredInputs": [
                "nativeUserId",
                "resourceId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering NativeUser resources.\n",
                "properties": {
                    "nativeUserId": {
                        "type": "string",
                        "description": "The username of the Native User.\n",
                        "willReplaceOnChanges": true
                    },
                    "nativeUserSecret": {
                        "type": "string",
                        "description": "The password of the Native User. Prefer using \u003cspan pulumi-lang-nodejs=\"`nativeUserSecretWo`\" pulumi-lang-dotnet=\"`NativeUserSecretWo`\" pulumi-lang-go=\"`nativeUserSecretWo`\" pulumi-lang-python=\"`native_user_secret_wo`\" pulumi-lang-yaml=\"`nativeUserSecretWo`\" pulumi-lang-java=\"`nativeUserSecretWo`\" pulumi-lang-hcl=\"`native_user_secret_wo`\"\u003e`nativeUserSecretWo`\u003c/span\u003e to avoid storing the secret in Terraform state.",
                        "secret": true
                    },
                    "nativeUserSecretWo": {
                        "type": "string",
                        "description": "**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nWrite-only password of the Native User. This value is not stored in Terraform state. Requires Terraform 1.11+.",
                        "secret": true
                    },
                    "nativeUserSecretWoVersion": {
                        "type": "integer",
                        "description": "Version trigger for \u003cspan pulumi-lang-nodejs=\"`nativeUserSecretWo`\" pulumi-lang-dotnet=\"`NativeUserSecretWo`\" pulumi-lang-go=\"`nativeUserSecretWo`\" pulumi-lang-python=\"`native_user_secret_wo`\" pulumi-lang-yaml=\"`nativeUserSecretWo`\" pulumi-lang-java=\"`nativeUserSecretWo`\" pulumi-lang-hcl=\"`native_user_secret_wo`\"\u003e`nativeUserSecretWo`\u003c/span\u003e. Increment this value to update the secret."
                    },
                    "resourceId": {
                        "type": "string",
                        "description": "The Sidecar ID for the resource this Native User is for.\n",
                        "willReplaceOnChanges": true
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this Native User cannot be deleted."
                    },
                    "useAsDefault": {
                        "type": "boolean",
                        "description": "The password of the Native User."
                    }
                },
                "type": "object"
            }
        },
        "formal:index/nativeUserLink:NativeUserLink": {
            "description": "This resource creates assigns a Native User to a Formal Identity.\n",
            "properties": {
                "formalIdentityId": {
                    "type": "string",
                    "description": "The Formal ID for the User, Group, or Resource Hostname to be linked.\n"
                },
                "formalIdentityType": {
                    "type": "string",
                    "description": "The type of Formal Identity to be linked. Accepted values are \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\" pulumi-lang-hcl=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\" pulumi-lang-hcl=\"`group`\"\u003e`group`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`resourceHostname`\" pulumi-lang-dotnet=\"`ResourceHostname`\" pulumi-lang-go=\"`resourceHostname`\" pulumi-lang-python=\"`resource_hostname`\" pulumi-lang-yaml=\"`resourceHostname`\" pulumi-lang-java=\"`resourceHostname`\" pulumi-lang-hcl=\"`resource_hostname`\"\u003e`resourceHostname`\u003c/span\u003e.\n"
                },
                "nativeUserId": {
                    "type": "string",
                    "description": "The Native User ID of the Native User.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "The Resource ID of the Native User.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Native User link cannot be deleted.\n"
                }
            },
            "required": [
                "formalIdentityId",
                "formalIdentityType",
                "nativeUserId",
                "resourceId"
            ],
            "inputProperties": {
                "formalIdentityId": {
                    "type": "string",
                    "description": "The Formal ID for the User, Group, or Resource Hostname to be linked.\n"
                },
                "formalIdentityType": {
                    "type": "string",
                    "description": "The type of Formal Identity to be linked. Accepted values are \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\" pulumi-lang-hcl=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\" pulumi-lang-hcl=\"`group`\"\u003e`group`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`resourceHostname`\" pulumi-lang-dotnet=\"`ResourceHostname`\" pulumi-lang-go=\"`resourceHostname`\" pulumi-lang-python=\"`resource_hostname`\" pulumi-lang-yaml=\"`resourceHostname`\" pulumi-lang-java=\"`resourceHostname`\" pulumi-lang-hcl=\"`resource_hostname`\"\u003e`resourceHostname`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "nativeUserId": {
                    "type": "string",
                    "description": "The Native User ID of the Native User.\n",
                    "willReplaceOnChanges": true
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Native User link cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "formalIdentityId",
                "formalIdentityType",
                "nativeUserId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering NativeUserLink resources.\n",
                "properties": {
                    "formalIdentityId": {
                        "type": "string",
                        "description": "The Formal ID for the User, Group, or Resource Hostname to be linked.\n"
                    },
                    "formalIdentityType": {
                        "type": "string",
                        "description": "The type of Formal Identity to be linked. Accepted values are \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\" pulumi-lang-hcl=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\" pulumi-lang-hcl=\"`group`\"\u003e`group`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`resourceHostname`\" pulumi-lang-dotnet=\"`ResourceHostname`\" pulumi-lang-go=\"`resourceHostname`\" pulumi-lang-python=\"`resource_hostname`\" pulumi-lang-yaml=\"`resourceHostname`\" pulumi-lang-java=\"`resourceHostname`\" pulumi-lang-hcl=\"`resource_hostname`\"\u003e`resourceHostname`\u003c/span\u003e.\n",
                        "willReplaceOnChanges": true
                    },
                    "nativeUserId": {
                        "type": "string",
                        "description": "The Native User ID of the Native User.\n",
                        "willReplaceOnChanges": true
                    },
                    "resourceId": {
                        "type": "string",
                        "description": "The Resource ID of the Native User.\n"
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this Native User link cannot be deleted.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/networkRule:NetworkRule": {
            "description": "Creating a Network Rule in Formal.\n",
            "properties": {
                "celExpression": {
                    "type": "string",
                    "description": "The CEL expression describing how this Network Rule matches and routes traffic.\n"
                },
                "createdAt": {
                    "type": "string",
                    "description": "When the Network Rule was created.\n"
                },
                "description": {
                    "type": "string",
                    "description": "Network Rule description.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Network Rule name.\n"
                },
                "status": {
                    "type": "string",
                    "description": "Defines the current status of the Network Rule. It can be one of the following: 'draft' or 'active'.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Network Rule cannot be deleted.\n"
                },
                "updatedAt": {
                    "type": "string",
                    "description": "Last update time.\n"
                }
            },
            "required": [
                "celExpression",
                "createdAt",
                "name",
                "updatedAt"
            ],
            "inputProperties": {
                "celExpression": {
                    "type": "string",
                    "description": "The CEL expression describing how this Network Rule matches and routes traffic.\n"
                },
                "description": {
                    "type": "string",
                    "description": "Network Rule description.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Network Rule name.\n"
                },
                "status": {
                    "type": "string",
                    "description": "Defines the current status of the Network Rule. It can be one of the following: 'draft' or 'active'.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Network Rule cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "celExpression"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering NetworkRule resources.\n",
                "properties": {
                    "celExpression": {
                        "type": "string",
                        "description": "The CEL expression describing how this Network Rule matches and routes traffic.\n"
                    },
                    "createdAt": {
                        "type": "string",
                        "description": "When the Network Rule was created.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "Network Rule description.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "Network Rule name.\n"
                    },
                    "status": {
                        "type": "string",
                        "description": "Defines the current status of the Network Rule. It can be one of the following: 'draft' or 'active'.\n"
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this Network Rule cannot be deleted.\n"
                    },
                    "updatedAt": {
                        "type": "string",
                        "description": "Last update time.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/permission:Permission": {
            "description": "Creating a Permission in Formal.\n",
            "properties": {
                "code": {
                    "type": "string",
                    "description": "The code describing how the permission works. Create one in the Formal Console.\n"
                },
                "description": {
                    "type": "string",
                    "description": "Permission Description.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Permission Name\n"
                },
                "status": {
                    "type": "string",
                    "description": "Defines the current status of the permission. It can be one of the following: 'draft', 'dry-run', or 'active'.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Permission cannot be deleted.\n"
                }
            },
            "required": [
                "code",
                "description",
                "name",
                "status"
            ],
            "inputProperties": {
                "code": {
                    "type": "string",
                    "description": "The code describing how the permission works. Create one in the Formal Console.\n"
                },
                "description": {
                    "type": "string",
                    "description": "Permission Description.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Permission Name\n"
                },
                "status": {
                    "type": "string",
                    "description": "Defines the current status of the permission. It can be one of the following: 'draft', 'dry-run', or 'active'.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Permission cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "code",
                "description",
                "status"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Permission resources.\n",
                "properties": {
                    "code": {
                        "type": "string",
                        "description": "The code describing how the permission works. Create one in the Formal Console.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "Permission Description.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "Permission Name\n"
                    },
                    "status": {
                        "type": "string",
                        "description": "Defines the current status of the permission. It can be one of the following: 'draft', 'dry-run', or 'active'.\n"
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this Permission cannot be deleted.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/policy:Policy": {
            "description": "Creating a Policy in Formal.\n",
            "properties": {
                "createdAt": {
                    "type": "string",
                    "description": "When the policy was created.\n"
                },
                "description": {
                    "type": "string",
                    "description": "Policy Description.\n"
                },
                "module": {
                    "type": "string",
                    "description": "The module describing how the policy works. Create one in the Formal Console.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Policy Name\n"
                },
                "status": {
                    "type": "string",
                    "description": "Defines the current status of the policy. It can be one of the following: 'draft', 'dry-run', or 'active'.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Policy cannot be deleted.\n"
                },
                "updatedAt": {
                    "type": "string",
                    "description": "Last update time.\n"
                }
            },
            "required": [
                "createdAt",
                "description",
                "module",
                "name",
                "status",
                "updatedAt"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "Policy Description.\n"
                },
                "module": {
                    "type": "string",
                    "description": "The module describing how the policy works. Create one in the Formal Console.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Policy Name\n"
                },
                "status": {
                    "type": "string",
                    "description": "Defines the current status of the policy. It can be one of the following: 'draft', 'dry-run', or 'active'.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Policy cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "description",
                "module",
                "status"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Policy resources.\n",
                "properties": {
                    "createdAt": {
                        "type": "string",
                        "description": "When the policy was created.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "Policy Description.\n"
                    },
                    "module": {
                        "type": "string",
                        "description": "The module describing how the policy works. Create one in the Formal Console.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "Policy Name\n"
                    },
                    "status": {
                        "type": "string",
                        "description": "Defines the current status of the policy. It can be one of the following: 'draft', 'dry-run', or 'active'.\n"
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this Policy cannot be deleted.\n"
                    },
                    "updatedAt": {
                        "type": "string",
                        "description": "Last update time.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/policyDataLoader:PolicyDataLoader": {
            "description": "Registering a policy data loader with Formal.\n",
            "properties": {
                "createdAt": {
                    "type": "string",
                    "description": "When the policy data loader was created.\n"
                },
                "description": {
                    "type": "string",
                    "description": "Policy data loader description.\n"
                },
                "key": {
                    "type": "string",
                    "description": "The key to access the output data of this policy data loader.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for this policy data loader.\n"
                },
                "status": {
                    "type": "string",
                    "description": "Defines the current status of the policy data loader. It can be one of the following: 'draft' or 'active'.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this policy data loader cannot be deleted.\n"
                },
                "updatedAt": {
                    "type": "string",
                    "description": "Last update time.\n"
                },
                "workerCode": {
                    "type": "string",
                    "description": "The code that will be executed to fetch and output the data.\n"
                },
                "workerRuntime": {
                    "type": "string",
                    "description": "The execution environment for the code. It can be one of the following: 'python3.11' or 'nodejs18.x'.\n"
                },
                "workerSchedule": {
                    "type": "string",
                    "description": "Second-based 'cron' expression specifying when the data should be fetched. For example, use '*/10 * * * * *' to run the code every 10 seconds.\n"
                }
            },
            "required": [
                "createdAt",
                "description",
                "key",
                "name",
                "status",
                "updatedAt",
                "workerCode",
                "workerRuntime",
                "workerSchedule"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "Policy data loader description.\n"
                },
                "key": {
                    "type": "string",
                    "description": "The key to access the output data of this policy data loader.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for this policy data loader.\n"
                },
                "status": {
                    "type": "string",
                    "description": "Defines the current status of the policy data loader. It can be one of the following: 'draft' or 'active'.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this policy data loader cannot be deleted.\n"
                },
                "workerCode": {
                    "type": "string",
                    "description": "The code that will be executed to fetch and output the data.\n"
                },
                "workerRuntime": {
                    "type": "string",
                    "description": "The execution environment for the code. It can be one of the following: 'python3.11' or 'nodejs18.x'.\n"
                },
                "workerSchedule": {
                    "type": "string",
                    "description": "Second-based 'cron' expression specifying when the data should be fetched. For example, use '*/10 * * * * *' to run the code every 10 seconds.\n"
                }
            },
            "requiredInputs": [
                "description",
                "key",
                "status",
                "workerCode",
                "workerRuntime",
                "workerSchedule"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering PolicyDataLoader resources.\n",
                "properties": {
                    "createdAt": {
                        "type": "string",
                        "description": "When the policy data loader was created.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "Policy data loader description.\n"
                    },
                    "key": {
                        "type": "string",
                        "description": "The key to access the output data of this policy data loader.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "Friendly name for this policy data loader.\n"
                    },
                    "status": {
                        "type": "string",
                        "description": "Defines the current status of the policy data loader. It can be one of the following: 'draft' or 'active'.\n"
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this policy data loader cannot be deleted.\n"
                    },
                    "updatedAt": {
                        "type": "string",
                        "description": "Last update time.\n"
                    },
                    "workerCode": {
                        "type": "string",
                        "description": "The code that will be executed to fetch and output the data.\n"
                    },
                    "workerRuntime": {
                        "type": "string",
                        "description": "The execution environment for the code. It can be one of the following: 'python3.11' or 'nodejs18.x'.\n"
                    },
                    "workerSchedule": {
                        "type": "string",
                        "description": "Second-based 'cron' expression specifying when the data should be fetched. For example, use '*/10 * * * * *' to run the code every 10 seconds.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/resource:Resource": {
            "description": "Registering a Resource with Formal.\n",
            "properties": {
                "aliases": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Aliases to apply to the Resource.\n"
                },
                "createdAt": {
                    "type": "integer",
                    "description": "Creation time of the Resource.\n"
                },
                "environment": {
                    "type": "string",
                    "description": "Environment for the Resource, options: DEV, TEST, QA, UAT, EI, PRE, STG, NON_PROD, PROD, CORP.\n",
                    "deprecationMessage": "This field is deprecated and will be removed in a future release."
                },
                "hostname": {
                    "type": "string",
                    "description": "Hostname of the Resource.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for the Resource.\n"
                },
                "port": {
                    "type": "integer",
                    "description": "The port your Resource is listening on.\n"
                },
                "spaceId": {
                    "type": "string",
                    "description": "The ID of the Space to create the Resource in.\n"
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Tags to apply to the Resource.\n"
                },
                "technology": {
                    "type": "string",
                    "description": "Technology of the Resource: supported values are \u003cspan pulumi-lang-nodejs=\"`snowflake`\" pulumi-lang-dotnet=\"`Snowflake`\" pulumi-lang-go=\"`snowflake`\" pulumi-lang-python=\"`snowflake`\" pulumi-lang-yaml=\"`snowflake`\" pulumi-lang-java=\"`snowflake`\" pulumi-lang-hcl=\"`snowflake`\"\u003e`snowflake`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`postgres`\" pulumi-lang-dotnet=\"`Postgres`\" pulumi-lang-go=\"`postgres`\" pulumi-lang-python=\"`postgres`\" pulumi-lang-yaml=\"`postgres`\" pulumi-lang-java=\"`postgres`\" pulumi-lang-hcl=\"`postgres`\"\u003e`postgres`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rdp`\" pulumi-lang-dotnet=\"`Rdp`\" pulumi-lang-go=\"`rdp`\" pulumi-lang-python=\"`rdp`\" pulumi-lang-yaml=\"`rdp`\" pulumi-lang-java=\"`rdp`\" pulumi-lang-hcl=\"`rdp`\"\u003e`rdp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`redshift`\" pulumi-lang-dotnet=\"`Redshift`\" pulumi-lang-go=\"`redshift`\" pulumi-lang-python=\"`redshift`\" pulumi-lang-yaml=\"`redshift`\" pulumi-lang-java=\"`redshift`\" pulumi-lang-hcl=\"`redshift`\"\u003e`redshift`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mysql`\" pulumi-lang-dotnet=\"`Mysql`\" pulumi-lang-go=\"`mysql`\" pulumi-lang-python=\"`mysql`\" pulumi-lang-yaml=\"`mysql`\" pulumi-lang-java=\"`mysql`\" pulumi-lang-hcl=\"`mysql`\"\u003e`mysql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mariadb`\" pulumi-lang-dotnet=\"`Mariadb`\" pulumi-lang-go=\"`mariadb`\" pulumi-lang-python=\"`mariadb`\" pulumi-lang-yaml=\"`mariadb`\" pulumi-lang-java=\"`mariadb`\" pulumi-lang-hcl=\"`mariadb`\"\u003e`mariadb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s3`\" pulumi-lang-dotnet=\"`S3`\" pulumi-lang-go=\"`s3`\" pulumi-lang-python=\"`s3`\" pulumi-lang-yaml=\"`s3`\" pulumi-lang-java=\"`s3`\" pulumi-lang-hcl=\"`s3`\"\u003e`s3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dynamodb`\" pulumi-lang-dotnet=\"`Dynamodb`\" pulumi-lang-go=\"`dynamodb`\" pulumi-lang-python=\"`dynamodb`\" pulumi-lang-yaml=\"`dynamodb`\" pulumi-lang-java=\"`dynamodb`\" pulumi-lang-hcl=\"`dynamodb`\"\u003e`dynamodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\" pulumi-lang-hcl=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`documentdb`\" pulumi-lang-dotnet=\"`Documentdb`\" pulumi-lang-go=\"`documentdb`\" pulumi-lang-python=\"`documentdb`\" pulumi-lang-yaml=\"`documentdb`\" pulumi-lang-java=\"`documentdb`\" pulumi-lang-hcl=\"`documentdb`\"\u003e`documentdb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\" pulumi-lang-hcl=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\" pulumi-lang-hcl=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`redis`\" pulumi-lang-dotnet=\"`Redis`\" pulumi-lang-go=\"`redis`\" pulumi-lang-python=\"`redis`\" pulumi-lang-yaml=\"`redis`\" pulumi-lang-java=\"`redis`\" pulumi-lang-hcl=\"`redis`\"\u003e`redis`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`web`\" pulumi-lang-dotnet=\"`Web`\" pulumi-lang-go=\"`web`\" pulumi-lang-python=\"`web`\" pulumi-lang-yaml=\"`web`\" pulumi-lang-java=\"`web`\" pulumi-lang-hcl=\"`web`\"\u003e`web`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ssh`\" pulumi-lang-dotnet=\"`Ssh`\" pulumi-lang-go=\"`ssh`\" pulumi-lang-python=\"`ssh`\" pulumi-lang-yaml=\"`ssh`\" pulumi-lang-java=\"`ssh`\" pulumi-lang-hcl=\"`ssh`\"\u003e`ssh`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`grpc`\" pulumi-lang-dotnet=\"`Grpc`\" pulumi-lang-go=\"`grpc`\" pulumi-lang-python=\"`grpc`\" pulumi-lang-yaml=\"`grpc`\" pulumi-lang-java=\"`grpc`\" pulumi-lang-hcl=\"`grpc`\"\u003e`grpc`\u003c/span\u003e.\n"
                },
                "technologyProvider": {
                    "type": "string",
                    "description": "For SSH resources, if the backend connection is SSM, supported values are `aws-ec2`, and `aws-ecs`\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, the Resource cannot be deleted.\n"
                }
            },
            "required": [
                "createdAt",
                "hostname",
                "name",
                "port",
                "technology"
            ],
            "inputProperties": {
                "aliases": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Aliases to apply to the Resource.\n"
                },
                "environment": {
                    "type": "string",
                    "description": "Environment for the Resource, options: DEV, TEST, QA, UAT, EI, PRE, STG, NON_PROD, PROD, CORP.\n",
                    "deprecationMessage": "This field is deprecated and will be removed in a future release."
                },
                "hostname": {
                    "type": "string",
                    "description": "Hostname of the Resource.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for the Resource.\n"
                },
                "port": {
                    "type": "integer",
                    "description": "The port your Resource is listening on.\n",
                    "willReplaceOnChanges": true
                },
                "spaceId": {
                    "type": "string",
                    "description": "The ID of the Space to create the Resource in.\n"
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Tags to apply to the Resource.\n"
                },
                "technology": {
                    "type": "string",
                    "description": "Technology of the Resource: supported values are \u003cspan pulumi-lang-nodejs=\"`snowflake`\" pulumi-lang-dotnet=\"`Snowflake`\" pulumi-lang-go=\"`snowflake`\" pulumi-lang-python=\"`snowflake`\" pulumi-lang-yaml=\"`snowflake`\" pulumi-lang-java=\"`snowflake`\" pulumi-lang-hcl=\"`snowflake`\"\u003e`snowflake`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`postgres`\" pulumi-lang-dotnet=\"`Postgres`\" pulumi-lang-go=\"`postgres`\" pulumi-lang-python=\"`postgres`\" pulumi-lang-yaml=\"`postgres`\" pulumi-lang-java=\"`postgres`\" pulumi-lang-hcl=\"`postgres`\"\u003e`postgres`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rdp`\" pulumi-lang-dotnet=\"`Rdp`\" pulumi-lang-go=\"`rdp`\" pulumi-lang-python=\"`rdp`\" pulumi-lang-yaml=\"`rdp`\" pulumi-lang-java=\"`rdp`\" pulumi-lang-hcl=\"`rdp`\"\u003e`rdp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`redshift`\" pulumi-lang-dotnet=\"`Redshift`\" pulumi-lang-go=\"`redshift`\" pulumi-lang-python=\"`redshift`\" pulumi-lang-yaml=\"`redshift`\" pulumi-lang-java=\"`redshift`\" pulumi-lang-hcl=\"`redshift`\"\u003e`redshift`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mysql`\" pulumi-lang-dotnet=\"`Mysql`\" pulumi-lang-go=\"`mysql`\" pulumi-lang-python=\"`mysql`\" pulumi-lang-yaml=\"`mysql`\" pulumi-lang-java=\"`mysql`\" pulumi-lang-hcl=\"`mysql`\"\u003e`mysql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mariadb`\" pulumi-lang-dotnet=\"`Mariadb`\" pulumi-lang-go=\"`mariadb`\" pulumi-lang-python=\"`mariadb`\" pulumi-lang-yaml=\"`mariadb`\" pulumi-lang-java=\"`mariadb`\" pulumi-lang-hcl=\"`mariadb`\"\u003e`mariadb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s3`\" pulumi-lang-dotnet=\"`S3`\" pulumi-lang-go=\"`s3`\" pulumi-lang-python=\"`s3`\" pulumi-lang-yaml=\"`s3`\" pulumi-lang-java=\"`s3`\" pulumi-lang-hcl=\"`s3`\"\u003e`s3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dynamodb`\" pulumi-lang-dotnet=\"`Dynamodb`\" pulumi-lang-go=\"`dynamodb`\" pulumi-lang-python=\"`dynamodb`\" pulumi-lang-yaml=\"`dynamodb`\" pulumi-lang-java=\"`dynamodb`\" pulumi-lang-hcl=\"`dynamodb`\"\u003e`dynamodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\" pulumi-lang-hcl=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`documentdb`\" pulumi-lang-dotnet=\"`Documentdb`\" pulumi-lang-go=\"`documentdb`\" pulumi-lang-python=\"`documentdb`\" pulumi-lang-yaml=\"`documentdb`\" pulumi-lang-java=\"`documentdb`\" pulumi-lang-hcl=\"`documentdb`\"\u003e`documentdb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\" pulumi-lang-hcl=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\" pulumi-lang-hcl=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`redis`\" pulumi-lang-dotnet=\"`Redis`\" pulumi-lang-go=\"`redis`\" pulumi-lang-python=\"`redis`\" pulumi-lang-yaml=\"`redis`\" pulumi-lang-java=\"`redis`\" pulumi-lang-hcl=\"`redis`\"\u003e`redis`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`web`\" pulumi-lang-dotnet=\"`Web`\" pulumi-lang-go=\"`web`\" pulumi-lang-python=\"`web`\" pulumi-lang-yaml=\"`web`\" pulumi-lang-java=\"`web`\" pulumi-lang-hcl=\"`web`\"\u003e`web`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ssh`\" pulumi-lang-dotnet=\"`Ssh`\" pulumi-lang-go=\"`ssh`\" pulumi-lang-python=\"`ssh`\" pulumi-lang-yaml=\"`ssh`\" pulumi-lang-java=\"`ssh`\" pulumi-lang-hcl=\"`ssh`\"\u003e`ssh`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`grpc`\" pulumi-lang-dotnet=\"`Grpc`\" pulumi-lang-go=\"`grpc`\" pulumi-lang-python=\"`grpc`\" pulumi-lang-yaml=\"`grpc`\" pulumi-lang-java=\"`grpc`\" pulumi-lang-hcl=\"`grpc`\"\u003e`grpc`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "technologyProvider": {
                    "type": "string",
                    "description": "For SSH resources, if the backend connection is SSM, supported values are `aws-ec2`, and `aws-ecs`\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, the Resource cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "hostname",
                "port",
                "technology"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Resource resources.\n",
                "properties": {
                    "aliases": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Aliases to apply to the Resource.\n"
                    },
                    "createdAt": {
                        "type": "integer",
                        "description": "Creation time of the Resource.\n"
                    },
                    "environment": {
                        "type": "string",
                        "description": "Environment for the Resource, options: DEV, TEST, QA, UAT, EI, PRE, STG, NON_PROD, PROD, CORP.\n",
                        "deprecationMessage": "This field is deprecated and will be removed in a future release."
                    },
                    "hostname": {
                        "type": "string",
                        "description": "Hostname of the Resource.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "Friendly name for the Resource.\n"
                    },
                    "port": {
                        "type": "integer",
                        "description": "The port your Resource is listening on.\n",
                        "willReplaceOnChanges": true
                    },
                    "spaceId": {
                        "type": "string",
                        "description": "The ID of the Space to create the Resource in.\n"
                    },
                    "tags": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "Tags to apply to the Resource.\n"
                    },
                    "technology": {
                        "type": "string",
                        "description": "Technology of the Resource: supported values are \u003cspan pulumi-lang-nodejs=\"`snowflake`\" pulumi-lang-dotnet=\"`Snowflake`\" pulumi-lang-go=\"`snowflake`\" pulumi-lang-python=\"`snowflake`\" pulumi-lang-yaml=\"`snowflake`\" pulumi-lang-java=\"`snowflake`\" pulumi-lang-hcl=\"`snowflake`\"\u003e`snowflake`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`postgres`\" pulumi-lang-dotnet=\"`Postgres`\" pulumi-lang-go=\"`postgres`\" pulumi-lang-python=\"`postgres`\" pulumi-lang-yaml=\"`postgres`\" pulumi-lang-java=\"`postgres`\" pulumi-lang-hcl=\"`postgres`\"\u003e`postgres`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rdp`\" pulumi-lang-dotnet=\"`Rdp`\" pulumi-lang-go=\"`rdp`\" pulumi-lang-python=\"`rdp`\" pulumi-lang-yaml=\"`rdp`\" pulumi-lang-java=\"`rdp`\" pulumi-lang-hcl=\"`rdp`\"\u003e`rdp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`redshift`\" pulumi-lang-dotnet=\"`Redshift`\" pulumi-lang-go=\"`redshift`\" pulumi-lang-python=\"`redshift`\" pulumi-lang-yaml=\"`redshift`\" pulumi-lang-java=\"`redshift`\" pulumi-lang-hcl=\"`redshift`\"\u003e`redshift`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mysql`\" pulumi-lang-dotnet=\"`Mysql`\" pulumi-lang-go=\"`mysql`\" pulumi-lang-python=\"`mysql`\" pulumi-lang-yaml=\"`mysql`\" pulumi-lang-java=\"`mysql`\" pulumi-lang-hcl=\"`mysql`\"\u003e`mysql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mariadb`\" pulumi-lang-dotnet=\"`Mariadb`\" pulumi-lang-go=\"`mariadb`\" pulumi-lang-python=\"`mariadb`\" pulumi-lang-yaml=\"`mariadb`\" pulumi-lang-java=\"`mariadb`\" pulumi-lang-hcl=\"`mariadb`\"\u003e`mariadb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s3`\" pulumi-lang-dotnet=\"`S3`\" pulumi-lang-go=\"`s3`\" pulumi-lang-python=\"`s3`\" pulumi-lang-yaml=\"`s3`\" pulumi-lang-java=\"`s3`\" pulumi-lang-hcl=\"`s3`\"\u003e`s3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dynamodb`\" pulumi-lang-dotnet=\"`Dynamodb`\" pulumi-lang-go=\"`dynamodb`\" pulumi-lang-python=\"`dynamodb`\" pulumi-lang-yaml=\"`dynamodb`\" pulumi-lang-java=\"`dynamodb`\" pulumi-lang-hcl=\"`dynamodb`\"\u003e`dynamodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\" pulumi-lang-hcl=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`documentdb`\" pulumi-lang-dotnet=\"`Documentdb`\" pulumi-lang-go=\"`documentdb`\" pulumi-lang-python=\"`documentdb`\" pulumi-lang-yaml=\"`documentdb`\" pulumi-lang-java=\"`documentdb`\" pulumi-lang-hcl=\"`documentdb`\"\u003e`documentdb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\" pulumi-lang-hcl=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\" pulumi-lang-hcl=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`redis`\" pulumi-lang-dotnet=\"`Redis`\" pulumi-lang-go=\"`redis`\" pulumi-lang-python=\"`redis`\" pulumi-lang-yaml=\"`redis`\" pulumi-lang-java=\"`redis`\" pulumi-lang-hcl=\"`redis`\"\u003e`redis`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`web`\" pulumi-lang-dotnet=\"`Web`\" pulumi-lang-go=\"`web`\" pulumi-lang-python=\"`web`\" pulumi-lang-yaml=\"`web`\" pulumi-lang-java=\"`web`\" pulumi-lang-hcl=\"`web`\"\u003e`web`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ssh`\" pulumi-lang-dotnet=\"`Ssh`\" pulumi-lang-go=\"`ssh`\" pulumi-lang-python=\"`ssh`\" pulumi-lang-yaml=\"`ssh`\" pulumi-lang-java=\"`ssh`\" pulumi-lang-hcl=\"`ssh`\"\u003e`ssh`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`grpc`\" pulumi-lang-dotnet=\"`Grpc`\" pulumi-lang-go=\"`grpc`\" pulumi-lang-python=\"`grpc`\" pulumi-lang-yaml=\"`grpc`\" pulumi-lang-java=\"`grpc`\" pulumi-lang-hcl=\"`grpc`\"\u003e`grpc`\u003c/span\u003e.\n",
                        "willReplaceOnChanges": true
                    },
                    "technologyProvider": {
                        "type": "string",
                        "description": "For SSH resources, if the backend connection is SSM, supported values are `aws-ec2`, and `aws-ecs`\n"
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, the Resource cannot be deleted.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/resourceClassifierConfiguration:ResourceClassifierConfiguration": {
            "description": "A Resource Classifier Configuration is a configuration for a resource classifier.\n",
            "properties": {
                "aiAnalysisScope": {
                    "type": "string",
                    "description": "Which direction to apply AI analysis. Required. Supported values are \u003cspan pulumi-lang-nodejs=\"`request`\" pulumi-lang-dotnet=\"`Request`\" pulumi-lang-go=\"`request`\" pulumi-lang-python=\"`request`\" pulumi-lang-yaml=\"`request`\" pulumi-lang-java=\"`request`\" pulumi-lang-hcl=\"`request`\"\u003e`request`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`response`\" pulumi-lang-dotnet=\"`Response`\" pulumi-lang-go=\"`response`\" pulumi-lang-python=\"`response`\" pulumi-lang-yaml=\"`response`\" pulumi-lang-java=\"`response`\" pulumi-lang-hcl=\"`response`\"\u003e`response`\u003c/span\u003e. Use preference=none to disable AI analysis entirely.\n"
                },
                "aiAnalysisTimeoutSeconds": {
                    "type": "integer",
                    "description": "The timeout for the AI analysis in seconds.\n"
                },
                "createdAt": {
                    "type": "integer",
                    "description": "The timestamp of the Resource Classifier Preference creation.\n"
                },
                "enforceStrictClassifierResultCount": {
                    "type": "boolean",
                    "description": "Whether to fail requests if the number of results from the classifier is not equal to the number of key-value pairs sent to it.\n"
                },
                "preference": {
                    "type": "string",
                    "description": "The preference. Supported values are \u003cspan pulumi-lang-nodejs=\"`nlp`\" pulumi-lang-dotnet=\"`Nlp`\" pulumi-lang-go=\"`nlp`\" pulumi-lang-python=\"`nlp`\" pulumi-lang-yaml=\"`nlp`\" pulumi-lang-java=\"`nlp`\" pulumi-lang-hcl=\"`nlp`\"\u003e`nlp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`llm`\" pulumi-lang-dotnet=\"`Llm`\" pulumi-lang-go=\"`llm`\" pulumi-lang-python=\"`llm`\" pulumi-lang-yaml=\"`llm`\" pulumi-lang-java=\"`llm`\" pulumi-lang-hcl=\"`llm`\"\u003e`llm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\" pulumi-lang-hcl=\"`both`\"\u003e`both`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\" pulumi-lang-hcl=\"`none`\"\u003e`none`\u003c/span\u003e.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "The ID of the Resource.\n"
                },
                "updatedAt": {
                    "type": "integer",
                    "description": "The timestamp of the Resource Classifier Preference update.\n"
                }
            },
            "required": [
                "aiAnalysisScope",
                "aiAnalysisTimeoutSeconds",
                "createdAt",
                "preference",
                "resourceId",
                "updatedAt"
            ],
            "inputProperties": {
                "aiAnalysisScope": {
                    "type": "string",
                    "description": "Which direction to apply AI analysis. Required. Supported values are \u003cspan pulumi-lang-nodejs=\"`request`\" pulumi-lang-dotnet=\"`Request`\" pulumi-lang-go=\"`request`\" pulumi-lang-python=\"`request`\" pulumi-lang-yaml=\"`request`\" pulumi-lang-java=\"`request`\" pulumi-lang-hcl=\"`request`\"\u003e`request`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`response`\" pulumi-lang-dotnet=\"`Response`\" pulumi-lang-go=\"`response`\" pulumi-lang-python=\"`response`\" pulumi-lang-yaml=\"`response`\" pulumi-lang-java=\"`response`\" pulumi-lang-hcl=\"`response`\"\u003e`response`\u003c/span\u003e. Use preference=none to disable AI analysis entirely.\n"
                },
                "aiAnalysisTimeoutSeconds": {
                    "type": "integer",
                    "description": "The timeout for the AI analysis in seconds.\n"
                },
                "enforceStrictClassifierResultCount": {
                    "type": "boolean",
                    "description": "Whether to fail requests if the number of results from the classifier is not equal to the number of key-value pairs sent to it.\n"
                },
                "preference": {
                    "type": "string",
                    "description": "The preference. Supported values are \u003cspan pulumi-lang-nodejs=\"`nlp`\" pulumi-lang-dotnet=\"`Nlp`\" pulumi-lang-go=\"`nlp`\" pulumi-lang-python=\"`nlp`\" pulumi-lang-yaml=\"`nlp`\" pulumi-lang-java=\"`nlp`\" pulumi-lang-hcl=\"`nlp`\"\u003e`nlp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`llm`\" pulumi-lang-dotnet=\"`Llm`\" pulumi-lang-go=\"`llm`\" pulumi-lang-python=\"`llm`\" pulumi-lang-yaml=\"`llm`\" pulumi-lang-java=\"`llm`\" pulumi-lang-hcl=\"`llm`\"\u003e`llm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\" pulumi-lang-hcl=\"`both`\"\u003e`both`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\" pulumi-lang-hcl=\"`none`\"\u003e`none`\u003c/span\u003e.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "The ID of the Resource.\n"
                }
            },
            "requiredInputs": [
                "aiAnalysisScope",
                "aiAnalysisTimeoutSeconds",
                "preference",
                "resourceId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ResourceClassifierConfiguration resources.\n",
                "properties": {
                    "aiAnalysisScope": {
                        "type": "string",
                        "description": "Which direction to apply AI analysis. Required. Supported values are \u003cspan pulumi-lang-nodejs=\"`request`\" pulumi-lang-dotnet=\"`Request`\" pulumi-lang-go=\"`request`\" pulumi-lang-python=\"`request`\" pulumi-lang-yaml=\"`request`\" pulumi-lang-java=\"`request`\" pulumi-lang-hcl=\"`request`\"\u003e`request`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`response`\" pulumi-lang-dotnet=\"`Response`\" pulumi-lang-go=\"`response`\" pulumi-lang-python=\"`response`\" pulumi-lang-yaml=\"`response`\" pulumi-lang-java=\"`response`\" pulumi-lang-hcl=\"`response`\"\u003e`response`\u003c/span\u003e. Use preference=none to disable AI analysis entirely.\n"
                    },
                    "aiAnalysisTimeoutSeconds": {
                        "type": "integer",
                        "description": "The timeout for the AI analysis in seconds.\n"
                    },
                    "createdAt": {
                        "type": "integer",
                        "description": "The timestamp of the Resource Classifier Preference creation.\n"
                    },
                    "enforceStrictClassifierResultCount": {
                        "type": "boolean",
                        "description": "Whether to fail requests if the number of results from the classifier is not equal to the number of key-value pairs sent to it.\n"
                    },
                    "preference": {
                        "type": "string",
                        "description": "The preference. Supported values are \u003cspan pulumi-lang-nodejs=\"`nlp`\" pulumi-lang-dotnet=\"`Nlp`\" pulumi-lang-go=\"`nlp`\" pulumi-lang-python=\"`nlp`\" pulumi-lang-yaml=\"`nlp`\" pulumi-lang-java=\"`nlp`\" pulumi-lang-hcl=\"`nlp`\"\u003e`nlp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`llm`\" pulumi-lang-dotnet=\"`Llm`\" pulumi-lang-go=\"`llm`\" pulumi-lang-python=\"`llm`\" pulumi-lang-yaml=\"`llm`\" pulumi-lang-java=\"`llm`\" pulumi-lang-hcl=\"`llm`\"\u003e`llm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\" pulumi-lang-hcl=\"`both`\"\u003e`both`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\" pulumi-lang-hcl=\"`none`\"\u003e`none`\u003c/span\u003e.\n"
                    },
                    "resourceId": {
                        "type": "string",
                        "description": "The ID of the Resource.\n"
                    },
                    "updatedAt": {
                        "type": "integer",
                        "description": "The timestamp of the Resource Classifier Preference update.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/resourceDialConfiguration:ResourceDialConfiguration": {
            "description": "Creating a Dial Configuration of a Resource in Formal.\n",
            "properties": {
                "dialMethod": {
                    "type": "string",
                    "description": "How the connector dials this resource's upstream. Supported values are: \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\" pulumi-lang-hcl=\"`tcp`\"\u003e`tcp`\u003c/span\u003e (direct TCP via the resource's hostname and port), \u003cspan pulumi-lang-nodejs=\"`gcpCloudsql`\" pulumi-lang-dotnet=\"`GcpCloudsql`\" pulumi-lang-go=\"`gcpCloudsql`\" pulumi-lang-python=\"`gcp_cloudsql`\" pulumi-lang-yaml=\"`gcpCloudsql`\" pulumi-lang-java=\"`gcpCloudsql`\" pulumi-lang-hcl=\"`gcp_cloudsql`\"\u003e`gcpCloudsql`\u003c/span\u003e (dial via the GCP Cloud SQL connector library — \u003cspan pulumi-lang-nodejs=\"`dialTarget`\" pulumi-lang-dotnet=\"`DialTarget`\" pulumi-lang-go=\"`dialTarget`\" pulumi-lang-python=\"`dial_target`\" pulumi-lang-yaml=\"`dialTarget`\" pulumi-lang-java=\"`dialTarget`\" pulumi-lang-hcl=\"`dial_target`\"\u003e`dialTarget`\u003c/span\u003e must be set to the `project:region:instance` connection name).\n"
                },
                "dialTarget": {
                    "type": "string",
                    "description": "Method-specific dial target. For \u003cspan pulumi-lang-nodejs=\"`gcpCloudsql`\" pulumi-lang-dotnet=\"`GcpCloudsql`\" pulumi-lang-go=\"`gcpCloudsql`\" pulumi-lang-python=\"`gcp_cloudsql`\" pulumi-lang-yaml=\"`gcpCloudsql`\" pulumi-lang-java=\"`gcpCloudsql`\" pulumi-lang-hcl=\"`gcp_cloudsql`\"\u003e`gcpCloudsql`\u003c/span\u003e, the `project:region:instance` connection name. Leave empty for \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\" pulumi-lang-hcl=\"`tcp`\"\u003e`tcp`\u003c/span\u003e.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID for which the dial configuration is applied to.\n"
                }
            },
            "required": [
                "dialMethod",
                "resourceId"
            ],
            "inputProperties": {
                "dialMethod": {
                    "type": "string",
                    "description": "How the connector dials this resource's upstream. Supported values are: \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\" pulumi-lang-hcl=\"`tcp`\"\u003e`tcp`\u003c/span\u003e (direct TCP via the resource's hostname and port), \u003cspan pulumi-lang-nodejs=\"`gcpCloudsql`\" pulumi-lang-dotnet=\"`GcpCloudsql`\" pulumi-lang-go=\"`gcpCloudsql`\" pulumi-lang-python=\"`gcp_cloudsql`\" pulumi-lang-yaml=\"`gcpCloudsql`\" pulumi-lang-java=\"`gcpCloudsql`\" pulumi-lang-hcl=\"`gcp_cloudsql`\"\u003e`gcpCloudsql`\u003c/span\u003e (dial via the GCP Cloud SQL connector library — \u003cspan pulumi-lang-nodejs=\"`dialTarget`\" pulumi-lang-dotnet=\"`DialTarget`\" pulumi-lang-go=\"`dialTarget`\" pulumi-lang-python=\"`dial_target`\" pulumi-lang-yaml=\"`dialTarget`\" pulumi-lang-java=\"`dialTarget`\" pulumi-lang-hcl=\"`dial_target`\"\u003e`dialTarget`\u003c/span\u003e must be set to the `project:region:instance` connection name).\n"
                },
                "dialTarget": {
                    "type": "string",
                    "description": "Method-specific dial target. For \u003cspan pulumi-lang-nodejs=\"`gcpCloudsql`\" pulumi-lang-dotnet=\"`GcpCloudsql`\" pulumi-lang-go=\"`gcpCloudsql`\" pulumi-lang-python=\"`gcp_cloudsql`\" pulumi-lang-yaml=\"`gcpCloudsql`\" pulumi-lang-java=\"`gcpCloudsql`\" pulumi-lang-hcl=\"`gcp_cloudsql`\"\u003e`gcpCloudsql`\u003c/span\u003e, the `project:region:instance` connection name. Leave empty for \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\" pulumi-lang-hcl=\"`tcp`\"\u003e`tcp`\u003c/span\u003e.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID for which the dial configuration is applied to.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "dialMethod",
                "resourceId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ResourceDialConfiguration resources.\n",
                "properties": {
                    "dialMethod": {
                        "type": "string",
                        "description": "How the connector dials this resource's upstream. Supported values are: \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\" pulumi-lang-hcl=\"`tcp`\"\u003e`tcp`\u003c/span\u003e (direct TCP via the resource's hostname and port), \u003cspan pulumi-lang-nodejs=\"`gcpCloudsql`\" pulumi-lang-dotnet=\"`GcpCloudsql`\" pulumi-lang-go=\"`gcpCloudsql`\" pulumi-lang-python=\"`gcp_cloudsql`\" pulumi-lang-yaml=\"`gcpCloudsql`\" pulumi-lang-java=\"`gcpCloudsql`\" pulumi-lang-hcl=\"`gcp_cloudsql`\"\u003e`gcpCloudsql`\u003c/span\u003e (dial via the GCP Cloud SQL connector library — \u003cspan pulumi-lang-nodejs=\"`dialTarget`\" pulumi-lang-dotnet=\"`DialTarget`\" pulumi-lang-go=\"`dialTarget`\" pulumi-lang-python=\"`dial_target`\" pulumi-lang-yaml=\"`dialTarget`\" pulumi-lang-java=\"`dialTarget`\" pulumi-lang-hcl=\"`dial_target`\"\u003e`dialTarget`\u003c/span\u003e must be set to the `project:region:instance` connection name).\n"
                    },
                    "dialTarget": {
                        "type": "string",
                        "description": "Method-specific dial target. For \u003cspan pulumi-lang-nodejs=\"`gcpCloudsql`\" pulumi-lang-dotnet=\"`GcpCloudsql`\" pulumi-lang-go=\"`gcpCloudsql`\" pulumi-lang-python=\"`gcp_cloudsql`\" pulumi-lang-yaml=\"`gcpCloudsql`\" pulumi-lang-java=\"`gcpCloudsql`\" pulumi-lang-hcl=\"`gcp_cloudsql`\"\u003e`gcpCloudsql`\u003c/span\u003e, the `project:region:instance` connection name. Leave empty for \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\" pulumi-lang-hcl=\"`tcp`\"\u003e`tcp`\u003c/span\u003e.\n"
                    },
                    "resourceId": {
                        "type": "string",
                        "description": "Resource ID for which the dial configuration is applied to.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "formal:index/resourceHealthCheck:ResourceHealthCheck": {
            "description": "Creating a Health Check in Formal.\n",
            "properties": {
                "databaseName": {
                    "type": "string",
                    "description": "Database associated with the health check.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID linked to the following health check.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Resource Health Check cannot be deleted.\n"
                }
            },
            "required": [
                "databaseName",
                "resourceId"
            ],
            "inputProperties": {
                "databaseName": {
                    "type": "string",
                    "description": "Database associated with the health check.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID linked to the following health check.\n",
                    "willReplaceOnChanges": true
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Resource Health Check cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "databaseName",
                "resourceId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ResourceHealthCheck resources.\n",
                "properties": {
                    "databaseName": {
                        "type": "string",
                        "description": "Database associated with the health check.\n"
                    },
                    "resourceId": {
                        "type": "string",
                        "description": "Resource ID linked to the following health check.\n",
                        "willReplaceOnChanges": true
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this Resource Health Check cannot be deleted.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/resourceHostname:ResourceHostname": {
            "description": "Registering a Resource Hostname with Formal.\n",
            "properties": {
                "hostname": {
                    "type": "string",
                    "description": "The hostname for this Resource hostname.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of this Resource Hostname.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "The ID of the Resource this hostname is linked to.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this resource hostname cannot be deleted.\n"
                }
            },
            "required": [
                "hostname",
                "name",
                "resourceId"
            ],
            "inputProperties": {
                "hostname": {
                    "type": "string",
                    "description": "The hostname for this Resource hostname.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of this Resource Hostname.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "The ID of the Resource this hostname is linked to.\n",
                    "willReplaceOnChanges": true
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this resource hostname cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "hostname",
                "resourceId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ResourceHostname resources.\n",
                "properties": {
                    "hostname": {
                        "type": "string",
                        "description": "The hostname for this Resource hostname.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of this Resource Hostname.\n"
                    },
                    "resourceId": {
                        "type": "string",
                        "description": "The ID of the Resource this hostname is linked to.\n",
                        "willReplaceOnChanges": true
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this resource hostname cannot be deleted.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/resourceTlsConfiguration:ResourceTlsConfiguration": {
            "description": "Creating a TLS Configuration of a Resource in Formal.\n",
            "properties": {
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID for which the TLS configuration is applied to.\n"
                },
                "tlsCaTruststore": {
                    "type": "string",
                    "description": "PEM encoded CA certificate to verify resource certificates. Only required if resource certificates are not trusted by the root CA truststore.\n"
                },
                "tlsConfig": {
                    "type": "string",
                    "description": "Validation mode for the TLS configuration. Supported values are: \u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\" pulumi-lang-hcl=\"`disable`\"\u003e`disable`\u003c/span\u003e (no TLS), `insecure-skip-verify` (TLS without verification), `insecure-verify-ca-only` (verify CA only), `verify-full` (full certificate verification).\n"
                },
                "tlsMinVersion": {
                    "type": "string",
                    "description": "Minimum TLS version to be used for connections.\n"
                }
            },
            "required": [
                "resourceId",
                "tlsConfig"
            ],
            "inputProperties": {
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID for which the TLS configuration is applied to.\n",
                    "willReplaceOnChanges": true
                },
                "tlsCaTruststore": {
                    "type": "string",
                    "description": "PEM encoded CA certificate to verify resource certificates. Only required if resource certificates are not trusted by the root CA truststore.\n"
                },
                "tlsConfig": {
                    "type": "string",
                    "description": "Validation mode for the TLS configuration. Supported values are: \u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\" pulumi-lang-hcl=\"`disable`\"\u003e`disable`\u003c/span\u003e (no TLS), `insecure-skip-verify` (TLS without verification), `insecure-verify-ca-only` (verify CA only), `verify-full` (full certificate verification).\n"
                },
                "tlsMinVersion": {
                    "type": "string",
                    "description": "Minimum TLS version to be used for connections.\n"
                }
            },
            "requiredInputs": [
                "resourceId",
                "tlsConfig"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ResourceTlsConfiguration resources.\n",
                "properties": {
                    "resourceId": {
                        "type": "string",
                        "description": "Resource ID for which the TLS configuration is applied to.\n",
                        "willReplaceOnChanges": true
                    },
                    "tlsCaTruststore": {
                        "type": "string",
                        "description": "PEM encoded CA certificate to verify resource certificates. Only required if resource certificates are not trusted by the root CA truststore.\n"
                    },
                    "tlsConfig": {
                        "type": "string",
                        "description": "Validation mode for the TLS configuration. Supported values are: \u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\" pulumi-lang-hcl=\"`disable`\"\u003e`disable`\u003c/span\u003e (no TLS), `insecure-skip-verify` (TLS without verification), `insecure-verify-ca-only` (verify CA only), `verify-full` (full certificate verification).\n"
                    },
                    "tlsMinVersion": {
                        "type": "string",
                        "description": "Minimum TLS version to be used for connections.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/satellite:Satellite": {
            "description": "Registering a Satellite\n",
            "properties": {
                "apiKey": {
                    "type": "string",
                    "description": "Api key of the Satellite.\n",
                    "secret": true
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for the Satellite.\n"
                },
                "satelliteType": {
                    "type": "string",
                    "description": "The type of satellite. Must be one of: \u003cspan pulumi-lang-nodejs=\"`ai`\" pulumi-lang-dotnet=\"`Ai`\" pulumi-lang-go=\"`ai`\" pulumi-lang-python=\"`ai`\" pulumi-lang-yaml=\"`ai`\" pulumi-lang-java=\"`ai`\" pulumi-lang-hcl=\"`ai`\"\u003e`ai`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dataDiscovery`\" pulumi-lang-dotnet=\"`DataDiscovery`\" pulumi-lang-go=\"`dataDiscovery`\" pulumi-lang-python=\"`data_discovery`\" pulumi-lang-yaml=\"`dataDiscovery`\" pulumi-lang-java=\"`dataDiscovery`\" pulumi-lang-hcl=\"`data_discovery`\"\u003e`dataDiscovery`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dataClassifier`\" pulumi-lang-dotnet=\"`DataClassifier`\" pulumi-lang-go=\"`dataClassifier`\" pulumi-lang-python=\"`data_classifier`\" pulumi-lang-yaml=\"`dataClassifier`\" pulumi-lang-java=\"`dataClassifier`\" pulumi-lang-hcl=\"`data_classifier`\"\u003e`dataClassifier`\u003c/span\u003e (deprecated), or \u003cspan pulumi-lang-nodejs=\"`policyDataLoader`\" pulumi-lang-dotnet=\"`PolicyDataLoader`\" pulumi-lang-go=\"`policyDataLoader`\" pulumi-lang-python=\"`policy_data_loader`\" pulumi-lang-yaml=\"`policyDataLoader`\" pulumi-lang-java=\"`policyDataLoader`\" pulumi-lang-hcl=\"`policy_data_loader`\"\u003e`policyDataLoader`\u003c/span\u003e.\n"
                },
                "spaceId": {
                    "type": "string",
                    "description": "The ID of the Space to create the Satellite in.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Satellite cannot be deleted.\n"
                },
                "tlsCert": {
                    "type": "string",
                    "description": "TLS certificate of the Satellite.\n"
                }
            },
            "required": [
                "apiKey",
                "name",
                "satelliteType",
                "tlsCert"
            ],
            "inputProperties": {
                "name": {
                    "type": "string",
                    "description": "Friendly name for the Satellite.\n",
                    "willReplaceOnChanges": true
                },
                "satelliteType": {
                    "type": "string",
                    "description": "The type of satellite. Must be one of: \u003cspan pulumi-lang-nodejs=\"`ai`\" pulumi-lang-dotnet=\"`Ai`\" pulumi-lang-go=\"`ai`\" pulumi-lang-python=\"`ai`\" pulumi-lang-yaml=\"`ai`\" pulumi-lang-java=\"`ai`\" pulumi-lang-hcl=\"`ai`\"\u003e`ai`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dataDiscovery`\" pulumi-lang-dotnet=\"`DataDiscovery`\" pulumi-lang-go=\"`dataDiscovery`\" pulumi-lang-python=\"`data_discovery`\" pulumi-lang-yaml=\"`dataDiscovery`\" pulumi-lang-java=\"`dataDiscovery`\" pulumi-lang-hcl=\"`data_discovery`\"\u003e`dataDiscovery`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dataClassifier`\" pulumi-lang-dotnet=\"`DataClassifier`\" pulumi-lang-go=\"`dataClassifier`\" pulumi-lang-python=\"`data_classifier`\" pulumi-lang-yaml=\"`dataClassifier`\" pulumi-lang-java=\"`dataClassifier`\" pulumi-lang-hcl=\"`data_classifier`\"\u003e`dataClassifier`\u003c/span\u003e (deprecated), or \u003cspan pulumi-lang-nodejs=\"`policyDataLoader`\" pulumi-lang-dotnet=\"`PolicyDataLoader`\" pulumi-lang-go=\"`policyDataLoader`\" pulumi-lang-python=\"`policy_data_loader`\" pulumi-lang-yaml=\"`policyDataLoader`\" pulumi-lang-java=\"`policyDataLoader`\" pulumi-lang-hcl=\"`policy_data_loader`\"\u003e`policyDataLoader`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "spaceId": {
                    "type": "string",
                    "description": "The ID of the Space to create the Satellite in.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Satellite cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "satelliteType"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Satellite resources.\n",
                "properties": {
                    "apiKey": {
                        "type": "string",
                        "description": "Api key of the Satellite.\n",
                        "secret": true
                    },
                    "name": {
                        "type": "string",
                        "description": "Friendly name for the Satellite.\n",
                        "willReplaceOnChanges": true
                    },
                    "satelliteType": {
                        "type": "string",
                        "description": "The type of satellite. Must be one of: \u003cspan pulumi-lang-nodejs=\"`ai`\" pulumi-lang-dotnet=\"`Ai`\" pulumi-lang-go=\"`ai`\" pulumi-lang-python=\"`ai`\" pulumi-lang-yaml=\"`ai`\" pulumi-lang-java=\"`ai`\" pulumi-lang-hcl=\"`ai`\"\u003e`ai`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dataDiscovery`\" pulumi-lang-dotnet=\"`DataDiscovery`\" pulumi-lang-go=\"`dataDiscovery`\" pulumi-lang-python=\"`data_discovery`\" pulumi-lang-yaml=\"`dataDiscovery`\" pulumi-lang-java=\"`dataDiscovery`\" pulumi-lang-hcl=\"`data_discovery`\"\u003e`dataDiscovery`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dataClassifier`\" pulumi-lang-dotnet=\"`DataClassifier`\" pulumi-lang-go=\"`dataClassifier`\" pulumi-lang-python=\"`data_classifier`\" pulumi-lang-yaml=\"`dataClassifier`\" pulumi-lang-java=\"`dataClassifier`\" pulumi-lang-hcl=\"`data_classifier`\"\u003e`dataClassifier`\u003c/span\u003e (deprecated), or \u003cspan pulumi-lang-nodejs=\"`policyDataLoader`\" pulumi-lang-dotnet=\"`PolicyDataLoader`\" pulumi-lang-go=\"`policyDataLoader`\" pulumi-lang-python=\"`policy_data_loader`\" pulumi-lang-yaml=\"`policyDataLoader`\" pulumi-lang-java=\"`policyDataLoader`\" pulumi-lang-hcl=\"`policy_data_loader`\"\u003e`policyDataLoader`\u003c/span\u003e.\n",
                        "willReplaceOnChanges": true
                    },
                    "spaceId": {
                        "type": "string",
                        "description": "The ID of the Space to create the Satellite in.\n"
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this Satellite cannot be deleted.\n"
                    },
                    "tlsCert": {
                        "type": "string",
                        "description": "TLS certificate of the Satellite.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/satelliteHostname:SatelliteHostname": {
            "description": "Manage a Satellite Hostname.\n",
            "properties": {
                "createdAt": {
                    "type": "string",
                    "description": "The timestamp when the satellite hostname was created.\n"
                },
                "hostname": {
                    "type": "string",
                    "description": "The hostname for the satellite.\n"
                },
                "satelliteId": {
                    "type": "string",
                    "description": "The ID of the Satellite to create the hostname for.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this satellite hostname cannot be deleted.\n"
                },
                "updatedAt": {
                    "type": "string",
                    "description": "The timestamp when the satellite hostname was last updated.\n"
                }
            },
            "required": [
                "createdAt",
                "hostname",
                "satelliteId",
                "updatedAt"
            ],
            "inputProperties": {
                "hostname": {
                    "type": "string",
                    "description": "The hostname for the satellite.\n",
                    "willReplaceOnChanges": true
                },
                "satelliteId": {
                    "type": "string",
                    "description": "The ID of the Satellite to create the hostname for.\n",
                    "willReplaceOnChanges": true
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this satellite hostname cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "hostname",
                "satelliteId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering SatelliteHostname resources.\n",
                "properties": {
                    "createdAt": {
                        "type": "string",
                        "description": "The timestamp when the satellite hostname was created.\n"
                    },
                    "hostname": {
                        "type": "string",
                        "description": "The hostname for the satellite.\n",
                        "willReplaceOnChanges": true
                    },
                    "satelliteId": {
                        "type": "string",
                        "description": "The ID of the Satellite to create the hostname for.\n",
                        "willReplaceOnChanges": true
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this satellite hostname cannot be deleted.\n"
                    },
                    "updatedAt": {
                        "type": "string",
                        "description": "The timestamp when the satellite hostname was last updated.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/satelliteLink:SatelliteLink": {
            "description": "Link a Satellite to another Satellite. For example, link a Data Discovery Satellite to an AI Satellite for column classification.\n",
            "properties": {
                "createdAt": {
                    "type": "string",
                    "description": "The timestamp when the satellite link was created.\n"
                },
                "sourceSatelliteId": {
                    "type": "string",
                    "description": "The ID of the source Satellite (e.g., Data Discovery Satellite).\n"
                },
                "targetSatelliteId": {
                    "type": "string",
                    "description": "The ID of the target Satellite (e.g., AI Satellite).\n"
                },
                "updatedAt": {
                    "type": "string",
                    "description": "The timestamp when the satellite link was last updated.\n"
                }
            },
            "required": [
                "createdAt",
                "sourceSatelliteId",
                "targetSatelliteId",
                "updatedAt"
            ],
            "inputProperties": {
                "sourceSatelliteId": {
                    "type": "string",
                    "description": "The ID of the source Satellite (e.g., Data Discovery Satellite).\n",
                    "willReplaceOnChanges": true
                },
                "targetSatelliteId": {
                    "type": "string",
                    "description": "The ID of the target Satellite (e.g., AI Satellite).\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "sourceSatelliteId",
                "targetSatelliteId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering SatelliteLink resources.\n",
                "properties": {
                    "createdAt": {
                        "type": "string",
                        "description": "The timestamp when the satellite link was created.\n"
                    },
                    "sourceSatelliteId": {
                        "type": "string",
                        "description": "The ID of the source Satellite (e.g., Data Discovery Satellite).\n",
                        "willReplaceOnChanges": true
                    },
                    "targetSatelliteId": {
                        "type": "string",
                        "description": "The ID of the target Satellite (e.g., AI Satellite).\n",
                        "willReplaceOnChanges": true
                    },
                    "updatedAt": {
                        "type": "string",
                        "description": "The timestamp when the satellite link was last updated.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/sidecar:Sidecar": {
            "description": "(Deprecated) Registering a Sidecar with Formal.\n",
            "properties": {
                "apiKey": {
                    "type": "string",
                    "description": "Api key for the deployed Sidecar.\n",
                    "secret": true
                },
                "createdAt": {
                    "type": "integer",
                    "description": "Creation time of the sidecar.\n"
                },
                "formalControlPlaneTlsCertificate": {
                    "type": "string",
                    "description": "If\u003cspan pulumi-lang-nodejs=\" deploymentType \" pulumi-lang-dotnet=\" DeploymentType \" pulumi-lang-go=\" deploymentType \" pulumi-lang-python=\" deployment_type \" pulumi-lang-yaml=\" deploymentType \" pulumi-lang-java=\" deploymentType \" pulumi-lang-hcl=\" deployment_type \"\u003e deploymentType \u003c/span\u003eis onprem, this is the Control Plane TLS Certificate to add to the deployed Sidecar.\n",
                    "secret": true
                },
                "hostname": {
                    "type": "string",
                    "description": "The hostname of the created sidecar.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for this Sidecar.\n"
                },
                "technology": {
                    "type": "string",
                    "description": "Technology of the Datastore: supported values are\u003cspan pulumi-lang-nodejs=\"`snowflake`\" pulumi-lang-dotnet=\"`Snowflake`\" pulumi-lang-go=\"`snowflake`\" pulumi-lang-python=\"`snowflake`\" pulumi-lang-yaml=\"`snowflake`\" pulumi-lang-java=\"`snowflake`\" pulumi-lang-hcl=\"`snowflake`\"\u003e`snowflake`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`postgres`\" pulumi-lang-dotnet=\"`Postgres`\" pulumi-lang-go=\"`postgres`\" pulumi-lang-python=\"`postgres`\" pulumi-lang-yaml=\"`postgres`\" pulumi-lang-java=\"`postgres`\" pulumi-lang-hcl=\"`postgres`\"\u003e`postgres`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`redshift`\" pulumi-lang-dotnet=\"`Redshift`\" pulumi-lang-go=\"`redshift`\" pulumi-lang-python=\"`redshift`\" pulumi-lang-yaml=\"`redshift`\" pulumi-lang-java=\"`redshift`\" pulumi-lang-hcl=\"`redshift`\"\u003e`redshift`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mysql`\" pulumi-lang-dotnet=\"`Mysql`\" pulumi-lang-go=\"`mysql`\" pulumi-lang-python=\"`mysql`\" pulumi-lang-yaml=\"`mysql`\" pulumi-lang-java=\"`mysql`\" pulumi-lang-hcl=\"`mysql`\"\u003e`mysql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mariadb`\" pulumi-lang-dotnet=\"`Mariadb`\" pulumi-lang-go=\"`mariadb`\" pulumi-lang-python=\"`mariadb`\" pulumi-lang-yaml=\"`mariadb`\" pulumi-lang-java=\"`mariadb`\" pulumi-lang-hcl=\"`mariadb`\"\u003e`mariadb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s3`\" pulumi-lang-dotnet=\"`S3`\" pulumi-lang-go=\"`s3`\" pulumi-lang-python=\"`s3`\" pulumi-lang-yaml=\"`s3`\" pulumi-lang-java=\"`s3`\" pulumi-lang-hcl=\"`s3`\"\u003e`s3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dynamodb`\" pulumi-lang-dotnet=\"`Dynamodb`\" pulumi-lang-go=\"`dynamodb`\" pulumi-lang-python=\"`dynamodb`\" pulumi-lang-yaml=\"`dynamodb`\" pulumi-lang-java=\"`dynamodb`\" pulumi-lang-hcl=\"`dynamodb`\"\u003e`dynamodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\" pulumi-lang-hcl=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`documentdb`\" pulumi-lang-dotnet=\"`Documentdb`\" pulumi-lang-go=\"`documentdb`\" pulumi-lang-python=\"`documentdb`\" pulumi-lang-yaml=\"`documentdb`\" pulumi-lang-java=\"`documentdb`\" pulumi-lang-hcl=\"`documentdb`\"\u003e`documentdb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\" pulumi-lang-hcl=\"`http`\"\u003e`http`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ssh`\" pulumi-lang-dotnet=\"`Ssh`\" pulumi-lang-go=\"`ssh`\" pulumi-lang-python=\"`ssh`\" pulumi-lang-yaml=\"`ssh`\" pulumi-lang-java=\"`ssh`\" pulumi-lang-hcl=\"`ssh`\"\u003e`ssh`\u003c/span\u003e.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Sidecar cannot be deleted.\n"
                },
                "version": {
                    "type": "string",
                    "description": "Version of the Sidecar to deploy for \u003cspan pulumi-lang-nodejs=\"`managed`\" pulumi-lang-dotnet=\"`Managed`\" pulumi-lang-go=\"`managed`\" pulumi-lang-python=\"`managed`\" pulumi-lang-yaml=\"`managed`\" pulumi-lang-java=\"`managed`\" pulumi-lang-hcl=\"`managed`\"\u003e`managed`\u003c/span\u003e.\n"
                }
            },
            "required": [
                "apiKey",
                "createdAt",
                "formalControlPlaneTlsCertificate",
                "hostname",
                "name",
                "technology"
            ],
            "inputProperties": {
                "hostname": {
                    "type": "string",
                    "description": "The hostname of the created sidecar.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for this Sidecar.\n"
                },
                "technology": {
                    "type": "string",
                    "description": "Technology of the Datastore: supported values are\u003cspan pulumi-lang-nodejs=\"`snowflake`\" pulumi-lang-dotnet=\"`Snowflake`\" pulumi-lang-go=\"`snowflake`\" pulumi-lang-python=\"`snowflake`\" pulumi-lang-yaml=\"`snowflake`\" pulumi-lang-java=\"`snowflake`\" pulumi-lang-hcl=\"`snowflake`\"\u003e`snowflake`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`postgres`\" pulumi-lang-dotnet=\"`Postgres`\" pulumi-lang-go=\"`postgres`\" pulumi-lang-python=\"`postgres`\" pulumi-lang-yaml=\"`postgres`\" pulumi-lang-java=\"`postgres`\" pulumi-lang-hcl=\"`postgres`\"\u003e`postgres`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`redshift`\" pulumi-lang-dotnet=\"`Redshift`\" pulumi-lang-go=\"`redshift`\" pulumi-lang-python=\"`redshift`\" pulumi-lang-yaml=\"`redshift`\" pulumi-lang-java=\"`redshift`\" pulumi-lang-hcl=\"`redshift`\"\u003e`redshift`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mysql`\" pulumi-lang-dotnet=\"`Mysql`\" pulumi-lang-go=\"`mysql`\" pulumi-lang-python=\"`mysql`\" pulumi-lang-yaml=\"`mysql`\" pulumi-lang-java=\"`mysql`\" pulumi-lang-hcl=\"`mysql`\"\u003e`mysql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mariadb`\" pulumi-lang-dotnet=\"`Mariadb`\" pulumi-lang-go=\"`mariadb`\" pulumi-lang-python=\"`mariadb`\" pulumi-lang-yaml=\"`mariadb`\" pulumi-lang-java=\"`mariadb`\" pulumi-lang-hcl=\"`mariadb`\"\u003e`mariadb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s3`\" pulumi-lang-dotnet=\"`S3`\" pulumi-lang-go=\"`s3`\" pulumi-lang-python=\"`s3`\" pulumi-lang-yaml=\"`s3`\" pulumi-lang-java=\"`s3`\" pulumi-lang-hcl=\"`s3`\"\u003e`s3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dynamodb`\" pulumi-lang-dotnet=\"`Dynamodb`\" pulumi-lang-go=\"`dynamodb`\" pulumi-lang-python=\"`dynamodb`\" pulumi-lang-yaml=\"`dynamodb`\" pulumi-lang-java=\"`dynamodb`\" pulumi-lang-hcl=\"`dynamodb`\"\u003e`dynamodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\" pulumi-lang-hcl=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`documentdb`\" pulumi-lang-dotnet=\"`Documentdb`\" pulumi-lang-go=\"`documentdb`\" pulumi-lang-python=\"`documentdb`\" pulumi-lang-yaml=\"`documentdb`\" pulumi-lang-java=\"`documentdb`\" pulumi-lang-hcl=\"`documentdb`\"\u003e`documentdb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\" pulumi-lang-hcl=\"`http`\"\u003e`http`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ssh`\" pulumi-lang-dotnet=\"`Ssh`\" pulumi-lang-go=\"`ssh`\" pulumi-lang-python=\"`ssh`\" pulumi-lang-yaml=\"`ssh`\" pulumi-lang-java=\"`ssh`\" pulumi-lang-hcl=\"`ssh`\"\u003e`ssh`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Sidecar cannot be deleted.\n"
                },
                "version": {
                    "type": "string",
                    "description": "Version of the Sidecar to deploy for \u003cspan pulumi-lang-nodejs=\"`managed`\" pulumi-lang-dotnet=\"`Managed`\" pulumi-lang-go=\"`managed`\" pulumi-lang-python=\"`managed`\" pulumi-lang-yaml=\"`managed`\" pulumi-lang-java=\"`managed`\" pulumi-lang-hcl=\"`managed`\"\u003e`managed`\u003c/span\u003e.\n"
                }
            },
            "requiredInputs": [
                "hostname",
                "technology"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Sidecar resources.\n",
                "properties": {
                    "apiKey": {
                        "type": "string",
                        "description": "Api key for the deployed Sidecar.\n",
                        "secret": true
                    },
                    "createdAt": {
                        "type": "integer",
                        "description": "Creation time of the sidecar.\n"
                    },
                    "formalControlPlaneTlsCertificate": {
                        "type": "string",
                        "description": "If\u003cspan pulumi-lang-nodejs=\" deploymentType \" pulumi-lang-dotnet=\" DeploymentType \" pulumi-lang-go=\" deploymentType \" pulumi-lang-python=\" deployment_type \" pulumi-lang-yaml=\" deploymentType \" pulumi-lang-java=\" deploymentType \" pulumi-lang-hcl=\" deployment_type \"\u003e deploymentType \u003c/span\u003eis onprem, this is the Control Plane TLS Certificate to add to the deployed Sidecar.\n",
                        "secret": true
                    },
                    "hostname": {
                        "type": "string",
                        "description": "The hostname of the created sidecar.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "Friendly name for this Sidecar.\n"
                    },
                    "technology": {
                        "type": "string",
                        "description": "Technology of the Datastore: supported values are\u003cspan pulumi-lang-nodejs=\"`snowflake`\" pulumi-lang-dotnet=\"`Snowflake`\" pulumi-lang-go=\"`snowflake`\" pulumi-lang-python=\"`snowflake`\" pulumi-lang-yaml=\"`snowflake`\" pulumi-lang-java=\"`snowflake`\" pulumi-lang-hcl=\"`snowflake`\"\u003e`snowflake`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`postgres`\" pulumi-lang-dotnet=\"`Postgres`\" pulumi-lang-go=\"`postgres`\" pulumi-lang-python=\"`postgres`\" pulumi-lang-yaml=\"`postgres`\" pulumi-lang-java=\"`postgres`\" pulumi-lang-hcl=\"`postgres`\"\u003e`postgres`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`redshift`\" pulumi-lang-dotnet=\"`Redshift`\" pulumi-lang-go=\"`redshift`\" pulumi-lang-python=\"`redshift`\" pulumi-lang-yaml=\"`redshift`\" pulumi-lang-java=\"`redshift`\" pulumi-lang-hcl=\"`redshift`\"\u003e`redshift`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mysql`\" pulumi-lang-dotnet=\"`Mysql`\" pulumi-lang-go=\"`mysql`\" pulumi-lang-python=\"`mysql`\" pulumi-lang-yaml=\"`mysql`\" pulumi-lang-java=\"`mysql`\" pulumi-lang-hcl=\"`mysql`\"\u003e`mysql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mariadb`\" pulumi-lang-dotnet=\"`Mariadb`\" pulumi-lang-go=\"`mariadb`\" pulumi-lang-python=\"`mariadb`\" pulumi-lang-yaml=\"`mariadb`\" pulumi-lang-java=\"`mariadb`\" pulumi-lang-hcl=\"`mariadb`\"\u003e`mariadb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s3`\" pulumi-lang-dotnet=\"`S3`\" pulumi-lang-go=\"`s3`\" pulumi-lang-python=\"`s3`\" pulumi-lang-yaml=\"`s3`\" pulumi-lang-java=\"`s3`\" pulumi-lang-hcl=\"`s3`\"\u003e`s3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dynamodb`\" pulumi-lang-dotnet=\"`Dynamodb`\" pulumi-lang-go=\"`dynamodb`\" pulumi-lang-python=\"`dynamodb`\" pulumi-lang-yaml=\"`dynamodb`\" pulumi-lang-java=\"`dynamodb`\" pulumi-lang-hcl=\"`dynamodb`\"\u003e`dynamodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\" pulumi-lang-hcl=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`documentdb`\" pulumi-lang-dotnet=\"`Documentdb`\" pulumi-lang-go=\"`documentdb`\" pulumi-lang-python=\"`documentdb`\" pulumi-lang-yaml=\"`documentdb`\" pulumi-lang-java=\"`documentdb`\" pulumi-lang-hcl=\"`documentdb`\"\u003e`documentdb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\" pulumi-lang-hcl=\"`http`\"\u003e`http`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ssh`\" pulumi-lang-dotnet=\"`Ssh`\" pulumi-lang-go=\"`ssh`\" pulumi-lang-python=\"`ssh`\" pulumi-lang-yaml=\"`ssh`\" pulumi-lang-java=\"`ssh`\" pulumi-lang-hcl=\"`ssh`\"\u003e`ssh`\u003c/span\u003e.\n",
                        "willReplaceOnChanges": true
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this Sidecar cannot be deleted.\n"
                    },
                    "version": {
                        "type": "string",
                        "description": "Version of the Sidecar to deploy for \u003cspan pulumi-lang-nodejs=\"`managed`\" pulumi-lang-dotnet=\"`Managed`\" pulumi-lang-go=\"`managed`\" pulumi-lang-python=\"`managed`\" pulumi-lang-yaml=\"`managed`\" pulumi-lang-java=\"`managed`\" pulumi-lang-hcl=\"`managed`\"\u003e`managed`\u003c/span\u003e.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/sidecarResourceLink:SidecarResourceLink": {
            "description": "(Deprecated) Linking a Resource to a Sidecar in Formal.\n",
            "properties": {
                "port": {
                    "type": "integer",
                    "description": "Port.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID to be linked.\n"
                },
                "sidecarId": {
                    "type": "string",
                    "description": "Sidecar ID that should be linked.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Sidecar Datastore Link cannot be deleted.\n"
                }
            },
            "required": [
                "port",
                "resourceId",
                "sidecarId"
            ],
            "inputProperties": {
                "port": {
                    "type": "integer",
                    "description": "Port.\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID to be linked.\n",
                    "willReplaceOnChanges": true
                },
                "sidecarId": {
                    "type": "string",
                    "description": "Sidecar ID that should be linked.\n",
                    "willReplaceOnChanges": true
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Sidecar Datastore Link cannot be deleted.\n"
                }
            },
            "requiredInputs": [
                "port",
                "resourceId",
                "sidecarId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering SidecarResourceLink resources.\n",
                "properties": {
                    "port": {
                        "type": "integer",
                        "description": "Port.\n"
                    },
                    "resourceId": {
                        "type": "string",
                        "description": "Resource ID to be linked.\n",
                        "willReplaceOnChanges": true
                    },
                    "sidecarId": {
                        "type": "string",
                        "description": "Sidecar ID that should be linked.\n",
                        "willReplaceOnChanges": true
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this Sidecar Datastore Link cannot be deleted.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/space:Space": {
            "description": "Registering a Space with Formal.\n",
            "properties": {
                "createdAt": {
                    "type": "integer",
                    "description": "Creation time of the Space.\n"
                },
                "description": {
                    "type": "string",
                    "description": "Description of the Space.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for this Space.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Space cannot be deleted.\n"
                }
            },
            "required": [
                "createdAt",
                "name"
            ],
            "inputProperties": {
                "description": {
                    "type": "string",
                    "description": "Description of the Space.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for this Space.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this Space cannot be deleted.\n"
                }
            },
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Space resources.\n",
                "properties": {
                    "createdAt": {
                        "type": "integer",
                        "description": "Creation time of the Space.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "Description of the Space.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "Friendly name for this Space.\n"
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this Space cannot be deleted.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/user:User": {
            "description": "User in Formal.\n",
            "properties": {
                "appType": {
                    "type": "string",
                    "description": "If the user is of type \u003cspan pulumi-lang-nodejs=\"`machine`\" pulumi-lang-dotnet=\"`Machine`\" pulumi-lang-go=\"`machine`\" pulumi-lang-python=\"`machine`\" pulumi-lang-yaml=\"`machine`\" pulumi-lang-java=\"`machine`\" pulumi-lang-hcl=\"`machine`\"\u003e`machine`\u003c/span\u003e, this is an optional designation for the app that this user will be used for. Supported values are \u003cspan pulumi-lang-nodejs=\"`metabase`\" pulumi-lang-dotnet=\"`Metabase`\" pulumi-lang-go=\"`metabase`\" pulumi-lang-python=\"`metabase`\" pulumi-lang-yaml=\"`metabase`\" pulumi-lang-java=\"`metabase`\" pulumi-lang-hcl=\"`metabase`\"\u003e`metabase`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tableau`\" pulumi-lang-dotnet=\"`Tableau`\" pulumi-lang-go=\"`tableau`\" pulumi-lang-python=\"`tableau`\" pulumi-lang-yaml=\"`tableau`\" pulumi-lang-java=\"`tableau`\" pulumi-lang-hcl=\"`tableau`\"\u003e`tableau`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`popsql`\" pulumi-lang-dotnet=\"`Popsql`\" pulumi-lang-go=\"`popsql`\" pulumi-lang-python=\"`popsql`\" pulumi-lang-yaml=\"`popsql`\" pulumi-lang-java=\"`popsql`\" pulumi-lang-hcl=\"`popsql`\"\u003e`popsql`\u003c/span\u003e.\n"
                },
                "dbUsername": {
                    "type": "string",
                    "description": "The username that the user will use to access the sidecar.\n"
                },
                "email": {
                    "type": "string",
                    "description": "For human users, their email.\n"
                },
                "expireAt": {
                    "type": "integer",
                    "description": "When the Role should be deleted and access revoked. Value should be provided in Unix epoch time, in seconds since midnight UTC of January 1, 1970.\n"
                },
                "firstName": {
                    "type": "string",
                    "description": "For human users, their first name.\n"
                },
                "lastName": {
                    "type": "string",
                    "description": "For human users, their last name.\n"
                },
                "machineUserAccessToken": {
                    "type": "string",
                    "description": "If the user is of type \u003cspan pulumi-lang-nodejs=\"`machine`\" pulumi-lang-dotnet=\"`Machine`\" pulumi-lang-go=\"`machine`\" pulumi-lang-python=\"`machine`\" pulumi-lang-yaml=\"`machine`\" pulumi-lang-java=\"`machine`\" pulumi-lang-hcl=\"`machine`\"\u003e`machine`\u003c/span\u003e, this is the access token (database password) of this user.\n",
                    "secret": true
                },
                "name": {
                    "type": "string",
                    "description": "For machine users, the name of the user.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this User cannot be deleted.\n"
                },
                "type": {
                    "type": "string",
                    "description": "Either 'human' or 'machine'.\n"
                }
            },
            "required": [
                "dbUsername",
                "machineUserAccessToken",
                "name",
                "type"
            ],
            "inputProperties": {
                "appType": {
                    "type": "string",
                    "description": "If the user is of type \u003cspan pulumi-lang-nodejs=\"`machine`\" pulumi-lang-dotnet=\"`Machine`\" pulumi-lang-go=\"`machine`\" pulumi-lang-python=\"`machine`\" pulumi-lang-yaml=\"`machine`\" pulumi-lang-java=\"`machine`\" pulumi-lang-hcl=\"`machine`\"\u003e`machine`\u003c/span\u003e, this is an optional designation for the app that this user will be used for. Supported values are \u003cspan pulumi-lang-nodejs=\"`metabase`\" pulumi-lang-dotnet=\"`Metabase`\" pulumi-lang-go=\"`metabase`\" pulumi-lang-python=\"`metabase`\" pulumi-lang-yaml=\"`metabase`\" pulumi-lang-java=\"`metabase`\" pulumi-lang-hcl=\"`metabase`\"\u003e`metabase`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tableau`\" pulumi-lang-dotnet=\"`Tableau`\" pulumi-lang-go=\"`tableau`\" pulumi-lang-python=\"`tableau`\" pulumi-lang-yaml=\"`tableau`\" pulumi-lang-java=\"`tableau`\" pulumi-lang-hcl=\"`tableau`\"\u003e`tableau`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`popsql`\" pulumi-lang-dotnet=\"`Popsql`\" pulumi-lang-go=\"`popsql`\" pulumi-lang-python=\"`popsql`\" pulumi-lang-yaml=\"`popsql`\" pulumi-lang-java=\"`popsql`\" pulumi-lang-hcl=\"`popsql`\"\u003e`popsql`\u003c/span\u003e.\n"
                },
                "email": {
                    "type": "string",
                    "description": "For human users, their email.\n",
                    "willReplaceOnChanges": true
                },
                "expireAt": {
                    "type": "integer",
                    "description": "When the Role should be deleted and access revoked. Value should be provided in Unix epoch time, in seconds since midnight UTC of January 1, 1970.\n",
                    "willReplaceOnChanges": true
                },
                "firstName": {
                    "type": "string",
                    "description": "For human users, their first name.\n"
                },
                "lastName": {
                    "type": "string",
                    "description": "For human users, their last name.\n"
                },
                "name": {
                    "type": "string",
                    "description": "For machine users, the name of the user.\n"
                },
                "terminationProtection": {
                    "type": "boolean",
                    "description": "If set to true, this User cannot be deleted.\n"
                },
                "type": {
                    "type": "string",
                    "description": "Either 'human' or 'machine'.\n"
                }
            },
            "requiredInputs": [
                "type"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering User resources.\n",
                "properties": {
                    "appType": {
                        "type": "string",
                        "description": "If the user is of type \u003cspan pulumi-lang-nodejs=\"`machine`\" pulumi-lang-dotnet=\"`Machine`\" pulumi-lang-go=\"`machine`\" pulumi-lang-python=\"`machine`\" pulumi-lang-yaml=\"`machine`\" pulumi-lang-java=\"`machine`\" pulumi-lang-hcl=\"`machine`\"\u003e`machine`\u003c/span\u003e, this is an optional designation for the app that this user will be used for. Supported values are \u003cspan pulumi-lang-nodejs=\"`metabase`\" pulumi-lang-dotnet=\"`Metabase`\" pulumi-lang-go=\"`metabase`\" pulumi-lang-python=\"`metabase`\" pulumi-lang-yaml=\"`metabase`\" pulumi-lang-java=\"`metabase`\" pulumi-lang-hcl=\"`metabase`\"\u003e`metabase`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tableau`\" pulumi-lang-dotnet=\"`Tableau`\" pulumi-lang-go=\"`tableau`\" pulumi-lang-python=\"`tableau`\" pulumi-lang-yaml=\"`tableau`\" pulumi-lang-java=\"`tableau`\" pulumi-lang-hcl=\"`tableau`\"\u003e`tableau`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`popsql`\" pulumi-lang-dotnet=\"`Popsql`\" pulumi-lang-go=\"`popsql`\" pulumi-lang-python=\"`popsql`\" pulumi-lang-yaml=\"`popsql`\" pulumi-lang-java=\"`popsql`\" pulumi-lang-hcl=\"`popsql`\"\u003e`popsql`\u003c/span\u003e.\n"
                    },
                    "dbUsername": {
                        "type": "string",
                        "description": "The username that the user will use to access the sidecar.\n"
                    },
                    "email": {
                        "type": "string",
                        "description": "For human users, their email.\n",
                        "willReplaceOnChanges": true
                    },
                    "expireAt": {
                        "type": "integer",
                        "description": "When the Role should be deleted and access revoked. Value should be provided in Unix epoch time, in seconds since midnight UTC of January 1, 1970.\n",
                        "willReplaceOnChanges": true
                    },
                    "firstName": {
                        "type": "string",
                        "description": "For human users, their first name.\n"
                    },
                    "lastName": {
                        "type": "string",
                        "description": "For human users, their last name.\n"
                    },
                    "machineUserAccessToken": {
                        "type": "string",
                        "description": "If the user is of type \u003cspan pulumi-lang-nodejs=\"`machine`\" pulumi-lang-dotnet=\"`Machine`\" pulumi-lang-go=\"`machine`\" pulumi-lang-python=\"`machine`\" pulumi-lang-yaml=\"`machine`\" pulumi-lang-java=\"`machine`\" pulumi-lang-hcl=\"`machine`\"\u003e`machine`\u003c/span\u003e, this is the access token (database password) of this user.\n",
                        "secret": true
                    },
                    "name": {
                        "type": "string",
                        "description": "For machine users, the name of the user.\n"
                    },
                    "terminationProtection": {
                        "type": "boolean",
                        "description": "If set to true, this User cannot be deleted.\n"
                    },
                    "type": {
                        "type": "string",
                        "description": "Either 'human' or 'machine'.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/workflow:Workflow": {
            "description": "Workflows enable automation of actions based on triggers. A workflow is defined using YAML code that specifies a trigger (what starts the workflow) and actions (what the workflow does).\n",
            "properties": {
                "code": {
                    "type": "string",
                    "description": "The workflow definition in YAML format. Defines the trigger and actions for the workflow.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the workflow. Must be unique within the organization.\n"
                },
                "status": {
                    "type": "string",
                    "description": "The workflow status. Accepted values are \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\" pulumi-lang-hcl=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`draft`\" pulumi-lang-dotnet=\"`Draft`\" pulumi-lang-go=\"`draft`\" pulumi-lang-python=\"`draft`\" pulumi-lang-yaml=\"`draft`\" pulumi-lang-java=\"`draft`\" pulumi-lang-hcl=\"`draft`\"\u003e`draft`\u003c/span\u003e.\n"
                }
            },
            "required": [
                "code",
                "name"
            ],
            "inputProperties": {
                "code": {
                    "type": "string",
                    "description": "The workflow definition in YAML format. Defines the trigger and actions for the workflow.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the workflow. Must be unique within the organization.\n"
                },
                "status": {
                    "type": "string",
                    "description": "The workflow status. Accepted values are \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\" pulumi-lang-hcl=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`draft`\" pulumi-lang-dotnet=\"`Draft`\" pulumi-lang-go=\"`draft`\" pulumi-lang-python=\"`draft`\" pulumi-lang-yaml=\"`draft`\" pulumi-lang-java=\"`draft`\" pulumi-lang-hcl=\"`draft`\"\u003e`draft`\u003c/span\u003e.\n"
                }
            },
            "requiredInputs": [
                "code"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Workflow resources.\n",
                "properties": {
                    "code": {
                        "type": "string",
                        "description": "The workflow definition in YAML format. Defines the trigger and actions for the workflow.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the workflow. Must be unique within the organization.\n"
                    },
                    "status": {
                        "type": "string",
                        "description": "The workflow status. Accepted values are \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\" pulumi-lang-hcl=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`draft`\" pulumi-lang-dotnet=\"`Draft`\" pulumi-lang-go=\"`draft`\" pulumi-lang-python=\"`draft`\" pulumi-lang-yaml=\"`draft`\" pulumi-lang-java=\"`draft`\" pulumi-lang-hcl=\"`draft`\"\u003e`draft`\u003c/span\u003e.\n"
                    }
                },
                "type": "object"
            }
        }
    },
    "functions": {
        "formal:index/getConnector:getConnector": {
            "description": "Data source for looking up a Connector by name or by ID. Use either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\" pulumi-lang-hcl=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\" pulumi-lang-hcl=\"`id`\"\u003e`id`\u003c/span\u003e, but not both.\n",
            "inputs": {
                "description": "A collection of arguments for invoking getConnector.\n",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "The ID of the Connector to look up.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the Connector to look up. Use this to fetch a connector by name.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getConnector.\n",
                "properties": {
                    "apiKey": {
                        "description": "Api key for the deployed Connector.\n",
                        "secret": true,
                        "type": "string"
                    },
                    "id": {
                        "description": "The ID of the Connector to look up.\n",
                        "type": "string"
                    },
                    "name": {
                        "description": "The name of the Connector to look up. Use this to fetch a connector by name.\n",
                        "type": "string"
                    },
                    "spaceId": {
                        "description": "The ID of the Space the Connector is in.\n",
                        "type": "string"
                    },
                    "terminationProtection": {
                        "description": "If set to true, this Connector cannot be deleted.\n",
                        "type": "boolean"
                    }
                },
                "required": [
                    "apiKey",
                    "spaceId",
                    "terminationProtection"
                ],
                "type": "object"
            }
        },
        "formal:index/getGroup:getGroup": {
            "description": "Data source for looking up a Group by ID or by name. Use either \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\" pulumi-lang-hcl=\"`id`\"\u003e`id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\" pulumi-lang-hcl=\"`name`\"\u003e`name`\u003c/span\u003e, but not both.\n",
            "inputs": {
                "description": "A collection of arguments for invoking getGroup.\n",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "The ID of this Group.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the Group to look up. Use this to fetch a group by name.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getGroup.\n",
                "properties": {
                    "description": {
                        "description": "Description for this Group.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The ID of this Group.\n",
                        "type": "string"
                    },
                    "name": {
                        "description": "The name of the Group to look up. Use this to fetch a group by name.\n",
                        "type": "string"
                    },
                    "terminationProtection": {
                        "description": "If set to true, this Group cannot be deleted.\n",
                        "type": "boolean"
                    }
                },
                "required": [
                    "description",
                    "terminationProtection"
                ],
                "type": "object"
            }
        },
        "formal:index/getResource:getResource": {
            "description": "Data source for looking up a Resource by ID or by name. Use either \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\" pulumi-lang-hcl=\"`id`\"\u003e`id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\" pulumi-lang-hcl=\"`name`\"\u003e`name`\u003c/span\u003e, but not both.\n",
            "inputs": {
                "description": "A collection of arguments for invoking getResource.\n",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "The ID of this Resource.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the Resource to look up. Use this to fetch a resource by name.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getResource.\n",
                "properties": {
                    "createdAt": {
                        "description": "Creation time of the Resource.\n",
                        "type": "integer"
                    },
                    "environment": {
                        "description": "Environment for the Resource.\n",
                        "type": "string"
                    },
                    "hostname": {
                        "description": "Hostname of the Resource.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The ID of this Resource.\n",
                        "type": "string"
                    },
                    "name": {
                        "description": "The name of the Resource to look up. Use this to fetch a resource by name.\n",
                        "type": "string"
                    },
                    "port": {
                        "description": "The port your Resource is listening on.\n",
                        "type": "integer"
                    },
                    "spaceId": {
                        "description": "The ID of the Space the Resource is in.\n",
                        "type": "string"
                    },
                    "technology": {
                        "description": "Technology of the Resource.\n",
                        "type": "string"
                    },
                    "terminationProtection": {
                        "description": "If set to true, the Resource cannot be deleted.\n",
                        "type": "boolean"
                    }
                },
                "required": [
                    "createdAt",
                    "environment",
                    "hostname",
                    "port",
                    "spaceId",
                    "technology",
                    "terminationProtection"
                ],
                "type": "object"
            }
        },
        "formal:index/getSpace:getSpace": {
            "description": "Data source for looking up a Space by ID or by name. Use either \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\" pulumi-lang-hcl=\"`id`\"\u003e`id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\" pulumi-lang-hcl=\"`name`\"\u003e`name`\u003c/span\u003e, but not both.\n",
            "inputs": {
                "description": "A collection of arguments for invoking getSpace.\n",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "The Formal ID for this Space.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the Space to look up. Use this to fetch a space by name.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getSpace.\n",
                "properties": {
                    "createdAt": {
                        "description": "Creation time of the Space.\n",
                        "type": "integer"
                    },
                    "description": {
                        "description": "Description of the Space.\n",
                        "type": "string"
                    },
                    "id": {
                        "description": "The Formal ID for this Space.\n",
                        "type": "string"
                    },
                    "name": {
                        "description": "The name of the Space to look up. Use this to fetch a space by name.\n",
                        "type": "string"
                    },
                    "terminationProtection": {
                        "description": "If set to true, this Space cannot be deleted.\n",
                        "type": "boolean"
                    }
                },
                "required": [
                    "createdAt",
                    "description",
                    "terminationProtection"
                ],
                "type": "object"
            }
        },
        "pulumi:providers:formal/terraformConfig": {
            "description": "This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.",
            "inputs": {
                "properties": {
                    "__self__": {
                        "type": "ref",
                        "$ref": "#/provider"
                    }
                },
                "type": "pulumi:providers:formal/terraformConfig",
                "required": [
                    "__self__"
                ]
            },
            "outputs": {
                "properties": {
                    "result": {
                        "additionalProperties": {
                            "$ref": "pulumi.json#/Any"
                        },
                        "type": "object"
                    }
                },
                "required": [
                    "result"
                ],
                "type": "object"
            }
        }
    }
}