{
    "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/IntegrationCloudGcp:IntegrationCloudGcp": {
            "properties": {
                "allowGcsAccess": {
                    "type": "boolean",
                    "description": "Allows the Cloud Integration to write logs to GCS buckets for Log Integrations.\n"
                },
                "enableCloudsqlInstancesAutodiscovery": {
                    "type": "boolean",
                    "description": "Enables resource autodiscovery for Cloud SQL instances.\n"
                },
                "enableComputeInstancesAutodiscovery": {
                    "type": "boolean",
                    "description": "Enables resource autodiscovery for Compute Engine instances.\n"
                },
                "enableGkeClustersAutodiscovery": {
                    "type": "boolean",
                    "description": "Enables resource autodiscovery for GKE clusters.\n"
                },
                "gcsBuckets": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "GCS buckets Formal may write logs to. An empty list with access allowed grants all buckets in the project; a non-empty list restricts writes to those buckets.\n"
                },
                "projectId": {
                    "type": "string",
                    "description": "The GCP project ID this integration grants Formal access to.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "projectId"
            ]
        },
        "formal:index/IntegrationLogAwsS3:IntegrationLogAwsS3": {
            "properties": {
                "cloudIntegrationId": {
                    "type": "string",
                    "description": "Cloud Integration ID.\n"
                },
                "compression": {
                    "type": "string",
                    "description": "Codec each log object is compressed with, which also sets its file extension: \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 (`.json`), \u003cspan pulumi-lang-nodejs=\"`gzip`\" pulumi-lang-dotnet=\"`Gzip`\" pulumi-lang-go=\"`gzip`\" pulumi-lang-python=\"`gzip`\" pulumi-lang-yaml=\"`gzip`\" pulumi-lang-java=\"`gzip`\" pulumi-lang-hcl=\"`gzip`\"\u003e`gzip`\u003c/span\u003e (`.json.gz`) or \u003cspan pulumi-lang-nodejs=\"`zstd`\" pulumi-lang-dotnet=\"`Zstd`\" pulumi-lang-go=\"`zstd`\" pulumi-lang-python=\"`zstd`\" pulumi-lang-yaml=\"`zstd`\" pulumi-lang-java=\"`zstd`\" pulumi-lang-hcl=\"`zstd`\"\u003e`zstd`\u003c/span\u003e (`.json.zst`).\n",
                    "willReplaceOnChanges": true
                },
                "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/IntegrationLogGcs:IntegrationLogGcs": {
            "properties": {
                "cloudIntegrationId": {
                    "type": "string",
                    "description": "Cloud Integration ID.\n"
                },
                "compression": {
                    "type": "string",
                    "description": "Codec each log object is compressed with, which also sets its file extension: \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 (`.json`), \u003cspan pulumi-lang-nodejs=\"`gzip`\" pulumi-lang-dotnet=\"`Gzip`\" pulumi-lang-go=\"`gzip`\" pulumi-lang-python=\"`gzip`\" pulumi-lang-yaml=\"`gzip`\" pulumi-lang-java=\"`gzip`\" pulumi-lang-hcl=\"`gzip`\"\u003e`gzip`\u003c/span\u003e (`.json.gz`) or \u003cspan pulumi-lang-nodejs=\"`zstd`\" pulumi-lang-dotnet=\"`Zstd`\" pulumi-lang-go=\"`zstd`\" pulumi-lang-python=\"`zstd`\" pulumi-lang-yaml=\"`zstd`\" pulumi-lang-java=\"`zstd`\" pulumi-lang-hcl=\"`zstd`\"\u003e`zstd`\u003c/span\u003e (`.json.zst`).\n",
                    "willReplaceOnChanges": true
                },
                "gcsBucketName": {
                    "type": "string",
                    "description": "GCS Bucket Name.\n"
                },
                "gcsBucketPrefix": {
                    "type": "string",
                    "description": "GCS bucket prefix to write logs under. Defaults to the bucket root.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "cloudIntegrationId",
                "gcsBucketName"
            ]
        },
        "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/IntegrationMdmFleet:IntegrationMdmFleet": {
            "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.\nAPI key for your Fleet server. This value is not stored in Terraform state. To rotate the key, change this value and run `terraform apply -replace=\u003cresource address\u003e`.\n",
                    "secret": true
                },
                "apiUrl": {
                    "type": "string",
                    "description": "API URL of your Fleet server.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "apiKey",
                "apiUrl"
            ]
        },
        "formal:index/IntegrationMdmJamf:IntegrationMdmJamf": {
            "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.\nOAuth client secret for your Jamf Pro API client. This value is not stored in Terraform state. To rotate the secret, change this value and run `terraform apply -replace=\u003cresource address\u003e`.\n",
                    "secret": true
                },
                "apiUrl": {
                    "type": "string",
                    "description": "API URL of your Jamf Pro instance.\n",
                    "willReplaceOnChanges": true
                },
                "clientId": {
                    "type": "string",
                    "description": "OAuth client ID for your Jamf Pro API client.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "apiKey",
                "apiUrl",
                "clientId"
            ]
        },
        "formal:index/IntegrationMdmKandji:IntegrationMdmKandji": {
            "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.\nAPI Key of your Kandji organization. This value is not stored in Terraform state. To rotate the key, change this value and run `terraform apply -replace=\u003cresource address\u003e`.\n",
                    "secret": true
                },
                "apiUrl": {
                    "type": "string",
                    "description": "API URL of your Kandji organization.\n",
                    "willReplaceOnChanges": true
                }
            },
            "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/connectorTokenEncryptionKey:ConnectorTokenEncryptionKey": {
            "description": "Register a KMS key encryption key (KEK) for HTTP policy token encryption on a Connector.\n",
            "properties": {
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the Connector this token encryption key is linked to.\n"
                },
                "createdAt": {
                    "type": "string",
                    "description": "When the connector token encryption key was created.\n"
                },
                "keyId": {
                    "type": "string",
                    "description": "Provider-native key identifier (AWS KMS ARN, GCP CryptoKey resource name, or Azure Key Vault key URI).\n"
                },
                "keyProvider": {
                    "type": "string",
                    "description": "The KMS provider. One of 'aws-kms', 'gcp-kms', or 'azure-key-vault'.\n"
                },
                "updatedAt": {
                    "type": "string",
                    "description": "Last update time.\n"
                }
            },
            "required": [
                "connectorId",
                "createdAt",
                "keyId",
                "keyProvider",
                "updatedAt"
            ],
            "inputProperties": {
                "connectorId": {
                    "type": "string",
                    "description": "The ID of the Connector this token encryption key is linked to.\n",
                    "willReplaceOnChanges": true
                },
                "keyId": {
                    "type": "string",
                    "description": "Provider-native key identifier (AWS KMS ARN, GCP CryptoKey resource name, or Azure Key Vault key URI).\n",
                    "willReplaceOnChanges": true
                },
                "keyProvider": {
                    "type": "string",
                    "description": "The KMS provider. One of 'aws-kms', 'gcp-kms', or 'azure-key-vault'.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "connectorId",
                "keyId",
                "keyProvider"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ConnectorTokenEncryptionKey resources.\n",
                "properties": {
                    "connectorId": {
                        "type": "string",
                        "description": "The ID of the Connector this token encryption key is linked to.\n",
                        "willReplaceOnChanges": true
                    },
                    "createdAt": {
                        "type": "string",
                        "description": "When the connector token encryption key was created.\n"
                    },
                    "keyId": {
                        "type": "string",
                        "description": "Provider-native key identifier (AWS KMS ARN, GCP CryptoKey resource name, or Azure Key Vault key URI).\n",
                        "willReplaceOnChanges": true
                    },
                    "keyProvider": {
                        "type": "string",
                        "description": "The KMS provider. One of 'aws-kms', 'gcp-kms', or 'azure-key-vault'.\n",
                        "willReplaceOnChanges": true
                    },
                    "updatedAt": {
                        "type": "string",
                        "description": "Last update time.\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": "Deprecated. Symmetric and deterministic algorithms ('aes*random', 'aes*deterministic') are no longer supported. Encryption keys use asymmetric RSA ('rsaes*oaep*sha256'), which is the default.\n",
                    "deprecationMessage": "Symmetric and deterministic algorithms are no longer supported. Encryption keys now use asymmetric RSA (rsaes_oaep_sha256) by default; this field can be removed."
                },
                "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 (key ARN for AWS KMS, or the crypto key version resource name for GCP KMS).\n"
                },
                "keyProvider": {
                    "type": "string",
                    "description": "The provider of the encryption key. One of 'aws-kms' or 'gcp-kms' ('aws' is a deprecated alias for 'aws-kms').\n"
                },
                "publicKeyPem": {
                    "type": "string",
                    "description": "PEM-encoded RSA public key for client-side encryption. Required for all encryption keys. 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": "Deprecated. Symmetric and deterministic algorithms ('aes*random', 'aes*deterministic') are no longer supported. Encryption keys use asymmetric RSA ('rsaes*oaep*sha256'), which is the default.\n",
                    "deprecationMessage": "Symmetric and deterministic algorithms are no longer supported. Encryption keys now use asymmetric RSA (rsaes_oaep_sha256) by default; this field can be removed."
                },
                "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 (key ARN for AWS KMS, or the crypto key version resource name for GCP KMS).\n"
                },
                "keyProvider": {
                    "type": "string",
                    "description": "The provider of the encryption key. One of 'aws-kms' or 'gcp-kms' ('aws' is a deprecated alias for 'aws-kms').\n"
                },
                "publicKeyPem": {
                    "type": "string",
                    "description": "PEM-encoded RSA public key for client-side encryption. Required for all encryption keys. 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": [
                "keyId",
                "keyProvider"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering EncryptionKey resources.\n",
                "properties": {
                    "algorithm": {
                        "type": "string",
                        "description": "Deprecated. Symmetric and deterministic algorithms ('aes*random', 'aes*deterministic') are no longer supported. Encryption keys use asymmetric RSA ('rsaes*oaep*sha256'), which is the default.\n",
                        "deprecationMessage": "Symmetric and deterministic algorithms are no longer supported. Encryption keys now use asymmetric RSA (rsaes_oaep_sha256) by default; this field can be removed."
                    },
                    "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 (key ARN for AWS KMS, or the crypto key version resource name for GCP KMS).\n"
                    },
                    "keyProvider": {
                        "type": "string",
                        "description": "The provider of the encryption key. One of 'aws-kms' or 'gcp-kms' ('aws' is a deprecated alias for 'aws-kms').\n"
                    },
                    "publicKeyPem": {
                        "type": "string",
                        "description": "PEM-encoded RSA public key for client-side encryption. Required for all encryption keys. 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/hook:Hook": {
            "description": "Hooks are JavaScript functions evaluated during policy decisions. Policies reference hooks as `input.hooks.\u003cname\u003e`.\n",
            "properties": {
                "allowlistedEnvironmentVariables": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Names of process environment variables the hook may read via its second \u003cspan pulumi-lang-nodejs=\"`env`\" pulumi-lang-dotnet=\"`Env`\" pulumi-lang-go=\"`env`\" pulumi-lang-python=\"`env`\" pulumi-lang-yaml=\"`env`\" pulumi-lang-java=\"`env`\" pulumi-lang-hcl=\"`env`\"\u003e`env`\u003c/span\u003e argument at evaluation time. Each name must match `^[A-Za-z_][A-Za-z0-9_]*$`. Variables that are unset on the connector or desktop process are omitted from \u003cspan pulumi-lang-nodejs=\"`env`\" pulumi-lang-dotnet=\"`Env`\" pulumi-lang-go=\"`env`\" pulumi-lang-python=\"`env`\" pulumi-lang-yaml=\"`env`\" pulumi-lang-java=\"`env`\" pulumi-lang-hcl=\"`env`\"\u003e`env`\u003c/span\u003e.\n"
                },
                "allowlistedNetworkHosts": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Hostnames, IP addresses, and CIDR ranges the hook may contact at evaluation time. Schemes, paths, and ports are not accepted. All ports on each host are allowed.\n"
                },
                "code": {
                    "type": "string",
                    "description": "The hook implementation as JavaScript. Must be a default-exported function (for example `export default function hook(input, env) { ... }`). The optional second argument receives allowlisted process environment variables.\n"
                },
                "createdAt": {
                    "type": "string",
                    "description": "When the hook was created.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The hook description.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the hook. Must be unique within the organization and match `^[A-Za-z_][A-Za-z0-9_]*$`. Policies reference this name as `input.hooks.\u003cname\u003e`.\n"
                },
                "status": {
                    "type": "string",
                    "description": "The hook 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. Only active hooks can be referenced by policies.\n"
                },
                "timeoutMs": {
                    "type": "integer",
                    "description": "Maximum time in milliseconds the hook may run during policy evaluation. Must be between 1 and 60000.\n"
                },
                "updatedAt": {
                    "type": "string",
                    "description": "When the hook was last updated.\n"
                }
            },
            "required": [
                "code",
                "createdAt",
                "name",
                "updatedAt"
            ],
            "inputProperties": {
                "allowlistedEnvironmentVariables": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Names of process environment variables the hook may read via its second \u003cspan pulumi-lang-nodejs=\"`env`\" pulumi-lang-dotnet=\"`Env`\" pulumi-lang-go=\"`env`\" pulumi-lang-python=\"`env`\" pulumi-lang-yaml=\"`env`\" pulumi-lang-java=\"`env`\" pulumi-lang-hcl=\"`env`\"\u003e`env`\u003c/span\u003e argument at evaluation time. Each name must match `^[A-Za-z_][A-Za-z0-9_]*$`. Variables that are unset on the connector or desktop process are omitted from \u003cspan pulumi-lang-nodejs=\"`env`\" pulumi-lang-dotnet=\"`Env`\" pulumi-lang-go=\"`env`\" pulumi-lang-python=\"`env`\" pulumi-lang-yaml=\"`env`\" pulumi-lang-java=\"`env`\" pulumi-lang-hcl=\"`env`\"\u003e`env`\u003c/span\u003e.\n"
                },
                "allowlistedNetworkHosts": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Hostnames, IP addresses, and CIDR ranges the hook may contact at evaluation time. Schemes, paths, and ports are not accepted. All ports on each host are allowed.\n"
                },
                "code": {
                    "type": "string",
                    "description": "The hook implementation as JavaScript. Must be a default-exported function (for example `export default function hook(input, env) { ... }`). The optional second argument receives allowlisted process environment variables.\n"
                },
                "description": {
                    "type": "string",
                    "description": "The hook description.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the hook. Must be unique within the organization and match `^[A-Za-z_][A-Za-z0-9_]*$`. Policies reference this name as `input.hooks.\u003cname\u003e`.\n"
                },
                "status": {
                    "type": "string",
                    "description": "The hook 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. Only active hooks can be referenced by policies.\n"
                },
                "timeoutMs": {
                    "type": "integer",
                    "description": "Maximum time in milliseconds the hook may run during policy evaluation. Must be between 1 and 60000.\n"
                }
            },
            "requiredInputs": [
                "code"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Hook resources.\n",
                "properties": {
                    "allowlistedEnvironmentVariables": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Names of process environment variables the hook may read via its second \u003cspan pulumi-lang-nodejs=\"`env`\" pulumi-lang-dotnet=\"`Env`\" pulumi-lang-go=\"`env`\" pulumi-lang-python=\"`env`\" pulumi-lang-yaml=\"`env`\" pulumi-lang-java=\"`env`\" pulumi-lang-hcl=\"`env`\"\u003e`env`\u003c/span\u003e argument at evaluation time. Each name must match `^[A-Za-z_][A-Za-z0-9_]*$`. Variables that are unset on the connector or desktop process are omitted from \u003cspan pulumi-lang-nodejs=\"`env`\" pulumi-lang-dotnet=\"`Env`\" pulumi-lang-go=\"`env`\" pulumi-lang-python=\"`env`\" pulumi-lang-yaml=\"`env`\" pulumi-lang-java=\"`env`\" pulumi-lang-hcl=\"`env`\"\u003e`env`\u003c/span\u003e.\n"
                    },
                    "allowlistedNetworkHosts": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Hostnames, IP addresses, and CIDR ranges the hook may contact at evaluation time. Schemes, paths, and ports are not accepted. All ports on each host are allowed.\n"
                    },
                    "code": {
                        "type": "string",
                        "description": "The hook implementation as JavaScript. Must be a default-exported function (for example `export default function hook(input, env) { ... }`). The optional second argument receives allowlisted process environment variables.\n"
                    },
                    "createdAt": {
                        "type": "string",
                        "description": "When the hook was created.\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "The hook description.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the hook. Must be unique within the organization and match `^[A-Za-z_][A-Za-z0-9_]*$`. Policies reference this name as `input.hooks.\u003cname\u003e`.\n"
                    },
                    "status": {
                        "type": "string",
                        "description": "The hook 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. Only active hooks can be referenced by policies.\n"
                    },
                    "timeoutMs": {
                        "type": "integer",
                        "description": "Maximum time in milliseconds the hook may run during policy evaluation. Must be between 1 and 60000.\n"
                    },
                    "updatedAt": {
                        "type": "string",
                        "description": "When the hook was last updated.\n"
                    }
                },
                "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"
                },
                "awsFormalRoleArn": {
                    "type": "string",
                    "description": "The AWS IAM role ARN Formal uses to federate into your GCP workload identity pool.\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. (AWS only)\n"
                },
                "gcp": {
                    "$ref": "#/types/formal:index/IntegrationCloudGcp:IntegrationCloudGcp",
                    "description": "Configuration block for GCP integration.\n"
                },
                "gcpAllowGcsAccess": {
                    "type": "boolean",
                    "description": "Whether the Cloud Integration is allowed to write logs to GCS.\n"
                },
                "gcpEnableCloudsqlInstancesAutodiscovery": {
                    "type": "boolean",
                    "description": "Whether GCP Cloud SQL instances autodiscovery is enabled or not.\n"
                },
                "gcpEnableComputeInstancesAutodiscovery": {
                    "type": "boolean",
                    "description": "Whether GCP Compute Engine instances autodiscovery is enabled or not.\n"
                },
                "gcpEnableGkeClustersAutodiscovery": {
                    "type": "boolean",
                    "description": "Whether GCP GKE clusters autodiscovery is enabled or not.\n"
                },
                "gcpGcsBuckets": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The GCS buckets this Cloud Integration is allowed to write logs to. Empty with access allowed means all buckets in the project.\n"
                },
                "gcpPermissions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The IAM permissions to grant Formal's service account, derived from the enabled capabilities. Pass these to the GCP Terraform module, which grants them through a single custom role.\n"
                },
                "gcpProjectId": {
                    "type": "string",
                    "description": "The GCP project ID this integration grants Formal access to.\n"
                },
                "gcpRoles": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "The project-level IAM roles to grant Formal's service account, derived from the enabled capabilities. Pass these to the GCP Terraform module.\n",
                    "deprecationMessage": "Use gcp_permissions, which the GCP module grants through a single custom role."
                },
                "gcpServiceAccountEmail": {
                    "type": "string",
                    "description": "The GCP service account email created for this integration.\n"
                },
                "gcpWorkloadIdentityPoolProvider": {
                    "type": "string",
                    "description": "The GCP workload identity pool provider created for this integration.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Name of the Integration.\n"
                },
                "type": {
                    "type": "string",
                    "description": "Type of the Integration. (Supported: aws, gcp)\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",
                "awsFormalRoleArn",
                "awsFormalStackName",
                "awsS3BucketArn",
                "awsTemplateBody",
                "gcpAllowGcsAccess",
                "gcpEnableCloudsqlInstancesAutodiscovery",
                "gcpEnableComputeInstancesAutodiscovery",
                "gcpEnableGkeClustersAutodiscovery",
                "gcpGcsBuckets",
                "gcpPermissions",
                "gcpProjectId",
                "gcpRoles",
                "gcpServiceAccountEmail",
                "gcpWorkloadIdentityPoolProvider",
                "name",
                "type"
            ],
            "inputProperties": {
                "aws": {
                    "$ref": "#/types/formal:index/IntegrationCloudAws:IntegrationCloudAws",
                    "description": "Configuration block for AWS integration.\n"
                },
                "cloudRegion": {
                    "type": "string",
                    "description": "Region of the cloud provider. (AWS only)\n",
                    "willReplaceOnChanges": true
                },
                "gcp": {
                    "$ref": "#/types/formal:index/IntegrationCloudGcp:IntegrationCloudGcp",
                    "description": "Configuration block for GCP integration.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Name of the Integration.\n",
                    "willReplaceOnChanges": true
                },
                "type": {
                    "type": "string",
                    "description": "Type of the Integration. (Supported: aws, gcp)\n",
                    "deprecationMessage": "This field is deprecated and will be removed in a future version."
                }
            },
            "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"
                    },
                    "awsFormalRoleArn": {
                        "type": "string",
                        "description": "The AWS IAM role ARN Formal uses to federate into your GCP workload identity pool.\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. (AWS only)\n",
                        "willReplaceOnChanges": true
                    },
                    "gcp": {
                        "$ref": "#/types/formal:index/IntegrationCloudGcp:IntegrationCloudGcp",
                        "description": "Configuration block for GCP integration.\n"
                    },
                    "gcpAllowGcsAccess": {
                        "type": "boolean",
                        "description": "Whether the Cloud Integration is allowed to write logs to GCS.\n"
                    },
                    "gcpEnableCloudsqlInstancesAutodiscovery": {
                        "type": "boolean",
                        "description": "Whether GCP Cloud SQL instances autodiscovery is enabled or not.\n"
                    },
                    "gcpEnableComputeInstancesAutodiscovery": {
                        "type": "boolean",
                        "description": "Whether GCP Compute Engine instances autodiscovery is enabled or not.\n"
                    },
                    "gcpEnableGkeClustersAutodiscovery": {
                        "type": "boolean",
                        "description": "Whether GCP GKE clusters autodiscovery is enabled or not.\n"
                    },
                    "gcpGcsBuckets": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The GCS buckets this Cloud Integration is allowed to write logs to. Empty with access allowed means all buckets in the project.\n"
                    },
                    "gcpPermissions": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The IAM permissions to grant Formal's service account, derived from the enabled capabilities. Pass these to the GCP Terraform module, which grants them through a single custom role.\n"
                    },
                    "gcpProjectId": {
                        "type": "string",
                        "description": "The GCP project ID this integration grants Formal access to.\n"
                    },
                    "gcpRoles": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The project-level IAM roles to grant Formal's service account, derived from the enabled capabilities. Pass these to the GCP Terraform module.\n",
                        "deprecationMessage": "Use gcp_permissions, which the GCP module grants through a single custom role."
                    },
                    "gcpServiceAccountEmail": {
                        "type": "string",
                        "description": "The GCP service account email created for this integration.\n"
                    },
                    "gcpWorkloadIdentityPoolProvider": {
                        "type": "string",
                        "description": "The GCP workload identity pool provider created for this integration.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "Name of the Integration.\n",
                        "willReplaceOnChanges": true
                    },
                    "type": {
                        "type": "string",
                        "description": "Type of the Integration. (Supported: aws, gcp)\n",
                        "deprecationMessage": "This field is deprecated and will be removed in a future version."
                    }
                },
                "type": "object"
            }
        },
        "formal:index/integrationCloudGcpActivation:IntegrationCloudGcpActivation": {
            "description": "Reports the GCP service account and workload identity pool provider back to Formal to activate a GCP Cloud Integration.\n",
            "properties": {
                "integrationId": {
                    "type": "string",
                    "description": "The ID of the GCP Cloud Integration to activate.\n"
                },
                "serviceAccountEmail": {
                    "type": "string",
                    "description": "The GCP service account email created for this integration.\n"
                },
                "workloadIdentityPoolProvider": {
                    "type": "string",
                    "description": "The GCP workload identity pool provider created for this integration.\n"
                }
            },
            "required": [
                "integrationId",
                "serviceAccountEmail",
                "workloadIdentityPoolProvider"
            ],
            "inputProperties": {
                "integrationId": {
                    "type": "string",
                    "description": "The ID of the GCP Cloud Integration to activate.\n",
                    "willReplaceOnChanges": true
                },
                "serviceAccountEmail": {
                    "type": "string",
                    "description": "The GCP service account email created for this integration.\n"
                },
                "workloadIdentityPoolProvider": {
                    "type": "string",
                    "description": "The GCP workload identity pool provider created for this integration.\n"
                }
            },
            "requiredInputs": [
                "integrationId",
                "serviceAccountEmail",
                "workloadIdentityPoolProvider"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering IntegrationCloudGcpActivation resources.\n",
                "properties": {
                    "integrationId": {
                        "type": "string",
                        "description": "The ID of the GCP Cloud Integration to activate.\n",
                        "willReplaceOnChanges": true
                    },
                    "serviceAccountEmail": {
                        "type": "string",
                        "description": "The GCP service account email created for this integration.\n"
                    },
                    "workloadIdentityPoolProvider": {
                        "type": "string",
                        "description": "The GCP workload identity pool provider created for this integration.\n"
                    }
                },
                "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"
                },
                "gcs": {
                    "$ref": "#/types/formal:index/IntegrationLogGcs:IntegrationLogGcs",
                    "description": "Configuration block for Google Cloud Storage 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
                },
                "gcs": {
                    "$ref": "#/types/formal:index/IntegrationLogGcs:IntegrationLogGcs",
                    "description": "Configuration block for Google Cloud Storage 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
                    },
                    "gcs": {
                        "$ref": "#/types/formal:index/IntegrationLogGcs:IntegrationLogGcs",
                        "description": "Configuration block for Google Cloud Storage 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": {
                "fleet": {
                    "$ref": "#/types/formal:index/IntegrationMdmFleet:IntegrationMdmFleet",
                    "description": "Configuration block for Fleet integration."
                },
                "jamf": {
                    "$ref": "#/types/formal:index/IntegrationMdmJamf:IntegrationMdmJamf",
                    "description": "Configuration block for Jamf Pro integration."
                },
                "kandji": {
                    "$ref": "#/types/formal:index/IntegrationMdmKandji:IntegrationMdmKandji",
                    "description": "Configuration block for Kandji integration."
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for the Integration app.\n"
                }
            },
            "required": [
                "name"
            ],
            "inputProperties": {
                "fleet": {
                    "$ref": "#/types/formal:index/IntegrationMdmFleet:IntegrationMdmFleet",
                    "description": "Configuration block for Fleet integration."
                },
                "jamf": {
                    "$ref": "#/types/formal:index/IntegrationMdmJamf:IntegrationMdmJamf",
                    "description": "Configuration block for Jamf Pro integration."
                },
                "kandji": {
                    "$ref": "#/types/formal:index/IntegrationMdmKandji:IntegrationMdmKandji",
                    "description": "Configuration block for Kandji integration."
                },
                "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": {
                    "fleet": {
                        "$ref": "#/types/formal:index/IntegrationMdmFleet:IntegrationMdmFleet",
                        "description": "Configuration block for Fleet integration."
                    },
                    "jamf": {
                        "$ref": "#/types/formal:index/IntegrationMdmJamf:IntegrationMdmJamf",
                        "description": "Configuration block for Jamf Pro integration."
                    },
                    "kandji": {
                        "$ref": "#/types/formal:index/IntegrationMdmKandji:IntegrationMdmKandji",
                        "description": "Configuration block for Kandji integration."
                    },
                    "name": {
                        "type": "string",
                        "description": "Friendly name for the Integration app.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "formal:index/integrationOidc:IntegrationOidc": {
            "description": "Registers an OIDC trust configuration used to authenticate externally signed JWTs to the Formal control plane as a machine user.\n",
            "properties": {
                "audience": {
                    "type": "string",
                    "description": "The Formal audience value that tokens must present: `oidc.formal.ai/{id}`.\n"
                },
                "claimCondition": {
                    "type": "string",
                    "description": "CEL expression evaluated against verified token claims. Must return a boolean. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\" pulumi-lang-hcl=\"`true`\"\u003e`true`\u003c/span\u003e.\n"
                },
                "createdAt": {
                    "type": "string",
                    "description": "When the integration was created.\n"
                },
                "endUserEmailExpression": {
                    "type": "string",
                    "description": "Optional CEL expression over verified token claims that must evaluate to a string email. When set, federation mint resolves a Formal human by case-insensitive email. Leave unset for machine-only trusts. Examples: `claims.owner_email` (Cursor); `claims.sub.split('/').last()` (AWSReservedSSO session name when the session name is an email).\n"
                },
                "issuer": {
                    "type": "string",
                    "description": "OIDC issuer URL. Must be absolute HTTPS (path preserved). In local `ENV=dev`, the configured fake OIDC provider origin may use HTTP.\n"
                },
                "jwksUri": {
                    "type": "string",
                    "description": "Optional JWKS URI. When unset, Formal uses OIDC Discovery from the issuer. Must be absolute HTTPS when set.\n"
                },
                "machineUserId": {
                    "type": "string",
                    "description": "ID of the Formal machine user that authenticated OIDC tokens map to.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for the OIDC integration. Must be unique within the organization.\n"
                },
                "status": {
                    "type": "string",
                    "description": "Integration 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. Draft disables authentication.\n"
                },
                "updatedAt": {
                    "type": "string",
                    "description": "When the integration was last updated.\n"
                }
            },
            "required": [
                "audience",
                "createdAt",
                "issuer",
                "machineUserId",
                "name",
                "updatedAt"
            ],
            "inputProperties": {
                "claimCondition": {
                    "type": "string",
                    "description": "CEL expression evaluated against verified token claims. Must return a boolean. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\" pulumi-lang-hcl=\"`true`\"\u003e`true`\u003c/span\u003e.\n"
                },
                "endUserEmailExpression": {
                    "type": "string",
                    "description": "Optional CEL expression over verified token claims that must evaluate to a string email. When set, federation mint resolves a Formal human by case-insensitive email. Leave unset for machine-only trusts. Examples: `claims.owner_email` (Cursor); `claims.sub.split('/').last()` (AWSReservedSSO session name when the session name is an email).\n"
                },
                "issuer": {
                    "type": "string",
                    "description": "OIDC issuer URL. Must be absolute HTTPS (path preserved). In local `ENV=dev`, the configured fake OIDC provider origin may use HTTP.\n"
                },
                "jwksUri": {
                    "type": "string",
                    "description": "Optional JWKS URI. When unset, Formal uses OIDC Discovery from the issuer. Must be absolute HTTPS when set.\n"
                },
                "machineUserId": {
                    "type": "string",
                    "description": "ID of the Formal machine user that authenticated OIDC tokens map to.\n"
                },
                "name": {
                    "type": "string",
                    "description": "Friendly name for the OIDC integration. Must be unique within the organization.\n"
                },
                "status": {
                    "type": "string",
                    "description": "Integration 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. Draft disables authentication.\n"
                }
            },
            "requiredInputs": [
                "issuer",
                "machineUserId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering IntegrationOidc resources.\n",
                "properties": {
                    "audience": {
                        "type": "string",
                        "description": "The Formal audience value that tokens must present: `oidc.formal.ai/{id}`.\n"
                    },
                    "claimCondition": {
                        "type": "string",
                        "description": "CEL expression evaluated against verified token claims. Must return a boolean. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\" pulumi-lang-hcl=\"`true`\"\u003e`true`\u003c/span\u003e.\n"
                    },
                    "createdAt": {
                        "type": "string",
                        "description": "When the integration was created.\n"
                    },
                    "endUserEmailExpression": {
                        "type": "string",
                        "description": "Optional CEL expression over verified token claims that must evaluate to a string email. When set, federation mint resolves a Formal human by case-insensitive email. Leave unset for machine-only trusts. Examples: `claims.owner_email` (Cursor); `claims.sub.split('/').last()` (AWSReservedSSO session name when the session name is an email).\n"
                    },
                    "issuer": {
                        "type": "string",
                        "description": "OIDC issuer URL. Must be absolute HTTPS (path preserved). In local `ENV=dev`, the configured fake OIDC provider origin may use HTTP.\n"
                    },
                    "jwksUri": {
                        "type": "string",
                        "description": "Optional JWKS URI. When unset, Formal uses OIDC Discovery from the issuer. Must be absolute HTTPS when set.\n"
                    },
                    "machineUserId": {
                        "type": "string",
                        "description": "ID of the Formal machine user that authenticated OIDC tokens map to.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "Friendly name for the OIDC integration. Must be unique within the organization.\n"
                    },
                    "status": {
                        "type": "string",
                        "description": "Integration 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. Draft disables authentication.\n"
                    },
                    "updatedAt": {
                        "type": "string",
                        "description": "When the integration was last updated.\n"
                    }
                },
                "type": "object"
            }
        },
        "formal:index/inventoryObject:InventoryObject": {
            "description": "Registering an inventory object (db, schema, table, column, sub-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"
                },
                "subType": {
                    "type": "string",
                    "description": "Sub-column type. One of \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\" pulumi-lang-hcl=\"`json`\"\u003e`json`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hstore`\" pulumi-lang-dotnet=\"`Hstore`\" pulumi-lang-go=\"`hstore`\" pulumi-lang-python=\"`hstore`\" pulumi-lang-yaml=\"`hstore`\" pulumi-lang-java=\"`hstore`\" pulumi-lang-hcl=\"`hstore`\"\u003e`hstore`\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 `sub-column`, ignored otherwise.\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, `sub-column`.\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
                },
                "subType": {
                    "type": "string",
                    "description": "Sub-column type. One of \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\" pulumi-lang-hcl=\"`json`\"\u003e`json`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hstore`\" pulumi-lang-dotnet=\"`Hstore`\" pulumi-lang-go=\"`hstore`\" pulumi-lang-python=\"`hstore`\" pulumi-lang-yaml=\"`hstore`\" pulumi-lang-java=\"`hstore`\" pulumi-lang-hcl=\"`hstore`\"\u003e`hstore`\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 `sub-column`, ignored otherwise.\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, `sub-column`.\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
                    },
                    "subType": {
                        "type": "string",
                        "description": "Sub-column type. One of \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\" pulumi-lang-hcl=\"`json`\"\u003e`json`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hstore`\" pulumi-lang-dotnet=\"`Hstore`\" pulumi-lang-go=\"`hstore`\" pulumi-lang-python=\"`hstore`\" pulumi-lang-yaml=\"`hstore`\" pulumi-lang-java=\"`hstore`\" pulumi-lang-hcl=\"`hstore`\"\u003e`hstore`\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 `sub-column`, ignored otherwise.\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, `sub-column`.\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, \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, \u003cspan pulumi-lang-nodejs=\"`aws`\" pulumi-lang-dotnet=\"`Aws`\" pulumi-lang-go=\"`aws`\" pulumi-lang-python=\"`aws`\" pulumi-lang-yaml=\"`aws`\" pulumi-lang-java=\"`aws`\" pulumi-lang-hcl=\"`aws`\"\u003e`aws`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`gcp`\" pulumi-lang-dotnet=\"`Gcp`\" pulumi-lang-go=\"`gcp`\" pulumi-lang-python=\"`gcp`\" pulumi-lang-yaml=\"`gcp`\" pulumi-lang-java=\"`gcp`\" pulumi-lang-hcl=\"`gcp`\"\u003e`gcp`\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"
                },
                "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, \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, \u003cspan pulumi-lang-nodejs=\"`aws`\" pulumi-lang-dotnet=\"`Aws`\" pulumi-lang-go=\"`aws`\" pulumi-lang-python=\"`aws`\" pulumi-lang-yaml=\"`aws`\" pulumi-lang-java=\"`aws`\" pulumi-lang-hcl=\"`aws`\"\u003e`aws`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`gcp`\" pulumi-lang-dotnet=\"`Gcp`\" pulumi-lang-go=\"`gcp`\" pulumi-lang-python=\"`gcp`\" pulumi-lang-yaml=\"`gcp`\" pulumi-lang-java=\"`gcp`\" pulumi-lang-hcl=\"`gcp`\"\u003e`gcp`\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"
                    },
                    "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, \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, \u003cspan pulumi-lang-nodejs=\"`aws`\" pulumi-lang-dotnet=\"`Aws`\" pulumi-lang-go=\"`aws`\" pulumi-lang-python=\"`aws`\" pulumi-lang-yaml=\"`aws`\" pulumi-lang-java=\"`aws`\" pulumi-lang-hcl=\"`aws`\"\u003e`aws`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`gcp`\" pulumi-lang-dotnet=\"`Gcp`\" pulumi-lang-go=\"`gcp`\" pulumi-lang-python=\"`gcp`\" pulumi-lang-yaml=\"`gcp`\" pulumi-lang-java=\"`gcp`\" pulumi-lang-hcl=\"`gcp`\"\u003e`gcp`\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: \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; set \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 to the `project:region:instance` connection name), \u003cspan pulumi-lang-nodejs=\"`awsSsm`\" pulumi-lang-dotnet=\"`AwsSsm`\" pulumi-lang-go=\"`awsSsm`\" pulumi-lang-python=\"`aws_ssm`\" pulumi-lang-yaml=\"`awsSsm`\" pulumi-lang-java=\"`awsSsm`\" pulumi-lang-hcl=\"`aws_ssm`\"\u003e`awsSsm`\u003c/span\u003e (dial via AWS Systems Manager; set \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 to the target instance or cluster ARN).\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. For \u003cspan pulumi-lang-nodejs=\"`awsSsm`\" pulumi-lang-dotnet=\"`AwsSsm`\" pulumi-lang-go=\"`awsSsm`\" pulumi-lang-python=\"`aws_ssm`\" pulumi-lang-yaml=\"`awsSsm`\" pulumi-lang-java=\"`awsSsm`\" pulumi-lang-hcl=\"`aws_ssm`\"\u003e`awsSsm`\u003c/span\u003e, the target instance or cluster ARN. 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: \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; set \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 to the `project:region:instance` connection name), \u003cspan pulumi-lang-nodejs=\"`awsSsm`\" pulumi-lang-dotnet=\"`AwsSsm`\" pulumi-lang-go=\"`awsSsm`\" pulumi-lang-python=\"`aws_ssm`\" pulumi-lang-yaml=\"`awsSsm`\" pulumi-lang-java=\"`awsSsm`\" pulumi-lang-hcl=\"`aws_ssm`\"\u003e`awsSsm`\u003c/span\u003e (dial via AWS Systems Manager; set \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 to the target instance or cluster ARN).\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. For \u003cspan pulumi-lang-nodejs=\"`awsSsm`\" pulumi-lang-dotnet=\"`AwsSsm`\" pulumi-lang-go=\"`awsSsm`\" pulumi-lang-python=\"`aws_ssm`\" pulumi-lang-yaml=\"`awsSsm`\" pulumi-lang-java=\"`awsSsm`\" pulumi-lang-hcl=\"`aws_ssm`\"\u003e`awsSsm`\u003c/span\u003e, the target instance or cluster ARN. 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: \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; set \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 to the `project:region:instance` connection name), \u003cspan pulumi-lang-nodejs=\"`awsSsm`\" pulumi-lang-dotnet=\"`AwsSsm`\" pulumi-lang-go=\"`awsSsm`\" pulumi-lang-python=\"`aws_ssm`\" pulumi-lang-yaml=\"`awsSsm`\" pulumi-lang-java=\"`awsSsm`\" pulumi-lang-hcl=\"`aws_ssm`\"\u003e`awsSsm`\u003c/span\u003e (dial via AWS Systems Manager; set \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 to the target instance or cluster ARN).\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. For \u003cspan pulumi-lang-nodejs=\"`awsSsm`\" pulumi-lang-dotnet=\"`AwsSsm`\" pulumi-lang-go=\"`awsSsm`\" pulumi-lang-python=\"`aws_ssm`\" pulumi-lang-yaml=\"`awsSsm`\" pulumi-lang-java=\"`awsSsm`\" pulumi-lang-hcl=\"`aws_ssm`\"\u003e`awsSsm`\u003c/span\u003e, the target instance or cluster ARN. 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/resourceSshHostKey:ResourceSshHostKey": {
            "description": "Pin an upstream SSH host public key for a Formal resource. Multiple pins may exist for one\u003cspan pulumi-lang-nodejs=\" resourceId \" pulumi-lang-dotnet=\" ResourceId \" pulumi-lang-go=\" resourceId \" pulumi-lang-python=\" resource_id \" pulumi-lang-yaml=\" resourceId \" pulumi-lang-java=\" resourceId \" pulumi-lang-hcl=\" resource_id \"\u003e resourceId \u003c/span\u003ewhen the host presents multiple key types.\n",
            "properties": {
                "publicKey": {
                    "type": "string",
                    "description": "OpenSSH public key of the upstream SSH host (for example the output of `ssh-keygen -yf /etc/ssh/ssh_host_ed25519_key`).\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID for which the SSH host key is pinned.\n"
                }
            },
            "required": [
                "publicKey",
                "resourceId"
            ],
            "inputProperties": {
                "publicKey": {
                    "type": "string",
                    "description": "OpenSSH public key of the upstream SSH host (for example the output of `ssh-keygen -yf /etc/ssh/ssh_host_ed25519_key`).\n"
                },
                "resourceId": {
                    "type": "string",
                    "description": "Resource ID for which the SSH host key is pinned.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "publicKey",
                "resourceId"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering ResourceSshHostKey resources.\n",
                "properties": {
                    "publicKey": {
                        "type": "string",
                        "description": "OpenSSH public key of the upstream SSH host (for example the output of `ssh-keygen -yf /etc/ssh/ssh_host_ed25519_key`).\n"
                    },
                    "resourceId": {
                        "type": "string",
                        "description": "Resource ID for which the SSH host key is pinned.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "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"
                },
                "tlsClientCert": {
                    "type": "string",
                    "description": "Client certificate the connector presents to the resource for mutual TLS. Either the PEM, or the name of an environment variable read on the connector when \u003cspan pulumi-lang-nodejs=\"`tlsClientCertIsEnv`\" pulumi-lang-dotnet=\"`TlsClientCertIsEnv`\" pulumi-lang-go=\"`tlsClientCertIsEnv`\" pulumi-lang-python=\"`tls_client_cert_is_env`\" pulumi-lang-yaml=\"`tlsClientCertIsEnv`\" pulumi-lang-java=\"`tlsClientCertIsEnv`\" pulumi-lang-hcl=\"`tls_client_cert_is_env`\"\u003e`tlsClientCertIsEnv`\u003c/span\u003e is set.\n"
                },
                "tlsClientCertIsEnv": {
                    "type": "boolean",
                    "description": "When true, \u003cspan pulumi-lang-nodejs=\"`tlsClientCert`\" pulumi-lang-dotnet=\"`TlsClientCert`\" pulumi-lang-go=\"`tlsClientCert`\" pulumi-lang-python=\"`tls_client_cert`\" pulumi-lang-yaml=\"`tlsClientCert`\" pulumi-lang-java=\"`tlsClientCert`\" pulumi-lang-hcl=\"`tls_client_cert`\"\u003e`tlsClientCert`\u003c/span\u003e is the name of an environment variable read on the connector rather than the literal PEM.\n"
                },
                "tlsClientKey": {
                    "type": "string",
                    "description": "Private key paired with \u003cspan pulumi-lang-nodejs=\"`tlsClientCert`\" pulumi-lang-dotnet=\"`TlsClientCert`\" pulumi-lang-go=\"`tlsClientCert`\" pulumi-lang-python=\"`tls_client_cert`\" pulumi-lang-yaml=\"`tlsClientCert`\" pulumi-lang-java=\"`tlsClientCert`\" pulumi-lang-hcl=\"`tls_client_cert`\"\u003e`tlsClientCert`\u003c/span\u003e. Either the PEM, or the name of an environment variable read on the connector when \u003cspan pulumi-lang-nodejs=\"`tlsClientKeyIsEnv`\" pulumi-lang-dotnet=\"`TlsClientKeyIsEnv`\" pulumi-lang-go=\"`tlsClientKeyIsEnv`\" pulumi-lang-python=\"`tls_client_key_is_env`\" pulumi-lang-yaml=\"`tlsClientKeyIsEnv`\" pulumi-lang-java=\"`tlsClientKeyIsEnv`\" pulumi-lang-hcl=\"`tls_client_key_is_env`\"\u003e`tlsClientKeyIsEnv`\u003c/span\u003e is set.\n",
                    "secret": true
                },
                "tlsClientKeyIsEnv": {
                    "type": "boolean",
                    "description": "When true, \u003cspan pulumi-lang-nodejs=\"`tlsClientKey`\" pulumi-lang-dotnet=\"`TlsClientKey`\" pulumi-lang-go=\"`tlsClientKey`\" pulumi-lang-python=\"`tls_client_key`\" pulumi-lang-yaml=\"`tlsClientKey`\" pulumi-lang-java=\"`tlsClientKey`\" pulumi-lang-hcl=\"`tls_client_key`\"\u003e`tlsClientKey`\u003c/span\u003e is the name of an environment variable read on the connector rather than the literal PEM.\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"
                },
                "tlsClientCert": {
                    "type": "string",
                    "description": "Client certificate the connector presents to the resource for mutual TLS. Either the PEM, or the name of an environment variable read on the connector when \u003cspan pulumi-lang-nodejs=\"`tlsClientCertIsEnv`\" pulumi-lang-dotnet=\"`TlsClientCertIsEnv`\" pulumi-lang-go=\"`tlsClientCertIsEnv`\" pulumi-lang-python=\"`tls_client_cert_is_env`\" pulumi-lang-yaml=\"`tlsClientCertIsEnv`\" pulumi-lang-java=\"`tlsClientCertIsEnv`\" pulumi-lang-hcl=\"`tls_client_cert_is_env`\"\u003e`tlsClientCertIsEnv`\u003c/span\u003e is set.\n"
                },
                "tlsClientCertIsEnv": {
                    "type": "boolean",
                    "description": "When true, \u003cspan pulumi-lang-nodejs=\"`tlsClientCert`\" pulumi-lang-dotnet=\"`TlsClientCert`\" pulumi-lang-go=\"`tlsClientCert`\" pulumi-lang-python=\"`tls_client_cert`\" pulumi-lang-yaml=\"`tlsClientCert`\" pulumi-lang-java=\"`tlsClientCert`\" pulumi-lang-hcl=\"`tls_client_cert`\"\u003e`tlsClientCert`\u003c/span\u003e is the name of an environment variable read on the connector rather than the literal PEM.\n"
                },
                "tlsClientKey": {
                    "type": "string",
                    "description": "Private key paired with \u003cspan pulumi-lang-nodejs=\"`tlsClientCert`\" pulumi-lang-dotnet=\"`TlsClientCert`\" pulumi-lang-go=\"`tlsClientCert`\" pulumi-lang-python=\"`tls_client_cert`\" pulumi-lang-yaml=\"`tlsClientCert`\" pulumi-lang-java=\"`tlsClientCert`\" pulumi-lang-hcl=\"`tls_client_cert`\"\u003e`tlsClientCert`\u003c/span\u003e. Either the PEM, or the name of an environment variable read on the connector when \u003cspan pulumi-lang-nodejs=\"`tlsClientKeyIsEnv`\" pulumi-lang-dotnet=\"`TlsClientKeyIsEnv`\" pulumi-lang-go=\"`tlsClientKeyIsEnv`\" pulumi-lang-python=\"`tls_client_key_is_env`\" pulumi-lang-yaml=\"`tlsClientKeyIsEnv`\" pulumi-lang-java=\"`tlsClientKeyIsEnv`\" pulumi-lang-hcl=\"`tls_client_key_is_env`\"\u003e`tlsClientKeyIsEnv`\u003c/span\u003e is set.\n",
                    "secret": true
                },
                "tlsClientKeyIsEnv": {
                    "type": "boolean",
                    "description": "When true, \u003cspan pulumi-lang-nodejs=\"`tlsClientKey`\" pulumi-lang-dotnet=\"`TlsClientKey`\" pulumi-lang-go=\"`tlsClientKey`\" pulumi-lang-python=\"`tls_client_key`\" pulumi-lang-yaml=\"`tlsClientKey`\" pulumi-lang-java=\"`tlsClientKey`\" pulumi-lang-hcl=\"`tls_client_key`\"\u003e`tlsClientKey`\u003c/span\u003e is the name of an environment variable read on the connector rather than the literal PEM.\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"
                    },
                    "tlsClientCert": {
                        "type": "string",
                        "description": "Client certificate the connector presents to the resource for mutual TLS. Either the PEM, or the name of an environment variable read on the connector when \u003cspan pulumi-lang-nodejs=\"`tlsClientCertIsEnv`\" pulumi-lang-dotnet=\"`TlsClientCertIsEnv`\" pulumi-lang-go=\"`tlsClientCertIsEnv`\" pulumi-lang-python=\"`tls_client_cert_is_env`\" pulumi-lang-yaml=\"`tlsClientCertIsEnv`\" pulumi-lang-java=\"`tlsClientCertIsEnv`\" pulumi-lang-hcl=\"`tls_client_cert_is_env`\"\u003e`tlsClientCertIsEnv`\u003c/span\u003e is set.\n"
                    },
                    "tlsClientCertIsEnv": {
                        "type": "boolean",
                        "description": "When true, \u003cspan pulumi-lang-nodejs=\"`tlsClientCert`\" pulumi-lang-dotnet=\"`TlsClientCert`\" pulumi-lang-go=\"`tlsClientCert`\" pulumi-lang-python=\"`tls_client_cert`\" pulumi-lang-yaml=\"`tlsClientCert`\" pulumi-lang-java=\"`tlsClientCert`\" pulumi-lang-hcl=\"`tls_client_cert`\"\u003e`tlsClientCert`\u003c/span\u003e is the name of an environment variable read on the connector rather than the literal PEM.\n"
                    },
                    "tlsClientKey": {
                        "type": "string",
                        "description": "Private key paired with \u003cspan pulumi-lang-nodejs=\"`tlsClientCert`\" pulumi-lang-dotnet=\"`TlsClientCert`\" pulumi-lang-go=\"`tlsClientCert`\" pulumi-lang-python=\"`tls_client_cert`\" pulumi-lang-yaml=\"`tlsClientCert`\" pulumi-lang-java=\"`tlsClientCert`\" pulumi-lang-hcl=\"`tls_client_cert`\"\u003e`tlsClientCert`\u003c/span\u003e. Either the PEM, or the name of an environment variable read on the connector when \u003cspan pulumi-lang-nodejs=\"`tlsClientKeyIsEnv`\" pulumi-lang-dotnet=\"`TlsClientKeyIsEnv`\" pulumi-lang-go=\"`tlsClientKeyIsEnv`\" pulumi-lang-python=\"`tls_client_key_is_env`\" pulumi-lang-yaml=\"`tlsClientKeyIsEnv`\" pulumi-lang-java=\"`tlsClientKeyIsEnv`\" pulumi-lang-hcl=\"`tls_client_key_is_env`\"\u003e`tlsClientKeyIsEnv`\u003c/span\u003e is set.\n",
                        "secret": true
                    },
                    "tlsClientKeyIsEnv": {
                        "type": "boolean",
                        "description": "When true, \u003cspan pulumi-lang-nodejs=\"`tlsClientKey`\" pulumi-lang-dotnet=\"`TlsClientKey`\" pulumi-lang-go=\"`tlsClientKey`\" pulumi-lang-python=\"`tls_client_key`\" pulumi-lang-yaml=\"`tlsClientKey`\" pulumi-lang-java=\"`tlsClientKey`\" pulumi-lang-hcl=\"`tls_client_key`\"\u003e`tlsClientKey`\u003c/span\u003e is the name of an environment variable read on the connector rather than the literal PEM.\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/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"
            }
        },
        "formal:index/getUser:getUser": {
            "description": "Data source for looking up a User by ID or by identity. 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=\"`dbUsername`\" pulumi-lang-dotnet=\"`DbUsername`\" pulumi-lang-go=\"`dbUsername`\" pulumi-lang-python=\"`db_username`\" pulumi-lang-yaml=\"`dbUsername`\" pulumi-lang-java=\"`dbUsername`\" pulumi-lang-hcl=\"`db_username`\"\u003e`dbUsername`\u003c/span\u003e, but not both. A human user's identity is `idp:formal:human:\u003cemail\u003e`, so this can resolve an email to a user ID, for example to add a user to a Group with \u003cspan pulumi-lang-nodejs=\"`formalGroupLinkUser`\" pulumi-lang-dotnet=\"`FormalGroupLinkUser`\" pulumi-lang-go=\"`formalGroupLinkUser`\" pulumi-lang-python=\"`formal_group_link_user`\" pulumi-lang-yaml=\"`formalGroupLinkUser`\" pulumi-lang-java=\"`formalGroupLinkUser`\" pulumi-lang-hcl=\"`formal_group_link_user`\"\u003e`formalGroupLinkUser`\u003c/span\u003e.\n",
            "inputs": {
                "description": "A collection of arguments for invoking getUser.\n",
                "properties": {
                    "dbUsername": {
                        "type": "string",
                        "description": "The identity of the User to look up, for example `idp:formal:human:jane@example.com`.\n"
                    },
                    "id": {
                        "type": "string",
                        "description": "The ID of the User to look up.\n"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getUser.\n",
                "properties": {
                    "dbUsername": {
                        "description": "The identity of the User to look up, for example `idp:formal:human:jane@example.com`.\n",
                        "type": "string"
                    },
                    "email": {
                        "description": "The email of this User. Only set for human users.\n",
                        "type": "string"
                    },
                    "firstName": {
                        "description": "The first name of this User. Only set for human users.\n",
                        "type": "string"
                    },
                    "fullName": {
                        "description": "The full name of this User.\n",
                        "type": "string"
                    },
                    "groupIds": {
                        "description": "The IDs of the Groups this User belongs to.\n",
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "id": {
                        "description": "The ID of the User to look up.\n",
                        "type": "string"
                    },
                    "lastName": {
                        "description": "The last name of this User. Only set for human users.\n",
                        "type": "string"
                    },
                    "terminationProtection": {
                        "description": "If set to true, this User cannot be deleted.\n",
                        "type": "boolean"
                    },
                    "type": {
                        "description": "The type of this User, either \u003cspan pulumi-lang-nodejs=\"`human`\" pulumi-lang-dotnet=\"`Human`\" pulumi-lang-go=\"`human`\" pulumi-lang-python=\"`human`\" pulumi-lang-yaml=\"`human`\" pulumi-lang-java=\"`human`\" pulumi-lang-hcl=\"`human`\"\u003e`human`\u003c/span\u003e or \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.\n",
                        "type": "string"
                    }
                },
                "required": [
                    "email",
                    "firstName",
                    "fullName",
                    "groupIds",
                    "lastName",
                    "terminationProtection",
                    "type"
                ],
                "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"
            }
        }
    }
}