{"name":"postgresql","version":"3.16.2","description":"A Pulumi package for creating and managing postgresql cloud resources.","keywords":["pulumi","postgresql"],"homepage":"https://pulumi.io","license":"Apache-2.0","attribution":"This Pulumi package is based on the [`postgresql` Terraform Provider](https://github.com/cyrilgdn/terraform-provider-postgresql).","repository":"https://github.com/pulumi/pulumi-postgresql","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"packageReferences":{"Pulumi":"3.*"},"namespaces":{"postgresql":"PostgreSql"},"compatibility":"tfbridge20","respectSchemaVersion":true},"go":{"importBasePath":"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql","generateResourceContainerTypes":true,"generateExtraInputTypes":true,"respectSchemaVersion":true},"nodejs":{"packageDescription":"A Pulumi package for creating and managing postgresql cloud resources.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/cyrilgdn/terraform-provider-postgresql)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-postgresql` repo](https://github.com/pulumi/pulumi-postgresql/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-postgresql` repo](https://github.com/cyrilgdn/terraform-provider-postgresql/issues).","devDependencies":{"@types/mime":"^2.0.0","@types/node":"^10.0.0"},"compatibility":"tfbridge20","disableUnionOutputTypes":true,"respectSchemaVersion":true},"python":{"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/cyrilgdn/terraform-provider-postgresql)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-postgresql` repo](https://github.com/pulumi/pulumi-postgresql/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-postgresql` repo](https://github.com/cyrilgdn/terraform-provider-postgresql/issues).","compatibility":"tfbridge20","respectSchemaVersion":true,"pyproject":{"enabled":true}}},"config":{"variables":{"awsRdsIamAuth":{"type":"boolean","description":"Use\u003cspan pulumi-lang-nodejs=\" rdsIam \" pulumi-lang-dotnet=\" RdsIam \" pulumi-lang-go=\" rdsIam \" pulumi-lang-python=\" rds_iam \" pulumi-lang-yaml=\" rdsIam \" pulumi-lang-java=\" rdsIam \"\u003e rds_iam \u003c/span\u003einstead of password authentication (see: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html)"},"awsRdsIamProfile":{"type":"string","description":"AWS profile to use for IAM auth"},"awsRdsIamProviderRoleArn":{"type":"string","description":"AWS IAM role to assume for IAM auth"},"awsRdsIamRegion":{"type":"string","description":"AWS region to use for IAM auth"},"azureIdentityAuth":{"type":"boolean","description":"Use MS Azure identity OAuth token (see: https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/how-to-configure-sign-in-azure-ad-authentication)"},"azureTenantId":{"type":"string"},"clientcert":{"$ref":"#/types/postgresql:config/clientcert:clientcert","description":"SSL client certificate if required by the database."},"connectTimeout":{"type":"integer","description":"Maximum wait for connection, in seconds. Zero or not specified means wait indefinitely.","default":180,"defaultInfo":{"environment":["PGCONNECT_TIMEOUT"]}},"database":{"type":"string","description":"The name of the database to connect to in order to connect to (defaults to \u003cspan pulumi-lang-nodejs=\"`postgres`\" pulumi-lang-dotnet=\"`Postgres`\" pulumi-lang-go=\"`postgres`\" pulumi-lang-python=\"`postgres`\" pulumi-lang-yaml=\"`postgres`\" pulumi-lang-java=\"`postgres`\"\u003e`postgres`\u003c/span\u003e)."},"databaseUsername":{"type":"string","description":"Database username associated to the connected user (for user name maps)"},"expectedVersion":{"type":"string","description":"Specify the expected version of PostgreSQL."},"gcpIamImpersonateServiceAccount":{"type":"string","description":"Service account to impersonate when using GCP IAM authentication."},"host":{"type":"string","description":"Name of PostgreSQL server address to connect to"},"maxConnections":{"type":"integer","description":"Maximum number of connections to establish to the database. Zero means unlimited."},"password":{"type":"string","description":"Password to be used if the PostgreSQL server demands password authentication","secret":true},"port":{"type":"integer","description":"The PostgreSQL port number to connect to at the server host, or socket file name extension for Unix-domain connections"},"scheme":{"type":"string"},"sslMode":{"type":"string","deprecationMessage":"Rename PostgreSQL provider \u003cspan pulumi-lang-nodejs=\"`sslMode`\" pulumi-lang-dotnet=\"`SslMode`\" pulumi-lang-go=\"`sslMode`\" pulumi-lang-python=\"`ssl_mode`\" pulumi-lang-yaml=\"`sslMode`\" pulumi-lang-java=\"`sslMode`\"\u003e`ssl_mode`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`sslmode`\" pulumi-lang-dotnet=\"`Sslmode`\" pulumi-lang-go=\"`sslmode`\" pulumi-lang-python=\"`sslmode`\" pulumi-lang-yaml=\"`sslmode`\" pulumi-lang-java=\"`sslmode`\"\u003e`sslmode`\u003c/span\u003e"},"sslmode":{"type":"string","description":"This option determines whether or with what priority a secure SSL TCP/IP connection will be negotiated with the PostgreSQL server","defaultInfo":{"environment":["PGSSLMODE"]}},"sslrootcert":{"type":"string","description":"The SSL server root certificate file path. The file must contain PEM encoded data."},"superuser":{"type":"boolean","description":"Specify if the user to connect as is a Postgres superuser or not.If not, some feature might be disabled (e.g.: Refreshing state password from Postgres)"},"username":{"type":"string","description":"PostgreSQL user name to connect as"}}},"types":{"postgresql:config/clientcert:clientcert":{"properties":{"cert":{"type":"string","description":"The SSL client certificate file path. The file must contain PEM encoded data.\n"},"key":{"type":"string","description":"The SSL client certificate private key file path. The file must contain PEM encoded data.\n"},"sslinline":{"type":"boolean","description":"Must be set to true if you are inlining the cert/key instead of using a file path.\n"}},"type":"object","required":["cert","key"],"language":{"nodejs":{"requiredInputs":[]}}},"postgresql:index/FunctionArg:FunctionArg":{"properties":{"default":{"type":"string","description":"An expression to be used as default value if the parameter is not specified.\n"},"mode":{"type":"string","description":"Can be one of IN, INOUT, OUT, or VARIADIC. Default is IN.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the argument.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the argument.\n","willReplaceOnChanges":true}},"type":"object","required":["type"]},"postgresql:index/ProviderClientcert:ProviderClientcert":{"properties":{"cert":{"type":"string","description":"The SSL client certificate file path. The file must contain PEM encoded data.\n"},"key":{"type":"string","description":"The SSL client certificate private key file path. The file must contain PEM encoded data.\n"},"sslinline":{"type":"boolean","description":"Must be set to true if you are inlining the cert/key instead of using a file path.\n"}},"type":"object","required":["cert","key"],"language":{"nodejs":{"requiredOutputs":[]}}},"postgresql:index/SchemaPolicy:SchemaPolicy":{"properties":{"create":{"type":"boolean","description":"Should the specified ROLE have CREATE privileges to the specified SCHEMA.\n"},"createWithGrant":{"type":"boolean","description":"Should the specified ROLE have CREATE privileges to the specified SCHEMA and the ability to GRANT the CREATE privilege to other ROLEs.\n"},"role":{"type":"string","description":"The ROLE who is receiving the policy.  If this value is empty or not specified it implies the policy is referring to the [`PUBLIC` role](https://www.postgresql.org/docs/current/static/sql-grant.html).\n"},"usage":{"type":"boolean","description":"Should the specified ROLE have USAGE privileges to the specified SCHEMA.\n"},"usageWithGrant":{"type":"boolean","description":"Should the specified ROLE have USAGE privileges to the specified SCHEMA and the ability to GRANT the USAGE privilege to other ROLEs.\n\n\u003e **NOTE on \u003cspan pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\"\u003e`policy`\u003c/span\u003e:** The permissions of a role specified in multiple policy blocks is cumulative.  For example, if the same role is specified in two different \u003cspan pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\"\u003e`policy`\u003c/span\u003e each with different permissions (e.g. \u003cspan pulumi-lang-nodejs=\"`create`\" pulumi-lang-dotnet=\"`Create`\" pulumi-lang-go=\"`create`\" pulumi-lang-python=\"`create`\" pulumi-lang-yaml=\"`create`\" pulumi-lang-java=\"`create`\"\u003e`create`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`usageWithGrant`\" pulumi-lang-dotnet=\"`UsageWithGrant`\" pulumi-lang-go=\"`usageWithGrant`\" pulumi-lang-python=\"`usage_with_grant`\" pulumi-lang-yaml=\"`usageWithGrant`\" pulumi-lang-java=\"`usageWithGrant`\"\u003e`usage_with_grant`\u003c/span\u003e, respectively), then the specified role with have both \u003cspan pulumi-lang-nodejs=\"`create`\" pulumi-lang-dotnet=\"`Create`\" pulumi-lang-go=\"`create`\" pulumi-lang-python=\"`create`\" pulumi-lang-yaml=\"`create`\" pulumi-lang-java=\"`create`\"\u003e`create`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`usageWithGrant`\" pulumi-lang-dotnet=\"`UsageWithGrant`\" pulumi-lang-go=\"`usageWithGrant`\" pulumi-lang-python=\"`usage_with_grant`\" pulumi-lang-yaml=\"`usageWithGrant`\" pulumi-lang-java=\"`usageWithGrant`\"\u003e`usage_with_grant`\u003c/span\u003e privileges.\n"}},"type":"object"},"postgresql:index/getSequencesSequence:getSequencesSequence":{"properties":{"dataType":{"type":"string","description":"The sequence's data type as defined in ``information_schema.sequences``.\n"},"objectName":{"type":"string","description":"The sequence name.\n"},"schemaName":{"type":"string","description":"The parent schema.\n"}},"type":"object","required":["dataType","objectName","schemaName"],"language":{"nodejs":{"requiredInputs":[]}}},"postgresql:index/getTablesTable:getTablesTable":{"properties":{"objectName":{"type":"string","description":"The table name.\n"},"schemaName":{"type":"string","description":"The parent schema.\n"},"tableType":{"type":"string","description":"The table type as defined in ``information_schema.tables``.\n"}},"type":"object","required":["objectName","schemaName","tableType"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the postgresql 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":{"awsRdsIamAuth":{"type":"boolean","description":"Use\u003cspan pulumi-lang-nodejs=\" rdsIam \" pulumi-lang-dotnet=\" RdsIam \" pulumi-lang-go=\" rdsIam \" pulumi-lang-python=\" rds_iam \" pulumi-lang-yaml=\" rdsIam \" pulumi-lang-java=\" rdsIam \"\u003e rds_iam \u003c/span\u003einstead of password authentication (see: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html)"},"awsRdsIamProfile":{"type":"string","description":"AWS profile to use for IAM auth"},"awsRdsIamProviderRoleArn":{"type":"string","description":"AWS IAM role to assume for IAM auth"},"awsRdsIamRegion":{"type":"string","description":"AWS region to use for IAM auth"},"azureIdentityAuth":{"type":"boolean","description":"Use MS Azure identity OAuth token (see: https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/how-to-configure-sign-in-azure-ad-authentication)"},"azureTenantId":{"type":"string"},"clientcert":{"$ref":"#/types/postgresql:index/ProviderClientcert:ProviderClientcert","description":"SSL client certificate if required by the database."},"connectTimeout":{"type":"integer","description":"Maximum wait for connection, in seconds. Zero or not specified means wait indefinitely."},"database":{"type":"string","description":"The name of the database to connect to in order to connect to (defaults to \u003cspan pulumi-lang-nodejs=\"`postgres`\" pulumi-lang-dotnet=\"`Postgres`\" pulumi-lang-go=\"`postgres`\" pulumi-lang-python=\"`postgres`\" pulumi-lang-yaml=\"`postgres`\" pulumi-lang-java=\"`postgres`\"\u003e`postgres`\u003c/span\u003e)."},"databaseUsername":{"type":"string","description":"Database username associated to the connected user (for user name maps)"},"expectedVersion":{"type":"string","description":"Specify the expected version of PostgreSQL."},"gcpIamImpersonateServiceAccount":{"type":"string","description":"Service account to impersonate when using GCP IAM authentication."},"host":{"type":"string","description":"Name of PostgreSQL server address to connect to"},"maxConnections":{"type":"integer","description":"Maximum number of connections to establish to the database. Zero means unlimited."},"password":{"type":"string","description":"Password to be used if the PostgreSQL server demands password authentication","secret":true},"port":{"type":"integer","description":"The PostgreSQL port number to connect to at the server host, or socket file name extension for Unix-domain connections"},"scheme":{"type":"string"},"sslMode":{"type":"string","deprecationMessage":"Rename PostgreSQL provider \u003cspan pulumi-lang-nodejs=\"`sslMode`\" pulumi-lang-dotnet=\"`SslMode`\" pulumi-lang-go=\"`sslMode`\" pulumi-lang-python=\"`ssl_mode`\" pulumi-lang-yaml=\"`sslMode`\" pulumi-lang-java=\"`sslMode`\"\u003e`ssl_mode`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`sslmode`\" pulumi-lang-dotnet=\"`Sslmode`\" pulumi-lang-go=\"`sslmode`\" pulumi-lang-python=\"`sslmode`\" pulumi-lang-yaml=\"`sslmode`\" pulumi-lang-java=\"`sslmode`\"\u003e`sslmode`\u003c/span\u003e"},"sslmode":{"type":"string","description":"This option determines whether or with what priority a secure SSL TCP/IP connection will be negotiated with the PostgreSQL server"},"sslrootcert":{"type":"string","description":"The SSL server root certificate file path. The file must contain PEM encoded data."},"superuser":{"type":"boolean","description":"Specify if the user to connect as is a Postgres superuser or not.If not, some feature might be disabled (e.g.: Refreshing state password from Postgres)"},"username":{"type":"string","description":"PostgreSQL user name to connect as"}},"inputProperties":{"awsRdsIamAuth":{"type":"boolean","description":"Use\u003cspan pulumi-lang-nodejs=\" rdsIam \" pulumi-lang-dotnet=\" RdsIam \" pulumi-lang-go=\" rdsIam \" pulumi-lang-python=\" rds_iam \" pulumi-lang-yaml=\" rdsIam \" pulumi-lang-java=\" rdsIam \"\u003e rds_iam \u003c/span\u003einstead of password authentication (see: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html)"},"awsRdsIamProfile":{"type":"string","description":"AWS profile to use for IAM auth"},"awsRdsIamProviderRoleArn":{"type":"string","description":"AWS IAM role to assume for IAM auth"},"awsRdsIamRegion":{"type":"string","description":"AWS region to use for IAM auth"},"azureIdentityAuth":{"type":"boolean","description":"Use MS Azure identity OAuth token (see: https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/how-to-configure-sign-in-azure-ad-authentication)"},"azureTenantId":{"type":"string"},"clientcert":{"$ref":"#/types/postgresql:index/ProviderClientcert:ProviderClientcert","description":"SSL client certificate if required by the database."},"connectTimeout":{"type":"integer","description":"Maximum wait for connection, in seconds. Zero or not specified means wait indefinitely.","default":180,"defaultInfo":{"environment":["PGCONNECT_TIMEOUT"]}},"database":{"type":"string","description":"The name of the database to connect to in order to connect to (defaults to \u003cspan pulumi-lang-nodejs=\"`postgres`\" pulumi-lang-dotnet=\"`Postgres`\" pulumi-lang-go=\"`postgres`\" pulumi-lang-python=\"`postgres`\" pulumi-lang-yaml=\"`postgres`\" pulumi-lang-java=\"`postgres`\"\u003e`postgres`\u003c/span\u003e)."},"databaseUsername":{"type":"string","description":"Database username associated to the connected user (for user name maps)"},"expectedVersion":{"type":"string","description":"Specify the expected version of PostgreSQL."},"gcpIamImpersonateServiceAccount":{"type":"string","description":"Service account to impersonate when using GCP IAM authentication."},"host":{"type":"string","description":"Name of PostgreSQL server address to connect to"},"maxConnections":{"type":"integer","description":"Maximum number of connections to establish to the database. Zero means unlimited."},"password":{"type":"string","description":"Password to be used if the PostgreSQL server demands password authentication","secret":true},"port":{"type":"integer","description":"The PostgreSQL port number to connect to at the server host, or socket file name extension for Unix-domain connections"},"scheme":{"type":"string"},"sslMode":{"type":"string","deprecationMessage":"Rename PostgreSQL provider \u003cspan pulumi-lang-nodejs=\"`sslMode`\" pulumi-lang-dotnet=\"`SslMode`\" pulumi-lang-go=\"`sslMode`\" pulumi-lang-python=\"`ssl_mode`\" pulumi-lang-yaml=\"`sslMode`\" pulumi-lang-java=\"`sslMode`\"\u003e`ssl_mode`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`sslmode`\" pulumi-lang-dotnet=\"`Sslmode`\" pulumi-lang-go=\"`sslmode`\" pulumi-lang-python=\"`sslmode`\" pulumi-lang-yaml=\"`sslmode`\" pulumi-lang-java=\"`sslmode`\"\u003e`sslmode`\u003c/span\u003e"},"sslmode":{"type":"string","description":"This option determines whether or with what priority a secure SSL TCP/IP connection will be negotiated with the PostgreSQL server","defaultInfo":{"environment":["PGSSLMODE"]}},"sslrootcert":{"type":"string","description":"The SSL server root certificate file path. The file must contain PEM encoded data."},"superuser":{"type":"boolean","description":"Specify if the user to connect as is a Postgres superuser or not.If not, some feature might be disabled (e.g.: Refreshing state password from Postgres)"},"username":{"type":"string","description":"PostgreSQL user name to connect as"}},"methods":{"terraformConfig":"pulumi:providers:postgresql/terraformConfig"}},"resources":{"postgresql:index/database:Database":{"properties":{"allowConnections":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e then no one can connect to this\ndatabase. The default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, allowing connections (except as restricted by\nother mechanisms, such as `GRANT` or `REVOKE CONNECT`).\n"},"alterObjectOwnership":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the change of the database\n\u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e will also include a reassignment of the ownership of preexisting\nobjects like tables or sequences from the previous owner to the new one.\nIf set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (the default), then the previous database \u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e will still\nhold the ownership of the objects in that database. To alter existing objects in\nthe database, you must be a direct or indirect member of the specified role, or\nthe username in the provider must be superuser.\n"},"connectionLimit":{"type":"integer","description":"How many concurrent connections can be\nestablished to this database. `-1` (the default) means no limit.\n"},"encoding":{"type":"string","description":"Character set encoding to use in the new database"},"isTemplate":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, then this database can be cloned by any\nuser with `CREATEDB` privileges; if \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (the default), then only\nsuperusers or the owner of the database can clone it.\n"},"lcCollate":{"type":"string","description":"Collation order (LC_COLLATE) to use in the new database"},"lcCtype":{"type":"string","description":"Character classification (LC_CTYPE) to use in the new database"},"name":{"type":"string","description":"The name of the database. Must be unique on the PostgreSQL\nserver instance where it is configured.\n"},"owner":{"type":"string","description":"The role name of the user who will own the database, or\n`DEFAULT` to use the default (namely, the user executing the command). To\ncreate a database owned by another role or to change the owner of an existing\ndatabase, you must be a direct or indirect member of the specified role, or\nthe username in the provider is a superuser.\n"},"tablespaceName":{"type":"string","description":"The name of the tablespace that will be\nassociated with the database, or `DEFAULT` to use the template database's\ntablespace.  This tablespace will be the default tablespace used for objects\ncreated in this database.\n"},"template":{"type":"string","description":"The name of the template from which to create the new database"}},"required":["encoding","isTemplate","lcCollate","lcCtype","name","owner","tablespaceName","template"],"inputProperties":{"allowConnections":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e then no one can connect to this\ndatabase. The default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, allowing connections (except as restricted by\nother mechanisms, such as `GRANT` or `REVOKE CONNECT`).\n"},"alterObjectOwnership":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the change of the database\n\u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e will also include a reassignment of the ownership of preexisting\nobjects like tables or sequences from the previous owner to the new one.\nIf set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (the default), then the previous database \u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e will still\nhold the ownership of the objects in that database. To alter existing objects in\nthe database, you must be a direct or indirect member of the specified role, or\nthe username in the provider must be superuser.\n"},"connectionLimit":{"type":"integer","description":"How many concurrent connections can be\nestablished to this database. `-1` (the default) means no limit.\n"},"encoding":{"type":"string","description":"Character set encoding to use in the new database","willReplaceOnChanges":true},"isTemplate":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, then this database can be cloned by any\nuser with `CREATEDB` privileges; if \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (the default), then only\nsuperusers or the owner of the database can clone it.\n"},"lcCollate":{"type":"string","description":"Collation order (LC_COLLATE) to use in the new database","willReplaceOnChanges":true},"lcCtype":{"type":"string","description":"Character classification (LC_CTYPE) to use in the new database","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the database. Must be unique on the PostgreSQL\nserver instance where it is configured.\n"},"owner":{"type":"string","description":"The role name of the user who will own the database, or\n`DEFAULT` to use the default (namely, the user executing the command). To\ncreate a database owned by another role or to change the owner of an existing\ndatabase, you must be a direct or indirect member of the specified role, or\nthe username in the provider is a superuser.\n"},"tablespaceName":{"type":"string","description":"The name of the tablespace that will be\nassociated with the database, or `DEFAULT` to use the template database's\ntablespace.  This tablespace will be the default tablespace used for objects\ncreated in this database.\n"},"template":{"type":"string","description":"The name of the template from which to create the new database","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Database resources.\n","properties":{"allowConnections":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e then no one can connect to this\ndatabase. The default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, allowing connections (except as restricted by\nother mechanisms, such as `GRANT` or `REVOKE CONNECT`).\n"},"alterObjectOwnership":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the change of the database\n\u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e will also include a reassignment of the ownership of preexisting\nobjects like tables or sequences from the previous owner to the new one.\nIf set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (the default), then the previous database \u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e will still\nhold the ownership of the objects in that database. To alter existing objects in\nthe database, you must be a direct or indirect member of the specified role, or\nthe username in the provider must be superuser.\n"},"connectionLimit":{"type":"integer","description":"How many concurrent connections can be\nestablished to this database. `-1` (the default) means no limit.\n"},"encoding":{"type":"string","description":"Character set encoding to use in the new database","willReplaceOnChanges":true},"isTemplate":{"type":"boolean","description":"If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, then this database can be cloned by any\nuser with `CREATEDB` privileges; if \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (the default), then only\nsuperusers or the owner of the database can clone it.\n"},"lcCollate":{"type":"string","description":"Collation order (LC_COLLATE) to use in the new database","willReplaceOnChanges":true},"lcCtype":{"type":"string","description":"Character classification (LC_CTYPE) to use in the new database","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the database. Must be unique on the PostgreSQL\nserver instance where it is configured.\n"},"owner":{"type":"string","description":"The role name of the user who will own the database, or\n`DEFAULT` to use the default (namely, the user executing the command). To\ncreate a database owned by another role or to change the owner of an existing\ndatabase, you must be a direct or indirect member of the specified role, or\nthe username in the provider is a superuser.\n"},"tablespaceName":{"type":"string","description":"The name of the tablespace that will be\nassociated with the database, or `DEFAULT` to use the template database's\ntablespace.  This tablespace will be the default tablespace used for objects\ncreated in this database.\n"},"template":{"type":"string","description":"The name of the template from which to create the new database","willReplaceOnChanges":true}},"type":"object"}},"postgresql:index/defaultPrivileg:DefaultPrivileg":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.DefaultPrivileges`\" pulumi-lang-dotnet=\"`postgresql.DefaultPrivileges`\" pulumi-lang-go=\"`DefaultPrivileges`\" pulumi-lang-python=\"`DefaultPrivileges`\" pulumi-lang-yaml=\"`postgresql.DefaultPrivileges`\" pulumi-lang-java=\"`postgresql.DefaultPrivileges`\"\u003e`postgresql.DefaultPrivileges`\u003c/span\u003e` resource creates and manages default privileges given to a user for a database schema.\n\n\u003e **Note:** This resource needs Postgresql version 9 or above.\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst readOnlyTables = new postgresql.DefaultPrivileges(\"read_only_tables\", {\n    role: \"test_role\",\n    database: \"test_db\",\n    schema: \"public\",\n    owner: \"db_owner\",\n    objectType: \"table\",\n    privileges: [\"SELECT\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nread_only_tables = postgresql.DefaultPrivileges(\"read_only_tables\",\n    role=\"test_role\",\n    database=\"test_db\",\n    schema=\"public\",\n    owner=\"db_owner\",\n    object_type=\"table\",\n    privileges=[\"SELECT\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var readOnlyTables = new PostgreSql.DefaultPrivileges(\"read_only_tables\", new()\n    {\n        Role = \"test_role\",\n        Database = \"test_db\",\n        Schema = \"public\",\n        Owner = \"db_owner\",\n        ObjectType = \"table\",\n        Privileges = new[]\n        {\n            \"SELECT\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewDefaultPrivileges(ctx, \"read_only_tables\", \u0026postgresql.DefaultPrivilegesArgs{\n\t\t\tRole:       pulumi.String(\"test_role\"),\n\t\t\tDatabase:   pulumi.String(\"test_db\"),\n\t\t\tSchema:     pulumi.String(\"public\"),\n\t\t\tOwner:      pulumi.String(\"db_owner\"),\n\t\t\tObjectType: pulumi.String(\"table\"),\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SELECT\"),\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.postgresql.DefaultPrivileges;\nimport com.pulumi.postgresql.DefaultPrivilegesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 readOnlyTables = new DefaultPrivileges(\"readOnlyTables\", DefaultPrivilegesArgs.builder()\n            .role(\"test_role\")\n            .database(\"test_db\")\n            .schema(\"public\")\n            .owner(\"db_owner\")\n            .objectType(\"table\")\n            .privileges(\"SELECT\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  readOnlyTables:\n    type: postgresql:DefaultPrivileges\n    name: read_only_tables\n    properties:\n      role: test_role\n      database: test_db\n      schema: public\n      owner: db_owner\n      objectType: table\n      privileges:\n        - SELECT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Examples\n\n### Grant default privileges for tables to \u003cspan pulumi-lang-nodejs=\"\"currentRole\"\" pulumi-lang-dotnet=\"\"CurrentRole\"\" pulumi-lang-go=\"\"currentRole\"\" pulumi-lang-python=\"\"current_role\"\" pulumi-lang-yaml=\"\"currentRole\"\" pulumi-lang-java=\"\"currentRole\"\"\u003e\"current_role\"\u003c/span\u003e role:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst grantTablePrivileges = new postgresql.DefaultPrivileges(\"grant_table_privileges\", {\n    database: exampleDb.name,\n    role: \"current_role\",\n    owner: \"owner_role\",\n    schema: \"public\",\n    objectType: \"table\",\n    privileges: [\n        \"SELECT\",\n        \"INSERT\",\n        \"UPDATE\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\ngrant_table_privileges = postgresql.DefaultPrivileges(\"grant_table_privileges\",\n    database=example_db[\"name\"],\n    role=\"current_role\",\n    owner=\"owner_role\",\n    schema=\"public\",\n    object_type=\"table\",\n    privileges=[\n        \"SELECT\",\n        \"INSERT\",\n        \"UPDATE\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var grantTablePrivileges = new PostgreSql.DefaultPrivileges(\"grant_table_privileges\", new()\n    {\n        Database = exampleDb.Name,\n        Role = \"current_role\",\n        Owner = \"owner_role\",\n        Schema = \"public\",\n        ObjectType = \"table\",\n        Privileges = new[]\n        {\n            \"SELECT\",\n            \"INSERT\",\n            \"UPDATE\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewDefaultPrivileges(ctx, \"grant_table_privileges\", \u0026postgresql.DefaultPrivilegesArgs{\n\t\t\tDatabase:   pulumi.Any(exampleDb.Name),\n\t\t\tRole:       pulumi.String(\"current_role\"),\n\t\t\tOwner:      pulumi.String(\"owner_role\"),\n\t\t\tSchema:     pulumi.String(\"public\"),\n\t\t\tObjectType: pulumi.String(\"table\"),\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\tpulumi.String(\"INSERT\"),\n\t\t\t\tpulumi.String(\"UPDATE\"),\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.postgresql.DefaultPrivileges;\nimport com.pulumi.postgresql.DefaultPrivilegesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 grantTablePrivileges = new DefaultPrivileges(\"grantTablePrivileges\", DefaultPrivilegesArgs.builder()\n            .database(exampleDb.name())\n            .role(\"current_role\")\n            .owner(\"owner_role\")\n            .schema(\"public\")\n            .objectType(\"table\")\n            .privileges(            \n                \"SELECT\",\n                \"INSERT\",\n                \"UPDATE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  grantTablePrivileges:\n    type: postgresql:DefaultPrivileges\n    name: grant_table_privileges\n    properties:\n      database: ${exampleDb.name}\n      role: current_role\n      owner: owner_role\n      schema: public\n      objectType: table\n      privileges:\n        - SELECT\n        - INSERT\n        - UPDATE\n```\n\u003c!--End PulumiCodeChooser --\u003e\nWhenever the \u003cspan pulumi-lang-nodejs=\"`ownerRole`\" pulumi-lang-dotnet=\"`OwnerRole`\" pulumi-lang-go=\"`ownerRole`\" pulumi-lang-python=\"`owner_role`\" pulumi-lang-yaml=\"`ownerRole`\" pulumi-lang-java=\"`ownerRole`\"\u003e`owner_role`\u003c/span\u003e creates a new table in the \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e schema, the \u003cspan pulumi-lang-nodejs=\"`currentRole`\" pulumi-lang-dotnet=\"`CurrentRole`\" pulumi-lang-go=\"`currentRole`\" pulumi-lang-python=\"`current_role`\" pulumi-lang-yaml=\"`currentRole`\" pulumi-lang-java=\"`currentRole`\"\u003e`current_role`\u003c/span\u003e is automatically granted SELECT, INSERT, and UPDATE privileges on that table.\n\n### Revoke default privileges for functions for \"public\" role:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst revokePublic = new postgresql.DefaultPrivileges(\"revoke_public\", {\n    database: exampleDb.name,\n    role: \"public\",\n    owner: \"object_owner\",\n    objectType: \"function\",\n    privileges: [],\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nrevoke_public = postgresql.DefaultPrivileges(\"revoke_public\",\n    database=example_db[\"name\"],\n    role=\"public\",\n    owner=\"object_owner\",\n    object_type=\"function\",\n    privileges=[])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var revokePublic = new PostgreSql.DefaultPrivileges(\"revoke_public\", new()\n    {\n        Database = exampleDb.Name,\n        Role = \"public\",\n        Owner = \"object_owner\",\n        ObjectType = \"function\",\n        Privileges = new[] {},\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewDefaultPrivileges(ctx, \"revoke_public\", \u0026postgresql.DefaultPrivilegesArgs{\n\t\t\tDatabase:   pulumi.Any(exampleDb.Name),\n\t\t\tRole:       pulumi.String(\"public\"),\n\t\t\tOwner:      pulumi.String(\"object_owner\"),\n\t\t\tObjectType: pulumi.String(\"function\"),\n\t\t\tPrivileges: pulumi.StringArray{},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.postgresql.DefaultPrivileges;\nimport com.pulumi.postgresql.DefaultPrivilegesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 revokePublic = new DefaultPrivileges(\"revokePublic\", DefaultPrivilegesArgs.builder()\n            .database(exampleDb.name())\n            .role(\"public\")\n            .owner(\"object_owner\")\n            .objectType(\"function\")\n            .privileges()\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  revokePublic:\n    type: postgresql:DefaultPrivileges\n    name: revoke_public\n    properties:\n      database: ${exampleDb.name}\n      role: public\n      owner: object_owner\n      objectType: function\n      privileges: []\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"database":{"type":"string","description":"The database to grant default privileges for this role.\n"},"objectType":{"type":"string","description":"The PostgreSQL object type to set the default privileges on (one of: table, sequence, function, routine, type, schema).\n"},"owner":{"type":"string","description":"Specifies the role that creates objects for which the default privileges will be applied.\n"},"privileges":{"type":"array","items":{"type":"string"},"description":"List of privileges (e.g., SELECT, INSERT, UPDATE, DELETE) to grant on new objects created by the owner. An empty list could be provided to revoke all default privileges for this role.\n"},"role":{"type":"string","description":"The role that will automatically be granted the specified privileges on new objects created by the owner.\n"},"schema":{"type":"string","description":"The database schema to set default privileges for this role.\n"},"withGrantOption":{"type":"boolean","description":"Permit the grant recipient to grant it to others"}},"required":["database","objectType","owner","privileges","role"],"inputProperties":{"database":{"type":"string","description":"The database to grant default privileges for this role.\n","willReplaceOnChanges":true},"objectType":{"type":"string","description":"The PostgreSQL object type to set the default privileges on (one of: table, sequence, function, routine, type, schema).\n","willReplaceOnChanges":true},"owner":{"type":"string","description":"Specifies the role that creates objects for which the default privileges will be applied.\n","willReplaceOnChanges":true},"privileges":{"type":"array","items":{"type":"string"},"description":"List of privileges (e.g., SELECT, INSERT, UPDATE, DELETE) to grant on new objects created by the owner. An empty list could be provided to revoke all default privileges for this role.\n"},"role":{"type":"string","description":"The role that will automatically be granted the specified privileges on new objects created by the owner.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"The database schema to set default privileges for this role.\n","willReplaceOnChanges":true},"withGrantOption":{"type":"boolean","description":"Permit the grant recipient to grant it to others","willReplaceOnChanges":true}},"requiredInputs":["database","objectType","owner","privileges","role"],"stateInputs":{"description":"Input properties used for looking up and filtering DefaultPrivileg resources.\n","properties":{"database":{"type":"string","description":"The database to grant default privileges for this role.\n","willReplaceOnChanges":true},"objectType":{"type":"string","description":"The PostgreSQL object type to set the default privileges on (one of: table, sequence, function, routine, type, schema).\n","willReplaceOnChanges":true},"owner":{"type":"string","description":"Specifies the role that creates objects for which the default privileges will be applied.\n","willReplaceOnChanges":true},"privileges":{"type":"array","items":{"type":"string"},"description":"List of privileges (e.g., SELECT, INSERT, UPDATE, DELETE) to grant on new objects created by the owner. An empty list could be provided to revoke all default privileges for this role.\n"},"role":{"type":"string","description":"The role that will automatically be granted the specified privileges on new objects created by the owner.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"The database schema to set default privileges for this role.\n","willReplaceOnChanges":true},"withGrantOption":{"type":"boolean","description":"Permit the grant recipient to grant it to others","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"postgresql.DefaultPrivileg has been deprecated in favor of postgresql.DefaultPrivileges"},"postgresql:index/defaultPrivileges:DefaultPrivileges":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.DefaultPrivileges`\" pulumi-lang-dotnet=\"`postgresql.DefaultPrivileges`\" pulumi-lang-go=\"`DefaultPrivileges`\" pulumi-lang-python=\"`DefaultPrivileges`\" pulumi-lang-yaml=\"`postgresql.DefaultPrivileges`\" pulumi-lang-java=\"`postgresql.DefaultPrivileges`\"\u003e`postgresql.DefaultPrivileges`\u003c/span\u003e` resource creates and manages default privileges given to a user for a database schema.\n\n\u003e **Note:** This resource needs Postgresql version 9 or above.\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst readOnlyTables = new postgresql.DefaultPrivileges(\"read_only_tables\", {\n    role: \"test_role\",\n    database: \"test_db\",\n    schema: \"public\",\n    owner: \"db_owner\",\n    objectType: \"table\",\n    privileges: [\"SELECT\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nread_only_tables = postgresql.DefaultPrivileges(\"read_only_tables\",\n    role=\"test_role\",\n    database=\"test_db\",\n    schema=\"public\",\n    owner=\"db_owner\",\n    object_type=\"table\",\n    privileges=[\"SELECT\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var readOnlyTables = new PostgreSql.DefaultPrivileges(\"read_only_tables\", new()\n    {\n        Role = \"test_role\",\n        Database = \"test_db\",\n        Schema = \"public\",\n        Owner = \"db_owner\",\n        ObjectType = \"table\",\n        Privileges = new[]\n        {\n            \"SELECT\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewDefaultPrivileges(ctx, \"read_only_tables\", \u0026postgresql.DefaultPrivilegesArgs{\n\t\t\tRole:       pulumi.String(\"test_role\"),\n\t\t\tDatabase:   pulumi.String(\"test_db\"),\n\t\t\tSchema:     pulumi.String(\"public\"),\n\t\t\tOwner:      pulumi.String(\"db_owner\"),\n\t\t\tObjectType: pulumi.String(\"table\"),\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SELECT\"),\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.postgresql.DefaultPrivileges;\nimport com.pulumi.postgresql.DefaultPrivilegesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 readOnlyTables = new DefaultPrivileges(\"readOnlyTables\", DefaultPrivilegesArgs.builder()\n            .role(\"test_role\")\n            .database(\"test_db\")\n            .schema(\"public\")\n            .owner(\"db_owner\")\n            .objectType(\"table\")\n            .privileges(\"SELECT\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  readOnlyTables:\n    type: postgresql:DefaultPrivileges\n    name: read_only_tables\n    properties:\n      role: test_role\n      database: test_db\n      schema: public\n      owner: db_owner\n      objectType: table\n      privileges:\n        - SELECT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Examples\n\n### Grant default privileges for tables to \u003cspan pulumi-lang-nodejs=\"\"currentRole\"\" pulumi-lang-dotnet=\"\"CurrentRole\"\" pulumi-lang-go=\"\"currentRole\"\" pulumi-lang-python=\"\"current_role\"\" pulumi-lang-yaml=\"\"currentRole\"\" pulumi-lang-java=\"\"currentRole\"\"\u003e\"current_role\"\u003c/span\u003e role:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst grantTablePrivileges = new postgresql.DefaultPrivileges(\"grant_table_privileges\", {\n    database: exampleDb.name,\n    role: \"current_role\",\n    owner: \"owner_role\",\n    schema: \"public\",\n    objectType: \"table\",\n    privileges: [\n        \"SELECT\",\n        \"INSERT\",\n        \"UPDATE\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\ngrant_table_privileges = postgresql.DefaultPrivileges(\"grant_table_privileges\",\n    database=example_db[\"name\"],\n    role=\"current_role\",\n    owner=\"owner_role\",\n    schema=\"public\",\n    object_type=\"table\",\n    privileges=[\n        \"SELECT\",\n        \"INSERT\",\n        \"UPDATE\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var grantTablePrivileges = new PostgreSql.DefaultPrivileges(\"grant_table_privileges\", new()\n    {\n        Database = exampleDb.Name,\n        Role = \"current_role\",\n        Owner = \"owner_role\",\n        Schema = \"public\",\n        ObjectType = \"table\",\n        Privileges = new[]\n        {\n            \"SELECT\",\n            \"INSERT\",\n            \"UPDATE\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewDefaultPrivileges(ctx, \"grant_table_privileges\", \u0026postgresql.DefaultPrivilegesArgs{\n\t\t\tDatabase:   pulumi.Any(exampleDb.Name),\n\t\t\tRole:       pulumi.String(\"current_role\"),\n\t\t\tOwner:      pulumi.String(\"owner_role\"),\n\t\t\tSchema:     pulumi.String(\"public\"),\n\t\t\tObjectType: pulumi.String(\"table\"),\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\tpulumi.String(\"INSERT\"),\n\t\t\t\tpulumi.String(\"UPDATE\"),\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.postgresql.DefaultPrivileges;\nimport com.pulumi.postgresql.DefaultPrivilegesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 grantTablePrivileges = new DefaultPrivileges(\"grantTablePrivileges\", DefaultPrivilegesArgs.builder()\n            .database(exampleDb.name())\n            .role(\"current_role\")\n            .owner(\"owner_role\")\n            .schema(\"public\")\n            .objectType(\"table\")\n            .privileges(            \n                \"SELECT\",\n                \"INSERT\",\n                \"UPDATE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  grantTablePrivileges:\n    type: postgresql:DefaultPrivileges\n    name: grant_table_privileges\n    properties:\n      database: ${exampleDb.name}\n      role: current_role\n      owner: owner_role\n      schema: public\n      objectType: table\n      privileges:\n        - SELECT\n        - INSERT\n        - UPDATE\n```\n\u003c!--End PulumiCodeChooser --\u003e\nWhenever the \u003cspan pulumi-lang-nodejs=\"`ownerRole`\" pulumi-lang-dotnet=\"`OwnerRole`\" pulumi-lang-go=\"`ownerRole`\" pulumi-lang-python=\"`owner_role`\" pulumi-lang-yaml=\"`ownerRole`\" pulumi-lang-java=\"`ownerRole`\"\u003e`owner_role`\u003c/span\u003e creates a new table in the \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e schema, the \u003cspan pulumi-lang-nodejs=\"`currentRole`\" pulumi-lang-dotnet=\"`CurrentRole`\" pulumi-lang-go=\"`currentRole`\" pulumi-lang-python=\"`current_role`\" pulumi-lang-yaml=\"`currentRole`\" pulumi-lang-java=\"`currentRole`\"\u003e`current_role`\u003c/span\u003e is automatically granted SELECT, INSERT, and UPDATE privileges on that table.\n\n### Revoke default privileges for functions for \"public\" role:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst revokePublic = new postgresql.DefaultPrivileges(\"revoke_public\", {\n    database: exampleDb.name,\n    role: \"public\",\n    owner: \"object_owner\",\n    objectType: \"function\",\n    privileges: [],\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nrevoke_public = postgresql.DefaultPrivileges(\"revoke_public\",\n    database=example_db[\"name\"],\n    role=\"public\",\n    owner=\"object_owner\",\n    object_type=\"function\",\n    privileges=[])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var revokePublic = new PostgreSql.DefaultPrivileges(\"revoke_public\", new()\n    {\n        Database = exampleDb.Name,\n        Role = \"public\",\n        Owner = \"object_owner\",\n        ObjectType = \"function\",\n        Privileges = new[] {},\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewDefaultPrivileges(ctx, \"revoke_public\", \u0026postgresql.DefaultPrivilegesArgs{\n\t\t\tDatabase:   pulumi.Any(exampleDb.Name),\n\t\t\tRole:       pulumi.String(\"public\"),\n\t\t\tOwner:      pulumi.String(\"object_owner\"),\n\t\t\tObjectType: pulumi.String(\"function\"),\n\t\t\tPrivileges: pulumi.StringArray{},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.postgresql.DefaultPrivileges;\nimport com.pulumi.postgresql.DefaultPrivilegesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 revokePublic = new DefaultPrivileges(\"revokePublic\", DefaultPrivilegesArgs.builder()\n            .database(exampleDb.name())\n            .role(\"public\")\n            .owner(\"object_owner\")\n            .objectType(\"function\")\n            .privileges()\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  revokePublic:\n    type: postgresql:DefaultPrivileges\n    name: revoke_public\n    properties:\n      database: ${exampleDb.name}\n      role: public\n      owner: object_owner\n      objectType: function\n      privileges: []\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"database":{"type":"string","description":"The database to grant default privileges for this role.\n"},"objectType":{"type":"string","description":"The PostgreSQL object type to set the default privileges on (one of: table, sequence, function, routine, type, schema).\n"},"owner":{"type":"string","description":"Specifies the role that creates objects for which the default privileges will be applied.\n"},"privileges":{"type":"array","items":{"type":"string"},"description":"List of privileges (e.g., SELECT, INSERT, UPDATE, DELETE) to grant on new objects created by the owner. An empty list could be provided to revoke all default privileges for this role.\n"},"role":{"type":"string","description":"The role that will automatically be granted the specified privileges on new objects created by the owner.\n"},"schema":{"type":"string","description":"The database schema to set default privileges for this role.\n"},"withGrantOption":{"type":"boolean","description":"Permit the grant recipient to grant it to others"}},"required":["database","objectType","owner","privileges","role"],"inputProperties":{"database":{"type":"string","description":"The database to grant default privileges for this role.\n","willReplaceOnChanges":true},"objectType":{"type":"string","description":"The PostgreSQL object type to set the default privileges on (one of: table, sequence, function, routine, type, schema).\n","willReplaceOnChanges":true},"owner":{"type":"string","description":"Specifies the role that creates objects for which the default privileges will be applied.\n","willReplaceOnChanges":true},"privileges":{"type":"array","items":{"type":"string"},"description":"List of privileges (e.g., SELECT, INSERT, UPDATE, DELETE) to grant on new objects created by the owner. An empty list could be provided to revoke all default privileges for this role.\n"},"role":{"type":"string","description":"The role that will automatically be granted the specified privileges on new objects created by the owner.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"The database schema to set default privileges for this role.\n","willReplaceOnChanges":true},"withGrantOption":{"type":"boolean","description":"Permit the grant recipient to grant it to others","willReplaceOnChanges":true}},"requiredInputs":["database","objectType","owner","privileges","role"],"stateInputs":{"description":"Input properties used for looking up and filtering DefaultPrivileges resources.\n","properties":{"database":{"type":"string","description":"The database to grant default privileges for this role.\n","willReplaceOnChanges":true},"objectType":{"type":"string","description":"The PostgreSQL object type to set the default privileges on (one of: table, sequence, function, routine, type, schema).\n","willReplaceOnChanges":true},"owner":{"type":"string","description":"Specifies the role that creates objects for which the default privileges will be applied.\n","willReplaceOnChanges":true},"privileges":{"type":"array","items":{"type":"string"},"description":"List of privileges (e.g., SELECT, INSERT, UPDATE, DELETE) to grant on new objects created by the owner. An empty list could be provided to revoke all default privileges for this role.\n"},"role":{"type":"string","description":"The role that will automatically be granted the specified privileges on new objects created by the owner.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"The database schema to set default privileges for this role.\n","willReplaceOnChanges":true},"withGrantOption":{"type":"boolean","description":"Permit the grant recipient to grant it to others","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"postgresql:index/defaultPrivileg:DefaultPrivileg"}]},"postgresql:index/extension:Extension":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.Extension`\" pulumi-lang-dotnet=\"`postgresql.Extension`\" pulumi-lang-go=\"`Extension`\" pulumi-lang-python=\"`Extension`\" pulumi-lang-yaml=\"`postgresql.Extension`\" pulumi-lang-java=\"`postgresql.Extension`\"\u003e`postgresql.Extension`\u003c/span\u003e` resource creates and manages an extension on a PostgreSQL\nserver.\n\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst myExtension = new postgresql.Extension(\"my_extension\", {name: \"pg_trgm\"});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nmy_extension = postgresql.Extension(\"my_extension\", name=\"pg_trgm\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myExtension = new PostgreSql.Extension(\"my_extension\", new()\n    {\n        Name = \"pg_trgm\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewExtension(ctx, \"my_extension\", \u0026postgresql.ExtensionArgs{\n\t\t\tName: pulumi.String(\"pg_trgm\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.postgresql.Extension;\nimport com.pulumi.postgresql.ExtensionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myExtension = new Extension(\"myExtension\", ExtensionArgs.builder()\n            .name(\"pg_trgm\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myExtension:\n    type: postgresql:Extension\n    name: my_extension\n    properties:\n      name: pg_trgm\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPostgreSQL Extensions can be imported using the database name and the extension's resource name, e.g.\n\n```sh\n$ pulumi import postgresql:index/extension:Extension uuid_ossp example-database.uuid-ossp`\n```\n\n","properties":{"createCascade":{"type":"boolean","description":"When true, will also create any extensions that this extension depends on that are not already installed. (Default: false)\n"},"database":{"type":"string","description":"Which database to create the extension on. Defaults to provider database.\n"},"dropCascade":{"type":"boolean","description":"When true, will also drop all the objects that depend on the extension, and in turn all objects that depend on those objects. (Default: false)\n"},"name":{"type":"string","description":"The name of the extension.\n"},"schema":{"type":"string","description":"Sets the schema of an extension.\n"},"version":{"type":"string","description":"Sets the version number of the extension.\n"}},"required":["database","name","schema","version"],"inputProperties":{"createCascade":{"type":"boolean","description":"When true, will also create any extensions that this extension depends on that are not already installed. (Default: false)\n"},"database":{"type":"string","description":"Which database to create the extension on. Defaults to provider database.\n","willReplaceOnChanges":true},"dropCascade":{"type":"boolean","description":"When true, will also drop all the objects that depend on the extension, and in turn all objects that depend on those objects. (Default: false)\n"},"name":{"type":"string","description":"The name of the extension.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"Sets the schema of an extension.\n"},"version":{"type":"string","description":"Sets the version number of the extension.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Extension resources.\n","properties":{"createCascade":{"type":"boolean","description":"When true, will also create any extensions that this extension depends on that are not already installed. (Default: false)\n"},"database":{"type":"string","description":"Which database to create the extension on. Defaults to provider database.\n","willReplaceOnChanges":true},"dropCascade":{"type":"boolean","description":"When true, will also drop all the objects that depend on the extension, and in turn all objects that depend on those objects. (Default: false)\n"},"name":{"type":"string","description":"The name of the extension.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"Sets the schema of an extension.\n"},"version":{"type":"string","description":"Sets the version number of the extension.\n"}},"type":"object"}},"postgresql:index/function:Function":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.Function`\" pulumi-lang-dotnet=\"`postgresql.Function`\" pulumi-lang-go=\"`Function`\" pulumi-lang-python=\"`Function`\" pulumi-lang-yaml=\"`postgresql.Function`\" pulumi-lang-java=\"`postgresql.Function`\"\u003e`postgresql.Function`\u003c/span\u003e` resource creates and manages a function on a PostgreSQL\nserver.\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst increment = new postgresql.Function(\"increment\", {\n    name: \"increment\",\n    args: [{\n        name: \"i\",\n        type: \"integer\",\n    }],\n    returns: \"integer\",\n    language: \"plpgsql\",\n    body: `BEGIN\n    RETURN i + 1;\nEND;\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nincrement = postgresql.Function(\"increment\",\n    name=\"increment\",\n    args=[{\n        \"name\": \"i\",\n        \"type\": \"integer\",\n    }],\n    returns=\"integer\",\n    language=\"plpgsql\",\n    body=\"\"\"BEGIN\n    RETURN i + 1;\nEND;\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var increment = new PostgreSql.Function(\"increment\", new()\n    {\n        Name = \"increment\",\n        Args = new[]\n        {\n            new PostgreSql.Inputs.FunctionArgArgs\n            {\n                Name = \"i\",\n                Type = \"integer\",\n            },\n        },\n        Returns = \"integer\",\n        Language = \"plpgsql\",\n        Body = @\"BEGIN\n    RETURN i + 1;\nEND;\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewFunction(ctx, \"increment\", \u0026postgresql.FunctionArgs{\n\t\t\tName: pulumi.String(\"increment\"),\n\t\t\tArgs: postgresql.FunctionArgArray{\n\t\t\t\t\u0026postgresql.FunctionArgArgs{\n\t\t\t\t\tName: pulumi.String(\"i\"),\n\t\t\t\t\tType: pulumi.String(\"integer\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tReturns:  pulumi.String(\"integer\"),\n\t\t\tLanguage: pulumi.String(\"plpgsql\"),\n\t\t\tBody:     pulumi.String(\"BEGIN\\n    RETURN i + 1;\\nEND;\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.postgresql.Function;\nimport com.pulumi.postgresql.FunctionArgs;\nimport com.pulumi.postgresql.inputs.FunctionArgArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 increment = new Function(\"increment\", FunctionArgs.builder()\n            .name(\"increment\")\n            .args(FunctionArgArgs.builder()\n                .name(\"i\")\n                .type(\"integer\")\n                .build())\n            .returns(\"integer\")\n            .language(\"plpgsql\")\n            .body(\"\"\"\nBEGIN\n    RETURN i + 1;\nEND;\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  increment:\n    type: postgresql:Function\n    properties:\n      name: increment\n      args:\n        - name: i\n          type: integer\n      returns: integer\n      language: plpgsql\n      body: |\n        BEGIN\n            RETURN i + 1;\n        END;\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIt is possible to import a `postgresql_function` resource with the following\ncommand:\n\n```sh\n$ pulumi import postgresql:index/function:Function function_foo \"my_database.my_schema.my_function_name(arguments)\"\n```\nWhere `my_database` is the name of the database containing the schema,\n`my_schema` is the name of the schema in the PostgreSQL database, `my_function_name` is the function name to be imported, `arguments` is the argument signature of the function including all non OUT types and\n`postgresql_schema.function_foo` is the name of the resource whose state will be\npopulated as a result of the command.\n\n","properties":{"args":{"type":"array","items":{"$ref":"#/types/postgresql:index/FunctionArg:FunctionArg"},"description":"List of arguments for the function.\n"},"body":{"type":"string","description":"Function body.\nThis should be the body content within the `AS $$` and the final `$$`. It will also accept the `AS $$` and `$$` if added.\n"},"database":{"type":"string","description":"The database where the function is located.\nIf not specified, the function is created in the current database.\n"},"dropCascade":{"type":"boolean","description":"True to automatically drop objects that depend on the function (such as\noperators or triggers), and in turn all objects that depend on those objects. Default is false.\n"},"language":{"type":"string","description":"The function programming language. Can be one of internal, sql, c, plpgsql. Default is plpgsql.\n"},"name":{"type":"string","description":"The name of the function.\n"},"parallel":{"type":"string","description":"Indicates if the function is parallel safe. Can be one of UNSAFE, RESTRICTED, or SAFE. Default is UNSAFE.\n"},"returns":{"type":"string","description":"Type that the function returns. It can be computed from the OUT arguments. Default is void.\n"},"schema":{"type":"string","description":"The schema where the function is located.\nIf not specified, the function is created in the current schema.\n"},"securityDefiner":{"type":"boolean","description":"If the function should execute with the permissions of the owner, rather than the permissions of the caller. Default is false.\n"},"strict":{"type":"boolean","description":"If the function should always return NULL when any of the inputs is NULL. Default is false.\n"},"volatility":{"type":"string","description":"Defines the volatility of the function. Can be one of VOLATILE, STABLE, or IMMUTABLE. Default is VOLATILE.\n"}},"required":["body","database","name","returns","schema"],"inputProperties":{"args":{"type":"array","items":{"$ref":"#/types/postgresql:index/FunctionArg:FunctionArg"},"description":"List of arguments for the function.\n","willReplaceOnChanges":true},"body":{"type":"string","description":"Function body.\nThis should be the body content within the `AS $$` and the final `$$`. It will also accept the `AS $$` and `$$` if added.\n"},"database":{"type":"string","description":"The database where the function is located.\nIf not specified, the function is created in the current database.\n","willReplaceOnChanges":true},"dropCascade":{"type":"boolean","description":"True to automatically drop objects that depend on the function (such as\noperators or triggers), and in turn all objects that depend on those objects. Default is false.\n"},"language":{"type":"string","description":"The function programming language. Can be one of internal, sql, c, plpgsql. Default is plpgsql.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the function.\n","willReplaceOnChanges":true},"parallel":{"type":"string","description":"Indicates if the function is parallel safe. Can be one of UNSAFE, RESTRICTED, or SAFE. Default is UNSAFE.\n"},"returns":{"type":"string","description":"Type that the function returns. It can be computed from the OUT arguments. Default is void.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"The schema where the function is located.\nIf not specified, the function is created in the current schema.\n","willReplaceOnChanges":true},"securityDefiner":{"type":"boolean","description":"If the function should execute with the permissions of the owner, rather than the permissions of the caller. Default is false.\n"},"strict":{"type":"boolean","description":"If the function should always return NULL when any of the inputs is NULL. Default is false.\n"},"volatility":{"type":"string","description":"Defines the volatility of the function. Can be one of VOLATILE, STABLE, or IMMUTABLE. Default is VOLATILE.\n"}},"requiredInputs":["body"],"stateInputs":{"description":"Input properties used for looking up and filtering Function resources.\n","properties":{"args":{"type":"array","items":{"$ref":"#/types/postgresql:index/FunctionArg:FunctionArg"},"description":"List of arguments for the function.\n","willReplaceOnChanges":true},"body":{"type":"string","description":"Function body.\nThis should be the body content within the `AS $$` and the final `$$`. It will also accept the `AS $$` and `$$` if added.\n"},"database":{"type":"string","description":"The database where the function is located.\nIf not specified, the function is created in the current database.\n","willReplaceOnChanges":true},"dropCascade":{"type":"boolean","description":"True to automatically drop objects that depend on the function (such as\noperators or triggers), and in turn all objects that depend on those objects. Default is false.\n"},"language":{"type":"string","description":"The function programming language. Can be one of internal, sql, c, plpgsql. Default is plpgsql.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the function.\n","willReplaceOnChanges":true},"parallel":{"type":"string","description":"Indicates if the function is parallel safe. Can be one of UNSAFE, RESTRICTED, or SAFE. Default is UNSAFE.\n"},"returns":{"type":"string","description":"Type that the function returns. It can be computed from the OUT arguments. Default is void.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"The schema where the function is located.\nIf not specified, the function is created in the current schema.\n","willReplaceOnChanges":true},"securityDefiner":{"type":"boolean","description":"If the function should execute with the permissions of the owner, rather than the permissions of the caller. Default is false.\n"},"strict":{"type":"boolean","description":"If the function should always return NULL when any of the inputs is NULL. Default is false.\n"},"volatility":{"type":"string","description":"Defines the volatility of the function. Can be one of VOLATILE, STABLE, or IMMUTABLE. Default is VOLATILE.\n"}},"type":"object"}},"postgresql:index/grant:Grant":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.Grant`\" pulumi-lang-dotnet=\"`postgresql.Grant`\" pulumi-lang-go=\"`Grant`\" pulumi-lang-python=\"`Grant`\" pulumi-lang-yaml=\"`postgresql.Grant`\" pulumi-lang-java=\"`postgresql.Grant`\"\u003e`postgresql.Grant`\u003c/span\u003e` resource creates and manages privileges given to a user for a database schema.\n\nSee [PostgreSQL documentation](https://www.postgresql.org/docs/current/sql-grant.html)\n\n\u003e **Note:** This resource needs Postgresql version 9 or above.\n\u003e **Note:** Using column \u0026 table grants on the _same_ table with the _same_ privileges can lead to unexpected behaviours.\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\n// Grant SELECT privileges on 2 tables\nconst readonlyTables = new postgresql.Grant(\"readonly_tables\", {\n    database: \"test_db\",\n    role: \"test_role\",\n    schema: \"public\",\n    objectType: \"table\",\n    objects: [\n        \"table1\",\n        \"table2\",\n    ],\n    privileges: [\"SELECT\"],\n});\n// Grant SELECT \u0026 INSERT privileges on 2 columns in 1 table\nconst readInsertColumn = new postgresql.Grant(\"read_insert_column\", {\n    database: \"test_db\",\n    role: \"test_role\",\n    schema: \"public\",\n    objectType: \"column\",\n    objects: [\"table1\"],\n    columns: [\n        \"col1\",\n        \"col2\",\n    ],\n    privileges: [\n        \"UPDATE\",\n        \"INSERT\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\n# Grant SELECT privileges on 2 tables\nreadonly_tables = postgresql.Grant(\"readonly_tables\",\n    database=\"test_db\",\n    role=\"test_role\",\n    schema=\"public\",\n    object_type=\"table\",\n    objects=[\n        \"table1\",\n        \"table2\",\n    ],\n    privileges=[\"SELECT\"])\n# Grant SELECT \u0026 INSERT privileges on 2 columns in 1 table\nread_insert_column = postgresql.Grant(\"read_insert_column\",\n    database=\"test_db\",\n    role=\"test_role\",\n    schema=\"public\",\n    object_type=\"column\",\n    objects=[\"table1\"],\n    columns=[\n        \"col1\",\n        \"col2\",\n    ],\n    privileges=[\n        \"UPDATE\",\n        \"INSERT\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Grant SELECT privileges on 2 tables\n    var readonlyTables = new PostgreSql.Grant(\"readonly_tables\", new()\n    {\n        Database = \"test_db\",\n        Role = \"test_role\",\n        Schema = \"public\",\n        ObjectType = \"table\",\n        Objects = new[]\n        {\n            \"table1\",\n            \"table2\",\n        },\n        Privileges = new[]\n        {\n            \"SELECT\",\n        },\n    });\n\n    // Grant SELECT \u0026 INSERT privileges on 2 columns in 1 table\n    var readInsertColumn = new PostgreSql.Grant(\"read_insert_column\", new()\n    {\n        Database = \"test_db\",\n        Role = \"test_role\",\n        Schema = \"public\",\n        ObjectType = \"column\",\n        Objects = new[]\n        {\n            \"table1\",\n        },\n        Columns = new[]\n        {\n            \"col1\",\n            \"col2\",\n        },\n        Privileges = new[]\n        {\n            \"UPDATE\",\n            \"INSERT\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Grant SELECT privileges on 2 tables\n\t\t_, err := postgresql.NewGrant(ctx, \"readonly_tables\", \u0026postgresql.GrantArgs{\n\t\t\tDatabase:   pulumi.String(\"test_db\"),\n\t\t\tRole:       pulumi.String(\"test_role\"),\n\t\t\tSchema:     pulumi.String(\"public\"),\n\t\t\tObjectType: pulumi.String(\"table\"),\n\t\t\tObjects: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"table1\"),\n\t\t\t\tpulumi.String(\"table2\"),\n\t\t\t},\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Grant SELECT \u0026 INSERT privileges on 2 columns in 1 table\n\t\t_, err = postgresql.NewGrant(ctx, \"read_insert_column\", \u0026postgresql.GrantArgs{\n\t\t\tDatabase:   pulumi.String(\"test_db\"),\n\t\t\tRole:       pulumi.String(\"test_role\"),\n\t\t\tSchema:     pulumi.String(\"public\"),\n\t\t\tObjectType: pulumi.String(\"column\"),\n\t\t\tObjects: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"table1\"),\n\t\t\t},\n\t\t\tColumns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"col1\"),\n\t\t\t\tpulumi.String(\"col2\"),\n\t\t\t},\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"UPDATE\"),\n\t\t\t\tpulumi.String(\"INSERT\"),\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.postgresql.Grant;\nimport com.pulumi.postgresql.GrantArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Grant SELECT privileges on 2 tables\n        var readonlyTables = new Grant(\"readonlyTables\", GrantArgs.builder()\n            .database(\"test_db\")\n            .role(\"test_role\")\n            .schema(\"public\")\n            .objectType(\"table\")\n            .objects(            \n                \"table1\",\n                \"table2\")\n            .privileges(\"SELECT\")\n            .build());\n\n        // Grant SELECT \u0026 INSERT privileges on 2 columns in 1 table\n        var readInsertColumn = new Grant(\"readInsertColumn\", GrantArgs.builder()\n            .database(\"test_db\")\n            .role(\"test_role\")\n            .schema(\"public\")\n            .objectType(\"column\")\n            .objects(\"table1\")\n            .columns(            \n                \"col1\",\n                \"col2\")\n            .privileges(            \n                \"UPDATE\",\n                \"INSERT\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Grant SELECT privileges on 2 tables\n  readonlyTables:\n    type: postgresql:Grant\n    name: readonly_tables\n    properties:\n      database: test_db\n      role: test_role\n      schema: public\n      objectType: table\n      objects:\n        - table1\n        - table2\n      privileges:\n        - SELECT\n  # Grant SELECT \u0026 INSERT privileges on 2 columns in 1 table\n  readInsertColumn:\n    type: postgresql:Grant\n    name: read_insert_column\n    properties:\n      database: test_db\n      role: test_role\n      schema: public\n      objectType: column\n      objects:\n        - table1\n      columns:\n        - col1\n        - col2\n      privileges:\n        - UPDATE\n        - INSERT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Examples\n\nRevoke default accesses for public schema:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst revokePublic = new postgresql.Grant(\"revoke_public\", {\n    database: \"test_db\",\n    role: \"public\",\n    schema: \"public\",\n    objectType: \"schema\",\n    privileges: [],\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nrevoke_public = postgresql.Grant(\"revoke_public\",\n    database=\"test_db\",\n    role=\"public\",\n    schema=\"public\",\n    object_type=\"schema\",\n    privileges=[])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var revokePublic = new PostgreSql.Grant(\"revoke_public\", new()\n    {\n        Database = \"test_db\",\n        Role = \"public\",\n        Schema = \"public\",\n        ObjectType = \"schema\",\n        Privileges = new[] {},\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewGrant(ctx, \"revoke_public\", \u0026postgresql.GrantArgs{\n\t\t\tDatabase:   pulumi.String(\"test_db\"),\n\t\t\tRole:       pulumi.String(\"public\"),\n\t\t\tSchema:     pulumi.String(\"public\"),\n\t\t\tObjectType: pulumi.String(\"schema\"),\n\t\t\tPrivileges: pulumi.StringArray{},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.postgresql.Grant;\nimport com.pulumi.postgresql.GrantArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 revokePublic = new Grant(\"revokePublic\", GrantArgs.builder()\n            .database(\"test_db\")\n            .role(\"public\")\n            .schema(\"public\")\n            .objectType(\"schema\")\n            .privileges()\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  revokePublic:\n    type: postgresql:Grant\n    name: revoke_public\n    properties:\n      database: test_db\n      role: public\n      schema: public\n      objectType: schema\n      privileges: []\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"columns":{"type":"array","items":{"type":"string"},"description":"The columns upon which to grant the privileges. Required when \u003cspan pulumi-lang-nodejs=\"`objectType`\" pulumi-lang-dotnet=\"`ObjectType`\" pulumi-lang-go=\"`objectType`\" pulumi-lang-python=\"`object_type`\" pulumi-lang-yaml=\"`objectType`\" pulumi-lang-java=\"`objectType`\"\u003e`object_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\"\u003e`column`\u003c/span\u003e. You cannot specify this option if the \u003cspan pulumi-lang-nodejs=\"`objectType`\" pulumi-lang-dotnet=\"`ObjectType`\" pulumi-lang-go=\"`objectType`\" pulumi-lang-python=\"`object_type`\" pulumi-lang-yaml=\"`objectType`\" pulumi-lang-java=\"`objectType`\"\u003e`object_type`\u003c/span\u003e is not \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\"\u003e`column`\u003c/span\u003e.\n"},"database":{"type":"string","description":"The database to grant privileges on for this role.\n"},"objectType":{"type":"string","description":"The PostgreSQL object type to grant the privileges on (one of: database, schema, table, sequence, function, procedure, routine, foreign_data_wrapper, foreign_server, column).\n"},"objects":{"type":"array","items":{"type":"string"},"description":"The objects upon which to grant the privileges. An empty list (the default) means to grant permissions on *all* objects of the specified type. You cannot specify this option if the \u003cspan pulumi-lang-nodejs=\"`objectType`\" pulumi-lang-dotnet=\"`ObjectType`\" pulumi-lang-go=\"`objectType`\" pulumi-lang-python=\"`object_type`\" pulumi-lang-yaml=\"`objectType`\" pulumi-lang-java=\"`objectType`\"\u003e`object_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`database`\" pulumi-lang-dotnet=\"`Database`\" pulumi-lang-go=\"`database`\" pulumi-lang-python=\"`database`\" pulumi-lang-yaml=\"`database`\" pulumi-lang-java=\"`database`\"\u003e`database`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`schema`\" pulumi-lang-dotnet=\"`Schema`\" pulumi-lang-go=\"`schema`\" pulumi-lang-python=\"`schema`\" pulumi-lang-yaml=\"`schema`\" pulumi-lang-java=\"`schema`\"\u003e`schema`\u003c/span\u003e. When \u003cspan pulumi-lang-nodejs=\"`objectType`\" pulumi-lang-dotnet=\"`ObjectType`\" pulumi-lang-go=\"`objectType`\" pulumi-lang-python=\"`object_type`\" pulumi-lang-yaml=\"`objectType`\" pulumi-lang-java=\"`objectType`\"\u003e`object_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\"\u003e`column`\u003c/span\u003e, only one value is allowed.\n"},"privileges":{"type":"array","items":{"type":"string"},"description":"The list of privileges to grant. There are different kinds of privileges: SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, CREATE, CONNECT, TEMPORARY, EXECUTE, and USAGE. An empty list could be provided to revoke all privileges for this role.\n"},"role":{"type":"string","description":"The name of the role to grant privileges on, Set it to \"public\" for all roles.\n"},"schema":{"type":"string","description":"The database schema to grant privileges on for this role (Required except if\u003cspan pulumi-lang-nodejs=\" objectType \" pulumi-lang-dotnet=\" ObjectType \" pulumi-lang-go=\" objectType \" pulumi-lang-python=\" object_type \" pulumi-lang-yaml=\" objectType \" pulumi-lang-java=\" objectType \"\u003e object_type \u003c/span\u003eis \"database\")\n"},"withGrantOption":{"type":"boolean","description":"Whether the recipient of these privileges can grant the same privileges to others. Defaults to false.\n"}},"required":["database","objectType","privileges","role"],"inputProperties":{"columns":{"type":"array","items":{"type":"string"},"description":"The columns upon which to grant the privileges. Required when \u003cspan pulumi-lang-nodejs=\"`objectType`\" pulumi-lang-dotnet=\"`ObjectType`\" pulumi-lang-go=\"`objectType`\" pulumi-lang-python=\"`object_type`\" pulumi-lang-yaml=\"`objectType`\" pulumi-lang-java=\"`objectType`\"\u003e`object_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\"\u003e`column`\u003c/span\u003e. You cannot specify this option if the \u003cspan pulumi-lang-nodejs=\"`objectType`\" pulumi-lang-dotnet=\"`ObjectType`\" pulumi-lang-go=\"`objectType`\" pulumi-lang-python=\"`object_type`\" pulumi-lang-yaml=\"`objectType`\" pulumi-lang-java=\"`objectType`\"\u003e`object_type`\u003c/span\u003e is not \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\"\u003e`column`\u003c/span\u003e.\n","willReplaceOnChanges":true},"database":{"type":"string","description":"The database to grant privileges on for this role.\n","willReplaceOnChanges":true},"objectType":{"type":"string","description":"The PostgreSQL object type to grant the privileges on (one of: database, schema, table, sequence, function, procedure, routine, foreign_data_wrapper, foreign_server, column).\n","willReplaceOnChanges":true},"objects":{"type":"array","items":{"type":"string"},"description":"The objects upon which to grant the privileges. An empty list (the default) means to grant permissions on *all* objects of the specified type. You cannot specify this option if the \u003cspan pulumi-lang-nodejs=\"`objectType`\" pulumi-lang-dotnet=\"`ObjectType`\" pulumi-lang-go=\"`objectType`\" pulumi-lang-python=\"`object_type`\" pulumi-lang-yaml=\"`objectType`\" pulumi-lang-java=\"`objectType`\"\u003e`object_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`database`\" pulumi-lang-dotnet=\"`Database`\" pulumi-lang-go=\"`database`\" pulumi-lang-python=\"`database`\" pulumi-lang-yaml=\"`database`\" pulumi-lang-java=\"`database`\"\u003e`database`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`schema`\" pulumi-lang-dotnet=\"`Schema`\" pulumi-lang-go=\"`schema`\" pulumi-lang-python=\"`schema`\" pulumi-lang-yaml=\"`schema`\" pulumi-lang-java=\"`schema`\"\u003e`schema`\u003c/span\u003e. When \u003cspan pulumi-lang-nodejs=\"`objectType`\" pulumi-lang-dotnet=\"`ObjectType`\" pulumi-lang-go=\"`objectType`\" pulumi-lang-python=\"`object_type`\" pulumi-lang-yaml=\"`objectType`\" pulumi-lang-java=\"`objectType`\"\u003e`object_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\"\u003e`column`\u003c/span\u003e, only one value is allowed.\n","willReplaceOnChanges":true},"privileges":{"type":"array","items":{"type":"string"},"description":"The list of privileges to grant. There are different kinds of privileges: SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, CREATE, CONNECT, TEMPORARY, EXECUTE, and USAGE. An empty list could be provided to revoke all privileges for this role.\n"},"role":{"type":"string","description":"The name of the role to grant privileges on, Set it to \"public\" for all roles.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"The database schema to grant privileges on for this role (Required except if\u003cspan pulumi-lang-nodejs=\" objectType \" pulumi-lang-dotnet=\" ObjectType \" pulumi-lang-go=\" objectType \" pulumi-lang-python=\" object_type \" pulumi-lang-yaml=\" objectType \" pulumi-lang-java=\" objectType \"\u003e object_type \u003c/span\u003eis \"database\")\n","willReplaceOnChanges":true},"withGrantOption":{"type":"boolean","description":"Whether the recipient of these privileges can grant the same privileges to others. Defaults to false.\n","willReplaceOnChanges":true}},"requiredInputs":["database","objectType","privileges","role"],"stateInputs":{"description":"Input properties used for looking up and filtering Grant resources.\n","properties":{"columns":{"type":"array","items":{"type":"string"},"description":"The columns upon which to grant the privileges. Required when \u003cspan pulumi-lang-nodejs=\"`objectType`\" pulumi-lang-dotnet=\"`ObjectType`\" pulumi-lang-go=\"`objectType`\" pulumi-lang-python=\"`object_type`\" pulumi-lang-yaml=\"`objectType`\" pulumi-lang-java=\"`objectType`\"\u003e`object_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\"\u003e`column`\u003c/span\u003e. You cannot specify this option if the \u003cspan pulumi-lang-nodejs=\"`objectType`\" pulumi-lang-dotnet=\"`ObjectType`\" pulumi-lang-go=\"`objectType`\" pulumi-lang-python=\"`object_type`\" pulumi-lang-yaml=\"`objectType`\" pulumi-lang-java=\"`objectType`\"\u003e`object_type`\u003c/span\u003e is not \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\"\u003e`column`\u003c/span\u003e.\n","willReplaceOnChanges":true},"database":{"type":"string","description":"The database to grant privileges on for this role.\n","willReplaceOnChanges":true},"objectType":{"type":"string","description":"The PostgreSQL object type to grant the privileges on (one of: database, schema, table, sequence, function, procedure, routine, foreign_data_wrapper, foreign_server, column).\n","willReplaceOnChanges":true},"objects":{"type":"array","items":{"type":"string"},"description":"The objects upon which to grant the privileges. An empty list (the default) means to grant permissions on *all* objects of the specified type. You cannot specify this option if the \u003cspan pulumi-lang-nodejs=\"`objectType`\" pulumi-lang-dotnet=\"`ObjectType`\" pulumi-lang-go=\"`objectType`\" pulumi-lang-python=\"`object_type`\" pulumi-lang-yaml=\"`objectType`\" pulumi-lang-java=\"`objectType`\"\u003e`object_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`database`\" pulumi-lang-dotnet=\"`Database`\" pulumi-lang-go=\"`database`\" pulumi-lang-python=\"`database`\" pulumi-lang-yaml=\"`database`\" pulumi-lang-java=\"`database`\"\u003e`database`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`schema`\" pulumi-lang-dotnet=\"`Schema`\" pulumi-lang-go=\"`schema`\" pulumi-lang-python=\"`schema`\" pulumi-lang-yaml=\"`schema`\" pulumi-lang-java=\"`schema`\"\u003e`schema`\u003c/span\u003e. When \u003cspan pulumi-lang-nodejs=\"`objectType`\" pulumi-lang-dotnet=\"`ObjectType`\" pulumi-lang-go=\"`objectType`\" pulumi-lang-python=\"`object_type`\" pulumi-lang-yaml=\"`objectType`\" pulumi-lang-java=\"`objectType`\"\u003e`object_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`column`\" pulumi-lang-dotnet=\"`Column`\" pulumi-lang-go=\"`column`\" pulumi-lang-python=\"`column`\" pulumi-lang-yaml=\"`column`\" pulumi-lang-java=\"`column`\"\u003e`column`\u003c/span\u003e, only one value is allowed.\n","willReplaceOnChanges":true},"privileges":{"type":"array","items":{"type":"string"},"description":"The list of privileges to grant. There are different kinds of privileges: SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, CREATE, CONNECT, TEMPORARY, EXECUTE, and USAGE. An empty list could be provided to revoke all privileges for this role.\n"},"role":{"type":"string","description":"The name of the role to grant privileges on, Set it to \"public\" for all roles.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"The database schema to grant privileges on for this role (Required except if\u003cspan pulumi-lang-nodejs=\" objectType \" pulumi-lang-dotnet=\" ObjectType \" pulumi-lang-go=\" objectType \" pulumi-lang-python=\" object_type \" pulumi-lang-yaml=\" objectType \" pulumi-lang-java=\" objectType \"\u003e object_type \u003c/span\u003eis \"database\")\n","willReplaceOnChanges":true},"withGrantOption":{"type":"boolean","description":"Whether the recipient of these privileges can grant the same privileges to others. Defaults to false.\n","willReplaceOnChanges":true}},"type":"object"}},"postgresql:index/grantRole:GrantRole":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.GrantRole`\" pulumi-lang-dotnet=\"`postgresql.GrantRole`\" pulumi-lang-go=\"`GrantRole`\" pulumi-lang-python=\"`GrantRole`\" pulumi-lang-yaml=\"`postgresql.GrantRole`\" pulumi-lang-java=\"`postgresql.GrantRole`\"\u003e`postgresql.GrantRole`\u003c/span\u003e` resource creates and manages membership in a role to one or more other roles in a non-authoritative way.\n\nWhen using `\u003cspan pulumi-lang-nodejs=\"`postgresql.GrantRole`\" pulumi-lang-dotnet=\"`postgresql.GrantRole`\" pulumi-lang-go=\"`GrantRole`\" pulumi-lang-python=\"`GrantRole`\" pulumi-lang-yaml=\"`postgresql.GrantRole`\" pulumi-lang-java=\"`postgresql.GrantRole`\"\u003e`postgresql.GrantRole`\u003c/span\u003e` resource it is likely because the PostgreSQL role you are modifying was created outside of this provider.\n\n\u003e **Note:** This resource needs PostgreSQL version 9 or above.\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst grantRoot = new postgresql.GrantRole(\"grant_root\", {\n    role: \"root\",\n    grantRole: \"application\",\n    withAdminOption: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\ngrant_root = postgresql.GrantRole(\"grant_root\",\n    role=\"root\",\n    grant_role=\"application\",\n    with_admin_option=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var grantRoot = new PostgreSql.GrantRole(\"grant_root\", new()\n    {\n        Role = \"root\",\n        GrantRoleName = \"application\",\n        WithAdminOption = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewGrantRole(ctx, \"grant_root\", \u0026postgresql.GrantRoleArgs{\n\t\t\tRole:            pulumi.String(\"root\"),\n\t\t\tGrantRole:       pulumi.String(\"application\"),\n\t\t\tWithAdminOption: 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.postgresql.GrantRole;\nimport com.pulumi.postgresql.GrantRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 grantRoot = new GrantRole(\"grantRoot\", GrantRoleArgs.builder()\n            .role(\"root\")\n            .grantRole(\"application\")\n            .withAdminOption(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  grantRoot:\n    type: postgresql:GrantRole\n    name: grant_root\n    properties:\n      role: root\n      grantRole: application\n      withAdminOption: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **Note:** If you use \u003cspan pulumi-lang-nodejs=\"`postgresql.GrantRole`\" pulumi-lang-dotnet=\"`postgresql.GrantRole`\" pulumi-lang-go=\"`GrantRole`\" pulumi-lang-python=\"`GrantRole`\" pulumi-lang-yaml=\"`postgresql.GrantRole`\" pulumi-lang-java=\"`postgresql.GrantRole`\"\u003e`postgresql.GrantRole`\u003c/span\u003e for a role that you also manage with a \u003cspan pulumi-lang-nodejs=\"`postgresql.Role`\" pulumi-lang-dotnet=\"`postgresql.Role`\" pulumi-lang-go=\"`Role`\" pulumi-lang-python=\"`Role`\" pulumi-lang-yaml=\"`postgresql.Role`\" pulumi-lang-java=\"`postgresql.Role`\"\u003e`postgresql.Role`\u003c/span\u003e resource, you need to ignore the changes of the \u003cspan pulumi-lang-nodejs=\"`roles`\" pulumi-lang-dotnet=\"`Roles`\" pulumi-lang-go=\"`roles`\" pulumi-lang-python=\"`roles`\" pulumi-lang-yaml=\"`roles`\" pulumi-lang-java=\"`roles`\"\u003e`roles`\u003c/span\u003e attribute in the \u003cspan pulumi-lang-nodejs=\"`postgresql.Role`\" pulumi-lang-dotnet=\"`postgresql.Role`\" pulumi-lang-go=\"`Role`\" pulumi-lang-python=\"`Role`\" pulumi-lang-yaml=\"`postgresql.Role`\" pulumi-lang-java=\"`postgresql.Role`\"\u003e`postgresql.Role`\u003c/span\u003e resource or they will fight over what your role grants should be. e.g.:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst bob = new postgresql.Role(\"bob\", {name: \"bob\"});\nconst bobAdmin = new postgresql.GrantRole(\"bob_admin\", {\n    role: \"bob\",\n    grantRole: \"admin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nbob = postgresql.Role(\"bob\", name=\"bob\")\nbob_admin = postgresql.GrantRole(\"bob_admin\",\n    role=\"bob\",\n    grant_role=\"admin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var bob = new PostgreSql.Role(\"bob\", new()\n    {\n        Name = \"bob\",\n    });\n\n    var bobAdmin = new PostgreSql.GrantRole(\"bob_admin\", new()\n    {\n        Role = \"bob\",\n        GrantRoleName = \"admin\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewRole(ctx, \"bob\", \u0026postgresql.RoleArgs{\n\t\t\tName: pulumi.String(\"bob\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewGrantRole(ctx, \"bob_admin\", \u0026postgresql.GrantRoleArgs{\n\t\t\tRole:      pulumi.String(\"bob\"),\n\t\t\tGrantRole: pulumi.String(\"admin\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.postgresql.Role;\nimport com.pulumi.postgresql.RoleArgs;\nimport com.pulumi.postgresql.GrantRole;\nimport com.pulumi.postgresql.GrantRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 bob = new Role(\"bob\", RoleArgs.builder()\n            .name(\"bob\")\n            .build());\n\n        var bobAdmin = new GrantRole(\"bobAdmin\", GrantRoleArgs.builder()\n            .role(\"bob\")\n            .grantRole(\"admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bob:\n    type: postgresql:Role\n    properties:\n      name: bob\n  bobAdmin:\n    type: postgresql:GrantRole\n    name: bob_admin\n    properties:\n      role: bob\n      grantRole: admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"grantRole":{"type":"string","description":"The name of the role that is added to \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e.\n","language":{"csharp":{"name":"GrantRoleName"}}},"role":{"type":"string","description":"The name of the role that is granted a new membership.\n"},"withAdminOption":{"type":"boolean","description":"Giving ability to grant membership to others or not for \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e. (Default: false)\n"}},"required":["grantRole","role"],"inputProperties":{"grantRole":{"type":"string","description":"The name of the role that is added to \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e.\n","language":{"csharp":{"name":"GrantRoleName"}},"willReplaceOnChanges":true},"role":{"type":"string","description":"The name of the role that is granted a new membership.\n","willReplaceOnChanges":true},"withAdminOption":{"type":"boolean","description":"Giving ability to grant membership to others or not for \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e. (Default: false)\n","willReplaceOnChanges":true}},"requiredInputs":["grantRole","role"],"stateInputs":{"description":"Input properties used for looking up and filtering GrantRole resources.\n","properties":{"grantRole":{"type":"string","description":"The name of the role that is added to \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e.\n","language":{"csharp":{"name":"GrantRoleName"}},"willReplaceOnChanges":true},"role":{"type":"string","description":"The name of the role that is granted a new membership.\n","willReplaceOnChanges":true},"withAdminOption":{"type":"boolean","description":"Giving ability to grant membership to others or not for \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e. (Default: false)\n","willReplaceOnChanges":true}},"type":"object"}},"postgresql:index/physicalReplicationSlot:PhysicalReplicationSlot":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.PhysicalReplicationSlot`\" pulumi-lang-dotnet=\"`postgresql.PhysicalReplicationSlot`\" pulumi-lang-go=\"`PhysicalReplicationSlot`\" pulumi-lang-python=\"`PhysicalReplicationSlot`\" pulumi-lang-yaml=\"`postgresql.PhysicalReplicationSlot`\" pulumi-lang-java=\"`postgresql.PhysicalReplicationSlot`\"\u003e`postgresql.PhysicalReplicationSlot`\u003c/span\u003e` resource creates and manages a physical replication slot on a PostgreSQL\nserver. This is useful to setup a cross datacenter replication, with Patroni for example, or permit\nany stand-by cluster to replicate physically data.\n\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst mySlot = new postgresql.PhysicalReplicationSlot(\"my_slot\", {name: \"my_slot\"});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nmy_slot = postgresql.PhysicalReplicationSlot(\"my_slot\", name=\"my_slot\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mySlot = new PostgreSql.PhysicalReplicationSlot(\"my_slot\", new()\n    {\n        Name = \"my_slot\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewPhysicalReplicationSlot(ctx, \"my_slot\", \u0026postgresql.PhysicalReplicationSlotArgs{\n\t\t\tName: pulumi.String(\"my_slot\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.postgresql.PhysicalReplicationSlot;\nimport com.pulumi.postgresql.PhysicalReplicationSlotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mySlot = new PhysicalReplicationSlot(\"mySlot\", PhysicalReplicationSlotArgs.builder()\n            .name(\"my_slot\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mySlot:\n    type: postgresql:PhysicalReplicationSlot\n    name: my_slot\n    properties:\n      name: my_slot\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"name":{"type":"string","description":"The name of the replication slot.\n"}},"required":["name"],"inputProperties":{"name":{"type":"string","description":"The name of the replication slot.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering PhysicalReplicationSlot resources.\n","properties":{"name":{"type":"string","description":"The name of the replication slot.\n","willReplaceOnChanges":true}},"type":"object"}},"postgresql:index/publication:Publication":{"description":"The \u003cspan pulumi-lang-nodejs=\"`postgresql.Publication`\" pulumi-lang-dotnet=\"`postgresql.Publication`\" pulumi-lang-go=\"`Publication`\" pulumi-lang-python=\"`Publication`\" pulumi-lang-yaml=\"`postgresql.Publication`\" pulumi-lang-java=\"`postgresql.Publication`\"\u003e`postgresql.Publication`\u003c/span\u003e resource creates and manages a publication on a PostgreSQL\nserver.\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst publication = new postgresql.Publication(\"publication\", {\n    name: \"publication\",\n    tables: [\n        \"public.test\",\n        \"another_schema.test\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\npublication = postgresql.Publication(\"publication\",\n    name=\"publication\",\n    tables=[\n        \"public.test\",\n        \"another_schema.test\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var publication = new PostgreSql.Publication(\"publication\", new()\n    {\n        Name = \"publication\",\n        Tables = new[]\n        {\n            \"public.test\",\n            \"another_schema.test\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewPublication(ctx, \"publication\", \u0026postgresql.PublicationArgs{\n\t\t\tName: pulumi.String(\"publication\"),\n\t\t\tTables: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"public.test\"),\n\t\t\t\tpulumi.String(\"another_schema.test\"),\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.postgresql.Publication;\nimport com.pulumi.postgresql.PublicationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 publication = new Publication(\"publication\", PublicationArgs.builder()\n            .name(\"publication\")\n            .tables(            \n                \"public.test\",\n                \"another_schema.test\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  publication:\n    type: postgresql:Publication\n    properties:\n      name: publication\n      tables:\n        - public.test\n        - another_schema.test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import Example\n\nPublication can be imported using this format:\n\n```\n$ terraform import postgresql_publication.publication {{database_name}}.{{publication_name}}\n```\n","properties":{"allTables":{"type":"boolean","description":"Should be ALL TABLES added to the publication. Defaults to 'false'\n"},"database":{"type":"string","description":"Which database to create the publication on. Defaults to provider database.\n"},"dropCascade":{"type":"boolean","description":"Should all subsequent resources of the publication be dropped. Defaults to 'false'\n"},"name":{"type":"string","description":"The name of the publication.\n"},"owner":{"type":"string","description":"Who owns the publication. Defaults to provider user.\n"},"publishParams":{"type":"array","items":{"type":"string"},"description":"Which 'publish' options should be turned on. Default to 'insert','update','delete'\n"},"publishViaPartitionRootParam":{"type":"boolean","description":"Should be option 'publish_via_partition_root' be turned on. Default to 'false'\n"},"tables":{"type":"array","items":{"type":"string"},"description":"Which tables add to the publication. By defaults no tables added. Format of table is `\u003cschema_name\u003e.\u003ctable_name\u003e`. If `\u003cschema_name\u003e` is not specified - default database schema will be used.  Table string must be listed in alphabetical order.\n"}},"required":["allTables","database","name","owner","publishParams","tables"],"inputProperties":{"allTables":{"type":"boolean","description":"Should be ALL TABLES added to the publication. Defaults to 'false'\n","willReplaceOnChanges":true},"database":{"type":"string","description":"Which database to create the publication on. Defaults to provider database.\n","willReplaceOnChanges":true},"dropCascade":{"type":"boolean","description":"Should all subsequent resources of the publication be dropped. Defaults to 'false'\n"},"name":{"type":"string","description":"The name of the publication.\n"},"owner":{"type":"string","description":"Who owns the publication. Defaults to provider user.\n"},"publishParams":{"type":"array","items":{"type":"string"},"description":"Which 'publish' options should be turned on. Default to 'insert','update','delete'\n"},"publishViaPartitionRootParam":{"type":"boolean","description":"Should be option 'publish_via_partition_root' be turned on. Default to 'false'\n"},"tables":{"type":"array","items":{"type":"string"},"description":"Which tables add to the publication. By defaults no tables added. Format of table is `\u003cschema_name\u003e.\u003ctable_name\u003e`. If `\u003cschema_name\u003e` is not specified - default database schema will be used.  Table string must be listed in alphabetical order.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Publication resources.\n","properties":{"allTables":{"type":"boolean","description":"Should be ALL TABLES added to the publication. Defaults to 'false'\n","willReplaceOnChanges":true},"database":{"type":"string","description":"Which database to create the publication on. Defaults to provider database.\n","willReplaceOnChanges":true},"dropCascade":{"type":"boolean","description":"Should all subsequent resources of the publication be dropped. Defaults to 'false'\n"},"name":{"type":"string","description":"The name of the publication.\n"},"owner":{"type":"string","description":"Who owns the publication. Defaults to provider user.\n"},"publishParams":{"type":"array","items":{"type":"string"},"description":"Which 'publish' options should be turned on. Default to 'insert','update','delete'\n"},"publishViaPartitionRootParam":{"type":"boolean","description":"Should be option 'publish_via_partition_root' be turned on. Default to 'false'\n"},"tables":{"type":"array","items":{"type":"string"},"description":"Which tables add to the publication. By defaults no tables added. Format of table is `\u003cschema_name\u003e.\u003ctable_name\u003e`. If `\u003cschema_name\u003e` is not specified - default database schema will be used.  Table string must be listed in alphabetical order.\n"}},"type":"object"}},"postgresql:index/replicationSlot:ReplicationSlot":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.ReplicationSlot`\" pulumi-lang-dotnet=\"`postgresql.ReplicationSlot`\" pulumi-lang-go=\"`ReplicationSlot`\" pulumi-lang-python=\"`ReplicationSlot`\" pulumi-lang-yaml=\"`postgresql.ReplicationSlot`\" pulumi-lang-java=\"`postgresql.ReplicationSlot`\"\u003e`postgresql.ReplicationSlot`\u003c/span\u003e` resource creates and manages a replication slot on a PostgreSQL\nserver.\n\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst mySlot = new postgresql.ReplicationSlot(\"my_slot\", {\n    name: \"my_slot\",\n    plugin: \"test_decoding\",\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nmy_slot = postgresql.ReplicationSlot(\"my_slot\",\n    name=\"my_slot\",\n    plugin=\"test_decoding\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mySlot = new PostgreSql.ReplicationSlot(\"my_slot\", new()\n    {\n        Name = \"my_slot\",\n        Plugin = \"test_decoding\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewReplicationSlot(ctx, \"my_slot\", \u0026postgresql.ReplicationSlotArgs{\n\t\t\tName:   pulumi.String(\"my_slot\"),\n\t\t\tPlugin: pulumi.String(\"test_decoding\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.postgresql.ReplicationSlot;\nimport com.pulumi.postgresql.ReplicationSlotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mySlot = new ReplicationSlot(\"mySlot\", ReplicationSlotArgs.builder()\n            .name(\"my_slot\")\n            .plugin(\"test_decoding\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mySlot:\n    type: postgresql:ReplicationSlot\n    name: my_slot\n    properties:\n      name: my_slot\n      plugin: test_decoding\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"database":{"type":"string","description":"Which database to create the replication slot on. Defaults to provider database.\n"},"name":{"type":"string","description":"The name of the replication slot.\n"},"plugin":{"type":"string","description":"Sets the output plugin.\n"}},"required":["database","name","plugin"],"inputProperties":{"database":{"type":"string","description":"Which database to create the replication slot on. Defaults to provider database.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the replication slot.\n","willReplaceOnChanges":true},"plugin":{"type":"string","description":"Sets the output plugin.\n","willReplaceOnChanges":true}},"requiredInputs":["plugin"],"stateInputs":{"description":"Input properties used for looking up and filtering ReplicationSlot resources.\n","properties":{"database":{"type":"string","description":"Which database to create the replication slot on. Defaults to provider database.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the replication slot.\n","willReplaceOnChanges":true},"plugin":{"type":"string","description":"Sets the output plugin.\n","willReplaceOnChanges":true}},"type":"object"}},"postgresql:index/role:Role":{"properties":{"assumeRole":{"type":"string","description":"Defines the role to switch to at login via [`SET ROLE`](https://www.postgresql.org/docs/current/sql-set-role.html).\n"},"bypassRowLevelSecurity":{"type":"boolean","description":"Defines whether a role bypasses every\nrow-level security (RLS) policy.  Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"connectionLimit":{"type":"integer","description":"If this role can log in, this specifies how\nmany concurrent connections the role can establish. `-1` (the default) means no\nlimit.\n"},"createDatabase":{"type":"boolean","description":"Defines a role's ability to execute `CREATE\nDATABASE`.  Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"createRole":{"type":"boolean","description":"Defines a role's ability to execute `CREATE ROLE`.\nA role with this privilege can also alter and drop other roles.  Default value\nis \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"encrypted":{"type":"string","deprecationMessage":"Rename PostgreSQL role resource attribute \"encrypted\" to \u003cspan pulumi-lang-nodejs=\"\"encryptedPassword\"\" pulumi-lang-dotnet=\"\"EncryptedPassword\"\" pulumi-lang-go=\"\"encryptedPassword\"\" pulumi-lang-python=\"\"encrypted_password\"\" pulumi-lang-yaml=\"\"encryptedPassword\"\" pulumi-lang-java=\"\"encryptedPassword\"\"\u003e\"encrypted_password\"\u003c/span\u003e"},"encryptedPassword":{"type":"boolean","description":"Defines whether the password is stored\nencrypted in the system catalogs.  Default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.  NOTE: this value\nis always set (to the conservative and safe value), but may interfere with the\nbehavior of\n[PostgreSQL's \u003cspan pulumi-lang-nodejs=\"`passwordEncryption`\" pulumi-lang-dotnet=\"`PasswordEncryption`\" pulumi-lang-go=\"`passwordEncryption`\" pulumi-lang-python=\"`password_encryption`\" pulumi-lang-yaml=\"`passwordEncryption`\" pulumi-lang-java=\"`passwordEncryption`\"\u003e`password_encryption`\u003c/span\u003e setting](https://www.postgresql.org/docs/current/static/runtime-config-connection.html#GUC-PASSWORD-ENCRYPTION).\n"},"idleInTransactionSessionTimeout":{"type":"integer","description":"Terminate any session with an open transaction that has been idle for longer than the specified duration in milliseconds"},"inherit":{"type":"boolean","description":"Defines whether a role \"inherits\" the privileges of\nroles it is a member of.  Default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"login":{"type":"boolean","description":"Defines whether role is allowed to log in.  Roles without\nthis attribute are useful for managing database privileges, but are not users\nin the usual sense of the word.  Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the role. Must be unique on the PostgreSQL\nserver instance where it is configured.\n"},"password":{"type":"string","description":"Sets the role's password. A password is only of use\nfor roles having the \u003cspan pulumi-lang-nodejs=\"`login`\" pulumi-lang-dotnet=\"`Login`\" pulumi-lang-go=\"`login`\" pulumi-lang-python=\"`login`\" pulumi-lang-yaml=\"`login`\" pulumi-lang-java=\"`login`\"\u003e`login`\u003c/span\u003e attribute set to true.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nSets the role's password without storing it in the state file.\nThis is useful for managing passwords securely. Must be used together with \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e.\n","secret":true},"passwordWoVersion":{"type":"string","description":"Prevents applies from updating the role password on every\napply unless the value changes. This version string should be updated whenever you want to\nchange the password specified in \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e. Must be used together with \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e.\n"},"replication":{"type":"boolean","description":"Defines whether a role is allowed to initiate\nstreaming replication or put the system in and out of backup mode.  Default\nvalue is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Defines list of roles which will be granted to this new role.\n"},"searchPaths":{"type":"array","items":{"type":"string"},"description":"Alters the search path of this new role. Note that\ndue to limitations in the implementation, values cannot contain the substring\n`\", \"`.\n"},"skipDropRole":{"type":"boolean","description":"When a PostgreSQL ROLE exists in multiple\ndatabases and the ROLE is dropped, the\n[cleanup of ownership of objects](https://www.postgresql.org/docs/current/static/role-removal.html)\nin each of the respective databases must occur before the ROLE can be dropped\nfrom the catalog.  Set this option to true when there are multiple databases\nin a PostgreSQL cluster using the same PostgreSQL ROLE for object ownership.\nThis is the third and final step taken when removing a ROLE from a database.\n"},"skipReassignOwned":{"type":"boolean","description":"When a PostgreSQL ROLE exists in multiple\ndatabases and the ROLE is dropped, a\n[`REASSIGN OWNED`](https://www.postgresql.org/docs/current/static/sql-reassign-owned.html) in\nmust be executed on each of the respective databases before the `DROP ROLE`\ncan be executed to drop the ROLE from the catalog.  This is the first and\nsecond steps taken when removing a ROLE from a database (the second step being\nan implicit\n[`DROP OWNED`](https://www.postgresql.org/docs/current/static/sql-drop-owned.html)).\n"},"statementTimeout":{"type":"integer","description":"Defines [\u003cspan pulumi-lang-nodejs=\"`statementTimeout`\" pulumi-lang-dotnet=\"`StatementTimeout`\" pulumi-lang-go=\"`statementTimeout`\" pulumi-lang-python=\"`statement_timeout`\" pulumi-lang-yaml=\"`statementTimeout`\" pulumi-lang-java=\"`statementTimeout`\"\u003e`statement_timeout`\u003c/span\u003e](https://www.postgresql.org/docs/current/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-STATEMENT) setting for this role which allows to abort any statement that takes more than the specified amount of time.\n"},"superuser":{"type":"boolean","description":"Defines whether the role is a \"superuser\", and\ntherefore can override all access restrictions within the database.  Default\nvalue is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"validUntil":{"type":"string","description":"Defines the date and time after which the role's\npassword is no longer valid.  Established connections past this \u003cspan pulumi-lang-nodejs=\"`validTime`\" pulumi-lang-dotnet=\"`ValidTime`\" pulumi-lang-go=\"`validTime`\" pulumi-lang-python=\"`valid_time`\" pulumi-lang-yaml=\"`validTime`\" pulumi-lang-java=\"`validTime`\"\u003e`valid_time`\u003c/span\u003e\nwill have to be manually terminated.  This value corresponds to a PostgreSQL\ndatetime. If omitted or the magic value `NULL` is used, \u003cspan pulumi-lang-nodejs=\"`validUntil`\" pulumi-lang-dotnet=\"`ValidUntil`\" pulumi-lang-go=\"`validUntil`\" pulumi-lang-python=\"`valid_until`\" pulumi-lang-yaml=\"`validUntil`\" pulumi-lang-java=\"`validUntil`\"\u003e`valid_until`\u003c/span\u003e will be\nset to \u003cspan pulumi-lang-nodejs=\"`infinity`\" pulumi-lang-dotnet=\"`Infinity`\" pulumi-lang-go=\"`infinity`\" pulumi-lang-python=\"`infinity`\" pulumi-lang-yaml=\"`infinity`\" pulumi-lang-java=\"`infinity`\"\u003e`infinity`\u003c/span\u003e.  Default is `NULL`, therefore \u003cspan pulumi-lang-nodejs=\"`infinity`\" pulumi-lang-dotnet=\"`Infinity`\" pulumi-lang-go=\"`infinity`\" pulumi-lang-python=\"`infinity`\" pulumi-lang-yaml=\"`infinity`\" pulumi-lang-java=\"`infinity`\"\u003e`infinity`\u003c/span\u003e.\n"}},"required":["name"],"inputProperties":{"assumeRole":{"type":"string","description":"Defines the role to switch to at login via [`SET ROLE`](https://www.postgresql.org/docs/current/sql-set-role.html).\n"},"bypassRowLevelSecurity":{"type":"boolean","description":"Defines whether a role bypasses every\nrow-level security (RLS) policy.  Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"connectionLimit":{"type":"integer","description":"If this role can log in, this specifies how\nmany concurrent connections the role can establish. `-1` (the default) means no\nlimit.\n"},"createDatabase":{"type":"boolean","description":"Defines a role's ability to execute `CREATE\nDATABASE`.  Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"createRole":{"type":"boolean","description":"Defines a role's ability to execute `CREATE ROLE`.\nA role with this privilege can also alter and drop other roles.  Default value\nis \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"encrypted":{"type":"string","deprecationMessage":"Rename PostgreSQL role resource attribute \"encrypted\" to \u003cspan pulumi-lang-nodejs=\"\"encryptedPassword\"\" pulumi-lang-dotnet=\"\"EncryptedPassword\"\" pulumi-lang-go=\"\"encryptedPassword\"\" pulumi-lang-python=\"\"encrypted_password\"\" pulumi-lang-yaml=\"\"encryptedPassword\"\" pulumi-lang-java=\"\"encryptedPassword\"\"\u003e\"encrypted_password\"\u003c/span\u003e"},"encryptedPassword":{"type":"boolean","description":"Defines whether the password is stored\nencrypted in the system catalogs.  Default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.  NOTE: this value\nis always set (to the conservative and safe value), but may interfere with the\nbehavior of\n[PostgreSQL's \u003cspan pulumi-lang-nodejs=\"`passwordEncryption`\" pulumi-lang-dotnet=\"`PasswordEncryption`\" pulumi-lang-go=\"`passwordEncryption`\" pulumi-lang-python=\"`password_encryption`\" pulumi-lang-yaml=\"`passwordEncryption`\" pulumi-lang-java=\"`passwordEncryption`\"\u003e`password_encryption`\u003c/span\u003e setting](https://www.postgresql.org/docs/current/static/runtime-config-connection.html#GUC-PASSWORD-ENCRYPTION).\n"},"idleInTransactionSessionTimeout":{"type":"integer","description":"Terminate any session with an open transaction that has been idle for longer than the specified duration in milliseconds"},"inherit":{"type":"boolean","description":"Defines whether a role \"inherits\" the privileges of\nroles it is a member of.  Default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"login":{"type":"boolean","description":"Defines whether role is allowed to log in.  Roles without\nthis attribute are useful for managing database privileges, but are not users\nin the usual sense of the word.  Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the role. Must be unique on the PostgreSQL\nserver instance where it is configured.\n"},"password":{"type":"string","description":"Sets the role's password. A password is only of use\nfor roles having the \u003cspan pulumi-lang-nodejs=\"`login`\" pulumi-lang-dotnet=\"`Login`\" pulumi-lang-go=\"`login`\" pulumi-lang-python=\"`login`\" pulumi-lang-yaml=\"`login`\" pulumi-lang-java=\"`login`\"\u003e`login`\u003c/span\u003e attribute set to true.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nSets the role's password without storing it in the state file.\nThis is useful for managing passwords securely. Must be used together with \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e.\n","secret":true},"passwordWoVersion":{"type":"string","description":"Prevents applies from updating the role password on every\napply unless the value changes. This version string should be updated whenever you want to\nchange the password specified in \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e. Must be used together with \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e.\n"},"replication":{"type":"boolean","description":"Defines whether a role is allowed to initiate\nstreaming replication or put the system in and out of backup mode.  Default\nvalue is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Defines list of roles which will be granted to this new role.\n"},"searchPaths":{"type":"array","items":{"type":"string"},"description":"Alters the search path of this new role. Note that\ndue to limitations in the implementation, values cannot contain the substring\n`\", \"`.\n"},"skipDropRole":{"type":"boolean","description":"When a PostgreSQL ROLE exists in multiple\ndatabases and the ROLE is dropped, the\n[cleanup of ownership of objects](https://www.postgresql.org/docs/current/static/role-removal.html)\nin each of the respective databases must occur before the ROLE can be dropped\nfrom the catalog.  Set this option to true when there are multiple databases\nin a PostgreSQL cluster using the same PostgreSQL ROLE for object ownership.\nThis is the third and final step taken when removing a ROLE from a database.\n"},"skipReassignOwned":{"type":"boolean","description":"When a PostgreSQL ROLE exists in multiple\ndatabases and the ROLE is dropped, a\n[`REASSIGN OWNED`](https://www.postgresql.org/docs/current/static/sql-reassign-owned.html) in\nmust be executed on each of the respective databases before the `DROP ROLE`\ncan be executed to drop the ROLE from the catalog.  This is the first and\nsecond steps taken when removing a ROLE from a database (the second step being\nan implicit\n[`DROP OWNED`](https://www.postgresql.org/docs/current/static/sql-drop-owned.html)).\n"},"statementTimeout":{"type":"integer","description":"Defines [\u003cspan pulumi-lang-nodejs=\"`statementTimeout`\" pulumi-lang-dotnet=\"`StatementTimeout`\" pulumi-lang-go=\"`statementTimeout`\" pulumi-lang-python=\"`statement_timeout`\" pulumi-lang-yaml=\"`statementTimeout`\" pulumi-lang-java=\"`statementTimeout`\"\u003e`statement_timeout`\u003c/span\u003e](https://www.postgresql.org/docs/current/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-STATEMENT) setting for this role which allows to abort any statement that takes more than the specified amount of time.\n"},"superuser":{"type":"boolean","description":"Defines whether the role is a \"superuser\", and\ntherefore can override all access restrictions within the database.  Default\nvalue is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"validUntil":{"type":"string","description":"Defines the date and time after which the role's\npassword is no longer valid.  Established connections past this \u003cspan pulumi-lang-nodejs=\"`validTime`\" pulumi-lang-dotnet=\"`ValidTime`\" pulumi-lang-go=\"`validTime`\" pulumi-lang-python=\"`valid_time`\" pulumi-lang-yaml=\"`validTime`\" pulumi-lang-java=\"`validTime`\"\u003e`valid_time`\u003c/span\u003e\nwill have to be manually terminated.  This value corresponds to a PostgreSQL\ndatetime. If omitted or the magic value `NULL` is used, \u003cspan pulumi-lang-nodejs=\"`validUntil`\" pulumi-lang-dotnet=\"`ValidUntil`\" pulumi-lang-go=\"`validUntil`\" pulumi-lang-python=\"`valid_until`\" pulumi-lang-yaml=\"`validUntil`\" pulumi-lang-java=\"`validUntil`\"\u003e`valid_until`\u003c/span\u003e will be\nset to \u003cspan pulumi-lang-nodejs=\"`infinity`\" pulumi-lang-dotnet=\"`Infinity`\" pulumi-lang-go=\"`infinity`\" pulumi-lang-python=\"`infinity`\" pulumi-lang-yaml=\"`infinity`\" pulumi-lang-java=\"`infinity`\"\u003e`infinity`\u003c/span\u003e.  Default is `NULL`, therefore \u003cspan pulumi-lang-nodejs=\"`infinity`\" pulumi-lang-dotnet=\"`Infinity`\" pulumi-lang-go=\"`infinity`\" pulumi-lang-python=\"`infinity`\" pulumi-lang-yaml=\"`infinity`\" pulumi-lang-java=\"`infinity`\"\u003e`infinity`\u003c/span\u003e.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Role resources.\n","properties":{"assumeRole":{"type":"string","description":"Defines the role to switch to at login via [`SET ROLE`](https://www.postgresql.org/docs/current/sql-set-role.html).\n"},"bypassRowLevelSecurity":{"type":"boolean","description":"Defines whether a role bypasses every\nrow-level security (RLS) policy.  Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"connectionLimit":{"type":"integer","description":"If this role can log in, this specifies how\nmany concurrent connections the role can establish. `-1` (the default) means no\nlimit.\n"},"createDatabase":{"type":"boolean","description":"Defines a role's ability to execute `CREATE\nDATABASE`.  Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"createRole":{"type":"boolean","description":"Defines a role's ability to execute `CREATE ROLE`.\nA role with this privilege can also alter and drop other roles.  Default value\nis \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"encrypted":{"type":"string","deprecationMessage":"Rename PostgreSQL role resource attribute \"encrypted\" to \u003cspan pulumi-lang-nodejs=\"\"encryptedPassword\"\" pulumi-lang-dotnet=\"\"EncryptedPassword\"\" pulumi-lang-go=\"\"encryptedPassword\"\" pulumi-lang-python=\"\"encrypted_password\"\" pulumi-lang-yaml=\"\"encryptedPassword\"\" pulumi-lang-java=\"\"encryptedPassword\"\"\u003e\"encrypted_password\"\u003c/span\u003e"},"encryptedPassword":{"type":"boolean","description":"Defines whether the password is stored\nencrypted in the system catalogs.  Default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.  NOTE: this value\nis always set (to the conservative and safe value), but may interfere with the\nbehavior of\n[PostgreSQL's \u003cspan pulumi-lang-nodejs=\"`passwordEncryption`\" pulumi-lang-dotnet=\"`PasswordEncryption`\" pulumi-lang-go=\"`passwordEncryption`\" pulumi-lang-python=\"`password_encryption`\" pulumi-lang-yaml=\"`passwordEncryption`\" pulumi-lang-java=\"`passwordEncryption`\"\u003e`password_encryption`\u003c/span\u003e setting](https://www.postgresql.org/docs/current/static/runtime-config-connection.html#GUC-PASSWORD-ENCRYPTION).\n"},"idleInTransactionSessionTimeout":{"type":"integer","description":"Terminate any session with an open transaction that has been idle for longer than the specified duration in milliseconds"},"inherit":{"type":"boolean","description":"Defines whether a role \"inherits\" the privileges of\nroles it is a member of.  Default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"login":{"type":"boolean","description":"Defines whether role is allowed to log in.  Roles without\nthis attribute are useful for managing database privileges, but are not users\nin the usual sense of the word.  Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the role. Must be unique on the PostgreSQL\nserver instance where it is configured.\n"},"password":{"type":"string","description":"Sets the role's password. A password is only of use\nfor roles having the \u003cspan pulumi-lang-nodejs=\"`login`\" pulumi-lang-dotnet=\"`Login`\" pulumi-lang-go=\"`login`\" pulumi-lang-python=\"`login`\" pulumi-lang-yaml=\"`login`\" pulumi-lang-java=\"`login`\"\u003e`login`\u003c/span\u003e attribute set to true.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nSets the role's password without storing it in the state file.\nThis is useful for managing passwords securely. Must be used together with \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e.\n","secret":true},"passwordWoVersion":{"type":"string","description":"Prevents applies from updating the role password on every\napply unless the value changes. This version string should be updated whenever you want to\nchange the password specified in \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e. Must be used together with \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e.\n"},"replication":{"type":"boolean","description":"Defines whether a role is allowed to initiate\nstreaming replication or put the system in and out of backup mode.  Default\nvalue is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Defines list of roles which will be granted to this new role.\n"},"searchPaths":{"type":"array","items":{"type":"string"},"description":"Alters the search path of this new role. Note that\ndue to limitations in the implementation, values cannot contain the substring\n`\", \"`.\n"},"skipDropRole":{"type":"boolean","description":"When a PostgreSQL ROLE exists in multiple\ndatabases and the ROLE is dropped, the\n[cleanup of ownership of objects](https://www.postgresql.org/docs/current/static/role-removal.html)\nin each of the respective databases must occur before the ROLE can be dropped\nfrom the catalog.  Set this option to true when there are multiple databases\nin a PostgreSQL cluster using the same PostgreSQL ROLE for object ownership.\nThis is the third and final step taken when removing a ROLE from a database.\n"},"skipReassignOwned":{"type":"boolean","description":"When a PostgreSQL ROLE exists in multiple\ndatabases and the ROLE is dropped, a\n[`REASSIGN OWNED`](https://www.postgresql.org/docs/current/static/sql-reassign-owned.html) in\nmust be executed on each of the respective databases before the `DROP ROLE`\ncan be executed to drop the ROLE from the catalog.  This is the first and\nsecond steps taken when removing a ROLE from a database (the second step being\nan implicit\n[`DROP OWNED`](https://www.postgresql.org/docs/current/static/sql-drop-owned.html)).\n"},"statementTimeout":{"type":"integer","description":"Defines [\u003cspan pulumi-lang-nodejs=\"`statementTimeout`\" pulumi-lang-dotnet=\"`StatementTimeout`\" pulumi-lang-go=\"`statementTimeout`\" pulumi-lang-python=\"`statement_timeout`\" pulumi-lang-yaml=\"`statementTimeout`\" pulumi-lang-java=\"`statementTimeout`\"\u003e`statement_timeout`\u003c/span\u003e](https://www.postgresql.org/docs/current/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-STATEMENT) setting for this role which allows to abort any statement that takes more than the specified amount of time.\n"},"superuser":{"type":"boolean","description":"Defines whether the role is a \"superuser\", and\ntherefore can override all access restrictions within the database.  Default\nvalue is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"validUntil":{"type":"string","description":"Defines the date and time after which the role's\npassword is no longer valid.  Established connections past this \u003cspan pulumi-lang-nodejs=\"`validTime`\" pulumi-lang-dotnet=\"`ValidTime`\" pulumi-lang-go=\"`validTime`\" pulumi-lang-python=\"`valid_time`\" pulumi-lang-yaml=\"`validTime`\" pulumi-lang-java=\"`validTime`\"\u003e`valid_time`\u003c/span\u003e\nwill have to be manually terminated.  This value corresponds to a PostgreSQL\ndatetime. If omitted or the magic value `NULL` is used, \u003cspan pulumi-lang-nodejs=\"`validUntil`\" pulumi-lang-dotnet=\"`ValidUntil`\" pulumi-lang-go=\"`validUntil`\" pulumi-lang-python=\"`valid_until`\" pulumi-lang-yaml=\"`validUntil`\" pulumi-lang-java=\"`validUntil`\"\u003e`valid_until`\u003c/span\u003e will be\nset to \u003cspan pulumi-lang-nodejs=\"`infinity`\" pulumi-lang-dotnet=\"`Infinity`\" pulumi-lang-go=\"`infinity`\" pulumi-lang-python=\"`infinity`\" pulumi-lang-yaml=\"`infinity`\" pulumi-lang-java=\"`infinity`\"\u003e`infinity`\u003c/span\u003e.  Default is `NULL`, therefore \u003cspan pulumi-lang-nodejs=\"`infinity`\" pulumi-lang-dotnet=\"`Infinity`\" pulumi-lang-go=\"`infinity`\" pulumi-lang-python=\"`infinity`\" pulumi-lang-yaml=\"`infinity`\" pulumi-lang-java=\"`infinity`\"\u003e`infinity`\u003c/span\u003e.\n"}},"type":"object"}},"postgresql:index/schema:Schema":{"properties":{"database":{"type":"string","description":"The DATABASE in which where this schema will be created. (Default: The database used by your \u003cspan pulumi-lang-nodejs=\"`provider`\" pulumi-lang-dotnet=\"`Provider`\" pulumi-lang-go=\"`provider`\" pulumi-lang-python=\"`provider`\" pulumi-lang-yaml=\"`provider`\" pulumi-lang-java=\"`provider`\"\u003e`provider`\u003c/span\u003e configuration)\n"},"dropCascade":{"type":"boolean","description":"When true, will also drop all the objects that are contained in the schema. (Default: false)\n"},"ifNotExists":{"type":"boolean","description":"When true, use the existing schema if it exists. (Default: true)\n"},"name":{"type":"string","description":"The name of the schema. Must be unique in the PostgreSQL\ndatabase instance where it is configured.\n"},"owner":{"type":"string","description":"The ROLE who owns the schema.\n"},"policies":{"type":"array","items":{"$ref":"#/types/postgresql:index/SchemaPolicy:SchemaPolicy"},"description":"Can be specified multiple times for each policy.  Each\npolicy block supports fields documented below.\n","deprecationMessage":"Use\u003cspan pulumi-lang-nodejs=\" postgresql.Grant \" pulumi-lang-dotnet=\" postgresql.Grant \" pulumi-lang-go=\" Grant \" pulumi-lang-python=\" Grant \" pulumi-lang-yaml=\" postgresql.Grant \" pulumi-lang-java=\" postgresql.Grant \"\u003e postgresql.Grant \u003c/span\u003eresource instead (with object_type=\"schema\")"}},"required":["database","name","owner","policies"],"inputProperties":{"database":{"type":"string","description":"The DATABASE in which where this schema will be created. (Default: The database used by your \u003cspan pulumi-lang-nodejs=\"`provider`\" pulumi-lang-dotnet=\"`Provider`\" pulumi-lang-go=\"`provider`\" pulumi-lang-python=\"`provider`\" pulumi-lang-yaml=\"`provider`\" pulumi-lang-java=\"`provider`\"\u003e`provider`\u003c/span\u003e configuration)\n","willReplaceOnChanges":true},"dropCascade":{"type":"boolean","description":"When true, will also drop all the objects that are contained in the schema. (Default: false)\n"},"ifNotExists":{"type":"boolean","description":"When true, use the existing schema if it exists. (Default: true)\n"},"name":{"type":"string","description":"The name of the schema. Must be unique in the PostgreSQL\ndatabase instance where it is configured.\n"},"owner":{"type":"string","description":"The ROLE who owns the schema.\n"},"policies":{"type":"array","items":{"$ref":"#/types/postgresql:index/SchemaPolicy:SchemaPolicy"},"description":"Can be specified multiple times for each policy.  Each\npolicy block supports fields documented below.\n","deprecationMessage":"Use\u003cspan pulumi-lang-nodejs=\" postgresql.Grant \" pulumi-lang-dotnet=\" postgresql.Grant \" pulumi-lang-go=\" Grant \" pulumi-lang-python=\" Grant \" pulumi-lang-yaml=\" postgresql.Grant \" pulumi-lang-java=\" postgresql.Grant \"\u003e postgresql.Grant \u003c/span\u003eresource instead (with object_type=\"schema\")"}},"stateInputs":{"description":"Input properties used for looking up and filtering Schema resources.\n","properties":{"database":{"type":"string","description":"The DATABASE in which where this schema will be created. (Default: The database used by your \u003cspan pulumi-lang-nodejs=\"`provider`\" pulumi-lang-dotnet=\"`Provider`\" pulumi-lang-go=\"`provider`\" pulumi-lang-python=\"`provider`\" pulumi-lang-yaml=\"`provider`\" pulumi-lang-java=\"`provider`\"\u003e`provider`\u003c/span\u003e configuration)\n","willReplaceOnChanges":true},"dropCascade":{"type":"boolean","description":"When true, will also drop all the objects that are contained in the schema. (Default: false)\n"},"ifNotExists":{"type":"boolean","description":"When true, use the existing schema if it exists. (Default: true)\n"},"name":{"type":"string","description":"The name of the schema. Must be unique in the PostgreSQL\ndatabase instance where it is configured.\n"},"owner":{"type":"string","description":"The ROLE who owns the schema.\n"},"policies":{"type":"array","items":{"$ref":"#/types/postgresql:index/SchemaPolicy:SchemaPolicy"},"description":"Can be specified multiple times for each policy.  Each\npolicy block supports fields documented below.\n","deprecationMessage":"Use\u003cspan pulumi-lang-nodejs=\" postgresql.Grant \" pulumi-lang-dotnet=\" postgresql.Grant \" pulumi-lang-go=\" Grant \" pulumi-lang-python=\" Grant \" pulumi-lang-yaml=\" postgresql.Grant \" pulumi-lang-java=\" postgresql.Grant \"\u003e postgresql.Grant \u003c/span\u003eresource instead (with object_type=\"schema\")"}},"type":"object"}},"postgresql:index/securityLabel:SecurityLabel":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.SecurityLabel`\" pulumi-lang-dotnet=\"`postgresql.SecurityLabel`\" pulumi-lang-go=\"`SecurityLabel`\" pulumi-lang-python=\"`SecurityLabel`\" pulumi-lang-yaml=\"`postgresql.SecurityLabel`\" pulumi-lang-java=\"`postgresql.SecurityLabel`\"\u003e`postgresql.SecurityLabel`\u003c/span\u003e` resource creates and manages security labels.\n\nSee [PostgreSQL documentation](https://www.postgresql.org/docs/current/sql-security-label.html)\n\n\u003e **Note:** This resource needs Postgresql version 11 or above.\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst myRole = new postgresql.Role(\"my_role\", {\n    name: \"my_role\",\n    login: true,\n});\nconst workload = new postgresql.SecurityLabel(\"workload\", {\n    objectType: \"role\",\n    objectName: myRole.name,\n    labelProvider: \"pgaadauth\",\n    label: \"aadauth,oid=00000000-0000-0000-0000-000000000000,type=service\",\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nmy_role = postgresql.Role(\"my_role\",\n    name=\"my_role\",\n    login=True)\nworkload = postgresql.SecurityLabel(\"workload\",\n    object_type=\"role\",\n    object_name=my_role.name,\n    label_provider=\"pgaadauth\",\n    label=\"aadauth,oid=00000000-0000-0000-0000-000000000000,type=service\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myRole = new PostgreSql.Role(\"my_role\", new()\n    {\n        Name = \"my_role\",\n        Login = true,\n    });\n\n    var workload = new PostgreSql.SecurityLabel(\"workload\", new()\n    {\n        ObjectType = \"role\",\n        ObjectName = myRole.Name,\n        LabelProvider = \"pgaadauth\",\n        Label = \"aadauth,oid=00000000-0000-0000-0000-000000000000,type=service\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyRole, err := postgresql.NewRole(ctx, \"my_role\", \u0026postgresql.RoleArgs{\n\t\t\tName:  pulumi.String(\"my_role\"),\n\t\t\tLogin: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewSecurityLabel(ctx, \"workload\", \u0026postgresql.SecurityLabelArgs{\n\t\t\tObjectType:    pulumi.String(\"role\"),\n\t\t\tObjectName:    myRole.Name,\n\t\t\tLabelProvider: pulumi.String(\"pgaadauth\"),\n\t\t\tLabel:         pulumi.String(\"aadauth,oid=00000000-0000-0000-0000-000000000000,type=service\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.postgresql.Role;\nimport com.pulumi.postgresql.RoleArgs;\nimport com.pulumi.postgresql.SecurityLabel;\nimport com.pulumi.postgresql.SecurityLabelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myRole = new Role(\"myRole\", RoleArgs.builder()\n            .name(\"my_role\")\n            .login(true)\n            .build());\n\n        var workload = new SecurityLabel(\"workload\", SecurityLabelArgs.builder()\n            .objectType(\"role\")\n            .objectName(myRole.name())\n            .labelProvider(\"pgaadauth\")\n            .label(\"aadauth,oid=00000000-0000-0000-0000-000000000000,type=service\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myRole:\n    type: postgresql:Role\n    name: my_role\n    properties:\n      name: my_role\n      login: true\n  workload:\n    type: postgresql:SecurityLabel\n    properties:\n      objectType: role\n      objectName: ${myRole.name}\n      labelProvider: pgaadauth\n      label: aadauth,oid=00000000-0000-0000-0000-000000000000,type=service\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSecurity label is an attribute that can be added multiple times, so no import is needed, simply apply again.\n\n","properties":{"label":{"type":"string","description":"The value of the security label.\n"},"labelProvider":{"type":"string","description":"The name of the provider with which this label is to be associated.\n"},"objectName":{"type":"string","description":"The name of the object to be labeled. Names of objects that reside in schemas (tables, functions, etc.) can be schema-qualified.\n"},"objectType":{"type":"string","description":"The PostgreSQL object type to apply this security label to.\n"}},"required":["label","labelProvider","objectName","objectType"],"inputProperties":{"label":{"type":"string","description":"The value of the security label.\n"},"labelProvider":{"type":"string","description":"The name of the provider with which this label is to be associated.\n","willReplaceOnChanges":true},"objectName":{"type":"string","description":"The name of the object to be labeled. Names of objects that reside in schemas (tables, functions, etc.) can be schema-qualified.\n","willReplaceOnChanges":true},"objectType":{"type":"string","description":"The PostgreSQL object type to apply this security label to.\n","willReplaceOnChanges":true}},"requiredInputs":["label","labelProvider","objectName","objectType"],"stateInputs":{"description":"Input properties used for looking up and filtering SecurityLabel resources.\n","properties":{"label":{"type":"string","description":"The value of the security label.\n"},"labelProvider":{"type":"string","description":"The name of the provider with which this label is to be associated.\n","willReplaceOnChanges":true},"objectName":{"type":"string","description":"The name of the object to be labeled. Names of objects that reside in schemas (tables, functions, etc.) can be schema-qualified.\n","willReplaceOnChanges":true},"objectType":{"type":"string","description":"The PostgreSQL object type to apply this security label to.\n","willReplaceOnChanges":true}},"type":"object"}},"postgresql:index/server:Server":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.Server`\" pulumi-lang-dotnet=\"`postgresql.Server`\" pulumi-lang-go=\"`Server`\" pulumi-lang-python=\"`Server`\" pulumi-lang-yaml=\"`postgresql.Server`\" pulumi-lang-java=\"`postgresql.Server`\"\u003e`postgresql.Server`\u003c/span\u003e` resource creates and manages a foreign server on a PostgreSQL server.\n\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst extPostgresFdw = new postgresql.Extension(\"ext_postgres_fdw\", {name: \"postgres_fdw\"});\nconst myserverPostgres = new postgresql.Server(\"myserver_postgres\", {\n    serverName: \"myserver_postgres\",\n    fdwName: \"postgres_fdw\",\n    options: {\n        host: \"foo\",\n        dbname: \"foodb\",\n        port: \"5432\",\n    },\n}, {\n    dependsOn: [extPostgresFdw],\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\next_postgres_fdw = postgresql.Extension(\"ext_postgres_fdw\", name=\"postgres_fdw\")\nmyserver_postgres = postgresql.Server(\"myserver_postgres\",\n    server_name=\"myserver_postgres\",\n    fdw_name=\"postgres_fdw\",\n    options={\n        \"host\": \"foo\",\n        \"dbname\": \"foodb\",\n        \"port\": \"5432\",\n    },\n    opts = pulumi.ResourceOptions(depends_on=[ext_postgres_fdw]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var extPostgresFdw = new PostgreSql.Extension(\"ext_postgres_fdw\", new()\n    {\n        Name = \"postgres_fdw\",\n    });\n\n    var myserverPostgres = new PostgreSql.Server(\"myserver_postgres\", new()\n    {\n        ServerName = \"myserver_postgres\",\n        FdwName = \"postgres_fdw\",\n        Options = \n        {\n            { \"host\", \"foo\" },\n            { \"dbname\", \"foodb\" },\n            { \"port\", \"5432\" },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            extPostgresFdw,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\textPostgresFdw, err := postgresql.NewExtension(ctx, \"ext_postgres_fdw\", \u0026postgresql.ExtensionArgs{\n\t\t\tName: pulumi.String(\"postgres_fdw\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewServer(ctx, \"myserver_postgres\", \u0026postgresql.ServerArgs{\n\t\t\tServerName: pulumi.String(\"myserver_postgres\"),\n\t\t\tFdwName:    pulumi.String(\"postgres_fdw\"),\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"host\":   pulumi.String(\"foo\"),\n\t\t\t\t\"dbname\": pulumi.String(\"foodb\"),\n\t\t\t\t\"port\":   pulumi.String(\"5432\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\textPostgresFdw,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.postgresql.Extension;\nimport com.pulumi.postgresql.ExtensionArgs;\nimport com.pulumi.postgresql.Server;\nimport com.pulumi.postgresql.ServerArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var extPostgresFdw = new Extension(\"extPostgresFdw\", ExtensionArgs.builder()\n            .name(\"postgres_fdw\")\n            .build());\n\n        var myserverPostgres = new Server(\"myserverPostgres\", ServerArgs.builder()\n            .serverName(\"myserver_postgres\")\n            .fdwName(\"postgres_fdw\")\n            .options(Map.ofEntries(\n                Map.entry(\"host\", \"foo\"),\n                Map.entry(\"dbname\", \"foodb\"),\n                Map.entry(\"port\", \"5432\")\n            ))\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(extPostgresFdw)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  extPostgresFdw:\n    type: postgresql:Extension\n    name: ext_postgres_fdw\n    properties:\n      name: postgres_fdw\n  myserverPostgres:\n    type: postgresql:Server\n    name: myserver_postgres\n    properties:\n      serverName: myserver_postgres\n      fdwName: postgres_fdw\n      options:\n        host: foo\n        dbname: foodb\n        port: '5432'\n    options:\n      dependsOn:\n        - ${extPostgresFdw}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst extFileFdw = new postgresql.Extension(\"ext_file_fdw\", {name: \"file_fdw\"});\nconst myserverFile = new postgresql.Server(\"myserver_file\", {\n    serverName: \"myserver_file\",\n    fdwName: \"file_fdw\",\n}, {\n    dependsOn: [extFileFdw],\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\next_file_fdw = postgresql.Extension(\"ext_file_fdw\", name=\"file_fdw\")\nmyserver_file = postgresql.Server(\"myserver_file\",\n    server_name=\"myserver_file\",\n    fdw_name=\"file_fdw\",\n    opts = pulumi.ResourceOptions(depends_on=[ext_file_fdw]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var extFileFdw = new PostgreSql.Extension(\"ext_file_fdw\", new()\n    {\n        Name = \"file_fdw\",\n    });\n\n    var myserverFile = new PostgreSql.Server(\"myserver_file\", new()\n    {\n        ServerName = \"myserver_file\",\n        FdwName = \"file_fdw\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            extFileFdw,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\textFileFdw, err := postgresql.NewExtension(ctx, \"ext_file_fdw\", \u0026postgresql.ExtensionArgs{\n\t\t\tName: pulumi.String(\"file_fdw\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewServer(ctx, \"myserver_file\", \u0026postgresql.ServerArgs{\n\t\t\tServerName: pulumi.String(\"myserver_file\"),\n\t\t\tFdwName:    pulumi.String(\"file_fdw\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\textFileFdw,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.postgresql.Extension;\nimport com.pulumi.postgresql.ExtensionArgs;\nimport com.pulumi.postgresql.Server;\nimport com.pulumi.postgresql.ServerArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var extFileFdw = new Extension(\"extFileFdw\", ExtensionArgs.builder()\n            .name(\"file_fdw\")\n            .build());\n\n        var myserverFile = new Server(\"myserverFile\", ServerArgs.builder()\n            .serverName(\"myserver_file\")\n            .fdwName(\"file_fdw\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(extFileFdw)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  extFileFdw:\n    type: postgresql:Extension\n    name: ext_file_fdw\n    properties:\n      name: file_fdw\n  myserverFile:\n    type: postgresql:Server\n    name: myserver_file\n    properties:\n      serverName: myserver_file\n      fdwName: file_fdw\n    options:\n      dependsOn:\n        - ${extFileFdw}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"dropCascade":{"type":"boolean","description":"When true, will drop objects that depend on the server (such as user mappings), and in turn all objects that depend on those objects . (Default: false)\n"},"fdwName":{"type":"string","description":"The name of the foreign-data wrapper that manages the server.\nChanging this value\nwill force the creation of a new resource as this value can only be set\nwhen the foreign server is created.\n"},"options":{"type":"object","additionalProperties":{"type":"string"},"description":"This clause specifies the options for the server. The options typically define the connection details of the server, but the actual names and values are dependent on the server's foreign-data wrapper.\n"},"serverName":{"type":"string","description":"The name of the foreign server to be created.\n"},"serverOwner":{"type":"string","description":"By default, the user who defines the server becomes its owner. Set this value to configure the new owner of the foreign server.\n"},"serverType":{"type":"string","description":"Optional server type, potentially useful to foreign-data wrappers.\nChanging this value\nwill force the creation of a new resource as this value can only be set\nwhen the foreign server is created.\n"},"serverVersion":{"type":"string","description":"Optional server version, potentially useful to foreign-data wrappers.\n"}},"required":["fdwName","serverName","serverOwner"],"inputProperties":{"dropCascade":{"type":"boolean","description":"When true, will drop objects that depend on the server (such as user mappings), and in turn all objects that depend on those objects . (Default: false)\n"},"fdwName":{"type":"string","description":"The name of the foreign-data wrapper that manages the server.\nChanging this value\nwill force the creation of a new resource as this value can only be set\nwhen the foreign server is created.\n","willReplaceOnChanges":true},"options":{"type":"object","additionalProperties":{"type":"string"},"description":"This clause specifies the options for the server. The options typically define the connection details of the server, but the actual names and values are dependent on the server's foreign-data wrapper.\n"},"serverName":{"type":"string","description":"The name of the foreign server to be created.\n"},"serverOwner":{"type":"string","description":"By default, the user who defines the server becomes its owner. Set this value to configure the new owner of the foreign server.\n"},"serverType":{"type":"string","description":"Optional server type, potentially useful to foreign-data wrappers.\nChanging this value\nwill force the creation of a new resource as this value can only be set\nwhen the foreign server is created.\n","willReplaceOnChanges":true},"serverVersion":{"type":"string","description":"Optional server version, potentially useful to foreign-data wrappers.\n"}},"requiredInputs":["fdwName","serverName"],"stateInputs":{"description":"Input properties used for looking up and filtering Server resources.\n","properties":{"dropCascade":{"type":"boolean","description":"When true, will drop objects that depend on the server (such as user mappings), and in turn all objects that depend on those objects . (Default: false)\n"},"fdwName":{"type":"string","description":"The name of the foreign-data wrapper that manages the server.\nChanging this value\nwill force the creation of a new resource as this value can only be set\nwhen the foreign server is created.\n","willReplaceOnChanges":true},"options":{"type":"object","additionalProperties":{"type":"string"},"description":"This clause specifies the options for the server. The options typically define the connection details of the server, but the actual names and values are dependent on the server's foreign-data wrapper.\n"},"serverName":{"type":"string","description":"The name of the foreign server to be created.\n"},"serverOwner":{"type":"string","description":"By default, the user who defines the server becomes its owner. Set this value to configure the new owner of the foreign server.\n"},"serverType":{"type":"string","description":"Optional server type, potentially useful to foreign-data wrappers.\nChanging this value\nwill force the creation of a new resource as this value can only be set\nwhen the foreign server is created.\n","willReplaceOnChanges":true},"serverVersion":{"type":"string","description":"Optional server version, potentially useful to foreign-data wrappers.\n"}},"type":"object"}},"postgresql:index/subscription:Subscription":{"description":"The \u003cspan pulumi-lang-nodejs=\"`postgresql.Subscription`\" pulumi-lang-dotnet=\"`postgresql.Subscription`\" pulumi-lang-go=\"`Subscription`\" pulumi-lang-python=\"`Subscription`\" pulumi-lang-yaml=\"`postgresql.Subscription`\" pulumi-lang-java=\"`postgresql.Subscription`\"\u003e`postgresql.Subscription`\u003c/span\u003e resource creates and manages a publication on a PostgreSQL\nserver.\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst subscription = new postgresql.Subscription(\"subscription\", {\n    name: \"subscription\",\n    conninfo: \"host=localhost port=5432 dbname=mydb user=postgres password=postgres\",\n    publications: [\"publication\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nsubscription = postgresql.Subscription(\"subscription\",\n    name=\"subscription\",\n    conninfo=\"host=localhost port=5432 dbname=mydb user=postgres password=postgres\",\n    publications=[\"publication\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var subscription = new PostgreSql.Subscription(\"subscription\", new()\n    {\n        Name = \"subscription\",\n        Conninfo = \"host=localhost port=5432 dbname=mydb user=postgres password=postgres\",\n        Publications = new[]\n        {\n            \"publication\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.NewSubscription(ctx, \"subscription\", \u0026postgresql.SubscriptionArgs{\n\t\t\tName:     pulumi.String(\"subscription\"),\n\t\t\tConninfo: pulumi.String(\"host=localhost port=5432 dbname=mydb user=postgres password=postgres\"),\n\t\t\tPublications: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"publication\"),\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.postgresql.Subscription;\nimport com.pulumi.postgresql.SubscriptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 subscription = new Subscription(\"subscription\", SubscriptionArgs.builder()\n            .name(\"subscription\")\n            .conninfo(\"host=localhost port=5432 dbname=mydb user=postgres password=postgres\")\n            .publications(\"publication\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  subscription:\n    type: postgresql:Subscription\n    properties:\n      name: subscription\n      conninfo: host=localhost port=5432 dbname=mydb user=postgres password=postgres\n      publications:\n        - publication\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Postgres documentation\n\n- https://www.postgresql.org/docs/current/sql-createsubscription.html\n","properties":{"conninfo":{"type":"string","description":"The connection string to the publisher. It should follow the [keyword/value format](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING)\n","secret":true},"createSlot":{"type":"boolean","description":"Specifies whether the command should create the replication slot on the publisher. Default behavior is true\n"},"database":{"type":"string","description":"Which database to create the subscription on. Defaults to provider database.\n"},"name":{"type":"string","description":"The name of the publication.\n"},"publications":{"type":"array","items":{"type":"string"},"description":"Names of the publications on the publisher to subscribe to\n"},"slotName":{"type":"string","description":"Name of the replication slot to use. The default behavior is to use the name of the subscription for the slot name\n"}},"required":["conninfo","database","name","publications"],"inputProperties":{"conninfo":{"type":"string","description":"The connection string to the publisher. It should follow the [keyword/value format](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING)\n","secret":true,"willReplaceOnChanges":true},"createSlot":{"type":"boolean","description":"Specifies whether the command should create the replication slot on the publisher. Default behavior is true\n","willReplaceOnChanges":true},"database":{"type":"string","description":"Which database to create the subscription on. Defaults to provider database.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the publication.\n","willReplaceOnChanges":true},"publications":{"type":"array","items":{"type":"string"},"description":"Names of the publications on the publisher to subscribe to\n","willReplaceOnChanges":true},"slotName":{"type":"string","description":"Name of the replication slot to use. The default behavior is to use the name of the subscription for the slot name\n","willReplaceOnChanges":true}},"requiredInputs":["conninfo","publications"],"stateInputs":{"description":"Input properties used for looking up and filtering Subscription resources.\n","properties":{"conninfo":{"type":"string","description":"The connection string to the publisher. It should follow the [keyword/value format](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING)\n","secret":true,"willReplaceOnChanges":true},"createSlot":{"type":"boolean","description":"Specifies whether the command should create the replication slot on the publisher. Default behavior is true\n","willReplaceOnChanges":true},"database":{"type":"string","description":"Which database to create the subscription on. Defaults to provider database.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the publication.\n","willReplaceOnChanges":true},"publications":{"type":"array","items":{"type":"string"},"description":"Names of the publications on the publisher to subscribe to\n","willReplaceOnChanges":true},"slotName":{"type":"string","description":"Name of the replication slot to use. The default behavior is to use the name of the subscription for the slot name\n","willReplaceOnChanges":true}},"type":"object"}},"postgresql:index/userMapping:UserMapping":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.UserMapping`\" pulumi-lang-dotnet=\"`postgresql.UserMapping`\" pulumi-lang-go=\"`UserMapping`\" pulumi-lang-python=\"`UserMapping`\" pulumi-lang-yaml=\"`postgresql.UserMapping`\" pulumi-lang-java=\"`postgresql.UserMapping`\"\u003e`postgresql.UserMapping`\u003c/span\u003e` resource creates and manages a user mapping on a PostgreSQL server.\n\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst extPostgresFdw = new postgresql.Extension(\"ext_postgres_fdw\", {name: \"postgres_fdw\"});\nconst myserverPostgres = new postgresql.Server(\"myserver_postgres\", {\n    serverName: \"myserver_postgres\",\n    fdwName: \"postgres_fdw\",\n    options: {\n        host: \"foo\",\n        dbname: \"foodb\",\n        port: \"5432\",\n    },\n}, {\n    dependsOn: [extPostgresFdw],\n});\nconst remote = new postgresql.Role(\"remote\", {name: \"remote\"});\nconst remoteUserMapping = new postgresql.UserMapping(\"remote\", {\n    serverName: myserverPostgres.serverName,\n    userName: remote.name,\n    options: {\n        user: \"admin\",\n        password: \"pass\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\next_postgres_fdw = postgresql.Extension(\"ext_postgres_fdw\", name=\"postgres_fdw\")\nmyserver_postgres = postgresql.Server(\"myserver_postgres\",\n    server_name=\"myserver_postgres\",\n    fdw_name=\"postgres_fdw\",\n    options={\n        \"host\": \"foo\",\n        \"dbname\": \"foodb\",\n        \"port\": \"5432\",\n    },\n    opts = pulumi.ResourceOptions(depends_on=[ext_postgres_fdw]))\nremote = postgresql.Role(\"remote\", name=\"remote\")\nremote_user_mapping = postgresql.UserMapping(\"remote\",\n    server_name=myserver_postgres.server_name,\n    user_name=remote.name,\n    options={\n        \"user\": \"admin\",\n        \"password\": \"pass\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var extPostgresFdw = new PostgreSql.Extension(\"ext_postgres_fdw\", new()\n    {\n        Name = \"postgres_fdw\",\n    });\n\n    var myserverPostgres = new PostgreSql.Server(\"myserver_postgres\", new()\n    {\n        ServerName = \"myserver_postgres\",\n        FdwName = \"postgres_fdw\",\n        Options = \n        {\n            { \"host\", \"foo\" },\n            { \"dbname\", \"foodb\" },\n            { \"port\", \"5432\" },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            extPostgresFdw,\n        },\n    });\n\n    var remote = new PostgreSql.Role(\"remote\", new()\n    {\n        Name = \"remote\",\n    });\n\n    var remoteUserMapping = new PostgreSql.UserMapping(\"remote\", new()\n    {\n        ServerName = myserverPostgres.ServerName,\n        UserName = remote.Name,\n        Options = \n        {\n            { \"user\", \"admin\" },\n            { \"password\", \"pass\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\textPostgresFdw, err := postgresql.NewExtension(ctx, \"ext_postgres_fdw\", \u0026postgresql.ExtensionArgs{\n\t\t\tName: pulumi.String(\"postgres_fdw\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyserverPostgres, err := postgresql.NewServer(ctx, \"myserver_postgres\", \u0026postgresql.ServerArgs{\n\t\t\tServerName: pulumi.String(\"myserver_postgres\"),\n\t\t\tFdwName:    pulumi.String(\"postgres_fdw\"),\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"host\":   pulumi.String(\"foo\"),\n\t\t\t\t\"dbname\": pulumi.String(\"foodb\"),\n\t\t\t\t\"port\":   pulumi.String(\"5432\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\textPostgresFdw,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tremote, err := postgresql.NewRole(ctx, \"remote\", \u0026postgresql.RoleArgs{\n\t\t\tName: pulumi.String(\"remote\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewUserMapping(ctx, \"remote\", \u0026postgresql.UserMappingArgs{\n\t\t\tServerName: myserverPostgres.ServerName,\n\t\t\tUserName:   remote.Name,\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"user\":     pulumi.String(\"admin\"),\n\t\t\t\t\"password\": pulumi.String(\"pass\"),\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.postgresql.Extension;\nimport com.pulumi.postgresql.ExtensionArgs;\nimport com.pulumi.postgresql.Server;\nimport com.pulumi.postgresql.ServerArgs;\nimport com.pulumi.postgresql.Role;\nimport com.pulumi.postgresql.RoleArgs;\nimport com.pulumi.postgresql.UserMapping;\nimport com.pulumi.postgresql.UserMappingArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var extPostgresFdw = new Extension(\"extPostgresFdw\", ExtensionArgs.builder()\n            .name(\"postgres_fdw\")\n            .build());\n\n        var myserverPostgres = new Server(\"myserverPostgres\", ServerArgs.builder()\n            .serverName(\"myserver_postgres\")\n            .fdwName(\"postgres_fdw\")\n            .options(Map.ofEntries(\n                Map.entry(\"host\", \"foo\"),\n                Map.entry(\"dbname\", \"foodb\"),\n                Map.entry(\"port\", \"5432\")\n            ))\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(extPostgresFdw)\n                .build());\n\n        var remote = new Role(\"remote\", RoleArgs.builder()\n            .name(\"remote\")\n            .build());\n\n        var remoteUserMapping = new UserMapping(\"remoteUserMapping\", UserMappingArgs.builder()\n            .serverName(myserverPostgres.serverName())\n            .userName(remote.name())\n            .options(Map.ofEntries(\n                Map.entry(\"user\", \"admin\"),\n                Map.entry(\"password\", \"pass\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  extPostgresFdw:\n    type: postgresql:Extension\n    name: ext_postgres_fdw\n    properties:\n      name: postgres_fdw\n  myserverPostgres:\n    type: postgresql:Server\n    name: myserver_postgres\n    properties:\n      serverName: myserver_postgres\n      fdwName: postgres_fdw\n      options:\n        host: foo\n        dbname: foodb\n        port: '5432'\n    options:\n      dependsOn:\n        - ${extPostgresFdw}\n  remote:\n    type: postgresql:Role\n    properties:\n      name: remote\n  remoteUserMapping:\n    type: postgresql:UserMapping\n    name: remote\n    properties:\n      serverName: ${myserverPostgres.serverName}\n      userName: ${remote.name}\n      options:\n        user: admin\n        password: pass\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"options":{"type":"object","additionalProperties":{"type":"string"},"description":"This clause specifies the options of the user mapping. The options typically define the actual user name and password of the mapping. Option names must be unique. The allowed option names and values are specific to the server's foreign-data wrapper.\n"},"serverName":{"type":"string","description":"The name of an existing server for which the user mapping is to be created.\nChanging this value\nwill force the creation of a new resource as this value can only be set\nwhen the user mapping is created.\n"},"userName":{"type":"string","description":"The name of an existing user that is mapped to foreign server. CURRENT_ROLE, CURRENT_USER, and USER match the name of the current user. When PUBLIC is specified, a so-called public mapping is created that is used when no user-specific mapping is applicable.\nChanging this value\nwill force the creation of a new resource as this value can only be set\nwhen the user mapping is created.\n"}},"required":["serverName","userName"],"inputProperties":{"options":{"type":"object","additionalProperties":{"type":"string"},"description":"This clause specifies the options of the user mapping. The options typically define the actual user name and password of the mapping. Option names must be unique. The allowed option names and values are specific to the server's foreign-data wrapper.\n"},"serverName":{"type":"string","description":"The name of an existing server for which the user mapping is to be created.\nChanging this value\nwill force the creation of a new resource as this value can only be set\nwhen the user mapping is created.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The name of an existing user that is mapped to foreign server. CURRENT_ROLE, CURRENT_USER, and USER match the name of the current user. When PUBLIC is specified, a so-called public mapping is created that is used when no user-specific mapping is applicable.\nChanging this value\nwill force the creation of a new resource as this value can only be set\nwhen the user mapping is created.\n","willReplaceOnChanges":true}},"requiredInputs":["serverName","userName"],"stateInputs":{"description":"Input properties used for looking up and filtering UserMapping resources.\n","properties":{"options":{"type":"object","additionalProperties":{"type":"string"},"description":"This clause specifies the options of the user mapping. The options typically define the actual user name and password of the mapping. Option names must be unique. The allowed option names and values are specific to the server's foreign-data wrapper.\n"},"serverName":{"type":"string","description":"The name of an existing server for which the user mapping is to be created.\nChanging this value\nwill force the creation of a new resource as this value can only be set\nwhen the user mapping is created.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The name of an existing user that is mapped to foreign server. CURRENT_ROLE, CURRENT_USER, and USER match the name of the current user. When PUBLIC is specified, a so-called public mapping is created that is used when no user-specific mapping is applicable.\nChanging this value\nwill force the creation of a new resource as this value can only be set\nwhen the user mapping is created.\n","willReplaceOnChanges":true}},"type":"object"}}},"functions":{"postgresql:index/getSchemas:getSchemas":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.getSchemas`\" pulumi-lang-dotnet=\"`postgresql.getSchemas`\" pulumi-lang-go=\"`getSchemas`\" pulumi-lang-python=\"`get_schemas`\" pulumi-lang-yaml=\"`postgresql.getSchemas`\" pulumi-lang-java=\"`postgresql.getSchemas`\"\u003e`postgresql.getSchemas`\u003c/span\u003e` data source retrieves a list of schema names from a specified PostgreSQL database.\n\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst mySchemas = postgresql.getSchemas({\n    database: \"my_database\",\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nmy_schemas = postgresql.get_schemas(database=\"my_database\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mySchemas = PostgreSql.GetSchemas.Invoke(new()\n    {\n        Database = \"my_database\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.GetSchemas(ctx, \u0026postgresql.GetSchemasArgs{\n\t\t\tDatabase: \"my_database\",\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.postgresql.PostgresqlFunctions;\nimport com.pulumi.postgresql.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 mySchemas = PostgresqlFunctions.getSchemas(GetSchemasArgs.builder()\n            .database(\"my_database\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  mySchemas:\n    fn::invoke:\n      function: postgresql:getSchemas\n      arguments:\n        database: my_database\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSchemas.\n","properties":{"database":{"type":"string","description":"The PostgreSQL database which will be queried for schema names.\n","willReplaceOnChanges":true},"includeSystemSchemas":{"type":"boolean","description":"Determines whether to include system schemas (pg_ prefix and information_schema). 'public' will always be included. Defaults to `\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e`.\n"},"likeAllPatterns":{"type":"array","items":{"type":"string"},"description":"List of expressions which will be pattern matched in the query using the PostgreSQL ``LIKE ALL`` operators.\n"},"likeAnyPatterns":{"type":"array","items":{"type":"string"},"description":"List of expressions which will be pattern matched in the query using the PostgreSQL ``LIKE ANY`` operators.\n"},"notLikeAllPatterns":{"type":"array","items":{"type":"string"},"description":"List of expressions which will be pattern matched in the query using the PostgreSQL ``NOT LIKE ALL`` operators.\n"},"regexPattern":{"type":"string","description":"Expression which will be pattern matched in the query using the PostgreSQL ``~`` (regular expression match) operator.\n\nNote that all optional arguments can be used in conjunction.\n"}},"type":"object","required":["database"]},"outputs":{"description":"A collection of values returned by getSchemas.\n","properties":{"database":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"includeSystemSchemas":{"type":"boolean"},"likeAllPatterns":{"items":{"type":"string"},"type":"array"},"likeAnyPatterns":{"items":{"type":"string"},"type":"array"},"notLikeAllPatterns":{"items":{"type":"string"},"type":"array"},"regexPattern":{"type":"string"},"schemas":{"description":"A list of full names of found schemas.\n","items":{"type":"string"},"type":"array"}},"required":["database","schemas","id"],"type":"object"}},"postgresql:index/getSequences:getSequences":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.getSequences`\" pulumi-lang-dotnet=\"`postgresql.getSequences`\" pulumi-lang-go=\"`getSequences`\" pulumi-lang-python=\"`get_sequences`\" pulumi-lang-yaml=\"`postgresql.getSequences`\" pulumi-lang-java=\"`postgresql.getSequences`\"\u003e`postgresql.getSequences`\u003c/span\u003e` data source retrieves a list of sequence names from a specified PostgreSQL database.\n\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst mySequences = postgresql.getSequences({\n    database: \"my_database\",\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nmy_sequences = postgresql.get_sequences(database=\"my_database\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mySequences = PostgreSql.GetSequences.Invoke(new()\n    {\n        Database = \"my_database\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.GetSequences(ctx, \u0026postgresql.GetSequencesArgs{\n\t\t\tDatabase: \"my_database\",\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.postgresql.PostgresqlFunctions;\nimport com.pulumi.postgresql.inputs.GetSequencesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var mySequences = PostgresqlFunctions.getSequences(GetSequencesArgs.builder()\n            .database(\"my_database\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  mySequences:\n    fn::invoke:\n      function: postgresql:getSequences\n      arguments:\n        database: my_database\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSequences.\n","properties":{"database":{"type":"string","description":"The PostgreSQL database which will be queried for sequence names.\n","willReplaceOnChanges":true},"likeAllPatterns":{"type":"array","items":{"type":"string"},"description":"List of expressions which will be pattern matched against sequence names in the query using the PostgreSQL ``LIKE ALL`` operators.\n"},"likeAnyPatterns":{"type":"array","items":{"type":"string"},"description":"List of expressions which will be pattern matched against sequence names in the query using the PostgreSQL ``LIKE ANY`` operators.\n"},"notLikeAllPatterns":{"type":"array","items":{"type":"string"},"description":"List of expressions which will be pattern matched against sequence names in the query using the PostgreSQL ``NOT LIKE ALL`` operators.\n"},"regexPattern":{"type":"string","description":"Expression which will be pattern matched against sequence names in the query using the PostgreSQL ``~`` (regular expression match) operator.\n\nNote that all optional arguments can be used in conjunction.\n"},"schemas":{"type":"array","items":{"type":"string"},"description":"List of PostgreSQL schema(s) which will be queried for sequence names. Queries all schemas in the database by default.\n"}},"type":"object","required":["database"]},"outputs":{"description":"A collection of values returned by getSequences.\n","properties":{"database":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"likeAllPatterns":{"items":{"type":"string"},"type":"array"},"likeAnyPatterns":{"items":{"type":"string"},"type":"array"},"notLikeAllPatterns":{"items":{"type":"string"},"type":"array"},"regexPattern":{"type":"string"},"schemas":{"items":{"type":"string"},"type":"array"},"sequences":{"description":"A list of PostgreSQL sequences retrieved by this data source. Each sequence consists of the fields documented below.\n___\n","items":{"$ref":"#/types/postgresql:index/getSequencesSequence:getSequencesSequence"},"type":"array"}},"required":["database","sequences","id"],"type":"object"}},"postgresql:index/getTables:getTables":{"description":"The `\u003cspan pulumi-lang-nodejs=\"`postgresql.getTables`\" pulumi-lang-dotnet=\"`postgresql.getTables`\" pulumi-lang-go=\"`getTables`\" pulumi-lang-python=\"`get_tables`\" pulumi-lang-yaml=\"`postgresql.getTables`\" pulumi-lang-java=\"`postgresql.getTables`\"\u003e`postgresql.getTables`\u003c/span\u003e` data source retrieves a list of table names from a specified PostgreSQL database.\n\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as postgresql from \"@pulumi/postgresql\";\n\nconst myTables = postgresql.getTables({\n    database: \"my_database\",\n});\n```\n```python\nimport pulumi\nimport pulumi_postgresql as postgresql\n\nmy_tables = postgresql.get_tables(database=\"my_database\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing PostgreSql = Pulumi.PostgreSql;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myTables = PostgreSql.GetTables.Invoke(new()\n    {\n        Database = \"my_database\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-postgresql/sdk/v3/go/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := postgresql.GetTables(ctx, \u0026postgresql.GetTablesArgs{\n\t\t\tDatabase: \"my_database\",\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.postgresql.PostgresqlFunctions;\nimport com.pulumi.postgresql.inputs.GetTablesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myTables = PostgresqlFunctions.getTables(GetTablesArgs.builder()\n            .database(\"my_database\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myTables:\n    fn::invoke:\n      function: postgresql:getTables\n      arguments:\n        database: my_database\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTables.\n","properties":{"database":{"type":"string","description":"The PostgreSQL database which will be queried for table names.\n","willReplaceOnChanges":true},"likeAllPatterns":{"type":"array","items":{"type":"string"},"description":"List of expressions which will be pattern matched against table names in the query using the PostgreSQL ``LIKE ALL`` operators.\n"},"likeAnyPatterns":{"type":"array","items":{"type":"string"},"description":"List of expressions which will be pattern matched against table names in the query using the PostgreSQL ``LIKE ANY`` operators.\n"},"notLikeAllPatterns":{"type":"array","items":{"type":"string"},"description":"List of expressions which will be pattern matched against table names in the query using the PostgreSQL ``NOT LIKE ALL`` operators.\n"},"regexPattern":{"type":"string","description":"Expression which will be pattern matched against table names in the query using the PostgreSQL ``~`` (regular expression match) operator.\n\nNote that all optional arguments can be used in conjunction.\n"},"schemas":{"type":"array","items":{"type":"string"},"description":"List of PostgreSQL schema(s) which will be queried for table names. Queries all schemas in the database by default.\n"},"tableTypes":{"type":"array","items":{"type":"string"},"description":"List of PostgreSQL table types which will be queried for table names. Includes all table types by default (including views and temp tables). Use 'BASE TABLE' for normal tables only.\n"}},"type":"object","required":["database"]},"outputs":{"description":"A collection of values returned by getTables.\n","properties":{"database":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"likeAllPatterns":{"items":{"type":"string"},"type":"array"},"likeAnyPatterns":{"items":{"type":"string"},"type":"array"},"notLikeAllPatterns":{"items":{"type":"string"},"type":"array"},"regexPattern":{"type":"string"},"schemas":{"items":{"type":"string"},"type":"array"},"tableTypes":{"items":{"type":"string"},"type":"array"},"tables":{"description":"A list of PostgreSQL tables retrieved by this data source. Each table consists of the fields documented below.\n___\n","items":{"$ref":"#/types/postgresql:index/getTablesTable:getTablesTable"},"type":"array"}},"required":["database","tables","id"],"type":"object"}},"pulumi:providers:postgresql/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"type":"ref","$ref":"#/provider"}},"type":"pulumi:providers:postgresql/terraformConfig","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}}}