{
  "name": "mssql",
  "displayName": "Microsoft SQL Server",
  "version": "0.1.0",
  "description": "A Pulumi Provider for Microsoft SQL Server and Azure SQL",
  "keywords": [
    "pulumi",
    "mssql",
    "category/database"
  ],
  "homepage": "https://github.com/pulumiverse/pulumi-mssql",
  "license": "Apache-2.0",
  "attribution": "This Pulumi package is based on the [`mssql` Terraform Provider](https://github.com/PGSSoft/terraform-provider-mssql).",
  "repository": "https://github.com/pulumiverse/pulumi-mssql",
  "logoUrl": "https://raw.githubusercontent.com/pulumiverse/pulumi-mssql/main/docs/mssql.png",
  "pluginDownloadURL": "github://api.github.com/pulumiverse/pulumi-mssql",
  "publisher": "pulumiverse",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "packageReferences": {
        "Pulumi": "3.*"
      },
      "compatibility": "tfbridge20",
      "rootNamespace": "Pulumiverse"
    },
    "go": {
      "importBasePath": "github.com/pulumiverse/pulumi-mssql/sdk/go/mssql",
      "generateResourceContainerTypes": true,
      "generateExtraInputTypes": true
    },
    "java": {
      "basePackage": "com.pulumiverse",
      "buildFiles": "",
      "gradleNexusPublishPluginVersion": "",
      "gradleTest": ""
    },
    "nodejs": {
      "packageName": "@pulumiverse/mssql",
      "packageDescription": "A Pulumi Provider for Microsoft SQL Server and Azure SQL",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/PGSSoft/terraform-provider-mssql)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-mssql` repo](https://github.com/pulumiverse/pulumi-mssql/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-mssql` repo](https://github.com/PGSSoft/terraform-provider-mssql/issues).",
      "dependencies": {
        "@pulumi/pulumi": "^3.0.0"
      },
      "devDependencies": {
        "@types/mime": "^2.0.0",
        "@types/node": "^10.0.0"
      },
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true
    },
    "python": {
      "packageName": "pulumiverse_mssql",
      "requires": {
        "pulumi": ">=3.0.0,<4.0.0"
      },
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/PGSSoft/terraform-provider-mssql)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-mssql` repo](https://github.com/pulumiverse/pulumi-mssql/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-mssql` repo](https://github.com/PGSSoft/terraform-provider-mssql/issues).",
      "compatibility": "tfbridge20",
      "pyproject": {}
    }
  },
  "config": {
    "variables": {
      "azureAuth": {
        "$ref": "#/types/mssql:config%2FazureAuth:azureAuth",
        "description": "When provided, Azure AD authentication will be used when connecting.\n"
      },
      "hostname": {
        "type": "string",
        "description": "FQDN or IP address of the SQL endpoint. Can be also set using `MSSQL_HOSTNAME` environment variable.\n",
        "defaultInfo": {
          "environment": [
            "MSSQL_HOSTNAME"
          ]
        }
      },
      "port": {
        "type": "integer",
        "description": "TCP port of SQL endpoint. Defaults to `1433`. Can be also set using `MSSQL_PORT` environment variable.\n",
        "default": 1433,
        "defaultInfo": {
          "environment": [
            "MSSQL_PORT"
          ]
        }
      },
      "sqlAuth": {
        "$ref": "#/types/mssql:config%2FsqlAuth:sqlAuth",
        "description": "When provided, SQL authentication will be used when connecting.\n"
      }
    }
  },
  "types": {
    "mssql:config/azureAuth:azureAuth": {
      "properties": {
        "clientId": {
          "type": "string",
          "description": "Service Principal client (application) ID. When omitted, default, chained set of credentials will be used.\n"
        },
        "clientSecret": {
          "type": "string",
          "description": "Service Principal secret. When omitted, default, chained set of credentials will be used.\n",
          "secret": true
        },
        "tenantId": {
          "type": "string",
          "description": "Azure AD tenant ID. Required only if Azure SQL Server's tenant is different than Service Principal's.\n"
        }
      },
      "type": "object"
    },
    "mssql:config/sqlAuth:sqlAuth": {
      "properties": {
        "password": {
          "type": "string",
          "description": "Password for SQL authentication.\n",
          "secret": true
        },
        "username": {
          "type": "string",
          "description": "User name for SQL authentication.\n"
        }
      },
      "type": "object",
      "required": [
        "password",
        "username"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "mssql:index/ProviderAzureAuth:ProviderAzureAuth": {
      "properties": {
        "clientId": {
          "type": "string",
          "description": "Service Principal client (application) ID. When omitted, default, chained set of credentials will be used.\n"
        },
        "clientSecret": {
          "type": "string",
          "description": "Service Principal secret. When omitted, default, chained set of credentials will be used.\n",
          "secret": true
        },
        "tenantId": {
          "type": "string",
          "description": "Azure AD tenant ID. Required only if Azure SQL Server's tenant is different than Service Principal's.\n"
        }
      },
      "type": "object"
    },
    "mssql:index/ProviderSqlAuth:ProviderSqlAuth": {
      "properties": {
        "password": {
          "type": "string",
          "description": "Password for SQL authentication.\n",
          "secret": true
        },
        "username": {
          "type": "string",
          "description": "User name for SQL authentication.\n"
        }
      },
      "type": "object",
      "required": [
        "password",
        "username"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": []
        }
      }
    },
    "mssql:index/getDatabasePermissionsPermission:getDatabasePermissionsPermission": {
      "properties": {
        "permission": {
          "type": "string",
          "description": "Name of database-level SQL permission. For full list of supported permissions, see [docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-database-permissions-transact-sql?view=azuresqldb-current#remarks)\n"
        },
        "withGrantOption": {
          "type": "boolean",
          "description": "When set to `true`, `principal_id` will be allowed to grant the `permission` to other principals.\n"
        }
      },
      "type": "object",
      "required": [
        "permission",
        "withGrantOption"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "mssql:index/getDatabaseRoleMember:getDatabaseRoleMember": {
      "properties": {
        "id": {
          "type": "string",
          "description": "`<database_id>/<member_id>`. Member ID can be retrieved using `SELECT DATABASE*PRINCIPAL*ID('\\n\\n')\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the database principal.\n"
        },
        "type": {
          "type": "string",
          "description": "One of: `SQL_USER`, `DATABASE_ROLE`, `AZUREAD_USER`\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "mssql:index/getDatabaseRolesRole:getDatabaseRolesRole": {
      "properties": {
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`.\n"
        },
        "id": {
          "type": "string",
          "description": "`<database_id>/<role_id>`. Role ID can be retrieved using `SELECT DATABASE_PRINCIPAL_ID('<role_name>')`\n"
        },
        "name": {
          "type": "string",
          "description": "Role name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot be longer than 128 chars.\n"
        },
        "ownerId": {
          "type": "string",
          "description": "ID of another database role or user owning this role. Can be retrieved using `mssql.DatabaseRole` or `mssql.SqlUser`.\n"
        }
      },
      "type": "object",
      "required": [
        "databaseId",
        "id",
        "name",
        "ownerId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "mssql:index/getDatabasesDatabase:getDatabasesDatabase": {
      "properties": {
        "collation": {
          "type": "string",
          "description": "Default collation name. Can be either a Windows collation name or a SQL collation name.\n"
        },
        "id": {
          "type": "string",
          "description": "Database ID. Can be retrieved using `SELECT DB_ID('<db_name>')`.\n"
        },
        "name": {
          "type": "string",
          "description": "Database name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers).\n"
        }
      },
      "type": "object",
      "required": [
        "collation",
        "id",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "mssql:index/getSchemaPermissionsPermission:getSchemaPermissionsPermission": {
      "properties": {
        "permission": {
          "type": "string",
          "description": "Name of schema SQL permission. For full list of supported permissions, see [docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-schema-permissions-transact-sql?view=azuresqldb-current#remarks)\n"
        },
        "withGrantOption": {
          "type": "boolean",
          "description": "When set to `true`, `principal_id` will be allowed to grant the `permission` to other principals.\n"
        }
      },
      "type": "object",
      "required": [
        "permission",
        "withGrantOption"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "mssql:index/getSchemasSchema:getSchemasSchema": {
      "properties": {
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`.\n"
        },
        "id": {
          "type": "string",
          "description": "`<database_id>/<schema_id>`. Schema ID can be retrieved using `SELECT SCHEMA_ID('<schema_name>')`.\n"
        },
        "name": {
          "type": "string",
          "description": "Schema name.\n"
        },
        "ownerId": {
          "type": "string",
          "description": "ID of database role or user owning this schema. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`\n"
        }
      },
      "type": "object",
      "required": [
        "databaseId",
        "id",
        "name",
        "ownerId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "mssql:index/getServerPermissionsPermission:getServerPermissionsPermission": {
      "properties": {
        "permission": {
          "type": "string",
          "description": "Name of server-level SQL permission. For full list of supported permissions see [docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-server-permissions-transact-sql?view=azuresqldb-current#remarks)\n"
        },
        "withGrantOption": {
          "type": "boolean",
          "description": "When set to `true`, `principal_id` will be allowed to grant the `permission` to other principals.\n"
        }
      },
      "type": "object",
      "required": [
        "permission",
        "withGrantOption"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "mssql:index/getServerRoleMember:getServerRoleMember": {
      "properties": {
        "id": {
          "type": "string",
          "description": "ID of the member principal\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the server principal\n"
        },
        "type": {
          "type": "string",
          "description": "One of: `SQL_LOGIN`, `SERVER_ROLE`\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "mssql:index/getServerRolesRole:getServerRolesRole": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Role principal ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Role name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot be longer than 128 chars.\n"
        },
        "ownerId": {
          "type": "string",
          "description": "ID of another server role or login owning this role. Can be retrieved using `mssql.ServerRole` or `mssql.SqlLogin`.\n"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "ownerId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "mssql:index/getSqlLoginsLogin:getSqlLoginsLogin": {
      "properties": {
        "checkPasswordExpiration": {
          "type": "boolean",
          "description": "When `true`, password expiration policy is enforced for this login.\n"
        },
        "checkPasswordPolicy": {
          "type": "boolean",
          "description": "When `true`, the Windows password policies of the computer on which SQL Server is running are enforced on this login.\n"
        },
        "defaultDatabaseId": {
          "type": "string",
          "description": "ID of login's default DB. The ID can be retrieved using `mssql.Database` data resource.\n"
        },
        "defaultLanguage": {
          "type": "string",
          "description": "Default language assigned to login.\n"
        },
        "id": {
          "type": "string",
          "description": "Login SID. Can be retrieved using `SELECT SUSER_SID('<login_name>')`.\n"
        },
        "mustChangePassword": {
          "type": "boolean",
          "description": "When true, password change will be forced on first logon.\n"
        },
        "name": {
          "type": "string",
          "description": "Login name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot contain `\\`\n"
        },
        "principalId": {
          "type": "string",
          "description": "ID used to reference SQL Login in other resources, e.g. `server_role`. Can be retrieved from `sys.sql_logins`.\n"
        }
      },
      "type": "object",
      "required": [
        "checkPasswordExpiration",
        "checkPasswordPolicy",
        "defaultDatabaseId",
        "defaultLanguage",
        "id",
        "mustChangePassword",
        "name",
        "principalId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "mssql:index/getSqlUsersUser:getSqlUsersUser": {
      "properties": {
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`.\n"
        },
        "id": {
          "type": "string",
          "description": "`<database_id>/<user_id>`. User ID can be retrieved using `SELECT DATABASE_PRINCIPAL_ID('<user_name>')`.\n"
        },
        "loginId": {
          "type": "string",
          "description": "SID of SQL login. Can be retrieved using `mssql.SqlLogin` or `SELECT SUSER_SID('<login_name>')`.\n"
        },
        "name": {
          "type": "string",
          "description": "User name. Cannot be longer than 128 chars.\n"
        }
      },
      "type": "object",
      "required": [
        "databaseId",
        "id",
        "loginId",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    }
  },
  "provider": {
    "description": "The provider type for the mssql 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": {
      "hostname": {
        "type": "string",
        "description": "FQDN or IP address of the SQL endpoint. Can be also set using `MSSQL_HOSTNAME` environment variable.\n"
      }
    },
    "type": "object",
    "inputProperties": {
      "azureAuth": {
        "$ref": "#/types/mssql:index%2FProviderAzureAuth:ProviderAzureAuth",
        "description": "When provided, Azure AD authentication will be used when connecting.\n"
      },
      "hostname": {
        "type": "string",
        "description": "FQDN or IP address of the SQL endpoint. Can be also set using `MSSQL_HOSTNAME` environment variable.\n",
        "defaultInfo": {
          "environment": [
            "MSSQL_HOSTNAME"
          ]
        }
      },
      "port": {
        "type": "integer",
        "description": "TCP port of SQL endpoint. Defaults to `1433`. Can be also set using `MSSQL_PORT` environment variable.\n",
        "default": 1433,
        "defaultInfo": {
          "environment": [
            "MSSQL_PORT"
          ]
        }
      },
      "sqlAuth": {
        "$ref": "#/types/mssql:index%2FProviderSqlAuth:ProviderSqlAuth",
        "description": "When provided, SQL authentication will be used when connecting.\n"
      }
    }
  },
  "resources": {
    "mssql:index/azureadServicePrincipal:AzureadServicePrincipal": {
      "description": "Managed database-level user mapped to Azure AD identity (service principal or managed identity).\n\n> **Note** When using this resource, Azure SQL server managed identity does not need any [AzureAD role assignments](https://docs.microsoft.com/en-us/azure/azure-sql/database/authentication-aad-service-principal?view=azuresql).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuread from \"@pulumi/azuread\";\nimport * as mssql from \"@pulumi/mssql\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst exampleDatabase = mssql.getDatabase({\n    name: \"example\",\n});\nconst exampleServicePrincipal = azuread.getServicePrincipal({\n    displayName: \"test-application\",\n});\nconst exampleAzureadServicePrincipal = new mssql.AzureadServicePrincipal(\"exampleAzureadServicePrincipal\", {\n    databaseId: exampleDatabase.then(exampleDatabase => exampleDatabase.id),\n    clientId: exampleServicePrincipal.then(exampleServicePrincipal => exampleServicePrincipal.applicationId),\n});\nexport const userId = exampleAzureadServicePrincipal.id;\n```\n```python\nimport pulumi\nimport pulumi_azuread as azuread\nimport pulumi_mssql as mssql\nimport pulumiverse_mssql as mssql\n\nexample_database = mssql.get_database(name=\"example\")\nexample_service_principal = azuread.get_service_principal(display_name=\"test-application\")\nexample_azuread_service_principal = mssql.AzureadServicePrincipal(\"exampleAzureadServicePrincipal\",\n    database_id=example_database.id,\n    client_id=example_service_principal.application_id)\npulumi.export(\"userId\", example_azuread_service_principal.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureAD = Pulumi.AzureAD;\nusing Mssql = Pulumi.Mssql;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleDatabase = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var exampleServicePrincipal = AzureAD.GetServicePrincipal.Invoke(new()\n    {\n        DisplayName = \"test-application\",\n    });\n\n    var exampleAzureadServicePrincipal = new Mssql.AzureadServicePrincipal(\"exampleAzureadServicePrincipal\", new()\n    {\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult => getDatabaseResult.Id),\n        ClientId = exampleServicePrincipal.Apply(getServicePrincipalResult => getServicePrincipalResult.ApplicationId),\n    });\n\n    return new Dictionary<string, object?>\n    {\n        [\"userId\"] = exampleAzureadServicePrincipal.Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuread/sdk/v5/go/azuread\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDatabase, err := mssql.LookupDatabase(ctx, &mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServicePrincipal, err := azuread.LookupServicePrincipal(ctx, &azuread.LookupServicePrincipalArgs{\n\t\t\tDisplayName: pulumi.StringRef(\"test-application\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAzureadServicePrincipal, err := mssql.NewAzureadServicePrincipal(ctx, \"exampleAzureadServicePrincipal\", &mssql.AzureadServicePrincipalArgs{\n\t\t\tDatabaseId: pulumi.String(exampleDatabase.Id),\n\t\t\tClientId:   pulumi.String(exampleServicePrincipal.ApplicationId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"userId\", exampleAzureadServicePrincipal.ID())\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.azuread.AzureadFunctions;\nimport com.pulumi.azuread.inputs.GetServicePrincipalArgs;\nimport com.pulumi.mssql.AzureadServicePrincipal;\nimport com.pulumi.mssql.AzureadServicePrincipalArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDatabase = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var exampleServicePrincipal = AzureadFunctions.getServicePrincipal(GetServicePrincipalArgs.builder()\n            .displayName(\"test-application\")\n            .build());\n\n        var exampleAzureadServicePrincipal = new AzureadServicePrincipal(\"exampleAzureadServicePrincipal\", AzureadServicePrincipalArgs.builder()\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .clientId(exampleServicePrincipal.applyValue(getServicePrincipalResult -> getServicePrincipalResult.applicationId()))\n            .build());\n\n        ctx.export(\"userId\", exampleAzureadServicePrincipal.id());\n    }\n}\n```\n```yaml\nresources:\n  exampleAzureadServicePrincipal:\n    type: mssql:AzureadServicePrincipal\n    properties:\n      databaseId: ${exampleDatabase.id}\n      clientId: ${exampleServicePrincipal.applicationId}\nvariables:\n  exampleDatabase:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\n  exampleServicePrincipal:\n    fn::invoke:\n      Function: azuread:getServicePrincipal\n      Arguments:\n        displayName: test-application\noutputs:\n  userId: ${exampleAzureadServicePrincipal.id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using <db_id>/<user_id> - can be retrieved using `SELECT CONCAT(DB_ID(), '/', principal_id) FROM sys.database_principals WHERE [name] = '<username>'`\n\n```sh\n$ pulumi import mssql:index/azureadServicePrincipal:AzureadServicePrincipal example '7/5'\n```\n\n",
      "properties": {
        "clientId": {
          "type": "string",
          "description": "Azure AD client_id of the Service Principal. This can be either regular Service Principal or Managed Service Identity.\n"
        },
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`.\n"
        },
        "name": {
          "type": "string",
          "description": "User name. Cannot be longer than 128 chars.\n"
        }
      },
      "type": "object",
      "required": [
        "clientId",
        "databaseId",
        "name"
      ],
      "inputProperties": {
        "clientId": {
          "type": "string",
          "description": "Azure AD client_id of the Service Principal. This can be either regular Service Principal or Managed Service Identity.\n"
        },
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`.\n"
        },
        "name": {
          "type": "string",
          "description": "User name. Cannot be longer than 128 chars.\n"
        }
      },
      "requiredInputs": [
        "clientId",
        "databaseId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AzureadServicePrincipal resources.\n",
        "properties": {
          "clientId": {
            "type": "string",
            "description": "Azure AD client_id of the Service Principal. This can be either regular Service Principal or Managed Service Identity.\n"
          },
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`.\n"
          },
          "name": {
            "type": "string",
            "description": "User name. Cannot be longer than 128 chars.\n"
          }
        },
        "type": "object"
      }
    },
    "mssql:index/azureadUser:AzureadUser": {
      "description": "Managed database-level user mapped to Azure AD identity (user or group).\n\n> **Note** When using this resource, Azure SQL server managed identity does not need any [AzureAD role assignments](https://docs.microsoft.com/en-us/azure/azure-sql/database/authentication-aad-service-principal?view=azuresql).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuread from \"@pulumi/azuread\";\nimport * as mssql from \"@pulumi/mssql\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst exampleDatabase = mssql.getDatabase({\n    name: \"example\",\n});\nconst exampleUser = azuread.getUser({\n    userPrincipalName: \"user@example.com\",\n});\nconst exampleAzureadUser = new mssql.AzureadUser(\"exampleAzureadUser\", {\n    databaseId: exampleDatabase.then(exampleDatabase => exampleDatabase.id),\n    userObjectId: exampleUser.then(exampleUser => exampleUser.objectId),\n});\nexport const userId = exampleAzureadUser.id;\n```\n```python\nimport pulumi\nimport pulumi_azuread as azuread\nimport pulumi_mssql as mssql\nimport pulumiverse_mssql as mssql\n\nexample_database = mssql.get_database(name=\"example\")\nexample_user = azuread.get_user(user_principal_name=\"user@example.com\")\nexample_azuread_user = mssql.AzureadUser(\"exampleAzureadUser\",\n    database_id=example_database.id,\n    user_object_id=example_user.object_id)\npulumi.export(\"userId\", example_azuread_user.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureAD = Pulumi.AzureAD;\nusing Mssql = Pulumi.Mssql;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleDatabase = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var exampleUser = AzureAD.GetUser.Invoke(new()\n    {\n        UserPrincipalName = \"user@example.com\",\n    });\n\n    var exampleAzureadUser = new Mssql.AzureadUser(\"exampleAzureadUser\", new()\n    {\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult => getDatabaseResult.Id),\n        UserObjectId = exampleUser.Apply(getUserResult => getUserResult.ObjectId),\n    });\n\n    return new Dictionary<string, object?>\n    {\n        [\"userId\"] = exampleAzureadUser.Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuread/sdk/v5/go/azuread\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDatabase, err := mssql.LookupDatabase(ctx, &mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUser, err := azuread.LookupUser(ctx, &azuread.LookupUserArgs{\n\t\t\tUserPrincipalName: pulumi.StringRef(\"user@example.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAzureadUser, err := mssql.NewAzureadUser(ctx, \"exampleAzureadUser\", &mssql.AzureadUserArgs{\n\t\t\tDatabaseId:   pulumi.String(exampleDatabase.Id),\n\t\t\tUserObjectId: pulumi.String(exampleUser.ObjectId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"userId\", exampleAzureadUser.ID())\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.azuread.AzureadFunctions;\nimport com.pulumi.azuread.inputs.GetUserArgs;\nimport com.pulumi.mssql.AzureadUser;\nimport com.pulumi.mssql.AzureadUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDatabase = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var exampleUser = AzureadFunctions.getUser(GetUserArgs.builder()\n            .userPrincipalName(\"user@example.com\")\n            .build());\n\n        var exampleAzureadUser = new AzureadUser(\"exampleAzureadUser\", AzureadUserArgs.builder()\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .userObjectId(exampleUser.applyValue(getUserResult -> getUserResult.objectId()))\n            .build());\n\n        ctx.export(\"userId\", exampleAzureadUser.id());\n    }\n}\n```\n```yaml\nresources:\n  exampleAzureadUser:\n    type: mssql:AzureadUser\n    properties:\n      databaseId: ${exampleDatabase.id}\n      userObjectId: ${exampleUser.objectId}\nvariables:\n  exampleDatabase:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\n  exampleUser:\n    fn::invoke:\n      Function: azuread:getUser\n      Arguments:\n        userPrincipalName: user@example.com\noutputs:\n  userId: ${exampleAzureadUser.id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using <db_id>/<user_id> - can be retrieved using `SELECT CONCAT(DB_ID(), '/', principal_id) FROM sys.database_principals WHERE [name] = '<username>'`\n\n```sh\n$ pulumi import mssql:index/azureadUser:AzureadUser example '7/5'\n```\n\n",
      "properties": {
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`.\n"
        },
        "name": {
          "type": "string",
          "description": "User name. Cannot be longer than 128 chars.\n"
        },
        "userObjectId": {
          "type": "string",
          "description": "Azure AD object_id of the user. This can be either regular user or a group.\n"
        }
      },
      "type": "object",
      "required": [
        "databaseId",
        "name",
        "userObjectId"
      ],
      "inputProperties": {
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`.\n"
        },
        "name": {
          "type": "string",
          "description": "User name. Cannot be longer than 128 chars.\n"
        },
        "userObjectId": {
          "type": "string",
          "description": "Azure AD object_id of the user. This can be either regular user or a group.\n"
        }
      },
      "requiredInputs": [
        "databaseId",
        "userObjectId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AzureadUser resources.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`.\n"
          },
          "name": {
            "type": "string",
            "description": "User name. Cannot be longer than 128 chars.\n"
          },
          "userObjectId": {
            "type": "string",
            "description": "Azure AD object_id of the user. This can be either regular user or a group.\n"
          }
        },
        "type": "object"
      }
    },
    "mssql:index/database:Database": {
      "description": "Manages single database.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst example = new mssql.Database(\"example\", {collation: \"SQL_Latin1_General_CP1_CS_AS\"});\n```\n```python\nimport pulumi\nimport pulumiverse_mssql as mssql\n\nexample = mssql.Database(\"example\", collation=\"SQL_Latin1_General_CP1_CS_AS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Mssql.Database(\"example\", new()\n    {\n        Collation = \"SQL_Latin1_General_CP1_CS_AS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mssql.NewDatabase(ctx, \"example\", &mssql.DatabaseArgs{\n\t\t\tCollation: pulumi.String(\"SQL_Latin1_General_CP1_CS_AS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.Database;\nimport com.pulumi.mssql.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Database(\"example\", DatabaseArgs.builder()\n            .collation(\"SQL_Latin1_General_CP1_CS_AS\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mssql:Database\n    properties:\n      collation: SQL_Latin1_General_CP1_CS_AS\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using database ID - can be retrieved using `SELECT DB_ID('<db_name>')`\n\n```sh\n$ pulumi import mssql:index/database:Database example 12\n```\n\n",
      "properties": {
        "collation": {
          "type": "string",
          "description": "Default collation name. Can be either a Windows collation name or a SQL collation name. Defaults to SQL Server instance's default collation.\n"
        },
        "name": {
          "type": "string",
          "description": "Database name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers).\n"
        }
      },
      "type": "object",
      "required": [
        "collation",
        "name"
      ],
      "inputProperties": {
        "collation": {
          "type": "string",
          "description": "Default collation name. Can be either a Windows collation name or a SQL collation name. Defaults to SQL Server instance's default collation.\n"
        },
        "name": {
          "type": "string",
          "description": "Database name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers).\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Database resources.\n",
        "properties": {
          "collation": {
            "type": "string",
            "description": "Default collation name. Can be either a Windows collation name or a SQL collation name. Defaults to SQL Server instance's default collation.\n"
          },
          "name": {
            "type": "string",
            "description": "Database name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers).\n"
          }
        },
        "type": "object"
      }
    },
    "mssql:index/databasePermission:DatabasePermission": {
      "description": "Grants database-level permission.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst exampleDatabase = mssql.getDatabase({\n    name: \"example\",\n});\nconst exampleSqlUser = exampleDatabase.then(exampleDatabase => mssql.getSqlUser({\n    name: \"example_user\",\n    databaseId: exampleDatabase.id,\n}));\nconst deleteToExample = new mssql.DatabasePermission(\"deleteToExample\", {\n    principalId: exampleSqlUser.then(exampleSqlUser => exampleSqlUser.id),\n    permission: \"DELETE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\nimport pulumiverse_mssql as mssql\n\nexample_database = mssql.get_database(name=\"example\")\nexample_sql_user = mssql.get_sql_user(name=\"example_user\",\n    database_id=example_database.id)\ndelete_to_example = mssql.DatabasePermission(\"deleteToExample\",\n    principal_id=example_sql_user.id,\n    permission=\"DELETE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleDatabase = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var exampleSqlUser = Mssql.GetSqlUser.Invoke(new()\n    {\n        Name = \"example_user\",\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult => getDatabaseResult.Id),\n    });\n\n    var deleteToExample = new Mssql.DatabasePermission(\"deleteToExample\", new()\n    {\n        PrincipalId = exampleSqlUser.Apply(getSqlUserResult => getSqlUserResult.Id),\n        Permission = \"DELETE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDatabase, err := mssql.LookupDatabase(ctx, &mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlUser, err := mssql.LookupSqlUser(ctx, &mssql.LookupSqlUserArgs{\n\t\t\tName:       \"example_user\",\n\t\t\tDatabaseId: pulumi.StringRef(exampleDatabase.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewDatabasePermission(ctx, \"deleteToExample\", &mssql.DatabasePermissionArgs{\n\t\t\tPrincipalId: pulumi.String(exampleSqlUser.Id),\n\t\t\tPermission:  pulumi.String(\"DELETE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetSqlUserArgs;\nimport com.pulumi.mssql.DatabasePermission;\nimport com.pulumi.mssql.DatabasePermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDatabase = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var exampleSqlUser = MssqlFunctions.getSqlUser(GetSqlUserArgs.builder()\n            .name(\"example_user\")\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .build());\n\n        var deleteToExample = new DatabasePermission(\"deleteToExample\", DatabasePermissionArgs.builder()\n            .principalId(exampleSqlUser.applyValue(getSqlUserResult -> getSqlUserResult.id()))\n            .permission(\"DELETE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  deleteToExample:\n    type: mssql:DatabasePermission\n    properties:\n      principalId: ${exampleSqlUser.id}\n      permission: DELETE\nvariables:\n  exampleDatabase:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\n  exampleSqlUser:\n    fn::invoke:\n      Function: mssql:getSqlUser\n      Arguments:\n        name: example_user\n        databaseId: ${exampleDatabase.id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using <db_id>/<principal_id>/<permission> - can be retrieved using `SELECT CONCAT(DB_ID(), '/', DATABASE_PRINCIPAL_ID('<principal_name>'), '/DELETE')`\n\n```sh\n$ pulumi import mssql:index/databasePermission:DatabasePermission example '7/5/DELETE'\n```\n\n",
      "properties": {
        "permission": {
          "type": "string",
          "description": "Name of database-level SQL permission. For full list of supported permissions, see [docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-database-permissions-transact-sql?view=azuresqldb-current#remarks)\n"
        },
        "principalId": {
          "type": "string",
          "description": "`<database_id>/<principal_id>`. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`.\n"
        },
        "withGrantOption": {
          "type": "boolean",
          "description": "When set to `true`, `principal_id` will be allowed to grant the `permission` to other principals. Defaults to `false`.\n"
        }
      },
      "type": "object",
      "required": [
        "permission",
        "principalId",
        "withGrantOption"
      ],
      "inputProperties": {
        "permission": {
          "type": "string",
          "description": "Name of database-level SQL permission. For full list of supported permissions, see [docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-database-permissions-transact-sql?view=azuresqldb-current#remarks)\n"
        },
        "principalId": {
          "type": "string",
          "description": "`<database_id>/<principal_id>`. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`.\n"
        },
        "withGrantOption": {
          "type": "boolean",
          "description": "When set to `true`, `principal_id` will be allowed to grant the `permission` to other principals. Defaults to `false`.\n"
        }
      },
      "requiredInputs": [
        "permission",
        "principalId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatabasePermission resources.\n",
        "properties": {
          "permission": {
            "type": "string",
            "description": "Name of database-level SQL permission. For full list of supported permissions, see [docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-database-permissions-transact-sql?view=azuresqldb-current#remarks)\n"
          },
          "principalId": {
            "type": "string",
            "description": "`<database_id>/<principal_id>`. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`.\n"
          },
          "withGrantOption": {
            "type": "boolean",
            "description": "When set to `true`, `principal_id` will be allowed to grant the `permission` to other principals. Defaults to `false`.\n"
          }
        },
        "type": "object"
      }
    },
    "mssql:index/databaseRole:DatabaseRole": {
      "description": "Manages database-level role.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst exampleDatabase = mssql.getDatabase({\n    name: \"example\",\n});\nconst owner = mssql.getSqlUser({\n    name: \"example_user\",\n});\nconst exampleDatabaseRole = new mssql.DatabaseRole(\"exampleDatabaseRole\", {\n    databaseId: exampleDatabase.then(exampleDatabase => exampleDatabase.id),\n    ownerId: owner.then(owner => owner.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\nimport pulumiverse_mssql as mssql\n\nexample_database = mssql.get_database(name=\"example\")\nowner = mssql.get_sql_user(name=\"example_user\")\nexample_database_role = mssql.DatabaseRole(\"exampleDatabaseRole\",\n    database_id=example_database.id,\n    owner_id=owner.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleDatabase = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var owner = Mssql.GetSqlUser.Invoke(new()\n    {\n        Name = \"example_user\",\n    });\n\n    var exampleDatabaseRole = new Mssql.DatabaseRole(\"exampleDatabaseRole\", new()\n    {\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult => getDatabaseResult.Id),\n        OwnerId = owner.Apply(getSqlUserResult => getSqlUserResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDatabase, err := mssql.LookupDatabase(ctx, &mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\towner, err := mssql.LookupSqlUser(ctx, &mssql.LookupSqlUserArgs{\n\t\t\tName: \"example_user\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewDatabaseRole(ctx, \"exampleDatabaseRole\", &mssql.DatabaseRoleArgs{\n\t\t\tDatabaseId: pulumi.String(exampleDatabase.Id),\n\t\t\tOwnerId:    pulumi.String(owner.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetSqlUserArgs;\nimport com.pulumi.mssql.DatabaseRole;\nimport com.pulumi.mssql.DatabaseRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDatabase = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var owner = MssqlFunctions.getSqlUser(GetSqlUserArgs.builder()\n            .name(\"example_user\")\n            .build());\n\n        var exampleDatabaseRole = new DatabaseRole(\"exampleDatabaseRole\", DatabaseRoleArgs.builder()\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .ownerId(owner.applyValue(getSqlUserResult -> getSqlUserResult.id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleDatabaseRole:\n    type: mssql:DatabaseRole\n    properties:\n      databaseId: ${exampleDatabase.id}\n      ownerId: ${owner.id}\nvariables:\n  exampleDatabase:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\n  owner:\n    fn::invoke:\n      Function: mssql:getSqlUser\n      Arguments:\n        name: example_user\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using <db_id>/<role_id> - can be retrieved using `SELECT CONCAT(DB_ID(), '/', DATABASE_PRINCIPAL_ID('<role_name>'))`\n\n```sh\n$ pulumi import mssql:index/databaseRole:DatabaseRole example '7/5'\n```\n\n",
      "properties": {
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`. Defaults to ID of `master`.\n"
        },
        "name": {
          "type": "string",
          "description": "Role name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot be longer than 128 chars.\n"
        },
        "ownerId": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "databaseId",
        "name",
        "ownerId"
      ],
      "inputProperties": {
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`. Defaults to ID of `master`.\n"
        },
        "name": {
          "type": "string",
          "description": "Role name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot be longer than 128 chars.\n"
        },
        "ownerId": {
          "type": "string"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatabaseRole resources.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`. Defaults to ID of `master`.\n"
          },
          "name": {
            "type": "string",
            "description": "Role name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot be longer than 128 chars.\n"
          },
          "ownerId": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "mssql:index/databaseRoleMember:DatabaseRoleMember": {
      "description": "Manages database role membership.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst exampleDatabase = mssql.getDatabase({\n    name: \"example\",\n});\nconst owner = exampleDatabase.then(exampleDatabase => mssql.getSqlUser({\n    name: \"example_user\",\n    databaseId: exampleDatabase.id,\n}));\nconst member = exampleDatabase.then(exampleDatabase => mssql.getSqlUser({\n    name: \"member_user\",\n    databaseId: exampleDatabase.id,\n}));\nconst exampleDatabaseRole = new mssql.DatabaseRole(\"exampleDatabaseRole\", {\n    databaseId: exampleDatabase.then(exampleDatabase => exampleDatabase.id),\n    ownerId: owner.then(owner => owner.id),\n});\nconst exampleDatabaseRoleMember = new mssql.DatabaseRoleMember(\"exampleDatabaseRoleMember\", {\n    roleId: exampleDatabaseRole.id,\n    memberId: member.then(member => member.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\nimport pulumiverse_mssql as mssql\n\nexample_database = mssql.get_database(name=\"example\")\nowner = mssql.get_sql_user(name=\"example_user\",\n    database_id=example_database.id)\nmember = mssql.get_sql_user(name=\"member_user\",\n    database_id=example_database.id)\nexample_database_role = mssql.DatabaseRole(\"exampleDatabaseRole\",\n    database_id=example_database.id,\n    owner_id=owner.id)\nexample_database_role_member = mssql.DatabaseRoleMember(\"exampleDatabaseRoleMember\",\n    role_id=example_database_role.id,\n    member_id=member.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleDatabase = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var owner = Mssql.GetSqlUser.Invoke(new()\n    {\n        Name = \"example_user\",\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult => getDatabaseResult.Id),\n    });\n\n    var member = Mssql.GetSqlUser.Invoke(new()\n    {\n        Name = \"member_user\",\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult => getDatabaseResult.Id),\n    });\n\n    var exampleDatabaseRole = new Mssql.DatabaseRole(\"exampleDatabaseRole\", new()\n    {\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult => getDatabaseResult.Id),\n        OwnerId = owner.Apply(getSqlUserResult => getSqlUserResult.Id),\n    });\n\n    var exampleDatabaseRoleMember = new Mssql.DatabaseRoleMember(\"exampleDatabaseRoleMember\", new()\n    {\n        RoleId = exampleDatabaseRole.Id,\n        MemberId = member.Apply(getSqlUserResult => getSqlUserResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDatabase, err := mssql.LookupDatabase(ctx, &mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\towner, err := mssql.LookupSqlUser(ctx, &mssql.LookupSqlUserArgs{\n\t\t\tName:       \"example_user\",\n\t\t\tDatabaseId: pulumi.StringRef(exampleDatabase.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmember, err := mssql.LookupSqlUser(ctx, &mssql.LookupSqlUserArgs{\n\t\t\tName:       \"member_user\",\n\t\t\tDatabaseId: pulumi.StringRef(exampleDatabase.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDatabaseRole, err := mssql.NewDatabaseRole(ctx, \"exampleDatabaseRole\", &mssql.DatabaseRoleArgs{\n\t\t\tDatabaseId: pulumi.String(exampleDatabase.Id),\n\t\t\tOwnerId:    pulumi.String(owner.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewDatabaseRoleMember(ctx, \"exampleDatabaseRoleMember\", &mssql.DatabaseRoleMemberArgs{\n\t\t\tRoleId:   exampleDatabaseRole.ID(),\n\t\t\tMemberId: pulumi.String(member.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetSqlUserArgs;\nimport com.pulumi.mssql.DatabaseRole;\nimport com.pulumi.mssql.DatabaseRoleArgs;\nimport com.pulumi.mssql.DatabaseRoleMember;\nimport com.pulumi.mssql.DatabaseRoleMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDatabase = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var owner = MssqlFunctions.getSqlUser(GetSqlUserArgs.builder()\n            .name(\"example_user\")\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .build());\n\n        final var member = MssqlFunctions.getSqlUser(GetSqlUserArgs.builder()\n            .name(\"member_user\")\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .build());\n\n        var exampleDatabaseRole = new DatabaseRole(\"exampleDatabaseRole\", DatabaseRoleArgs.builder()\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .ownerId(owner.applyValue(getSqlUserResult -> getSqlUserResult.id()))\n            .build());\n\n        var exampleDatabaseRoleMember = new DatabaseRoleMember(\"exampleDatabaseRoleMember\", DatabaseRoleMemberArgs.builder()\n            .roleId(exampleDatabaseRole.id())\n            .memberId(member.applyValue(getSqlUserResult -> getSqlUserResult.id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleDatabaseRole:\n    type: mssql:DatabaseRole\n    properties:\n      databaseId: ${exampleDatabase.id}\n      ownerId: ${owner.id}\n  exampleDatabaseRoleMember:\n    type: mssql:DatabaseRoleMember\n    properties:\n      roleId: ${exampleDatabaseRole.id}\n      memberId: ${member.id}\nvariables:\n  exampleDatabase:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\n  owner:\n    fn::invoke:\n      Function: mssql:getSqlUser\n      Arguments:\n        name: example_user\n        databaseId: ${exampleDatabase.id}\n  member:\n    fn::invoke:\n      Function: mssql:getSqlUser\n      Arguments:\n        name: member_user\n        databaseId: ${exampleDatabase.id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using <db_id>/<role_id> - can be retrieved using `SELECT CONCAT(DB_ID(), '/', DATABASE_PRINCIPAL_ID('<role_name>'), '/', DATABASE_PRINCIPAL_ID('<member_name'))`\n\n```sh\n$ pulumi import mssql:index/databaseRoleMember:DatabaseRoleMember example '7/5/9'\n```\n\n",
      "properties": {
        "memberId": {
          "type": "string",
          "description": "Can be either user or role ID in format `<database_id>/<member_id>`. Can be retrieved using `mssql.SqlUser` or `mssql_database_member`.\n"
        },
        "roleId": {
          "type": "string",
          "description": "`<database_id>/<role_id>`\n"
        }
      },
      "type": "object",
      "required": [
        "memberId",
        "roleId"
      ],
      "inputProperties": {
        "memberId": {
          "type": "string",
          "description": "Can be either user or role ID in format `<database_id>/<member_id>`. Can be retrieved using `mssql.SqlUser` or `mssql_database_member`.\n"
        },
        "roleId": {
          "type": "string",
          "description": "`<database_id>/<role_id>`\n"
        }
      },
      "requiredInputs": [
        "memberId",
        "roleId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatabaseRoleMember resources.\n",
        "properties": {
          "memberId": {
            "type": "string",
            "description": "Can be either user or role ID in format `<database_id>/<member_id>`. Can be retrieved using `mssql.SqlUser` or `mssql_database_member`.\n"
          },
          "roleId": {
            "type": "string",
            "description": "`<database_id>/<role_id>`\n"
          }
        },
        "type": "object"
      }
    },
    "mssql:index/schema:Schema": {
      "description": "Manages single DB schema.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst exampleDatabase = mssql.getDatabase({\n    name: \"example\",\n});\nconst owner = mssql.getSqlUser({\n    name: \"example_user\",\n});\nconst exampleSchema = new mssql.Schema(\"exampleSchema\", {\n    databaseId: exampleDatabase.then(exampleDatabase => exampleDatabase.id),\n    ownerId: owner.then(owner => owner.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\nimport pulumiverse_mssql as mssql\n\nexample_database = mssql.get_database(name=\"example\")\nowner = mssql.get_sql_user(name=\"example_user\")\nexample_schema = mssql.Schema(\"exampleSchema\",\n    database_id=example_database.id,\n    owner_id=owner.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleDatabase = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var owner = Mssql.GetSqlUser.Invoke(new()\n    {\n        Name = \"example_user\",\n    });\n\n    var exampleSchema = new Mssql.Schema(\"exampleSchema\", new()\n    {\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult => getDatabaseResult.Id),\n        OwnerId = owner.Apply(getSqlUserResult => getSqlUserResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDatabase, err := mssql.LookupDatabase(ctx, &mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\towner, err := mssql.LookupSqlUser(ctx, &mssql.LookupSqlUserArgs{\n\t\t\tName: \"example_user\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewSchema(ctx, \"exampleSchema\", &mssql.SchemaArgs{\n\t\t\tDatabaseId: pulumi.String(exampleDatabase.Id),\n\t\t\tOwnerId:    pulumi.String(owner.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetSqlUserArgs;\nimport com.pulumi.mssql.Schema;\nimport com.pulumi.mssql.SchemaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDatabase = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var owner = MssqlFunctions.getSqlUser(GetSqlUserArgs.builder()\n            .name(\"example_user\")\n            .build());\n\n        var exampleSchema = new Schema(\"exampleSchema\", SchemaArgs.builder()\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .ownerId(owner.applyValue(getSqlUserResult -> getSqlUserResult.id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleSchema:\n    type: mssql:Schema\n    properties:\n      databaseId: ${exampleDatabase.id}\n      ownerId: ${owner.id}\nvariables:\n  exampleDatabase:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\n  owner:\n    fn::invoke:\n      Function: mssql:getSqlUser\n      Arguments:\n        name: example_user\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using <db_id>/<schema_id> - can be retrieved using `SELECT CONCAT(DB_ID(), '/', SCHEMA_ID('<schema_name>'))`\n\n```sh\n$ pulumi import mssql:index/schema:Schema example '7/5'\n```\n\n",
      "properties": {
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`. Defaults to ID of `master`.\n"
        },
        "name": {
          "type": "string",
          "description": "Schema name.\n"
        },
        "ownerId": {
          "type": "string",
          "description": "ID of database role or user owning this schema. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`\n"
        }
      },
      "type": "object",
      "required": [
        "databaseId",
        "name",
        "ownerId"
      ],
      "inputProperties": {
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`. Defaults to ID of `master`.\n"
        },
        "name": {
          "type": "string",
          "description": "Schema name.\n"
        },
        "ownerId": {
          "type": "string",
          "description": "ID of database role or user owning this schema. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Schema resources.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`. Defaults to ID of `master`.\n"
          },
          "name": {
            "type": "string",
            "description": "Schema name.\n"
          },
          "ownerId": {
            "type": "string",
            "description": "ID of database role or user owning this schema. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`\n"
          }
        },
        "type": "object"
      }
    },
    "mssql:index/schemaPermission:SchemaPermission": {
      "description": "Grants database-level permission.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst exampleDatabase = mssql.getDatabase({\n    name: \"example\",\n});\nconst exampleSqlUser = exampleDatabase.then(exampleDatabase => mssql.getSqlUser({\n    name: \"example_user\",\n    databaseId: exampleDatabase.id,\n}));\nconst exampleSchema = exampleDatabase.then(exampleDatabase => mssql.getSchema({\n    name: \"example_schema\",\n    databaseId: exampleDatabase.id,\n}));\nconst deleteToExample = new mssql.SchemaPermission(\"deleteToExample\", {\n    schemaId: exampleSchema.then(exampleSchema => exampleSchema.id),\n    principalId: exampleSqlUser.then(exampleSqlUser => exampleSqlUser.id),\n    permission: \"DELETE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\nimport pulumiverse_mssql as mssql\n\nexample_database = mssql.get_database(name=\"example\")\nexample_sql_user = mssql.get_sql_user(name=\"example_user\",\n    database_id=example_database.id)\nexample_schema = mssql.get_schema(name=\"example_schema\",\n    database_id=example_database.id)\ndelete_to_example = mssql.SchemaPermission(\"deleteToExample\",\n    schema_id=example_schema.id,\n    principal_id=example_sql_user.id,\n    permission=\"DELETE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleDatabase = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var exampleSqlUser = Mssql.GetSqlUser.Invoke(new()\n    {\n        Name = \"example_user\",\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult => getDatabaseResult.Id),\n    });\n\n    var exampleSchema = Mssql.GetSchema.Invoke(new()\n    {\n        Name = \"example_schema\",\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult => getDatabaseResult.Id),\n    });\n\n    var deleteToExample = new Mssql.SchemaPermission(\"deleteToExample\", new()\n    {\n        SchemaId = exampleSchema.Apply(getSchemaResult => getSchemaResult.Id),\n        PrincipalId = exampleSqlUser.Apply(getSqlUserResult => getSqlUserResult.Id),\n        Permission = \"DELETE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDatabase, err := mssql.LookupDatabase(ctx, &mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlUser, err := mssql.LookupSqlUser(ctx, &mssql.LookupSqlUserArgs{\n\t\t\tName:       \"example_user\",\n\t\t\tDatabaseId: pulumi.StringRef(exampleDatabase.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSchema, err := mssql.LookupSchema(ctx, &mssql.LookupSchemaArgs{\n\t\t\tName:       pulumi.StringRef(\"example_schema\"),\n\t\t\tDatabaseId: pulumi.StringRef(exampleDatabase.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewSchemaPermission(ctx, \"deleteToExample\", &mssql.SchemaPermissionArgs{\n\t\t\tSchemaId:    pulumi.String(exampleSchema.Id),\n\t\t\tPrincipalId: pulumi.String(exampleSqlUser.Id),\n\t\t\tPermission:  pulumi.String(\"DELETE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetSqlUserArgs;\nimport com.pulumi.mssql.inputs.GetSchemaArgs;\nimport com.pulumi.mssql.SchemaPermission;\nimport com.pulumi.mssql.SchemaPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDatabase = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var exampleSqlUser = MssqlFunctions.getSqlUser(GetSqlUserArgs.builder()\n            .name(\"example_user\")\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .build());\n\n        final var exampleSchema = MssqlFunctions.getSchema(GetSchemaArgs.builder()\n            .name(\"example_schema\")\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .build());\n\n        var deleteToExample = new SchemaPermission(\"deleteToExample\", SchemaPermissionArgs.builder()\n            .schemaId(exampleSchema.applyValue(getSchemaResult -> getSchemaResult.id()))\n            .principalId(exampleSqlUser.applyValue(getSqlUserResult -> getSqlUserResult.id()))\n            .permission(\"DELETE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  deleteToExample:\n    type: mssql:SchemaPermission\n    properties:\n      schemaId: ${exampleSchema.id}\n      principalId: ${exampleSqlUser.id}\n      permission: DELETE\nvariables:\n  exampleDatabase:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\n  exampleSqlUser:\n    fn::invoke:\n      Function: mssql:getSqlUser\n      Arguments:\n        name: example_user\n        databaseId: ${exampleDatabase.id}\n  exampleSchema:\n    fn::invoke:\n      Function: mssql:getSchema\n      Arguments:\n        name: example_schema\n        databaseId: ${exampleDatabase.id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using <db_id>/<schema_id>/<principal_id>/<permission> - can be retrieved using `SELECT CONCAT(DB_ID(), '/', SCHEMA_ID('<schema_name>'), '/', DATABASE_PRINCIPAL_ID('<principal_name>'), '/DELETE')`\n\n```sh\n$ pulumi import mssql:index/schemaPermission:SchemaPermission example '7/5/8/DELETE'\n```\n\n",
      "properties": {
        "permission": {
          "type": "string",
          "description": "Name of schema SQL permission. For full list of supported permissions, see [docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-schema-permissions-transact-sql?view=azuresqldb-current#remarks)\n"
        },
        "principalId": {
          "type": "string",
          "description": "`<database_id>/<principal_id>`. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`.\n"
        },
        "schemaId": {
          "type": "string",
          "description": "`<database_id>/<schema_id>`. Can be retrieved using `mssql.Schema`.\n"
        },
        "withGrantOption": {
          "type": "boolean",
          "description": "When set to `true`, `principal_id` will be allowed to grant the `permission` to other principals. Defaults to `false`.\n"
        }
      },
      "type": "object",
      "required": [
        "permission",
        "principalId",
        "schemaId",
        "withGrantOption"
      ],
      "inputProperties": {
        "permission": {
          "type": "string",
          "description": "Name of schema SQL permission. For full list of supported permissions, see [docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-schema-permissions-transact-sql?view=azuresqldb-current#remarks)\n"
        },
        "principalId": {
          "type": "string",
          "description": "`<database_id>/<principal_id>`. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`.\n"
        },
        "schemaId": {
          "type": "string",
          "description": "`<database_id>/<schema_id>`. Can be retrieved using `mssql.Schema`.\n"
        },
        "withGrantOption": {
          "type": "boolean",
          "description": "When set to `true`, `principal_id` will be allowed to grant the `permission` to other principals. Defaults to `false`.\n"
        }
      },
      "requiredInputs": [
        "permission",
        "principalId",
        "schemaId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SchemaPermission resources.\n",
        "properties": {
          "permission": {
            "type": "string",
            "description": "Name of schema SQL permission. For full list of supported permissions, see [docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-schema-permissions-transact-sql?view=azuresqldb-current#remarks)\n"
          },
          "principalId": {
            "type": "string",
            "description": "`<database_id>/<principal_id>`. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`.\n"
          },
          "schemaId": {
            "type": "string",
            "description": "`<database_id>/<schema_id>`. Can be retrieved using `mssql.Schema`.\n"
          },
          "withGrantOption": {
            "type": "boolean",
            "description": "When set to `true`, `principal_id` will be allowed to grant the `permission` to other principals. Defaults to `false`.\n"
          }
        },
        "type": "object"
      }
    },
    "mssql:index/script:Script": {
      "description": "Allows execution of arbitrary SQL scripts to check state and apply desired state. \n\n> **Note** This resource is meant to be an escape hatch for all cases not supported by the provider's resources. Whenever possible, use dedicated resources, which offer better plan, validation and error reporting.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst test = mssql.getDatabase({\n    name: \"test\",\n});\nconst cdc = new mssql.Script(\"cdc\", {\n    databaseId: test.then(test => test.id),\n    readScript: test.then(test => `SELECT COUNT(*) AS [is_enabled] FROM sys.change_tracking_databases WHERE database_id=${test.id}`),\n    deleteScript: test.then(test => `ALTER DATABASE [${test.name}] SET CHANGE_TRACKING = OFF`),\n    updateScript: Promise.all([test, test]).then(([test, test1]) => `IF (SELECT COUNT(*) FROM sys.change_tracking_databases WHERE database_id=${test.id}) = 0\n  ALTER DATABASE [${test1.name}] SET CHANGE_TRACKING = ON\n`),\n    state: {\n        is_enabled: \"1\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\nimport pulumiverse_mssql as mssql\n\ntest = mssql.get_database(name=\"test\")\ncdc = mssql.Script(\"cdc\",\n    database_id=test.id,\n    read_script=f\"SELECT COUNT(*) AS [is_enabled] FROM sys.change_tracking_databases WHERE database_id={test.id}\",\n    delete_script=f\"ALTER DATABASE [{test.name}] SET CHANGE_TRACKING = OFF\",\n    update_script=f\"\"\"IF (SELECT COUNT(*) FROM sys.change_tracking_databases WHERE database_id={test.id}) = 0\n  ALTER DATABASE [{test.name}] SET CHANGE_TRACKING = ON\n\"\"\",\n    state={\n        \"is_enabled\": \"1\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var cdc = new Mssql.Script(\"cdc\", new()\n    {\n        DatabaseId = test.Apply(getDatabaseResult => getDatabaseResult.Id),\n        ReadScript = $\"SELECT COUNT(*) AS [is_enabled] FROM sys.change_tracking_databases WHERE database_id={test.Apply(getDatabaseResult => getDatabaseResult.Id)}\",\n        DeleteScript = $\"ALTER DATABASE [{test.Apply(getDatabaseResult => getDatabaseResult.Name)}] SET CHANGE_TRACKING = OFF\",\n        UpdateScript = Output.Tuple(test, test).Apply(values =>\n        {\n            var test = values.Item1;\n            var test1 = values.Item2;\n            return @$\"IF (SELECT COUNT(*) FROM sys.change_tracking_databases WHERE database_id={test.Apply(getDatabaseResult => getDatabaseResult.Id)}) = 0\n  ALTER DATABASE [{test1.Name}] SET CHANGE_TRACKING = ON\n\";\n        }),\n        State = \n        {\n            { \"is_enabled\", \"1\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mssql.LookupDatabase(ctx, &mssql.LookupDatabaseArgs{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewScript(ctx, \"cdc\", &mssql.ScriptArgs{\n\t\t\tDatabaseId:   pulumi.String(test.Id),\n\t\t\tReadScript:   pulumi.Sprintf(\"SELECT COUNT(*) AS [is_enabled] FROM sys.change_tracking_databases WHERE database_id=%v\", test.Id),\n\t\t\tDeleteScript: pulumi.Sprintf(\"ALTER DATABASE [%v] SET CHANGE_TRACKING = OFF\", test.Name),\n\t\t\tUpdateScript: pulumi.Sprintf(\"IF (SELECT COUNT(*) FROM sys.change_tracking_databases WHERE database_id=%v) = 0\\n  ALTER DATABASE [%v] SET CHANGE_TRACKING = ON\\n\", test.Id, test.Name),\n\t\t\tState: pulumi.StringMap{\n\t\t\t\t\"is_enabled\": pulumi.String(\"1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.Script;\nimport com.pulumi.mssql.ScriptArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var cdc = new Script(\"cdc\", ScriptArgs.builder()\n            .databaseId(test.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .readScript(String.format(\"SELECT COUNT(*) AS [is_enabled] FROM sys.change_tracking_databases WHERE database_id=%s\", test.applyValue(getDatabaseResult -> getDatabaseResult.id())))\n            .deleteScript(String.format(\"ALTER DATABASE [%s] SET CHANGE_TRACKING = OFF\", test.applyValue(getDatabaseResult -> getDatabaseResult.name())))\n            .updateScript(\"\"\"\nIF (SELECT COUNT(*) FROM sys.change_tracking_databases WHERE database_id=%s) = 0\n  ALTER DATABASE [%s] SET CHANGE_TRACKING = ON\n\", test.applyValue(getDatabaseResult -> getDatabaseResult.id()),test.applyValue(getDatabaseResult -> getDatabaseResult.name())))\n            .state(Map.of(\"is_enabled\", \"1\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cdc:\n    type: mssql:Script\n    properties:\n      databaseId: ${test.id}\n      readScript: SELECT COUNT(*) AS [is_enabled] FROM sys.change_tracking_databases WHERE database_id=${test.id}\n      deleteScript: ALTER DATABASE [${test.name}] SET CHANGE_TRACKING = OFF\n      updateScript: |\n        IF (SELECT COUNT(*) FROM sys.change_tracking_databases WHERE database_id=${test.id}) = 0\n          ALTER DATABASE [${test.name}] SET CHANGE_TRACKING = ON\n      state:\n        is_enabled: '1'\nvariables:\n  test:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: test\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "createScript": {
          "type": "string"
        },
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`.\n"
        },
        "deleteScript": {
          "type": "string",
          "description": "SQL script executed when the resource is being destroyed. When not provided, no action will be taken during resource destruction.\n"
        },
        "readScript": {
          "type": "string",
          "description": "SQL script returning current state of the DB. It must return single-row result set where column names match the keys of `state` map and all values are strings that will be compared against `state` to determine if the resource state matches DB state.\n"
        },
        "state": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Desired state of the DB. It is arbitrary map of string values that will be compared against the values returned by the `read_script`.\n"
        },
        "updateScript": {
          "type": "string",
          "description": "SQL script executed when the desired state specified in `state` attribute does not match the state returned by `read_script`\n"
        }
      },
      "type": "object",
      "required": [
        "databaseId",
        "readScript",
        "state",
        "updateScript"
      ],
      "inputProperties": {
        "createScript": {
          "type": "string"
        },
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`.\n"
        },
        "deleteScript": {
          "type": "string",
          "description": "SQL script executed when the resource is being destroyed. When not provided, no action will be taken during resource destruction.\n"
        },
        "readScript": {
          "type": "string",
          "description": "SQL script returning current state of the DB. It must return single-row result set where column names match the keys of `state` map and all values are strings that will be compared against `state` to determine if the resource state matches DB state.\n"
        },
        "state": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Desired state of the DB. It is arbitrary map of string values that will be compared against the values returned by the `read_script`.\n"
        },
        "updateScript": {
          "type": "string",
          "description": "SQL script executed when the desired state specified in `state` attribute does not match the state returned by `read_script`\n"
        }
      },
      "requiredInputs": [
        "databaseId",
        "readScript",
        "state",
        "updateScript"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Script resources.\n",
        "properties": {
          "createScript": {
            "type": "string"
          },
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`.\n"
          },
          "deleteScript": {
            "type": "string",
            "description": "SQL script executed when the resource is being destroyed. When not provided, no action will be taken during resource destruction.\n"
          },
          "readScript": {
            "type": "string",
            "description": "SQL script returning current state of the DB. It must return single-row result set where column names match the keys of `state` map and all values are strings that will be compared against `state` to determine if the resource state matches DB state.\n"
          },
          "state": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Desired state of the DB. It is arbitrary map of string values that will be compared against the values returned by the `read_script`.\n"
          },
          "updateScript": {
            "type": "string",
            "description": "SQL script executed when the desired state specified in `state` attribute does not match the state returned by `read_script`\n"
          }
        },
        "type": "object"
      }
    },
    "mssql:index/serverPermission:ServerPermission": {
      "description": "Grants server-level permission.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst example = mssql.getSqlLogin({\n    name: \"example_login\",\n});\nconst connectToExample = new mssql.ServerPermission(\"connectToExample\", {\n    principalId: example.then(example => example.principalId),\n    permission: \"CONNECT SQL\",\n    withGrantOption: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\nimport pulumiverse_mssql as mssql\n\nexample = mssql.get_sql_login(name=\"example_login\")\nconnect_to_example = mssql.ServerPermission(\"connectToExample\",\n    principal_id=example.principal_id,\n    permission=\"CONNECT SQL\",\n    with_grant_option=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = Mssql.GetSqlLogin.Invoke(new()\n    {\n        Name = \"example_login\",\n    });\n\n    var connectToExample = new Mssql.ServerPermission(\"connectToExample\", new()\n    {\n        PrincipalId = example.Apply(getSqlLoginResult => getSqlLoginResult.PrincipalId),\n        Permission = \"CONNECT SQL\",\n        WithGrantOption = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mssql.LookupSqlLogin(ctx, &mssql.LookupSqlLoginArgs{\n\t\t\tName: \"example_login\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewServerPermission(ctx, \"connectToExample\", &mssql.ServerPermissionArgs{\n\t\t\tPrincipalId:     pulumi.String(example.PrincipalId),\n\t\t\tPermission:      pulumi.String(\"CONNECT SQL\"),\n\t\t\tWithGrantOption: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetSqlLoginArgs;\nimport com.pulumi.mssql.ServerPermission;\nimport com.pulumi.mssql.ServerPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MssqlFunctions.getSqlLogin(GetSqlLoginArgs.builder()\n            .name(\"example_login\")\n            .build());\n\n        var connectToExample = new ServerPermission(\"connectToExample\", ServerPermissionArgs.builder()\n            .principalId(example.applyValue(getSqlLoginResult -> getSqlLoginResult.principalId()))\n            .permission(\"CONNECT SQL\")\n            .withGrantOption(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  connectToExample:\n    type: mssql:ServerPermission\n    properties:\n      principalId: ${example.principalId}\n      permission: CONNECT SQL\n      withGrantOption: true\nvariables:\n  example:\n    fn::invoke:\n      Function: mssql:getSqlLogin\n      Arguments:\n        name: example_login\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using <principal_id>/<permission>\n\n```sh\n$ pulumi import mssql:index/serverPermission:ServerPermission example '7/CONNECT SQL'\n```\n\n",
      "properties": {
        "permission": {
          "type": "string",
          "description": "Name of server-level SQL permission. For full list of supported permissions see [docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-server-permissions-transact-sql?view=azuresqldb-current#remarks)\n"
        },
        "principalId": {
          "type": "string",
          "description": "ID of the principal who will be granted `permission`. Can be retrieved using `mssql.ServerRole` or `mssql.SqlLogin`.\n"
        },
        "withGrantOption": {
          "type": "boolean",
          "description": "When set to `true`, `principal_id` will be allowed to grant the `permission` to other principals. Defaults to `false`\n"
        }
      },
      "type": "object",
      "required": [
        "permission",
        "principalId",
        "withGrantOption"
      ],
      "inputProperties": {
        "permission": {
          "type": "string",
          "description": "Name of server-level SQL permission. For full list of supported permissions see [docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-server-permissions-transact-sql?view=azuresqldb-current#remarks)\n"
        },
        "principalId": {
          "type": "string",
          "description": "ID of the principal who will be granted `permission`. Can be retrieved using `mssql.ServerRole` or `mssql.SqlLogin`.\n"
        },
        "withGrantOption": {
          "type": "boolean",
          "description": "When set to `true`, `principal_id` will be allowed to grant the `permission` to other principals. Defaults to `false`\n"
        }
      },
      "requiredInputs": [
        "permission",
        "principalId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServerPermission resources.\n",
        "properties": {
          "permission": {
            "type": "string",
            "description": "Name of server-level SQL permission. For full list of supported permissions see [docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-server-permissions-transact-sql?view=azuresqldb-current#remarks)\n"
          },
          "principalId": {
            "type": "string",
            "description": "ID of the principal who will be granted `permission`. Can be retrieved using `mssql.ServerRole` or `mssql.SqlLogin`.\n"
          },
          "withGrantOption": {
            "type": "boolean",
            "description": "When set to `true`, `principal_id` will be allowed to grant the `permission` to other principals. Defaults to `false`\n"
          }
        },
        "type": "object"
      }
    },
    "mssql:index/serverRole:ServerRole": {
      "description": "Manages server-level role.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst owner = new mssql.ServerRole(\"owner\", {});\nconst example = new mssql.ServerRole(\"example\", {ownerId: owner.id});\n```\n```python\nimport pulumi\nimport pulumiverse_mssql as mssql\n\nowner = mssql.ServerRole(\"owner\")\nexample = mssql.ServerRole(\"example\", owner_id=owner.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var owner = new Mssql.ServerRole(\"owner\");\n\n    var example = new Mssql.ServerRole(\"example\", new()\n    {\n        OwnerId = owner.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\towner, err := mssql.NewServerRole(ctx, \"owner\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewServerRole(ctx, \"example\", &mssql.ServerRoleArgs{\n\t\t\tOwnerId: owner.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.ServerRole;\nimport com.pulumi.mssql.ServerRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var owner = new ServerRole(\"owner\");\n\n        var example = new ServerRole(\"example\", ServerRoleArgs.builder()\n            .ownerId(owner.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  owner:\n    type: mssql:ServerRole\n  example:\n    type: mssql:ServerRole\n    properties:\n      ownerId: ${owner.id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using <role_id> - can be retrieved using `SELECT [principal_id] FROM sys.server_principals WHERE [name]='<role_name>'`\n\n```sh\n$ pulumi import mssql:index/serverRole:ServerRole example 7\n```\n\n",
      "properties": {
        "name": {
          "type": "string",
          "description": "Role name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot be longer than 128 chars.\n"
        },
        "ownerId": {
          "type": "string",
          "description": "ID of another server role or login owning this role. Can be retrieved using `mssql.ServerRole` or `mssql.SqlLogin`.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "ownerId"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "Role name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot be longer than 128 chars.\n"
        },
        "ownerId": {
          "type": "string",
          "description": "ID of another server role or login owning this role. Can be retrieved using `mssql.ServerRole` or `mssql.SqlLogin`.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServerRole resources.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "Role name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot be longer than 128 chars.\n"
          },
          "ownerId": {
            "type": "string",
            "description": "ID of another server role or login owning this role. Can be retrieved using `mssql.ServerRole` or `mssql.SqlLogin`.\n"
          }
        },
        "type": "object"
      }
    },
    "mssql:index/serverRoleMember:ServerRoleMember": {
      "description": "Manages server role membership.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst member = mssql.getSqlLogin({\n    name: \"member_login\",\n});\nconst exampleServerRole = new mssql.ServerRole(\"exampleServerRole\", {});\nconst exampleServerRoleMember = new mssql.ServerRoleMember(\"exampleServerRoleMember\", {\n    roleId: exampleServerRole.id,\n    memberId: member.then(member => member.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\nimport pulumiverse_mssql as mssql\n\nmember = mssql.get_sql_login(name=\"member_login\")\nexample_server_role = mssql.ServerRole(\"exampleServerRole\")\nexample_server_role_member = mssql.ServerRoleMember(\"exampleServerRoleMember\",\n    role_id=example_server_role.id,\n    member_id=member.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var member = Mssql.GetSqlLogin.Invoke(new()\n    {\n        Name = \"member_login\",\n    });\n\n    var exampleServerRole = new Mssql.ServerRole(\"exampleServerRole\");\n\n    var exampleServerRoleMember = new Mssql.ServerRoleMember(\"exampleServerRoleMember\", new()\n    {\n        RoleId = exampleServerRole.Id,\n        MemberId = member.Apply(getSqlLoginResult => getSqlLoginResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmember, err := mssql.LookupSqlLogin(ctx, &mssql.LookupSqlLoginArgs{\n\t\t\tName: \"member_login\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServerRole, err := mssql.NewServerRole(ctx, \"exampleServerRole\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewServerRoleMember(ctx, \"exampleServerRoleMember\", &mssql.ServerRoleMemberArgs{\n\t\t\tRoleId:   exampleServerRole.ID(),\n\t\t\tMemberId: pulumi.String(member.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetSqlLoginArgs;\nimport com.pulumi.mssql.ServerRole;\nimport com.pulumi.mssql.ServerRoleMember;\nimport com.pulumi.mssql.ServerRoleMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var member = MssqlFunctions.getSqlLogin(GetSqlLoginArgs.builder()\n            .name(\"member_login\")\n            .build());\n\n        var exampleServerRole = new ServerRole(\"exampleServerRole\");\n\n        var exampleServerRoleMember = new ServerRoleMember(\"exampleServerRoleMember\", ServerRoleMemberArgs.builder()\n            .roleId(exampleServerRole.id())\n            .memberId(member.applyValue(getSqlLoginResult -> getSqlLoginResult.id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleServerRole:\n    type: mssql:ServerRole\n  exampleServerRoleMember:\n    type: mssql:ServerRoleMember\n    properties:\n      roleId: ${exampleServerRole.id}\n      memberId: ${member.id}\nvariables:\n  member:\n    fn::invoke:\n      Function: mssql:getSqlLogin\n      Arguments:\n        name: member_login\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using <role_id>/<member_id> - can be retrieved using `sys.server_principals` view\n\n```sh\n$ pulumi import mssql:index/serverRoleMember:ServerRoleMember example '7/5'\n```\n\n",
      "properties": {
        "memberId": {
          "type": "string",
          "description": "ID of the member. Can be retrieved using `mssql.ServerRole` or `mssql.SqlLogin`\n"
        },
        "roleId": {
          "type": "string",
          "description": "ID of the server role. Can be retrieved using `mssql.ServerRole`\n"
        }
      },
      "type": "object",
      "required": [
        "memberId",
        "roleId"
      ],
      "inputProperties": {
        "memberId": {
          "type": "string",
          "description": "ID of the member. Can be retrieved using `mssql.ServerRole` or `mssql.SqlLogin`\n"
        },
        "roleId": {
          "type": "string",
          "description": "ID of the server role. Can be retrieved using `mssql.ServerRole`\n"
        }
      },
      "requiredInputs": [
        "memberId",
        "roleId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServerRoleMember resources.\n",
        "properties": {
          "memberId": {
            "type": "string",
            "description": "ID of the member. Can be retrieved using `mssql.ServerRole` or `mssql.SqlLogin`\n"
          },
          "roleId": {
            "type": "string",
            "description": "ID of the server role. Can be retrieved using `mssql.ServerRole`\n"
          }
        },
        "type": "object"
      }
    },
    "mssql:index/sqlLogin:SqlLogin": {
      "description": "Manages single login.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst exampleDatabase = mssql.getDatabase({\n    name: \"example\",\n});\nconst exampleSqlLogin = new mssql.SqlLogin(\"exampleSqlLogin\", {\n    password: \"Str0ngPa$$word12\",\n    mustChangePassword: true,\n    defaultDatabaseId: exampleDatabase.then(exampleDatabase => exampleDatabase.id),\n    defaultLanguage: \"english\",\n    checkPasswordExpiration: true,\n    checkPasswordPolicy: true,\n});\nexport const loginId = exampleSqlLogin.id;\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\nimport pulumiverse_mssql as mssql\n\nexample_database = mssql.get_database(name=\"example\")\nexample_sql_login = mssql.SqlLogin(\"exampleSqlLogin\",\n    password=\"Str0ngPa$$word12\",\n    must_change_password=True,\n    default_database_id=example_database.id,\n    default_language=\"english\",\n    check_password_expiration=True,\n    check_password_policy=True)\npulumi.export(\"loginId\", example_sql_login.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleDatabase = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var exampleSqlLogin = new Mssql.SqlLogin(\"exampleSqlLogin\", new()\n    {\n        Password = \"Str0ngPa$$word12\",\n        MustChangePassword = true,\n        DefaultDatabaseId = exampleDatabase.Apply(getDatabaseResult => getDatabaseResult.Id),\n        DefaultLanguage = \"english\",\n        CheckPasswordExpiration = true,\n        CheckPasswordPolicy = true,\n    });\n\n    return new Dictionary<string, object?>\n    {\n        [\"loginId\"] = exampleSqlLogin.Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDatabase, err := mssql.LookupDatabase(ctx, &mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlLogin, err := mssql.NewSqlLogin(ctx, \"exampleSqlLogin\", &mssql.SqlLoginArgs{\n\t\t\tPassword:                pulumi.String(\"Str0ngPa$$word12\"),\n\t\t\tMustChangePassword:      pulumi.Bool(true),\n\t\t\tDefaultDatabaseId:       pulumi.String(exampleDatabase.Id),\n\t\t\tDefaultLanguage:         pulumi.String(\"english\"),\n\t\t\tCheckPasswordExpiration: pulumi.Bool(true),\n\t\t\tCheckPasswordPolicy:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"loginId\", exampleSqlLogin.ID())\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.SqlLogin;\nimport com.pulumi.mssql.SqlLoginArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDatabase = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        var exampleSqlLogin = new SqlLogin(\"exampleSqlLogin\", SqlLoginArgs.builder()\n            .password(\"Str0ngPa$$word12\")\n            .mustChangePassword(true)\n            .defaultDatabaseId(exampleDatabase.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .defaultLanguage(\"english\")\n            .checkPasswordExpiration(true)\n            .checkPasswordPolicy(true)\n            .build());\n\n        ctx.export(\"loginId\", exampleSqlLogin.id());\n    }\n}\n```\n```yaml\nresources:\n  exampleSqlLogin:\n    type: mssql:SqlLogin\n    properties:\n      password: Str0ngPa$$word12\n      mustChangePassword: true\n      defaultDatabaseId: ${exampleDatabase.id}\n      defaultLanguage: english\n      checkPasswordExpiration: true\n      checkPasswordPolicy: true\nvariables:\n  exampleDatabase:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\noutputs:\n  loginId: ${exampleSqlLogin.id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using login ID - can be retrieved using `SELECT SUSER_SID('<login_name>')`\n\n```sh\n$ pulumi import mssql:index/sqlLogin:SqlLogin example 0x27578D8516843E4094EFA2CEED085C82\n```\n\n",
      "properties": {
        "checkPasswordExpiration": {
          "type": "boolean",
          "description": "When `true`, password expiration policy is enforced for this login. Defaults to `false`. > **Note** In case of Azure\nSQL, which does not support this feature, the flag will be ignored.\n"
        },
        "checkPasswordPolicy": {
          "type": "boolean",
          "description": "When `true`, the Windows password policies of the computer on which SQL Server is running are enforced on this login.\nDefaults to `true`. > **Note** In case of Azure SQL, which does not support this feature, the flag will be ignored.\n"
        },
        "defaultDatabaseId": {
          "type": "string",
          "description": "ID of login's default DB. The ID can be retrieved using `mssql.Database` data resource. Defaults to ID of `master`. >\n**Note** In case of Azure SQL, which does not support this feature, the flag will be ignored.\n"
        },
        "defaultLanguage": {
          "type": "string",
          "description": "Default language assigned to login. Defaults to current default language of the server. If the default language of the\nserver is later changed, the default language of the login remains unchanged. > **Note** In case of Azure SQL, which\ndoes not support this feature, the flag will be ignored.\n"
        },
        "mustChangePassword": {
          "type": "boolean"
        },
        "name": {
          "type": "string",
          "description": "Login name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot contain `\\`\n"
        },
        "password": {
          "type": "string",
          "description": "Password for the login. Must follow strong password policies defined for SQL server. Passwords are case-sensitive, length must be 8-128 chars, can include all characters except `'` or `name`.\n",
          "secret": true
        },
        "principalId": {
          "type": "string",
          "description": "ID used to reference SQL Login in other resources, e.g. `server_role`. Can be retrieved from `sys.sql_logins`.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "password",
        "principalId"
      ],
      "inputProperties": {
        "checkPasswordExpiration": {
          "type": "boolean",
          "description": "When `true`, password expiration policy is enforced for this login. Defaults to `false`. > **Note** In case of Azure\nSQL, which does not support this feature, the flag will be ignored.\n"
        },
        "checkPasswordPolicy": {
          "type": "boolean",
          "description": "When `true`, the Windows password policies of the computer on which SQL Server is running are enforced on this login.\nDefaults to `true`. > **Note** In case of Azure SQL, which does not support this feature, the flag will be ignored.\n"
        },
        "defaultDatabaseId": {
          "type": "string",
          "description": "ID of login's default DB. The ID can be retrieved using `mssql.Database` data resource. Defaults to ID of `master`. >\n**Note** In case of Azure SQL, which does not support this feature, the flag will be ignored.\n"
        },
        "defaultLanguage": {
          "type": "string",
          "description": "Default language assigned to login. Defaults to current default language of the server. If the default language of the\nserver is later changed, the default language of the login remains unchanged. > **Note** In case of Azure SQL, which\ndoes not support this feature, the flag will be ignored.\n"
        },
        "mustChangePassword": {
          "type": "boolean"
        },
        "name": {
          "type": "string",
          "description": "Login name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot contain `\\`\n"
        },
        "password": {
          "type": "string",
          "description": "Password for the login. Must follow strong password policies defined for SQL server. Passwords are case-sensitive, length must be 8-128 chars, can include all characters except `'` or `name`.\n",
          "secret": true
        }
      },
      "requiredInputs": [
        "password"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SqlLogin resources.\n",
        "properties": {
          "checkPasswordExpiration": {
            "type": "boolean",
            "description": "When `true`, password expiration policy is enforced for this login. Defaults to `false`. > **Note** In case of Azure\nSQL, which does not support this feature, the flag will be ignored.\n"
          },
          "checkPasswordPolicy": {
            "type": "boolean",
            "description": "When `true`, the Windows password policies of the computer on which SQL Server is running are enforced on this login.\nDefaults to `true`. > **Note** In case of Azure SQL, which does not support this feature, the flag will be ignored.\n"
          },
          "defaultDatabaseId": {
            "type": "string",
            "description": "ID of login's default DB. The ID can be retrieved using `mssql.Database` data resource. Defaults to ID of `master`. >\n**Note** In case of Azure SQL, which does not support this feature, the flag will be ignored.\n"
          },
          "defaultLanguage": {
            "type": "string",
            "description": "Default language assigned to login. Defaults to current default language of the server. If the default language of the\nserver is later changed, the default language of the login remains unchanged. > **Note** In case of Azure SQL, which\ndoes not support this feature, the flag will be ignored.\n"
          },
          "mustChangePassword": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "description": "Login name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot contain `\\`\n"
          },
          "password": {
            "type": "string",
            "description": "Password for the login. Must follow strong password policies defined for SQL server. Passwords are case-sensitive, length must be 8-128 chars, can include all characters except `'` or `name`.\n",
            "secret": true
          },
          "principalId": {
            "type": "string",
            "description": "ID used to reference SQL Login in other resources, e.g. `server_role`. Can be retrieved from `sys.sql_logins`.\n"
          }
        },
        "type": "object"
      }
    },
    "mssql:index/sqlUser:SqlUser": {
      "description": "Manages database-level user, based on SQL login.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\nimport * as mssql from \"@pulumiverse/mssql\";\n\nconst exampleDatabase = mssql.getDatabase({\n    name: \"example\",\n});\nconst exampleSqlLogin = new mssql.SqlLogin(\"exampleSqlLogin\", {\n    password: \"Str0ngPa$$word12\",\n    mustChangePassword: true,\n    defaultDatabaseId: exampleDatabase.then(exampleDatabase => exampleDatabase.id),\n    defaultLanguage: \"english\",\n    checkPasswordExpiration: true,\n    checkPasswordPolicy: true,\n});\nconst exampleSqlUser = new mssql.SqlUser(\"exampleSqlUser\", {\n    databaseId: exampleDatabase.then(exampleDatabase => exampleDatabase.id),\n    loginId: exampleSqlLogin.id,\n});\nexport const userId = exampleSqlUser.id;\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\nimport pulumiverse_mssql as mssql\n\nexample_database = mssql.get_database(name=\"example\")\nexample_sql_login = mssql.SqlLogin(\"exampleSqlLogin\",\n    password=\"Str0ngPa$$word12\",\n    must_change_password=True,\n    default_database_id=example_database.id,\n    default_language=\"english\",\n    check_password_expiration=True,\n    check_password_policy=True)\nexample_sql_user = mssql.SqlUser(\"exampleSqlUser\",\n    database_id=example_database.id,\n    login_id=example_sql_login.id)\npulumi.export(\"userId\", example_sql_user.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\nusing Mssql = Pulumiverse.Mssql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleDatabase = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var exampleSqlLogin = new Mssql.SqlLogin(\"exampleSqlLogin\", new()\n    {\n        Password = \"Str0ngPa$$word12\",\n        MustChangePassword = true,\n        DefaultDatabaseId = exampleDatabase.Apply(getDatabaseResult => getDatabaseResult.Id),\n        DefaultLanguage = \"english\",\n        CheckPasswordExpiration = true,\n        CheckPasswordPolicy = true,\n    });\n\n    var exampleSqlUser = new Mssql.SqlUser(\"exampleSqlUser\", new()\n    {\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult => getDatabaseResult.Id),\n        LoginId = exampleSqlLogin.Id,\n    });\n\n    return new Dictionary<string, object?>\n    {\n        [\"userId\"] = exampleSqlUser.Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDatabase, err := mssql.LookupDatabase(ctx, &mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlLogin, err := mssql.NewSqlLogin(ctx, \"exampleSqlLogin\", &mssql.SqlLoginArgs{\n\t\t\tPassword:                pulumi.String(\"Str0ngPa$$word12\"),\n\t\t\tMustChangePassword:      pulumi.Bool(true),\n\t\t\tDefaultDatabaseId:       pulumi.String(exampleDatabase.Id),\n\t\t\tDefaultLanguage:         pulumi.String(\"english\"),\n\t\t\tCheckPasswordExpiration: pulumi.Bool(true),\n\t\t\tCheckPasswordPolicy:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlUser, err := mssql.NewSqlUser(ctx, \"exampleSqlUser\", &mssql.SqlUserArgs{\n\t\t\tDatabaseId: pulumi.String(exampleDatabase.Id),\n\t\t\tLoginId:    exampleSqlLogin.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"userId\", exampleSqlUser.ID())\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.SqlLogin;\nimport com.pulumi.mssql.SqlLoginArgs;\nimport com.pulumi.mssql.SqlUser;\nimport com.pulumi.mssql.SqlUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDatabase = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        var exampleSqlLogin = new SqlLogin(\"exampleSqlLogin\", SqlLoginArgs.builder()\n            .password(\"Str0ngPa$$word12\")\n            .mustChangePassword(true)\n            .defaultDatabaseId(exampleDatabase.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .defaultLanguage(\"english\")\n            .checkPasswordExpiration(true)\n            .checkPasswordPolicy(true)\n            .build());\n\n        var exampleSqlUser = new SqlUser(\"exampleSqlUser\", SqlUserArgs.builder()\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -> getDatabaseResult.id()))\n            .loginId(exampleSqlLogin.id())\n            .build());\n\n        ctx.export(\"userId\", exampleSqlUser.id());\n    }\n}\n```\n```yaml\nresources:\n  exampleSqlLogin:\n    type: mssql:SqlLogin\n    properties:\n      password: Str0ngPa$$word12\n      mustChangePassword: true\n      defaultDatabaseId: ${exampleDatabase.id}\n      defaultLanguage: english\n      checkPasswordExpiration: true\n      checkPasswordPolicy: true\n  exampleSqlUser:\n    type: mssql:SqlUser\n    properties:\n      databaseId: ${exampleDatabase.id}\n      loginId: ${exampleSqlLogin.id}\nvariables:\n  exampleDatabase:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\noutputs:\n  userId: ${exampleSqlUser.id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nimport using <db_id>/<user_id> - can be retrieved using `SELECT CONCAT(DB_ID(), '/', DATABASE_PRINCIPAL_ID('<username>'))`\n\n```sh\n$ pulumi import mssql:index/sqlUser:SqlUser example '7/5'\n```\n\n",
      "properties": {
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`. Defaults to ID of `master`.\n"
        },
        "loginId": {
          "type": "string",
          "description": "SID of SQL login. Can be retrieved using `mssql.SqlLogin` or `SELECT SUSER_SID('<login_name>')`.\n"
        },
        "name": {
          "type": "string",
          "description": "User name. Cannot be longer than 128 chars.\n"
        }
      },
      "type": "object",
      "required": [
        "databaseId",
        "loginId",
        "name"
      ],
      "inputProperties": {
        "databaseId": {
          "type": "string",
          "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`. Defaults to ID of `master`.\n"
        },
        "loginId": {
          "type": "string",
          "description": "SID of SQL login. Can be retrieved using `mssql.SqlLogin` or `SELECT SUSER_SID('<login_name>')`.\n"
        },
        "name": {
          "type": "string",
          "description": "User name. Cannot be longer than 128 chars.\n"
        }
      },
      "requiredInputs": [
        "loginId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SqlUser resources.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('<db_name>')`. Defaults to ID of `master`.\n"
          },
          "loginId": {
            "type": "string",
            "description": "SID of SQL login. Can be retrieved using `mssql.SqlLogin` or `SELECT SUSER_SID('<login_name>')`.\n"
          },
          "name": {
            "type": "string",
            "description": "User name. Cannot be longer than 128 chars.\n"
          }
        },
        "type": "object"
      }
    }
  },
  "functions": {
    "mssql:index/getAzureadServicePrincipal:getAzureadServicePrincipal": {
      "description": "Obtains information about single Azure AD Service Principal database user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst exampleDatabase = mssql.getDatabase({\n    name: \"example\",\n});\nconst exampleAzureadServicePrincipal = exampleDatabase.then(exampleDatabase =\u003e mssql.getAzureadServicePrincipal({\n    name: \"example\",\n    databaseId: exampleDatabase.id,\n}));\nexport const appClientId = exampleAzureadServicePrincipal.then(exampleAzureadServicePrincipal =\u003e exampleAzureadServicePrincipal.clientId);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nexample_database = mssql.get_database(name=\"example\")\nexample_azuread_service_principal = mssql.get_azuread_service_principal(name=\"example\",\n    database_id=example_database.id)\npulumi.export(\"appClientId\", example_azuread_service_principal.client_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleDatabase = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var exampleAzureadServicePrincipal = Mssql.GetAzureadServicePrincipal.Invoke(new()\n    {\n        Name = \"example\",\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"appClientId\"] = exampleAzureadServicePrincipal.Apply(getAzureadServicePrincipalResult =\u003e getAzureadServicePrincipalResult.ClientId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDatabase, err := mssql.LookupDatabase(ctx, \u0026mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAzureadServicePrincipal, err := mssql.LookupAzureadServicePrincipal(ctx, \u0026mssql.LookupAzureadServicePrincipalArgs{\n\t\t\tName:       pulumi.StringRef(\"example\"),\n\t\t\tDatabaseId: exampleDatabase.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"appClientId\", exampleAzureadServicePrincipal.ClientId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetAzureadServicePrincipalArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDatabase = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var exampleAzureadServicePrincipal = MssqlFunctions.getAzureadServicePrincipal(GetAzureadServicePrincipalArgs.builder()\n            .name(\"example\")\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n            .build());\n\n        ctx.export(\"appClientId\", exampleAzureadServicePrincipal.applyValue(getAzureadServicePrincipalResult -\u003e getAzureadServicePrincipalResult.clientId()));\n    }\n}\n```\n```yaml\nvariables:\n  exampleDatabase:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\n  exampleAzureadServicePrincipal:\n    fn::invoke:\n      Function: mssql:getAzureadServicePrincipal\n      Arguments:\n        name: example\n        databaseId: ${exampleDatabase.id}\noutputs:\n  appClientId: ${exampleAzureadServicePrincipal.clientId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getAzureadServicePrincipal.\n",
        "properties": {
          "clientId": {
            "type": "string",
            "description": "Azure AD client_id of the Service Principal. This can be either regular Service Principal or Managed Service Identity.\n"
          },
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`.\n"
          },
          "name": {
            "type": "string",
            "description": "User name. Cannot be longer than 128 chars.\n"
          }
        },
        "type": "object",
        "required": [
          "databaseId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAzureadServicePrincipal.\n",
        "properties": {
          "clientId": {
            "description": "Azure AD client_id of the Service Principal. This can be either regular Service Principal or Managed Service Identity.\n",
            "type": "string"
          },
          "databaseId": {
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`.\n",
            "type": "string"
          },
          "id": {
            "description": "`\u003cdatabase_id\u003e/\u003cuser_id\u003e`. User ID can be retrieved using `sys.database_principals` view.\n",
            "type": "string"
          },
          "name": {
            "description": "User name. Cannot be longer than 128 chars.\n",
            "type": "string"
          }
        },
        "required": [
          "clientId",
          "databaseId",
          "id",
          "name"
        ],
        "type": "object"
      }
    },
    "mssql:index/getAzureadUser:getAzureadUser": {
      "description": "Obtains information about single Azure AD database user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst exampleDatabase = mssql.getDatabase({\n    name: \"example\",\n});\nconst exampleAzureadUser = exampleDatabase.then(exampleDatabase =\u003e mssql.getAzureadUser({\n    name: \"example\",\n    databaseId: exampleDatabase.id,\n}));\nexport const userObjectId = exampleAzureadUser.then(exampleAzureadUser =\u003e exampleAzureadUser.userObjectId);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nexample_database = mssql.get_database(name=\"example\")\nexample_azuread_user = mssql.get_azuread_user(name=\"example\",\n    database_id=example_database.id)\npulumi.export(\"userObjectId\", example_azuread_user.user_object_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleDatabase = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var exampleAzureadUser = Mssql.GetAzureadUser.Invoke(new()\n    {\n        Name = \"example\",\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"userObjectId\"] = exampleAzureadUser.Apply(getAzureadUserResult =\u003e getAzureadUserResult.UserObjectId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDatabase, err := mssql.LookupDatabase(ctx, \u0026mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAzureadUser, err := mssql.LookupAzureadUser(ctx, \u0026mssql.LookupAzureadUserArgs{\n\t\t\tName:       pulumi.StringRef(\"example\"),\n\t\t\tDatabaseId: exampleDatabase.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"userObjectId\", exampleAzureadUser.UserObjectId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetAzureadUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDatabase = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var exampleAzureadUser = MssqlFunctions.getAzureadUser(GetAzureadUserArgs.builder()\n            .name(\"example\")\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n            .build());\n\n        ctx.export(\"userObjectId\", exampleAzureadUser.applyValue(getAzureadUserResult -\u003e getAzureadUserResult.userObjectId()));\n    }\n}\n```\n```yaml\nvariables:\n  exampleDatabase:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\n  exampleAzureadUser:\n    fn::invoke:\n      Function: mssql:getAzureadUser\n      Arguments:\n        name: example\n        databaseId: ${exampleDatabase.id}\noutputs:\n  userObjectId: ${exampleAzureadUser.userObjectId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getAzureadUser.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`.\n"
          },
          "name": {
            "type": "string",
            "description": "User name. Cannot be longer than 128 chars.\n"
          },
          "userObjectId": {
            "type": "string",
            "description": "Azure AD object_id of the user. This can be either regular user or a group.\n"
          }
        },
        "type": "object",
        "required": [
          "databaseId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAzureadUser.\n",
        "properties": {
          "databaseId": {
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`.\n",
            "type": "string"
          },
          "id": {
            "description": "`\u003cdatabase_id\u003e/\u003cuser_id\u003e`. User ID can be retrieved using `sys.database_principals` view.\n",
            "type": "string"
          },
          "name": {
            "description": "User name. Cannot be longer than 128 chars.\n",
            "type": "string"
          },
          "userObjectId": {
            "description": "Azure AD object_id of the user. This can be either regular user or a group.\n",
            "type": "string"
          }
        },
        "required": [
          "databaseId",
          "id",
          "name",
          "userObjectId"
        ],
        "type": "object"
      }
    },
    "mssql:index/getDatabase:getDatabase": {
      "description": "Obtains information about single database.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst example = mssql.getDatabase({\n    name: \"example\",\n});\nexport const dbId = example.then(example =\u003e example.id);\nexport const dbCollation = example.then(example =\u003e example.collation);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nexample = mssql.get_database(name=\"example\")\npulumi.export(\"dbId\", example.id)\npulumi.export(\"dbCollation\", example.collation)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dbId\"] = example.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        [\"dbCollation\"] = example.Apply(getDatabaseResult =\u003e getDatabaseResult.Collation),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mssql.LookupDatabase(ctx, \u0026mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dbId\", example.Id)\n\t\tctx.Export(\"dbCollation\", example.Collation)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        ctx.export(\"dbId\", example.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()));\n        ctx.export(\"dbCollation\", example.applyValue(getDatabaseResult -\u003e getDatabaseResult.collation()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\noutputs:\n  dbId: ${example.id}\n  dbCollation: ${example.collation}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDatabase.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "Database name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers).\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDatabase.\n",
        "properties": {
          "collation": {
            "description": "Default collation name. Can be either a Windows collation name or a SQL collation name.\n",
            "type": "string"
          },
          "id": {
            "description": "Database ID. Can be retrieved using `SELECT DB_ID('\u003cdb_name\u003e')`.\n",
            "type": "string"
          },
          "name": {
            "description": "Database name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers).\n",
            "type": "string"
          }
        },
        "required": [
          "collation",
          "id",
          "name"
        ],
        "type": "object"
      }
    },
    "mssql:index/getDatabasePermissions:getDatabasePermissions": {
      "description": "Returns all permissions granted in a DB to given principal\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst exampleDatabase = mssql.getDatabase({\n    name: \"example\",\n});\nconst exampleSqlUser = exampleDatabase.then(exampleDatabase =\u003e mssql.getSqlUser({\n    name: \"example_user\",\n    databaseId: exampleDatabase.id,\n}));\nconst exampleDatabasePermissions = exampleSqlUser.then(exampleSqlUser =\u003e mssql.getDatabasePermissions({\n    principalId: exampleSqlUser.id,\n}));\nexport const permissions = exampleDatabasePermissions.then(exampleDatabasePermissions =\u003e exampleDatabasePermissions.permissions);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nexample_database = mssql.get_database(name=\"example\")\nexample_sql_user = mssql.get_sql_user(name=\"example_user\",\n    database_id=example_database.id)\nexample_database_permissions = mssql.get_database_permissions(principal_id=example_sql_user.id)\npulumi.export(\"permissions\", example_database_permissions.permissions)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleDatabase = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var exampleSqlUser = Mssql.GetSqlUser.Invoke(new()\n    {\n        Name = \"example_user\",\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n    });\n\n    var exampleDatabasePermissions = Mssql.GetDatabasePermissions.Invoke(new()\n    {\n        PrincipalId = exampleSqlUser.Apply(getSqlUserResult =\u003e getSqlUserResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"permissions\"] = exampleDatabasePermissions.Apply(getDatabasePermissionsResult =\u003e getDatabasePermissionsResult.Permissions),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDatabase, err := mssql.LookupDatabase(ctx, \u0026mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlUser, err := mssql.LookupSqlUser(ctx, \u0026mssql.LookupSqlUserArgs{\n\t\t\tName:       \"example_user\",\n\t\t\tDatabaseId: pulumi.StringRef(exampleDatabase.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDatabasePermissions, err := mssql.GetDatabasePermissions(ctx, \u0026mssql.GetDatabasePermissionsArgs{\n\t\t\tPrincipalId: exampleSqlUser.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"permissions\", exampleDatabasePermissions.Permissions)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetSqlUserArgs;\nimport com.pulumi.mssql.inputs.GetDatabasePermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDatabase = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var exampleSqlUser = MssqlFunctions.getSqlUser(GetSqlUserArgs.builder()\n            .name(\"example_user\")\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n            .build());\n\n        final var exampleDatabasePermissions = MssqlFunctions.getDatabasePermissions(GetDatabasePermissionsArgs.builder()\n            .principalId(exampleSqlUser.applyValue(getSqlUserResult -\u003e getSqlUserResult.id()))\n            .build());\n\n        ctx.export(\"permissions\", exampleDatabasePermissions.applyValue(getDatabasePermissionsResult -\u003e getDatabasePermissionsResult.permissions()));\n    }\n}\n```\n```yaml\nvariables:\n  exampleDatabase:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\n  exampleSqlUser:\n    fn::invoke:\n      Function: mssql:getSqlUser\n      Arguments:\n        name: example_user\n        databaseId: ${exampleDatabase.id}\n  exampleDatabasePermissions:\n    fn::invoke:\n      Function: mssql:getDatabasePermissions\n      Arguments:\n        principalId: ${exampleSqlUser.id}\noutputs:\n  permissions: ${exampleDatabasePermissions.permissions}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDatabasePermissions.\n",
        "properties": {
          "principalId": {
            "type": "string",
            "description": "`\u003cdatabase_id\u003e/\u003cprincipal_id\u003e`. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`.\n"
          }
        },
        "type": "object",
        "required": [
          "principalId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDatabasePermissions.\n",
        "properties": {
          "id": {
            "description": "`\u003cdatabase_id\u003e/\u003cprincipal_id\u003e`.\n",
            "type": "string"
          },
          "permissions": {
            "description": "Set of permissions granted to the principal\n",
            "items": {
              "$ref": "#/types/mssql:index%2FgetDatabasePermissionsPermission:getDatabasePermissionsPermission"
            },
            "type": "array"
          },
          "principalId": {
            "description": "`\u003cdatabase_id\u003e/\u003cprincipal_id\u003e`. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "permissions",
          "principalId"
        ],
        "type": "object"
      }
    },
    "mssql:index/getDatabaseRole:getDatabaseRole": {
      "description": "Obtains information about single database role.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst master = mssql.getDatabase({\n    name: \"master\",\n});\nconst example = master.then(master =\u003e mssql.getDatabaseRole({\n    name: \"public\",\n    databaseId: master.id,\n}));\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nmaster = mssql.get_database(name=\"master\")\nexample = mssql.get_database_role(name=\"public\",\n    database_id=master.id)\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var master = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"master\",\n    });\n\n    var example = Mssql.GetDatabaseRole.Invoke(new()\n    {\n        Name = \"public\",\n        DatabaseId = master.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"id\"] = example.Apply(getDatabaseRoleResult =\u003e getDatabaseRoleResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmaster, err := mssql.LookupDatabase(ctx, \u0026mssql.LookupDatabaseArgs{\n\t\t\tName: \"master\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := mssql.LookupDatabaseRole(ctx, \u0026mssql.LookupDatabaseRoleArgs{\n\t\t\tName:       \"public\",\n\t\t\tDatabaseId: pulumi.StringRef(master.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetDatabaseRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var master = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"master\")\n            .build());\n\n        final var example = MssqlFunctions.getDatabaseRole(GetDatabaseRoleArgs.builder()\n            .name(\"public\")\n            .databaseId(master.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n            .build());\n\n        ctx.export(\"id\", example.applyValue(getDatabaseRoleResult -\u003e getDatabaseRoleResult.id()));\n    }\n}\n```\n```yaml\nvariables:\n  master:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: master\n  example:\n    fn::invoke:\n      Function: mssql:getDatabaseRole\n      Arguments:\n        name: public\n        databaseId: ${master.id}\noutputs:\n  id: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDatabaseRole.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`. Defaults to ID of `master`.\n"
          },
          "name": {
            "type": "string",
            "description": "Role name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot be longer than 128 chars.\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDatabaseRole.\n",
        "properties": {
          "databaseId": {
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`. Defaults to ID of `master`.\n",
            "type": "string"
          },
          "id": {
            "description": "`\u003cdatabase_id\u003e/\u003crole_id\u003e`. Role ID can be retrieved using `SELECT DATABASE_PRINCIPAL_ID('\u003crole_name\u003e')`\n",
            "type": "string"
          },
          "members": {
            "description": "Set of role members\n",
            "items": {
              "$ref": "#/types/mssql:index%2FgetDatabaseRoleMember:getDatabaseRoleMember"
            },
            "type": "array"
          },
          "name": {
            "description": "Role name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot be longer than 128 chars.\n",
            "type": "string"
          },
          "ownerId": {
            "description": "ID of another database role or user owning this role. Can be retrieved using `mssql.DatabaseRole` or `mssql.SqlUser`.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "members",
          "name",
          "ownerId"
        ],
        "type": "object"
      }
    },
    "mssql:index/getDatabaseRoles:getDatabaseRoles": {
      "description": "Obtains information about all roles defined in a database.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst master = mssql.getDatabase({\n    name: \"master\",\n});\nconst example = master.then(master =\u003e mssql.getDatabaseRoles({\n    databaseId: master.id,\n}));\nexport const roles = example.then(example =\u003e example.roles);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nmaster = mssql.get_database(name=\"master\")\nexample = mssql.get_database_roles(database_id=master.id)\npulumi.export(\"roles\", example.roles)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var master = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"master\",\n    });\n\n    var example = Mssql.GetDatabaseRoles.Invoke(new()\n    {\n        DatabaseId = master.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"roles\"] = example.Apply(getDatabaseRolesResult =\u003e getDatabaseRolesResult.Roles),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmaster, err := mssql.LookupDatabase(ctx, \u0026mssql.LookupDatabaseArgs{\n\t\t\tName: \"master\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := mssql.GetDatabaseRoles(ctx, \u0026mssql.GetDatabaseRolesArgs{\n\t\t\tDatabaseId: pulumi.StringRef(master.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"roles\", example.Roles)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetDatabaseRolesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var master = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"master\")\n            .build());\n\n        final var example = MssqlFunctions.getDatabaseRoles(GetDatabaseRolesArgs.builder()\n            .databaseId(master.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n            .build());\n\n        ctx.export(\"roles\", example.applyValue(getDatabaseRolesResult -\u003e getDatabaseRolesResult.roles()));\n    }\n}\n```\n```yaml\nvariables:\n  master:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: master\n  example:\n    fn::invoke:\n      Function: mssql:getDatabaseRoles\n      Arguments:\n        databaseId: ${master.id}\noutputs:\n  roles: ${example.roles}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDatabaseRoles.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`. Defaults to ID of `master`.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDatabaseRoles.\n",
        "properties": {
          "databaseId": {
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`. Defaults to ID of `master`.\n",
            "type": "string"
          },
          "id": {
            "description": "ID of the resource, equals to database ID\n",
            "type": "string"
          },
          "roles": {
            "description": "Set of database role objects\n",
            "items": {
              "$ref": "#/types/mssql:index%2FgetDatabaseRolesRole:getDatabaseRolesRole"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "roles"
        ],
        "type": "object"
      }
    },
    "mssql:index/getDatabases:getDatabases": {
      "description": "Obtains information about all databases found in SQL Server instance.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst example = mssql.getDatabases({});\nexport const databases = example.then(example =\u003e example.databases);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nexample = mssql.get_databases()\npulumi.export(\"databases\", example.databases)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Mssql.GetDatabases.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"databases\"] = example.Apply(getDatabasesResult =\u003e getDatabasesResult.Databases),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mssql.GetDatabases(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"databases\", example.Databases)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MssqlFunctions.getDatabases();\n\n        ctx.export(\"databases\", example.applyValue(getDatabasesResult -\u003e getDatabasesResult.databases()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: mssql:getDatabases\n      Arguments: {}\noutputs:\n  databases: ${example.databases}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "outputs": {
        "description": "A collection of values returned by getDatabases.\n",
        "properties": {
          "databases": {
            "description": "Set of database objects\n",
            "items": {
              "$ref": "#/types/mssql:index%2FgetDatabasesDatabase:getDatabasesDatabase"
            },
            "type": "array"
          },
          "id": {
            "description": "ID of the resource used only internally by the provider.\n",
            "type": "string"
          }
        },
        "required": [
          "databases",
          "id"
        ],
        "type": "object"
      }
    },
    "mssql:index/getQuery:getQuery": {
      "description": "Retrieves arbitrary SQL query result.\n\n\u003e **Note** This data source is meant to be an escape hatch for all cases not supported by the provider's data sources. Whenever possible, use dedicated data sources, which offer better plan, validation and error reporting.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst test = mssql.getDatabase({\n    name: \"test\",\n});\nconst column = test.then(test =\u003e mssql.getQuery({\n    databaseId: test.id,\n    query: \"SELECT [column_id], [name] FROM sys.columns WHERE [object_id] = OBJECT_ID('test_table')\",\n}));\nexport const columnNames = column.then(column =\u003e column.results.map(__item =\u003e __item.name));\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\ntest = mssql.get_database(name=\"test\")\ncolumn = mssql.get_query(database_id=test.id,\n    query=\"SELECT [column_id], [name] FROM sys.columns WHERE [object_id] = OBJECT_ID('test_table')\")\npulumi.export(\"columnNames\", [__item[\"name\"] for __item in column.results])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"test\",\n    });\n\n    var column = Mssql.GetQuery.Invoke(new()\n    {\n        DatabaseId = test.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        Query = \"SELECT [column_id], [name] FROM sys.columns WHERE [object_id] = OBJECT_ID('test_table')\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"columnNames\"] = column.Apply(getQueryResult =\u003e getQueryResult.Results).Select(__item =\u003e __item.Name).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ntest, err := mssql.LookupDatabase(ctx, \u0026mssql.LookupDatabaseArgs{\nName: \"test\",\n}, nil);\nif err != nil {\nreturn err\n}\ncolumn, err := mssql.GetQuery(ctx, \u0026mssql.GetQueryArgs{\nDatabaseId: test.Id,\nQuery: \"SELECT [column_id], [name] FROM sys.columns WHERE [object_id] = OBJECT_ID('test_table')\",\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"columnNames\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ #-functions-%smssql:index-getQuery:getQuery.pp:8,11-33)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetQueryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"test\")\n            .build());\n\n        final var column = MssqlFunctions.getQuery(GetQueryArgs.builder()\n            .databaseId(test.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n            .query(\"SELECT [column_id], [name] FROM sys.columns WHERE [object_id] = OBJECT_ID('test_table')\")\n            .build());\n\n        ctx.export(\"columnNames\", column.applyValue(getQueryResult -\u003e getQueryResult.results()).stream().map(element -\u003e element.name()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getQuery.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`.\n"
          },
          "query": {
            "type": "string",
            "description": "SQL query returning single result set, with any number of rows, where all columns are strings\n"
          }
        },
        "type": "object",
        "required": [
          "databaseId",
          "query"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getQuery.\n",
        "properties": {
          "databaseId": {
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`.\n",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "query": {
            "description": "SQL query returning single result set, with any number of rows, where all columns are strings\n",
            "type": "string"
          },
          "results": {
            "description": "Results of the SQL query, represented as list of maps, where the map key corresponds to column name and the value is the value of column in given row.\n",
            "items": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "databaseId",
          "id",
          "query",
          "results"
        ],
        "type": "object"
      }
    },
    "mssql:index/getSchema:getSchema": {
      "description": "Retrieves information about DB schema.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst example = mssql.getDatabase({\n    name: \"example\",\n});\nconst byName = example.then(example =\u003e mssql.getSchema({\n    databaseId: example.id,\n    name: \"dbo\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nexample = mssql.get_database(name=\"example\")\nby_name = mssql.get_schema(database_id=example.id,\n    name=\"dbo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var byName = Mssql.GetSchema.Invoke(new()\n    {\n        DatabaseId = example.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n        Name = \"dbo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mssql.LookupDatabase(ctx, \u0026mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.LookupSchema(ctx, \u0026mssql.LookupSchemaArgs{\n\t\t\tDatabaseId: pulumi.StringRef(example.Id),\n\t\t\tName:       pulumi.StringRef(\"dbo\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetSchemaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var byName = MssqlFunctions.getSchema(GetSchemaArgs.builder()\n            .databaseId(example.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n            .name(\"dbo\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\n  byName:\n    fn::invoke:\n      Function: mssql:getSchema\n      Arguments:\n        databaseId: ${example.id}\n        name: dbo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSchema.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`.\n"
          },
          "id": {
            "type": "string",
            "description": "`\u003cdatabase_id\u003e/\u003cschema_id\u003e`. Schema ID can be retrieved using `SELECT SCHEMA_ID('\u003cschema_name\u003e')`. Either `id` or `name` must be provided.\n"
          },
          "name": {
            "type": "string",
            "description": "Schema name. Either `id` or `name` must be provided.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSchema.\n",
        "properties": {
          "databaseId": {
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`.\n",
            "type": "string"
          },
          "id": {
            "description": "`\u003cdatabase_id\u003e/\u003cschema_id\u003e`. Schema ID can be retrieved using `SELECT SCHEMA_ID('\u003cschema_name\u003e')`. Either `id` or `name` must be provided.\n",
            "type": "string"
          },
          "name": {
            "description": "Schema name. Either `id` or `name` must be provided.\n",
            "type": "string"
          },
          "ownerId": {
            "description": "ID of database role or user owning this schema. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`\n",
            "type": "string"
          }
        },
        "required": [
          "databaseId",
          "id",
          "name",
          "ownerId"
        ],
        "type": "object"
      }
    },
    "mssql:index/getSchemaPermissions:getSchemaPermissions": {
      "description": "Returns all permissions granted in a schema to given principal\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst exampleDatabase = mssql.getDatabase({\n    name: \"example\",\n});\nconst exampleSqlUser = exampleDatabase.then(exampleDatabase =\u003e mssql.getSqlUser({\n    name: \"example_user\",\n    databaseId: exampleDatabase.id,\n}));\nconst exampleSchema = exampleDatabase.then(exampleDatabase =\u003e mssql.getSchema({\n    name: \"example_schema\",\n    databaseId: exampleDatabase.id,\n}));\nconst exampleSchemaPermissions = Promise.all([exampleSchema, exampleSqlUser]).then(([exampleSchema, exampleSqlUser]) =\u003e mssql.getSchemaPermissions({\n    schemaId: exampleSchema.id,\n    principalId: exampleSqlUser.id,\n}));\nexport const permissions = exampleSchemaPermissions.then(exampleSchemaPermissions =\u003e exampleSchemaPermissions.permissions);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nexample_database = mssql.get_database(name=\"example\")\nexample_sql_user = mssql.get_sql_user(name=\"example_user\",\n    database_id=example_database.id)\nexample_schema = mssql.get_schema(name=\"example_schema\",\n    database_id=example_database.id)\nexample_schema_permissions = mssql.get_schema_permissions(schema_id=example_schema.id,\n    principal_id=example_sql_user.id)\npulumi.export(\"permissions\", example_schema_permissions.permissions)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleDatabase = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var exampleSqlUser = Mssql.GetSqlUser.Invoke(new()\n    {\n        Name = \"example_user\",\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n    });\n\n    var exampleSchema = Mssql.GetSchema.Invoke(new()\n    {\n        Name = \"example_schema\",\n        DatabaseId = exampleDatabase.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n    });\n\n    var exampleSchemaPermissions = Mssql.GetSchemaPermissions.Invoke(new()\n    {\n        SchemaId = exampleSchema.Apply(getSchemaResult =\u003e getSchemaResult.Id),\n        PrincipalId = exampleSqlUser.Apply(getSqlUserResult =\u003e getSqlUserResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"permissions\"] = exampleSchemaPermissions.Apply(getSchemaPermissionsResult =\u003e getSchemaPermissionsResult.Permissions),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDatabase, err := mssql.LookupDatabase(ctx, \u0026mssql.LookupDatabaseArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlUser, err := mssql.LookupSqlUser(ctx, \u0026mssql.LookupSqlUserArgs{\n\t\t\tName:       \"example_user\",\n\t\t\tDatabaseId: pulumi.StringRef(exampleDatabase.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSchema, err := mssql.LookupSchema(ctx, \u0026mssql.LookupSchemaArgs{\n\t\t\tName:       pulumi.StringRef(\"example_schema\"),\n\t\t\tDatabaseId: pulumi.StringRef(exampleDatabase.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSchemaPermissions, err := mssql.GetSchemaPermissions(ctx, \u0026mssql.GetSchemaPermissionsArgs{\n\t\t\tSchemaId:    exampleSchema.Id,\n\t\t\tPrincipalId: exampleSqlUser.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"permissions\", exampleSchemaPermissions.Permissions)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetSqlUserArgs;\nimport com.pulumi.mssql.inputs.GetSchemaArgs;\nimport com.pulumi.mssql.inputs.GetSchemaPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleDatabase = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var exampleSqlUser = MssqlFunctions.getSqlUser(GetSqlUserArgs.builder()\n            .name(\"example_user\")\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n            .build());\n\n        final var exampleSchema = MssqlFunctions.getSchema(GetSchemaArgs.builder()\n            .name(\"example_schema\")\n            .databaseId(exampleDatabase.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n            .build());\n\n        final var exampleSchemaPermissions = MssqlFunctions.getSchemaPermissions(GetSchemaPermissionsArgs.builder()\n            .schemaId(exampleSchema.applyValue(getSchemaResult -\u003e getSchemaResult.id()))\n            .principalId(exampleSqlUser.applyValue(getSqlUserResult -\u003e getSqlUserResult.id()))\n            .build());\n\n        ctx.export(\"permissions\", exampleSchemaPermissions.applyValue(getSchemaPermissionsResult -\u003e getSchemaPermissionsResult.permissions()));\n    }\n}\n```\n```yaml\nvariables:\n  exampleDatabase:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: example\n  exampleSqlUser:\n    fn::invoke:\n      Function: mssql:getSqlUser\n      Arguments:\n        name: example_user\n        databaseId: ${exampleDatabase.id}\n  exampleSchema:\n    fn::invoke:\n      Function: mssql:getSchema\n      Arguments:\n        name: example_schema\n        databaseId: ${exampleDatabase.id}\n  exampleSchemaPermissions:\n    fn::invoke:\n      Function: mssql:getSchemaPermissions\n      Arguments:\n        schemaId: ${exampleSchema.id}\n        principalId: ${exampleSqlUser.id}\noutputs:\n  permissions: ${exampleSchemaPermissions.permissions}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSchemaPermissions.\n",
        "properties": {
          "principalId": {
            "type": "string",
            "description": "`\u003cdatabase_id\u003e/\u003cprincipal_id\u003e`. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`.\n"
          },
          "schemaId": {
            "type": "string",
            "description": "`\u003cdatabase_id\u003e/\u003cschema_id\u003e`. Can be retrieved using `mssql.Schema`.\n"
          }
        },
        "type": "object",
        "required": [
          "principalId",
          "schemaId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getSchemaPermissions.\n",
        "properties": {
          "id": {
            "description": "`\u003cdatabase_id\u003e/\u003cschema_id\u003e/\u003cprincipal_id\u003e`.\n",
            "type": "string"
          },
          "permissions": {
            "description": "Set of permissions granted to the principal\n",
            "items": {
              "$ref": "#/types/mssql:index%2FgetSchemaPermissionsPermission:getSchemaPermissionsPermission"
            },
            "type": "array"
          },
          "principalId": {
            "description": "`\u003cdatabase_id\u003e/\u003cprincipal_id\u003e`. Can be retrieved using `mssql.DatabaseRole`, `mssql.SqlUser`, `mssql.AzureadUser` or `mssql.AzureadServicePrincipal`.\n",
            "type": "string"
          },
          "schemaId": {
            "description": "`\u003cdatabase_id\u003e/\u003cschema_id\u003e`. Can be retrieved using `mssql.Schema`.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "permissions",
          "principalId",
          "schemaId"
        ],
        "type": "object"
      }
    },
    "mssql:index/getSchemas:getSchemas": {
      "description": "Obtains information about all schemas found in SQL database.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst example = mssql.getDatabase({\n    name: \"example\",\n});\nconst all = example.then(example =\u003e mssql.getSchemas({\n    databaseId: example.id,\n}));\nexport const allSchemaNames = all.then(all =\u003e all.schemas.map(__item =\u003e __item.name));\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nexample = mssql.get_database(name=\"example\")\nall = mssql.get_schemas(database_id=example.id)\npulumi.export(\"allSchemaNames\", [__item.name for __item in all.schemas])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var all = Mssql.GetSchemas.Invoke(new()\n    {\n        DatabaseId = example.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"allSchemaNames\"] = all.Apply(getSchemasResult =\u003e getSchemasResult.Schemas).Select(__item =\u003e __item.Name).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexample, err := mssql.LookupDatabase(ctx, \u0026mssql.LookupDatabaseArgs{\nName: \"example\",\n}, nil);\nif err != nil {\nreturn err\n}\nall, err := mssql.GetSchemas(ctx, \u0026mssql.GetSchemasArgs{\nDatabaseId: pulumi.StringRef(example.Id),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"allSchemaNames\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ #-functions-%smssql:index-getSchemas:getSchemas.pp:7,11-30)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetSchemasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var all = MssqlFunctions.getSchemas(GetSchemasArgs.builder()\n            .databaseId(example.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n            .build());\n\n        ctx.export(\"allSchemaNames\", all.applyValue(getSchemasResult -\u003e getSchemasResult.schemas()).stream().map(element -\u003e element.name()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSchemas.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`. Defaults to ID of `master`.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSchemas.\n",
        "properties": {
          "databaseId": {
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`. Defaults to ID of `master`.\n",
            "type": "string"
          },
          "id": {
            "description": "ID of the data source, equals to database ID\n",
            "type": "string"
          },
          "schemas": {
            "description": "Set of schemas found in the DB.\n",
            "items": {
              "$ref": "#/types/mssql:index%2FgetSchemasSchema:getSchemasSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "databaseId",
          "id",
          "schemas"
        ],
        "type": "object"
      }
    },
    "mssql:index/getServerPermissions:getServerPermissions": {
      "description": "Returns all permissions grated to given principal\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst exampleSqlLogin = mssql.getSqlLogin({\n    name: \"example_login\",\n});\nconst exampleServerPermissions = exampleSqlLogin.then(exampleSqlLogin =\u003e mssql.getServerPermissions({\n    principalId: exampleSqlLogin.principalId,\n}));\nexport const permissions = exampleServerPermissions.then(exampleServerPermissions =\u003e exampleServerPermissions.permissions);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nexample_sql_login = mssql.get_sql_login(name=\"example_login\")\nexample_server_permissions = mssql.get_server_permissions(principal_id=example_sql_login.principal_id)\npulumi.export(\"permissions\", example_server_permissions.permissions)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleSqlLogin = Mssql.GetSqlLogin.Invoke(new()\n    {\n        Name = \"example_login\",\n    });\n\n    var exampleServerPermissions = Mssql.GetServerPermissions.Invoke(new()\n    {\n        PrincipalId = exampleSqlLogin.Apply(getSqlLoginResult =\u003e getSqlLoginResult.PrincipalId),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"permissions\"] = exampleServerPermissions.Apply(getServerPermissionsResult =\u003e getServerPermissionsResult.Permissions),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleSqlLogin, err := mssql.LookupSqlLogin(ctx, \u0026mssql.LookupSqlLoginArgs{\n\t\t\tName: \"example_login\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServerPermissions, err := mssql.GetServerPermissions(ctx, \u0026mssql.GetServerPermissionsArgs{\n\t\t\tPrincipalId: exampleSqlLogin.PrincipalId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"permissions\", exampleServerPermissions.Permissions)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetSqlLoginArgs;\nimport com.pulumi.mssql.inputs.GetServerPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleSqlLogin = MssqlFunctions.getSqlLogin(GetSqlLoginArgs.builder()\n            .name(\"example_login\")\n            .build());\n\n        final var exampleServerPermissions = MssqlFunctions.getServerPermissions(GetServerPermissionsArgs.builder()\n            .principalId(exampleSqlLogin.applyValue(getSqlLoginResult -\u003e getSqlLoginResult.principalId()))\n            .build());\n\n        ctx.export(\"permissions\", exampleServerPermissions.applyValue(getServerPermissionsResult -\u003e getServerPermissionsResult.permissions()));\n    }\n}\n```\n```yaml\nvariables:\n  exampleSqlLogin:\n    fn::invoke:\n      Function: mssql:getSqlLogin\n      Arguments:\n        name: example_login\n  exampleServerPermissions:\n    fn::invoke:\n      Function: mssql:getServerPermissions\n      Arguments:\n        principalId: ${exampleSqlLogin.principalId}\noutputs:\n  permissions: ${exampleServerPermissions.permissions}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getServerPermissions.\n",
        "properties": {
          "principalId": {
            "type": "string",
            "description": "ID of the principal who will be granted `permission`. Can be retrieved using `mssql.ServerRole` or `mssql.SqlLogin`.\n"
          }
        },
        "type": "object",
        "required": [
          "principalId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getServerPermissions.\n",
        "properties": {
          "id": {
            "description": "Equals to `principal_id`.\n",
            "type": "string"
          },
          "permissions": {
            "description": "Set of permissions granted to the principal\n",
            "items": {
              "$ref": "#/types/mssql:index%2FgetServerPermissionsPermission:getServerPermissionsPermission"
            },
            "type": "array"
          },
          "principalId": {
            "description": "ID of the principal who will be granted `permission`. Can be retrieved using `mssql.ServerRole` or `mssql.SqlLogin`.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "permissions",
          "principalId"
        ],
        "type": "object"
      }
    },
    "mssql:index/getServerRole:getServerRole": {
      "description": "Obtains information about single server role.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst byName = mssql.getServerRole({\n    name: \"example\",\n});\nconst byId = mssql.getServerRole({\n    id: \"8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nby_name = mssql.get_server_role(name=\"example\")\nby_id = mssql.get_server_role(id=\"8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var byName = Mssql.GetServerRole.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n    var byId = Mssql.GetServerRole.Invoke(new()\n    {\n        Id = \"8\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mssql.LookupServerRole(ctx, \u0026mssql.LookupServerRoleArgs{\n\t\t\tName: pulumi.StringRef(\"example\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.LookupServerRole(ctx, \u0026mssql.LookupServerRoleArgs{\n\t\t\tId: pulumi.StringRef(\"8\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetServerRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var byName = MssqlFunctions.getServerRole(GetServerRoleArgs.builder()\n            .name(\"example\")\n            .build());\n\n        final var byId = MssqlFunctions.getServerRole(GetServerRoleArgs.builder()\n            .id(8)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  byName:\n    fn::invoke:\n      Function: mssql:getServerRole\n      Arguments:\n        name: example\n  byId:\n    fn::invoke:\n      Function: mssql:getServerRole\n      Arguments:\n        id: 8\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getServerRole.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "Role principal ID. Either `name` or `id` must be provided.\n"
          },
          "name": {
            "type": "string",
            "description": "Role name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot be longer than 128 chars. Either `name` or `id` must be provided.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getServerRole.\n",
        "properties": {
          "id": {
            "description": "Role principal ID. Either `name` or `id` must be provided.\n",
            "type": "string"
          },
          "members": {
            "description": "Set of role members\n",
            "items": {
              "$ref": "#/types/mssql:index%2FgetServerRoleMember:getServerRoleMember"
            },
            "type": "array"
          },
          "name": {
            "description": "Role name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot be longer than 128 chars. Either `name` or `id` must be provided.\n",
            "type": "string"
          },
          "ownerId": {
            "description": "ID of another server role or login owning this role. Can be retrieved using `mssql.ServerRole` or `mssql.SqlLogin`.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "members",
          "name",
          "ownerId"
        ],
        "type": "object"
      }
    },
    "mssql:index/getServerRoles:getServerRoles": {
      "description": "Obtains information about all roles defined in the server.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst all = mssql.getServerRoles({});\nexport const roles = all.then(all =\u003e all.roles);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nall = mssql.get_server_roles()\npulumi.export(\"roles\", all.roles)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var all = Mssql.GetServerRoles.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"roles\"] = all.Apply(getServerRolesResult =\u003e getServerRolesResult.Roles),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := mssql.GetServerRoles(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"roles\", all.Roles)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var all = MssqlFunctions.getServerRoles();\n\n        ctx.export(\"roles\", all.applyValue(getServerRolesResult -\u003e getServerRolesResult.roles()));\n    }\n}\n```\n```yaml\nvariables:\n  all:\n    fn::invoke:\n      Function: mssql:getServerRoles\n      Arguments: {}\noutputs:\n  roles: ${all.roles}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "outputs": {
        "description": "A collection of values returned by getServerRoles.\n",
        "properties": {
          "id": {
            "type": "string"
          },
          "roles": {
            "description": "Set of all roles found in the server\n",
            "items": {
              "$ref": "#/types/mssql:index%2FgetServerRolesRole:getServerRolesRole"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "roles"
        ],
        "type": "object"
      }
    },
    "mssql:index/getSqlLogin:getSqlLogin": {
      "description": "Obtains information about single SQL login.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst sa = mssql.getSqlLogin({\n    name: \"sa\",\n});\nexport const id = sa.then(sa =\u003e sa.id);\nexport const dbId = sa.then(sa =\u003e sa.defaultDatabaseId);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nsa = mssql.get_sql_login(name=\"sa\")\npulumi.export(\"id\", sa.id)\npulumi.export(\"dbId\", sa.default_database_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sa = Mssql.GetSqlLogin.Invoke(new()\n    {\n        Name = \"sa\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"id\"] = sa.Apply(getSqlLoginResult =\u003e getSqlLoginResult.Id),\n        [\"dbId\"] = sa.Apply(getSqlLoginResult =\u003e getSqlLoginResult.DefaultDatabaseId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsa, err := mssql.LookupSqlLogin(ctx, \u0026mssql.LookupSqlLoginArgs{\n\t\t\tName: \"sa\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", sa.Id)\n\t\tctx.Export(\"dbId\", sa.DefaultDatabaseId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetSqlLoginArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sa = MssqlFunctions.getSqlLogin(GetSqlLoginArgs.builder()\n            .name(\"sa\")\n            .build());\n\n        ctx.export(\"id\", sa.applyValue(getSqlLoginResult -\u003e getSqlLoginResult.id()));\n        ctx.export(\"dbId\", sa.applyValue(getSqlLoginResult -\u003e getSqlLoginResult.defaultDatabaseId()));\n    }\n}\n```\n```yaml\nvariables:\n  sa:\n    fn::invoke:\n      Function: mssql:getSqlLogin\n      Arguments:\n        name: sa\noutputs:\n  id: ${sa.id}\n  dbId: ${sa.defaultDatabaseId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSqlLogin.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "Login name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot contain `\\`\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getSqlLogin.\n",
        "properties": {
          "checkPasswordExpiration": {
            "description": "When `true`, password expiration policy is enforced for this login.\n",
            "type": "boolean"
          },
          "checkPasswordPolicy": {
            "description": "When `true`, the Windows password policies of the computer on which SQL Server is running are enforced on this login.\n",
            "type": "boolean"
          },
          "defaultDatabaseId": {
            "description": "ID of login's default DB. The ID can be retrieved using `mssql.Database` data resource.\n",
            "type": "string"
          },
          "defaultLanguage": {
            "description": "Default language assigned to login.\n",
            "type": "string"
          },
          "id": {
            "description": "Login SID. Can be retrieved using `SELECT SUSER_SID('\u003clogin_name\u003e')`.\n",
            "type": "string"
          },
          "mustChangePassword": {
            "description": "When true, password change will be forced on first logon.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Login name. Must follow [Regular Identifiers rules](https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers#rules-for-regular-identifiers) and cannot contain `\\`\n",
            "type": "string"
          },
          "principalId": {
            "description": "ID used to reference SQL Login in other resources, e.g. `server_role`. Can be retrieved from `sys.sql_logins`.\n",
            "type": "string"
          }
        },
        "required": [
          "checkPasswordExpiration",
          "checkPasswordPolicy",
          "defaultDatabaseId",
          "defaultLanguage",
          "id",
          "mustChangePassword",
          "name",
          "principalId"
        ],
        "type": "object"
      }
    },
    "mssql:index/getSqlLogins:getSqlLogins": {
      "description": "Obtains information about all SQL logins found in SQL Server instance.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst example = mssql.getSqlLogins({});\nexport const databases = example.then(example =\u003e example.logins);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nexample = mssql.get_sql_logins()\npulumi.export(\"databases\", example.logins)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Mssql.GetSqlLogins.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"databases\"] = example.Apply(getSqlLoginsResult =\u003e getSqlLoginsResult.Logins),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mssql.GetSqlLogins(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"databases\", example.Logins)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MssqlFunctions.getSqlLogins();\n\n        ctx.export(\"databases\", example.applyValue(getSqlLoginsResult -\u003e getSqlLoginsResult.logins()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: mssql:getSqlLogins\n      Arguments: {}\noutputs:\n  databases: ${example.logins}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "outputs": {
        "description": "A collection of values returned by getSqlLogins.\n",
        "properties": {
          "id": {
            "description": "ID of the resource used only internally by the provider.\n",
            "type": "string"
          },
          "logins": {
            "description": "Set of SQL login objects\n",
            "items": {
              "$ref": "#/types/mssql:index%2FgetSqlLoginsLogin:getSqlLoginsLogin"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "logins"
        ],
        "type": "object"
      }
    },
    "mssql:index/getSqlUser:getSqlUser": {
      "description": "Obtains information about single SQL database user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst master = mssql.getDatabase({\n    name: \"master\",\n});\nconst example = master.then(master =\u003e mssql.getSqlUser({\n    name: \"dbo\",\n    databaseId: master.id,\n}));\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nmaster = mssql.get_database(name=\"master\")\nexample = mssql.get_sql_user(name=\"dbo\",\n    database_id=master.id)\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var master = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"master\",\n    });\n\n    var example = Mssql.GetSqlUser.Invoke(new()\n    {\n        Name = \"dbo\",\n        DatabaseId = master.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"id\"] = example.Apply(getSqlUserResult =\u003e getSqlUserResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmaster, err := mssql.LookupDatabase(ctx, \u0026mssql.LookupDatabaseArgs{\n\t\t\tName: \"master\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := mssql.LookupSqlUser(ctx, \u0026mssql.LookupSqlUserArgs{\n\t\t\tName:       \"dbo\",\n\t\t\tDatabaseId: pulumi.StringRef(master.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetSqlUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var master = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"master\")\n            .build());\n\n        final var example = MssqlFunctions.getSqlUser(GetSqlUserArgs.builder()\n            .name(\"dbo\")\n            .databaseId(master.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n            .build());\n\n        ctx.export(\"id\", example.applyValue(getSqlUserResult -\u003e getSqlUserResult.id()));\n    }\n}\n```\n```yaml\nvariables:\n  master:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: master\n  example:\n    fn::invoke:\n      Function: mssql:getSqlUser\n      Arguments:\n        name: dbo\n        databaseId: ${master.id}\noutputs:\n  id: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSqlUser.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`.\n"
          },
          "name": {
            "type": "string",
            "description": "User name. Cannot be longer than 128 chars.\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getSqlUser.\n",
        "properties": {
          "databaseId": {
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`.\n",
            "type": "string"
          },
          "id": {
            "description": "`\u003cdatabase_id\u003e/\u003cuser_id\u003e`. User ID can be retrieved using `SELECT DATABASE_PRINCIPAL_ID('\u003cuser_name\u003e')`.\n",
            "type": "string"
          },
          "loginId": {
            "description": "SID of SQL login. Can be retrieved using `mssql.SqlLogin` or `SELECT SUSER_SID('\u003clogin_name\u003e')`.\n",
            "type": "string"
          },
          "name": {
            "description": "User name. Cannot be longer than 128 chars.\n",
            "type": "string"
          }
        },
        "required": [
          "databaseId",
          "id",
          "loginId",
          "name"
        ],
        "type": "object"
      }
    },
    "mssql:index/getSqlUsers:getSqlUsers": {
      "description": "Obtains information about all SQL users found in a database\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mssql from \"@pulumi/mssql\";\n\nconst master = mssql.getDatabase({\n    name: \"master\",\n});\nconst example = master.then(master =\u003e mssql.getSqlUsers({\n    databaseId: master.id,\n}));\nexport const users = example.then(example =\u003e example.users);\n```\n```python\nimport pulumi\nimport pulumi_mssql as mssql\n\nmaster = mssql.get_database(name=\"master\")\nexample = mssql.get_sql_users(database_id=master.id)\npulumi.export(\"users\", example.users)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mssql = Pulumi.Mssql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var master = Mssql.GetDatabase.Invoke(new()\n    {\n        Name = \"master\",\n    });\n\n    var example = Mssql.GetSqlUsers.Invoke(new()\n    {\n        DatabaseId = master.Apply(getDatabaseResult =\u003e getDatabaseResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"users\"] = example.Apply(getSqlUsersResult =\u003e getSqlUsersResult.Users),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmaster, err := mssql.LookupDatabase(ctx, \u0026mssql.LookupDatabaseArgs{\n\t\t\tName: \"master\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := mssql.GetSqlUsers(ctx, \u0026mssql.GetSqlUsersArgs{\n\t\t\tDatabaseId: pulumi.StringRef(master.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"users\", example.Users)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mssql.MssqlFunctions;\nimport com.pulumi.mssql.inputs.GetDatabaseArgs;\nimport com.pulumi.mssql.inputs.GetSqlUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var master = MssqlFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"master\")\n            .build());\n\n        final var example = MssqlFunctions.getSqlUsers(GetSqlUsersArgs.builder()\n            .databaseId(master.applyValue(getDatabaseResult -\u003e getDatabaseResult.id()))\n            .build());\n\n        ctx.export(\"users\", example.applyValue(getSqlUsersResult -\u003e getSqlUsersResult.users()));\n    }\n}\n```\n```yaml\nvariables:\n  master:\n    fn::invoke:\n      Function: mssql:getDatabase\n      Arguments:\n        name: master\n  example:\n    fn::invoke:\n      Function: mssql:getSqlUsers\n      Arguments:\n        databaseId: ${master.id}\noutputs:\n  users: ${example.users}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSqlUsers.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`. Defaults to ID of `master`.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSqlUsers.\n",
        "properties": {
          "databaseId": {
            "description": "ID of database. Can be retrieved using `mssql.Database` or `SELECT DB_ID('\u003cdb_name\u003e')`. Defaults to ID of `master`.\n",
            "type": "string"
          },
          "id": {
            "description": "ID of the resource, equals to database ID\n",
            "type": "string"
          },
          "users": {
            "description": "Set of SQL user objects\n",
            "items": {
              "$ref": "#/types/mssql:index%2FgetSqlUsersUser:getSqlUsersUser"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "users"
        ],
        "type": "object"
      }
    }
  }
}
