postgresql

package
v6.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 19, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ActiveDirectoryAdministrator

type ActiveDirectoryAdministrator struct {
	pulumi.CustomResourceState

	// The login name of the principal to set as the server administrator
	Login pulumi.StringOutput `pulumi:"login"`
	// The ID of the principal to set as the server administrator. For a managed identity this should be the Client ID of the identity.
	ObjectId pulumi.StringOutput `pulumi:"objectId"`
	// The name of the resource group for the PostgreSQL server. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
	// The name of the PostgreSQL Server on which to set the administrator. Changing this forces a new resource to be created.
	ServerName pulumi.StringOutput `pulumi:"serverName"`
	// The Azure Tenant ID
	TenantId pulumi.StringOutput `pulumi:"tenantId"`
}

Allows you to set a user or group as the AD administrator for an PostgreSQL server in Azure

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		current, err := core.GetClientConfig(ctx, map[string]interface{}{}, nil)
		if err != nil {
			return err
		}
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("example-resources"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleServer, err := postgresql.NewServer(ctx, "example", &postgresql.ServerArgs{
			Name:                       pulumi.String("example-psqlserver"),
			ResourceGroupName:          example.Name,
			Location:                   example.Location,
			Version:                    pulumi.String("9.6"),
			AdministratorLogin:         pulumi.String("4dm1n157r470r"),
			AdministratorLoginPassword: pulumi.String("4-v3ry-53cr37-p455w0rd"),
			SkuName:                    pulumi.String("GP_Gen5_2"),
			SslEnforcementEnabled:      pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		_, err = postgresql.NewActiveDirectoryAdministrator(ctx, "example", &postgresql.ActiveDirectoryAdministratorArgs{
			ServerName:        exampleServer.Name,
			ResourceGroupName: example.Name,
			Login:             pulumi.String("sqladmin"),
			TenantId:          pulumi.String(current.TenantId),
			ObjectId:          pulumi.String(current.ObjectId),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

A PostgreSQL Active Directory Administrator can be imported using the `resource id`, e.g.

```sh $ pulumi import azure:postgresql/activeDirectoryAdministrator:ActiveDirectoryAdministrator administrator /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforPostgreSQL/servers/myserver ```

func GetActiveDirectoryAdministrator

func GetActiveDirectoryAdministrator(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ActiveDirectoryAdministratorState, opts ...pulumi.ResourceOption) (*ActiveDirectoryAdministrator, error)

GetActiveDirectoryAdministrator gets an existing ActiveDirectoryAdministrator resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewActiveDirectoryAdministrator

func NewActiveDirectoryAdministrator(ctx *pulumi.Context,
	name string, args *ActiveDirectoryAdministratorArgs, opts ...pulumi.ResourceOption) (*ActiveDirectoryAdministrator, error)

NewActiveDirectoryAdministrator registers a new resource with the given unique name, arguments, and options.

func (*ActiveDirectoryAdministrator) ElementType

func (*ActiveDirectoryAdministrator) ElementType() reflect.Type

func (*ActiveDirectoryAdministrator) ToActiveDirectoryAdministratorOutput

func (i *ActiveDirectoryAdministrator) ToActiveDirectoryAdministratorOutput() ActiveDirectoryAdministratorOutput

func (*ActiveDirectoryAdministrator) ToActiveDirectoryAdministratorOutputWithContext

func (i *ActiveDirectoryAdministrator) ToActiveDirectoryAdministratorOutputWithContext(ctx context.Context) ActiveDirectoryAdministratorOutput

type ActiveDirectoryAdministratorArgs

type ActiveDirectoryAdministratorArgs struct {
	// The login name of the principal to set as the server administrator
	Login pulumi.StringInput
	// The ID of the principal to set as the server administrator. For a managed identity this should be the Client ID of the identity.
	ObjectId pulumi.StringInput
	// The name of the resource group for the PostgreSQL server. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringInput
	// The name of the PostgreSQL Server on which to set the administrator. Changing this forces a new resource to be created.
	ServerName pulumi.StringInput
	// The Azure Tenant ID
	TenantId pulumi.StringInput
}

The set of arguments for constructing a ActiveDirectoryAdministrator resource.

func (ActiveDirectoryAdministratorArgs) ElementType

type ActiveDirectoryAdministratorArray

type ActiveDirectoryAdministratorArray []ActiveDirectoryAdministratorInput

func (ActiveDirectoryAdministratorArray) ElementType

func (ActiveDirectoryAdministratorArray) ToActiveDirectoryAdministratorArrayOutput

func (i ActiveDirectoryAdministratorArray) ToActiveDirectoryAdministratorArrayOutput() ActiveDirectoryAdministratorArrayOutput

func (ActiveDirectoryAdministratorArray) ToActiveDirectoryAdministratorArrayOutputWithContext

func (i ActiveDirectoryAdministratorArray) ToActiveDirectoryAdministratorArrayOutputWithContext(ctx context.Context) ActiveDirectoryAdministratorArrayOutput

type ActiveDirectoryAdministratorArrayInput

type ActiveDirectoryAdministratorArrayInput interface {
	pulumi.Input

	ToActiveDirectoryAdministratorArrayOutput() ActiveDirectoryAdministratorArrayOutput
	ToActiveDirectoryAdministratorArrayOutputWithContext(context.Context) ActiveDirectoryAdministratorArrayOutput
}

ActiveDirectoryAdministratorArrayInput is an input type that accepts ActiveDirectoryAdministratorArray and ActiveDirectoryAdministratorArrayOutput values. You can construct a concrete instance of `ActiveDirectoryAdministratorArrayInput` via:

ActiveDirectoryAdministratorArray{ ActiveDirectoryAdministratorArgs{...} }

type ActiveDirectoryAdministratorArrayOutput

type ActiveDirectoryAdministratorArrayOutput struct{ *pulumi.OutputState }

func (ActiveDirectoryAdministratorArrayOutput) ElementType

func (ActiveDirectoryAdministratorArrayOutput) Index

func (ActiveDirectoryAdministratorArrayOutput) ToActiveDirectoryAdministratorArrayOutput

func (o ActiveDirectoryAdministratorArrayOutput) ToActiveDirectoryAdministratorArrayOutput() ActiveDirectoryAdministratorArrayOutput

func (ActiveDirectoryAdministratorArrayOutput) ToActiveDirectoryAdministratorArrayOutputWithContext

func (o ActiveDirectoryAdministratorArrayOutput) ToActiveDirectoryAdministratorArrayOutputWithContext(ctx context.Context) ActiveDirectoryAdministratorArrayOutput

type ActiveDirectoryAdministratorInput

type ActiveDirectoryAdministratorInput interface {
	pulumi.Input

	ToActiveDirectoryAdministratorOutput() ActiveDirectoryAdministratorOutput
	ToActiveDirectoryAdministratorOutputWithContext(ctx context.Context) ActiveDirectoryAdministratorOutput
}

type ActiveDirectoryAdministratorMap

type ActiveDirectoryAdministratorMap map[string]ActiveDirectoryAdministratorInput

func (ActiveDirectoryAdministratorMap) ElementType

func (ActiveDirectoryAdministratorMap) ToActiveDirectoryAdministratorMapOutput

func (i ActiveDirectoryAdministratorMap) ToActiveDirectoryAdministratorMapOutput() ActiveDirectoryAdministratorMapOutput

func (ActiveDirectoryAdministratorMap) ToActiveDirectoryAdministratorMapOutputWithContext

func (i ActiveDirectoryAdministratorMap) ToActiveDirectoryAdministratorMapOutputWithContext(ctx context.Context) ActiveDirectoryAdministratorMapOutput

type ActiveDirectoryAdministratorMapInput

type ActiveDirectoryAdministratorMapInput interface {
	pulumi.Input

	ToActiveDirectoryAdministratorMapOutput() ActiveDirectoryAdministratorMapOutput
	ToActiveDirectoryAdministratorMapOutputWithContext(context.Context) ActiveDirectoryAdministratorMapOutput
}

ActiveDirectoryAdministratorMapInput is an input type that accepts ActiveDirectoryAdministratorMap and ActiveDirectoryAdministratorMapOutput values. You can construct a concrete instance of `ActiveDirectoryAdministratorMapInput` via:

ActiveDirectoryAdministratorMap{ "key": ActiveDirectoryAdministratorArgs{...} }

type ActiveDirectoryAdministratorMapOutput

type ActiveDirectoryAdministratorMapOutput struct{ *pulumi.OutputState }

func (ActiveDirectoryAdministratorMapOutput) ElementType

func (ActiveDirectoryAdministratorMapOutput) MapIndex

func (ActiveDirectoryAdministratorMapOutput) ToActiveDirectoryAdministratorMapOutput

func (o ActiveDirectoryAdministratorMapOutput) ToActiveDirectoryAdministratorMapOutput() ActiveDirectoryAdministratorMapOutput

func (ActiveDirectoryAdministratorMapOutput) ToActiveDirectoryAdministratorMapOutputWithContext

func (o ActiveDirectoryAdministratorMapOutput) ToActiveDirectoryAdministratorMapOutputWithContext(ctx context.Context) ActiveDirectoryAdministratorMapOutput

type ActiveDirectoryAdministratorOutput

type ActiveDirectoryAdministratorOutput struct{ *pulumi.OutputState }

func (ActiveDirectoryAdministratorOutput) ElementType

func (ActiveDirectoryAdministratorOutput) Login

The login name of the principal to set as the server administrator

func (ActiveDirectoryAdministratorOutput) ObjectId

The ID of the principal to set as the server administrator. For a managed identity this should be the Client ID of the identity.

func (ActiveDirectoryAdministratorOutput) ResourceGroupName

The name of the resource group for the PostgreSQL server. Changing this forces a new resource to be created.

func (ActiveDirectoryAdministratorOutput) ServerName

The name of the PostgreSQL Server on which to set the administrator. Changing this forces a new resource to be created.

func (ActiveDirectoryAdministratorOutput) TenantId

The Azure Tenant ID

func (ActiveDirectoryAdministratorOutput) ToActiveDirectoryAdministratorOutput

func (o ActiveDirectoryAdministratorOutput) ToActiveDirectoryAdministratorOutput() ActiveDirectoryAdministratorOutput

func (ActiveDirectoryAdministratorOutput) ToActiveDirectoryAdministratorOutputWithContext

func (o ActiveDirectoryAdministratorOutput) ToActiveDirectoryAdministratorOutputWithContext(ctx context.Context) ActiveDirectoryAdministratorOutput

type ActiveDirectoryAdministratorState

type ActiveDirectoryAdministratorState struct {
	// The login name of the principal to set as the server administrator
	Login pulumi.StringPtrInput
	// The ID of the principal to set as the server administrator. For a managed identity this should be the Client ID of the identity.
	ObjectId pulumi.StringPtrInput
	// The name of the resource group for the PostgreSQL server. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringPtrInput
	// The name of the PostgreSQL Server on which to set the administrator. Changing this forces a new resource to be created.
	ServerName pulumi.StringPtrInput
	// The Azure Tenant ID
	TenantId pulumi.StringPtrInput
}

func (ActiveDirectoryAdministratorState) ElementType

type Configuration

type Configuration struct {
	pulumi.CustomResourceState

	// Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.
	Name pulumi.StringOutput `pulumi:"name"`
	// The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
	// Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.
	ServerName pulumi.StringOutput `pulumi:"serverName"`
	// Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values. Changing this forces a new resource to be created.
	Value pulumi.StringOutput `pulumi:"value"`
}

Sets a PostgreSQL Configuration value on a PostgreSQL Server.

## Disclaimers

> **Note:** Since this resource is provisioned by default, the Azure Provider will not check for the presence of an existing resource prior to attempting to create it.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("api-rg-pro"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleServer, err := postgresql.NewServer(ctx, "example", &postgresql.ServerArgs{
			Name:                       pulumi.String("postgresql-server-1"),
			Location:                   example.Location,
			ResourceGroupName:          example.Name,
			SkuName:                    pulumi.String("B_Gen5_2"),
			StorageMb:                  pulumi.Int(5120),
			BackupRetentionDays:        pulumi.Int(7),
			GeoRedundantBackupEnabled:  pulumi.Bool(false),
			AutoGrowEnabled:            pulumi.Bool(true),
			AdministratorLogin:         pulumi.String("psqladmin"),
			AdministratorLoginPassword: pulumi.String("H@Sh1CoR3!"),
			Version:                    pulumi.String("9.5"),
			SslEnforcementEnabled:      pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		_, err = postgresql.NewConfiguration(ctx, "example", &postgresql.ConfigurationArgs{
			Name:              pulumi.String("backslash_quote"),
			ResourceGroupName: example.Name,
			ServerName:        exampleServer.Name,
			Value:             pulumi.String("on"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

PostgreSQL Configurations can be imported using the `resource id`, e.g.

```sh $ pulumi import azure:postgresql/configuration:Configuration backslash_quote /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/servers/server1/configurations/backslash_quote ```

func GetConfiguration

func GetConfiguration(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ConfigurationState, opts ...pulumi.ResourceOption) (*Configuration, error)

GetConfiguration gets an existing Configuration resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewConfiguration

func NewConfiguration(ctx *pulumi.Context,
	name string, args *ConfigurationArgs, opts ...pulumi.ResourceOption) (*Configuration, error)

NewConfiguration registers a new resource with the given unique name, arguments, and options.

func (*Configuration) ElementType

func (*Configuration) ElementType() reflect.Type

func (*Configuration) ToConfigurationOutput

func (i *Configuration) ToConfigurationOutput() ConfigurationOutput

func (*Configuration) ToConfigurationOutputWithContext

func (i *Configuration) ToConfigurationOutputWithContext(ctx context.Context) ConfigurationOutput

type ConfigurationArgs

type ConfigurationArgs struct {
	// Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.
	Name pulumi.StringInput
	// The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringInput
	// Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.
	ServerName pulumi.StringInput
	// Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values. Changing this forces a new resource to be created.
	Value pulumi.StringInput
}

The set of arguments for constructing a Configuration resource.

func (ConfigurationArgs) ElementType

func (ConfigurationArgs) ElementType() reflect.Type

type ConfigurationArray

type ConfigurationArray []ConfigurationInput

func (ConfigurationArray) ElementType

func (ConfigurationArray) ElementType() reflect.Type

func (ConfigurationArray) ToConfigurationArrayOutput

func (i ConfigurationArray) ToConfigurationArrayOutput() ConfigurationArrayOutput

func (ConfigurationArray) ToConfigurationArrayOutputWithContext

func (i ConfigurationArray) ToConfigurationArrayOutputWithContext(ctx context.Context) ConfigurationArrayOutput

type ConfigurationArrayInput

type ConfigurationArrayInput interface {
	pulumi.Input

	ToConfigurationArrayOutput() ConfigurationArrayOutput
	ToConfigurationArrayOutputWithContext(context.Context) ConfigurationArrayOutput
}

ConfigurationArrayInput is an input type that accepts ConfigurationArray and ConfigurationArrayOutput values. You can construct a concrete instance of `ConfigurationArrayInput` via:

ConfigurationArray{ ConfigurationArgs{...} }

type ConfigurationArrayOutput

type ConfigurationArrayOutput struct{ *pulumi.OutputState }

func (ConfigurationArrayOutput) ElementType

func (ConfigurationArrayOutput) ElementType() reflect.Type

func (ConfigurationArrayOutput) Index

func (ConfigurationArrayOutput) ToConfigurationArrayOutput

func (o ConfigurationArrayOutput) ToConfigurationArrayOutput() ConfigurationArrayOutput

func (ConfigurationArrayOutput) ToConfigurationArrayOutputWithContext

func (o ConfigurationArrayOutput) ToConfigurationArrayOutputWithContext(ctx context.Context) ConfigurationArrayOutput

type ConfigurationInput

type ConfigurationInput interface {
	pulumi.Input

	ToConfigurationOutput() ConfigurationOutput
	ToConfigurationOutputWithContext(ctx context.Context) ConfigurationOutput
}

type ConfigurationMap

type ConfigurationMap map[string]ConfigurationInput

func (ConfigurationMap) ElementType

func (ConfigurationMap) ElementType() reflect.Type

func (ConfigurationMap) ToConfigurationMapOutput

func (i ConfigurationMap) ToConfigurationMapOutput() ConfigurationMapOutput

func (ConfigurationMap) ToConfigurationMapOutputWithContext

func (i ConfigurationMap) ToConfigurationMapOutputWithContext(ctx context.Context) ConfigurationMapOutput

type ConfigurationMapInput

type ConfigurationMapInput interface {
	pulumi.Input

	ToConfigurationMapOutput() ConfigurationMapOutput
	ToConfigurationMapOutputWithContext(context.Context) ConfigurationMapOutput
}

ConfigurationMapInput is an input type that accepts ConfigurationMap and ConfigurationMapOutput values. You can construct a concrete instance of `ConfigurationMapInput` via:

ConfigurationMap{ "key": ConfigurationArgs{...} }

type ConfigurationMapOutput

type ConfigurationMapOutput struct{ *pulumi.OutputState }

func (ConfigurationMapOutput) ElementType

func (ConfigurationMapOutput) ElementType() reflect.Type

func (ConfigurationMapOutput) MapIndex

func (ConfigurationMapOutput) ToConfigurationMapOutput

func (o ConfigurationMapOutput) ToConfigurationMapOutput() ConfigurationMapOutput

func (ConfigurationMapOutput) ToConfigurationMapOutputWithContext

func (o ConfigurationMapOutput) ToConfigurationMapOutputWithContext(ctx context.Context) ConfigurationMapOutput

type ConfigurationOutput

type ConfigurationOutput struct{ *pulumi.OutputState }

func (ConfigurationOutput) ElementType

func (ConfigurationOutput) ElementType() reflect.Type

func (ConfigurationOutput) Name

Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.

func (ConfigurationOutput) ResourceGroupName

func (o ConfigurationOutput) ResourceGroupName() pulumi.StringOutput

The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.

func (ConfigurationOutput) ServerName

func (o ConfigurationOutput) ServerName() pulumi.StringOutput

Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.

func (ConfigurationOutput) ToConfigurationOutput

func (o ConfigurationOutput) ToConfigurationOutput() ConfigurationOutput

func (ConfigurationOutput) ToConfigurationOutputWithContext

func (o ConfigurationOutput) ToConfigurationOutputWithContext(ctx context.Context) ConfigurationOutput

func (ConfigurationOutput) Value

Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values. Changing this forces a new resource to be created.

type ConfigurationState

type ConfigurationState struct {
	// Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.
	Name pulumi.StringPtrInput
	// The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringPtrInput
	// Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.
	ServerName pulumi.StringPtrInput
	// Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values. Changing this forces a new resource to be created.
	Value pulumi.StringPtrInput
}

func (ConfigurationState) ElementType

func (ConfigurationState) ElementType() reflect.Type

type Database

type Database struct {
	pulumi.CustomResourceState

	// Specifies the Charset for the PostgreSQL Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Changing this forces a new resource to be created.
	Charset pulumi.StringOutput `pulumi:"charset"`
	// Specifies the Collation for the PostgreSQL Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Note that Microsoft uses different [notation](https://msdn.microsoft.com/library/windows/desktop/dd373814.aspx) - en-US instead of en_US. Changing this forces a new resource to be created.
	Collation pulumi.StringOutput `pulumi:"collation"`
	// Specifies the name of the PostgreSQL Database, which needs [to be a valid PostgreSQL identifier](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS). Changing this forces a new resource to be created.
	Name pulumi.StringOutput `pulumi:"name"`
	// The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
	// Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.
	ServerName pulumi.StringOutput `pulumi:"serverName"`
}

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("api-rg-pro"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleServer, err := postgresql.NewServer(ctx, "example", &postgresql.ServerArgs{
			Name:                       pulumi.String("postgresql-server-1"),
			Location:                   example.Location,
			ResourceGroupName:          example.Name,
			SkuName:                    pulumi.String("B_Gen5_2"),
			StorageMb:                  pulumi.Int(5120),
			BackupRetentionDays:        pulumi.Int(7),
			GeoRedundantBackupEnabled:  pulumi.Bool(false),
			AutoGrowEnabled:            pulumi.Bool(true),
			AdministratorLogin:         pulumi.String("psqladmin"),
			AdministratorLoginPassword: pulumi.String("H@Sh1CoR3!"),
			Version:                    pulumi.String("9.5"),
			SslEnforcementEnabled:      pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		_, err = postgresql.NewDatabase(ctx, "example", &postgresql.DatabaseArgs{
			Name:              pulumi.String("exampledb"),
			ResourceGroupName: example.Name,
			ServerName:        exampleServer.Name,
			Charset:           pulumi.String("UTF8"),
			Collation:         pulumi.String("English_United States.1252"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

PostgreSQL Database's can be imported using the `resource id`, e.g.

```sh $ pulumi import azure:postgresql/database:Database database1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/servers/server1/databases/database1 ```

func GetDatabase

func GetDatabase(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DatabaseState, opts ...pulumi.ResourceOption) (*Database, error)

GetDatabase gets an existing Database resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDatabase

func NewDatabase(ctx *pulumi.Context,
	name string, args *DatabaseArgs, opts ...pulumi.ResourceOption) (*Database, error)

NewDatabase registers a new resource with the given unique name, arguments, and options.

func (*Database) ElementType

func (*Database) ElementType() reflect.Type

func (*Database) ToDatabaseOutput

func (i *Database) ToDatabaseOutput() DatabaseOutput

func (*Database) ToDatabaseOutputWithContext

func (i *Database) ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput

type DatabaseArgs

type DatabaseArgs struct {
	// Specifies the Charset for the PostgreSQL Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Changing this forces a new resource to be created.
	Charset pulumi.StringInput
	// Specifies the Collation for the PostgreSQL Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Note that Microsoft uses different [notation](https://msdn.microsoft.com/library/windows/desktop/dd373814.aspx) - en-US instead of en_US. Changing this forces a new resource to be created.
	Collation pulumi.StringInput
	// Specifies the name of the PostgreSQL Database, which needs [to be a valid PostgreSQL identifier](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS). Changing this forces a new resource to be created.
	Name pulumi.StringPtrInput
	// The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringInput
	// Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.
	ServerName pulumi.StringInput
}

The set of arguments for constructing a Database resource.

func (DatabaseArgs) ElementType

func (DatabaseArgs) ElementType() reflect.Type

type DatabaseArray

type DatabaseArray []DatabaseInput

func (DatabaseArray) ElementType

func (DatabaseArray) ElementType() reflect.Type

func (DatabaseArray) ToDatabaseArrayOutput

func (i DatabaseArray) ToDatabaseArrayOutput() DatabaseArrayOutput

func (DatabaseArray) ToDatabaseArrayOutputWithContext

func (i DatabaseArray) ToDatabaseArrayOutputWithContext(ctx context.Context) DatabaseArrayOutput

type DatabaseArrayInput

type DatabaseArrayInput interface {
	pulumi.Input

	ToDatabaseArrayOutput() DatabaseArrayOutput
	ToDatabaseArrayOutputWithContext(context.Context) DatabaseArrayOutput
}

DatabaseArrayInput is an input type that accepts DatabaseArray and DatabaseArrayOutput values. You can construct a concrete instance of `DatabaseArrayInput` via:

DatabaseArray{ DatabaseArgs{...} }

type DatabaseArrayOutput

type DatabaseArrayOutput struct{ *pulumi.OutputState }

func (DatabaseArrayOutput) ElementType

func (DatabaseArrayOutput) ElementType() reflect.Type

func (DatabaseArrayOutput) Index

func (DatabaseArrayOutput) ToDatabaseArrayOutput

func (o DatabaseArrayOutput) ToDatabaseArrayOutput() DatabaseArrayOutput

func (DatabaseArrayOutput) ToDatabaseArrayOutputWithContext

func (o DatabaseArrayOutput) ToDatabaseArrayOutputWithContext(ctx context.Context) DatabaseArrayOutput

type DatabaseInput

type DatabaseInput interface {
	pulumi.Input

	ToDatabaseOutput() DatabaseOutput
	ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput
}

type DatabaseMap

type DatabaseMap map[string]DatabaseInput

func (DatabaseMap) ElementType

func (DatabaseMap) ElementType() reflect.Type

func (DatabaseMap) ToDatabaseMapOutput

func (i DatabaseMap) ToDatabaseMapOutput() DatabaseMapOutput

func (DatabaseMap) ToDatabaseMapOutputWithContext

func (i DatabaseMap) ToDatabaseMapOutputWithContext(ctx context.Context) DatabaseMapOutput

type DatabaseMapInput

type DatabaseMapInput interface {
	pulumi.Input

	ToDatabaseMapOutput() DatabaseMapOutput
	ToDatabaseMapOutputWithContext(context.Context) DatabaseMapOutput
}

DatabaseMapInput is an input type that accepts DatabaseMap and DatabaseMapOutput values. You can construct a concrete instance of `DatabaseMapInput` via:

DatabaseMap{ "key": DatabaseArgs{...} }

type DatabaseMapOutput

type DatabaseMapOutput struct{ *pulumi.OutputState }

func (DatabaseMapOutput) ElementType

func (DatabaseMapOutput) ElementType() reflect.Type

func (DatabaseMapOutput) MapIndex

func (DatabaseMapOutput) ToDatabaseMapOutput

func (o DatabaseMapOutput) ToDatabaseMapOutput() DatabaseMapOutput

func (DatabaseMapOutput) ToDatabaseMapOutputWithContext

func (o DatabaseMapOutput) ToDatabaseMapOutputWithContext(ctx context.Context) DatabaseMapOutput

type DatabaseOutput

type DatabaseOutput struct{ *pulumi.OutputState }

func (DatabaseOutput) Charset

func (o DatabaseOutput) Charset() pulumi.StringOutput

Specifies the Charset for the PostgreSQL Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Changing this forces a new resource to be created.

func (DatabaseOutput) Collation

func (o DatabaseOutput) Collation() pulumi.StringOutput

Specifies the Collation for the PostgreSQL Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Note that Microsoft uses different [notation](https://msdn.microsoft.com/library/windows/desktop/dd373814.aspx) - en-US instead of en_US. Changing this forces a new resource to be created.

func (DatabaseOutput) ElementType

func (DatabaseOutput) ElementType() reflect.Type

func (DatabaseOutput) Name

Specifies the name of the PostgreSQL Database, which needs [to be a valid PostgreSQL identifier](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS). Changing this forces a new resource to be created.

func (DatabaseOutput) ResourceGroupName

func (o DatabaseOutput) ResourceGroupName() pulumi.StringOutput

The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.

func (DatabaseOutput) ServerName

func (o DatabaseOutput) ServerName() pulumi.StringOutput

Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.

func (DatabaseOutput) ToDatabaseOutput

func (o DatabaseOutput) ToDatabaseOutput() DatabaseOutput

func (DatabaseOutput) ToDatabaseOutputWithContext

func (o DatabaseOutput) ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput

type DatabaseState

type DatabaseState struct {
	// Specifies the Charset for the PostgreSQL Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Changing this forces a new resource to be created.
	Charset pulumi.StringPtrInput
	// Specifies the Collation for the PostgreSQL Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Note that Microsoft uses different [notation](https://msdn.microsoft.com/library/windows/desktop/dd373814.aspx) - en-US instead of en_US. Changing this forces a new resource to be created.
	Collation pulumi.StringPtrInput
	// Specifies the name of the PostgreSQL Database, which needs [to be a valid PostgreSQL identifier](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS). Changing this forces a new resource to be created.
	Name pulumi.StringPtrInput
	// The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringPtrInput
	// Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.
	ServerName pulumi.StringPtrInput
}

func (DatabaseState) ElementType

func (DatabaseState) ElementType() reflect.Type

type FirewallRule

type FirewallRule struct {
	pulumi.CustomResourceState

	// Specifies the End IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.
	//
	// > **NOTE:** The Azure feature `Allow access to Azure services` can be enabled by setting `startIpAddress` and `endIpAddress` to `0.0.0.0` which ([is documented in the Azure API Docs](https://docs.microsoft.com/rest/api/sql/firewallrules/createorupdate)).
	EndIpAddress pulumi.StringOutput `pulumi:"endIpAddress"`
	// Specifies the name of the PostgreSQL Firewall Rule. Changing this forces a new resource to be created.
	Name pulumi.StringOutput `pulumi:"name"`
	// The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
	// Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.
	ServerName pulumi.StringOutput `pulumi:"serverName"`
	// Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.
	StartIpAddress pulumi.StringOutput `pulumi:"startIpAddress"`
}

Manages a Firewall Rule for a PostgreSQL Server

## Example Usage

### Single IP Address)

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("api-rg-pro"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleServer, err := postgresql.NewServer(ctx, "example", &postgresql.ServerArgs{
			Name:                  pulumi.String("example-postgre-server"),
			Location:              example.Location,
			ResourceGroupName:     example.Name,
			SkuName:               pulumi.String("GP_Gen5_2"),
			Version:               pulumi.String("11"),
			SslEnforcementEnabled: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		_, err = postgresql.NewFirewallRule(ctx, "example", &postgresql.FirewallRuleArgs{
			Name:              pulumi.String("office"),
			ResourceGroupName: example.Name,
			ServerName:        exampleServer.Name,
			StartIpAddress:    pulumi.String("40.112.8.12"),
			EndIpAddress:      pulumi.String("40.112.8.12"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

### IP Range)

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("api-rg-pro"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleServer, err := postgresql.NewServer(ctx, "example", nil)
		if err != nil {
			return err
		}
		_, err = postgresql.NewFirewallRule(ctx, "example", &postgresql.FirewallRuleArgs{
			Name:              pulumi.String("office"),
			ResourceGroupName: example.Name,
			ServerName:        exampleServer.Name,
			StartIpAddress:    pulumi.String("40.112.0.0"),
			EndIpAddress:      pulumi.String("40.112.255.255"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

PostgreSQL Firewall Rule's can be imported using the `resource id`, e.g.

```sh $ pulumi import azure:postgresql/firewallRule:FirewallRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/servers/server1/firewallRules/rule1 ```

func GetFirewallRule

func GetFirewallRule(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FirewallRuleState, opts ...pulumi.ResourceOption) (*FirewallRule, error)

GetFirewallRule gets an existing FirewallRule resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFirewallRule

func NewFirewallRule(ctx *pulumi.Context,
	name string, args *FirewallRuleArgs, opts ...pulumi.ResourceOption) (*FirewallRule, error)

NewFirewallRule registers a new resource with the given unique name, arguments, and options.

func (*FirewallRule) ElementType

func (*FirewallRule) ElementType() reflect.Type

func (*FirewallRule) ToFirewallRuleOutput

func (i *FirewallRule) ToFirewallRuleOutput() FirewallRuleOutput

func (*FirewallRule) ToFirewallRuleOutputWithContext

func (i *FirewallRule) ToFirewallRuleOutputWithContext(ctx context.Context) FirewallRuleOutput

type FirewallRuleArgs

type FirewallRuleArgs struct {
	// Specifies the End IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.
	//
	// > **NOTE:** The Azure feature `Allow access to Azure services` can be enabled by setting `startIpAddress` and `endIpAddress` to `0.0.0.0` which ([is documented in the Azure API Docs](https://docs.microsoft.com/rest/api/sql/firewallrules/createorupdate)).
	EndIpAddress pulumi.StringInput
	// Specifies the name of the PostgreSQL Firewall Rule. Changing this forces a new resource to be created.
	Name pulumi.StringPtrInput
	// The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringInput
	// Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.
	ServerName pulumi.StringInput
	// Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.
	StartIpAddress pulumi.StringInput
}

The set of arguments for constructing a FirewallRule resource.

func (FirewallRuleArgs) ElementType

func (FirewallRuleArgs) ElementType() reflect.Type

type FirewallRuleArray

type FirewallRuleArray []FirewallRuleInput

func (FirewallRuleArray) ElementType

func (FirewallRuleArray) ElementType() reflect.Type

func (FirewallRuleArray) ToFirewallRuleArrayOutput

func (i FirewallRuleArray) ToFirewallRuleArrayOutput() FirewallRuleArrayOutput

func (FirewallRuleArray) ToFirewallRuleArrayOutputWithContext

func (i FirewallRuleArray) ToFirewallRuleArrayOutputWithContext(ctx context.Context) FirewallRuleArrayOutput

type FirewallRuleArrayInput

type FirewallRuleArrayInput interface {
	pulumi.Input

	ToFirewallRuleArrayOutput() FirewallRuleArrayOutput
	ToFirewallRuleArrayOutputWithContext(context.Context) FirewallRuleArrayOutput
}

FirewallRuleArrayInput is an input type that accepts FirewallRuleArray and FirewallRuleArrayOutput values. You can construct a concrete instance of `FirewallRuleArrayInput` via:

FirewallRuleArray{ FirewallRuleArgs{...} }

type FirewallRuleArrayOutput

type FirewallRuleArrayOutput struct{ *pulumi.OutputState }

func (FirewallRuleArrayOutput) ElementType

func (FirewallRuleArrayOutput) ElementType() reflect.Type

func (FirewallRuleArrayOutput) Index

func (FirewallRuleArrayOutput) ToFirewallRuleArrayOutput

func (o FirewallRuleArrayOutput) ToFirewallRuleArrayOutput() FirewallRuleArrayOutput

func (FirewallRuleArrayOutput) ToFirewallRuleArrayOutputWithContext

func (o FirewallRuleArrayOutput) ToFirewallRuleArrayOutputWithContext(ctx context.Context) FirewallRuleArrayOutput

type FirewallRuleInput

type FirewallRuleInput interface {
	pulumi.Input

	ToFirewallRuleOutput() FirewallRuleOutput
	ToFirewallRuleOutputWithContext(ctx context.Context) FirewallRuleOutput
}

type FirewallRuleMap

type FirewallRuleMap map[string]FirewallRuleInput

func (FirewallRuleMap) ElementType

func (FirewallRuleMap) ElementType() reflect.Type

func (FirewallRuleMap) ToFirewallRuleMapOutput

func (i FirewallRuleMap) ToFirewallRuleMapOutput() FirewallRuleMapOutput

func (FirewallRuleMap) ToFirewallRuleMapOutputWithContext

func (i FirewallRuleMap) ToFirewallRuleMapOutputWithContext(ctx context.Context) FirewallRuleMapOutput

type FirewallRuleMapInput

type FirewallRuleMapInput interface {
	pulumi.Input

	ToFirewallRuleMapOutput() FirewallRuleMapOutput
	ToFirewallRuleMapOutputWithContext(context.Context) FirewallRuleMapOutput
}

FirewallRuleMapInput is an input type that accepts FirewallRuleMap and FirewallRuleMapOutput values. You can construct a concrete instance of `FirewallRuleMapInput` via:

FirewallRuleMap{ "key": FirewallRuleArgs{...} }

type FirewallRuleMapOutput

type FirewallRuleMapOutput struct{ *pulumi.OutputState }

func (FirewallRuleMapOutput) ElementType

func (FirewallRuleMapOutput) ElementType() reflect.Type

func (FirewallRuleMapOutput) MapIndex

func (FirewallRuleMapOutput) ToFirewallRuleMapOutput

func (o FirewallRuleMapOutput) ToFirewallRuleMapOutput() FirewallRuleMapOutput

func (FirewallRuleMapOutput) ToFirewallRuleMapOutputWithContext

func (o FirewallRuleMapOutput) ToFirewallRuleMapOutputWithContext(ctx context.Context) FirewallRuleMapOutput

type FirewallRuleOutput

type FirewallRuleOutput struct{ *pulumi.OutputState }

func (FirewallRuleOutput) ElementType

func (FirewallRuleOutput) ElementType() reflect.Type

func (FirewallRuleOutput) EndIpAddress

func (o FirewallRuleOutput) EndIpAddress() pulumi.StringOutput

Specifies the End IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.

> **NOTE:** The Azure feature `Allow access to Azure services` can be enabled by setting `startIpAddress` and `endIpAddress` to `0.0.0.0` which ([is documented in the Azure API Docs](https://docs.microsoft.com/rest/api/sql/firewallrules/createorupdate)).

func (FirewallRuleOutput) Name

Specifies the name of the PostgreSQL Firewall Rule. Changing this forces a new resource to be created.

func (FirewallRuleOutput) ResourceGroupName

func (o FirewallRuleOutput) ResourceGroupName() pulumi.StringOutput

The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.

func (FirewallRuleOutput) ServerName

func (o FirewallRuleOutput) ServerName() pulumi.StringOutput

Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.

func (FirewallRuleOutput) StartIpAddress

func (o FirewallRuleOutput) StartIpAddress() pulumi.StringOutput

Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.

func (FirewallRuleOutput) ToFirewallRuleOutput

func (o FirewallRuleOutput) ToFirewallRuleOutput() FirewallRuleOutput

func (FirewallRuleOutput) ToFirewallRuleOutputWithContext

func (o FirewallRuleOutput) ToFirewallRuleOutputWithContext(ctx context.Context) FirewallRuleOutput

type FirewallRuleState

type FirewallRuleState struct {
	// Specifies the End IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.
	//
	// > **NOTE:** The Azure feature `Allow access to Azure services` can be enabled by setting `startIpAddress` and `endIpAddress` to `0.0.0.0` which ([is documented in the Azure API Docs](https://docs.microsoft.com/rest/api/sql/firewallrules/createorupdate)).
	EndIpAddress pulumi.StringPtrInput
	// Specifies the name of the PostgreSQL Firewall Rule. Changing this forces a new resource to be created.
	Name pulumi.StringPtrInput
	// The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringPtrInput
	// Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.
	ServerName pulumi.StringPtrInput
	// Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.
	StartIpAddress pulumi.StringPtrInput
}

func (FirewallRuleState) ElementType

func (FirewallRuleState) ElementType() reflect.Type

type FlexibleServer

type FlexibleServer struct {
	pulumi.CustomResourceState

	// The Administrator login for the PostgreSQL Flexible Server. Required when `createMode` is `Default` and `authentication.password_auth_enabled` is `true`.
	//
	// > **Note:** Once `administratorLogin` is specified, changing this forces a new PostgreSQL Flexible Server to be created.
	//
	// > **Note:** To create with `administratorLogin` specified or update with it first specified , `authentication.password_auth_enabled` must be set to `true`.
	AdministratorLogin pulumi.StringOutput `pulumi:"administratorLogin"`
	// The Password associated with the `administratorLogin` for the PostgreSQL Flexible Server. Required when `createMode` is `Default` and `authentication.password_auth_enabled` is `true`.
	AdministratorPassword pulumi.StringPtrOutput `pulumi:"administratorPassword"`
	// An `authentication` block as defined below.
	Authentication FlexibleServerAuthenticationOutput `pulumi:"authentication"`
	// Is the storage auto grow for PostgreSQL Flexible Server enabled? Defaults to `false`.
	AutoGrowEnabled pulumi.BoolPtrOutput `pulumi:"autoGrowEnabled"`
	// The backup retention days for the PostgreSQL Flexible Server. Possible values are between `7` and `35` days.
	BackupRetentionDays pulumi.IntOutput `pulumi:"backupRetentionDays"`
	// The creation mode which can be used to restore or replicate existing servers. Possible values are `Default`, `GeoRestore`, `PointInTimeRestore`, `Replica` and `Update`. Changing this forces a new PostgreSQL Flexible Server to be created.
	//
	// > **Note:** `createMode` cannot be changed once it's set since it's a parameter at creation.
	//
	// > **Note:** While creating the resource, `createMode` cannot be set to `Update`.
	CreateMode pulumi.StringPtrOutput `pulumi:"createMode"`
	// A `customerManagedKey` block as defined below. Changing this forces a new resource to be created.
	CustomerManagedKey FlexibleServerCustomerManagedKeyPtrOutput `pulumi:"customerManagedKey"`
	// The ID of the virtual network subnet to create the PostgreSQL Flexible Server. The provided subnet should not have any other resource deployed in it and this subnet will be delegated to the PostgreSQL Flexible Server, if not already delegated. Changing this forces a new PostgreSQL Flexible Server to be created.
	DelegatedSubnetId pulumi.StringPtrOutput `pulumi:"delegatedSubnetId"`
	// The FQDN of the PostgreSQL Flexible Server.
	Fqdn pulumi.StringOutput `pulumi:"fqdn"`
	// Is Geo-Redundant backup enabled on the PostgreSQL Flexible Server. Defaults to `false`. Changing this forces a new PostgreSQL Flexible Server to be created.
	GeoRedundantBackupEnabled pulumi.BoolPtrOutput `pulumi:"geoRedundantBackupEnabled"`
	// A `highAvailability` block as defined below.
	HighAvailability FlexibleServerHighAvailabilityPtrOutput `pulumi:"highAvailability"`
	// An `identity` block as defined below.
	Identity FlexibleServerIdentityPtrOutput `pulumi:"identity"`
	// The Azure Region where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.
	Location pulumi.StringOutput `pulumi:"location"`
	// A `maintenanceWindow` block as defined below.
	MaintenanceWindow FlexibleServerMaintenanceWindowPtrOutput `pulumi:"maintenanceWindow"`
	// The name which should be used for this PostgreSQL Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created.
	//
	// > **Note** This must be unique across the entire Azure service, not just within the resource group.
	Name pulumi.StringOutput `pulumi:"name"`
	// The point in time to restore from `sourceServerId` when `createMode` is `GeoRestore`, `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.
	PointInTimeRestoreTimeInUtc pulumi.StringPtrOutput `pulumi:"pointInTimeRestoreTimeInUtc"`
	// The ID of the private DNS zone to create the PostgreSQL Flexible Server.
	//
	// > **Note:** There will be a breaking change from upstream service at 15th July 2021, the `privateDnsZoneId` will be required when setting a `delegatedSubnetId`. For existing flexible servers who don't want to be recreated, you need to provide the `privateDnsZoneId` to the service team to manually migrate to the specified private DNS zone. The `privatedns.Zone` should end with suffix `.postgres.database.azure.com`.
	PrivateDnsZoneId pulumi.StringOutput `pulumi:"privateDnsZoneId"`
	// Specifies whether this PostgreSQL Flexible Server is publicly accessible. Defaults to `true`.
	//
	// > **Note:** `publicNetworkAccessEnabled` must be set to `false` when `delegatedSubnetId` and `privateDnsZoneId` have a value.
	PublicNetworkAccessEnabled pulumi.BoolPtrOutput `pulumi:"publicNetworkAccessEnabled"`
	// The replication role for the PostgreSQL Flexible Server. Possible value is `None`.
	//
	// > **Note:** The `replicationRole` cannot be set while creating and only can be updated to `None` for replica server.
	ReplicationRole pulumi.StringPtrOutput `pulumi:"replicationRole"`
	// The name of the Resource Group where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
	// The SKU Name for the PostgreSQL Flexible Server. The name of the SKU, follows the `tier` + `name` pattern (e.g. `B_Standard_B1ms`, `GP_Standard_D2s_v3`, `MO_Standard_E4s_v3`).
	SkuName pulumi.StringOutput `pulumi:"skuName"`
	// The resource ID of the source PostgreSQL Flexible Server to be restored. Required when `createMode` is `GeoRestore`, `PointInTimeRestore` or `Replica`. Changing this forces a new PostgreSQL Flexible Server to be created.
	SourceServerId pulumi.StringPtrOutput `pulumi:"sourceServerId"`
	// The max storage allowed for the PostgreSQL Flexible Server. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4193280`, `4194304`, `8388608`, `16777216` and `33553408`.
	//
	// > **Note:** If the `storageMb` field is undefined on the initial deployment of the PostgreSQL Flexible Server resource it will default to `32768`. If the `storageMb` field has been defined and then removed, the `storageMb` field will retain the previously defined value.
	//
	// > **Note:** The `storageMb` can only be scaled up, for example, you can scale the `storageMb` from `32768` to `65536`, but not from `65536` to `32768`.
	StorageMb pulumi.IntOutput `pulumi:"storageMb"`
	// The name of storage performance tier for IOPS of the PostgreSQL Flexible Server. Possible values are `P4`, `P6`, `P10`, `P15`,`P20`, `P30`,`P40`, `P50`,`P60`, `P70` or `P80`. Default value is dependant on the `storageMb` value. Please see the `storageTier` defaults based on `storageMb` table below.
	//
	// > **Note:** The `storageTier` can be scaled once every 12 hours, this restriction is in place to ensure stability and performance after any changes to your PostgreSQL Flexible Server's configuration.
	StorageTier pulumi.StringOutput `pulumi:"storageTier"`
	// A mapping of tags which should be assigned to the PostgreSQL Flexible Server.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// The version of PostgreSQL Flexible Server to use. Possible values are `11`,`12`, `13`, `14`, `15` and `16`. Required when `createMode` is `Default`.
	//
	// > **Note:** When `createMode` is `Update`, upgrading version wouldn't force a new resource to be created.
	Version pulumi.StringOutput    `pulumi:"version"`
	Zone    pulumi.StringPtrOutput `pulumi:"zone"`
}

Manages a PostgreSQL Flexible Server.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/privatedns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("example-resources"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{
			Name:              pulumi.String("example-vn"),
			Location:          example.Location,
			ResourceGroupName: example.Name,
			AddressSpaces: pulumi.StringArray{
				pulumi.String("10.0.0.0/16"),
			},
		})
		if err != nil {
			return err
		}
		exampleSubnet, err := network.NewSubnet(ctx, "example", &network.SubnetArgs{
			Name:               pulumi.String("example-sn"),
			ResourceGroupName:  example.Name,
			VirtualNetworkName: exampleVirtualNetwork.Name,
			AddressPrefixes: pulumi.StringArray{
				pulumi.String("10.0.2.0/24"),
			},
			ServiceEndpoints: pulumi.StringArray{
				pulumi.String("Microsoft.Storage"),
			},
			Delegations: network.SubnetDelegationArray{
				&network.SubnetDelegationArgs{
					Name: pulumi.String("fs"),
					ServiceDelegation: &network.SubnetDelegationServiceDelegationArgs{
						Name: pulumi.String("Microsoft.DBforPostgreSQL/flexibleServers"),
						Actions: pulumi.StringArray{
							pulumi.String("Microsoft.Network/virtualNetworks/subnets/join/action"),
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		exampleZone, err := privatedns.NewZone(ctx, "example", &privatedns.ZoneArgs{
			Name:              pulumi.String("example.postgres.database.azure.com"),
			ResourceGroupName: example.Name,
		})
		if err != nil {
			return err
		}
		exampleZoneVirtualNetworkLink, err := privatedns.NewZoneVirtualNetworkLink(ctx, "example", &privatedns.ZoneVirtualNetworkLinkArgs{
			Name:               pulumi.String("exampleVnetZone.com"),
			PrivateDnsZoneName: exampleZone.Name,
			VirtualNetworkId:   exampleVirtualNetwork.ID(),
			ResourceGroupName:  example.Name,
		}, pulumi.DependsOn([]pulumi.Resource{
			exampleSubnet,
		}))
		if err != nil {
			return err
		}
		_, err = postgresql.NewFlexibleServer(ctx, "example", &postgresql.FlexibleServerArgs{
			Name:                       pulumi.String("example-psqlflexibleserver"),
			ResourceGroupName:          example.Name,
			Location:                   example.Location,
			Version:                    pulumi.String("12"),
			DelegatedSubnetId:          exampleSubnet.ID(),
			PrivateDnsZoneId:           exampleZone.ID(),
			PublicNetworkAccessEnabled: pulumi.Bool(false),
			AdministratorLogin:         pulumi.String("psqladmin"),
			AdministratorPassword:      pulumi.String("H@Sh1CoR3!"),
			Zone:                       pulumi.String("1"),
			StorageMb:                  pulumi.Int(32768),
			StorageTier:                pulumi.String("P30"),
			SkuName:                    pulumi.String("GP_Standard_D4s_v3"),
		}, pulumi.DependsOn([]pulumi.Resource{
			exampleZoneVirtualNetworkLink,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## `storageTier` defaults based on `storageMb`

| `storageMb` | GiB | TiB | Default | Supported `storageTier`'s | Provisioned `IOPS` | |:------------:|:-----:|:---:|:-------:|:------------------------------------:|:-------------------:| | 32768 | 32 | - | P4 | P4, P6, P10, P15, P20, P30, P40, P50 | 120 | | 65536 | 64 | - | P6 | P6, P10, P15, P20, P30, P40, P50 | 240 | | 131072 | 128 | - | P10 | P10, P15, P20, P30, P40, P50 | 500 | | 262144 | 256 | - | P15 | P15, P20, P30, P40, P50 | 1,100 | | 524288 | 512 | - | P20 | P20, P30, P40, P50 | 2,300 | | 1048576 | 1024 | 1 | P30 | P30, P40, P50 | 5,000 | | 2097152 | 2048 | 2 | P40 | P40, P50 | 7,500 | | 4193280 | 4095 | 4 | P50 | P50 | 7,500 | | 4194304 | 4096 | 4 | P50 | P50 | 7,500 | | 8388608 | 8192 | 8 | P60 | P60, P70 | 16,000 | | 16777216 | 16384 | 16 | P70 | P70, P80 | 18,000 | | 33553408 | 32767 | 32 | P80 | P80 | 20,000 |

> **Note:** Host Caching (ReadOnly and Read/Write) is supported on disk sizes less than 4194304 MiB. This means any disk that is provisioned up to 4193280 MiB can take advantage of Host Caching. Host caching is not supported for disk sizes larger than 4193280 MiB. For example, a P50 premium disk provisioned at 4193280 GiB can take advantage of Host caching while a P50 disk provisioned at 4194304 MiB cannot. Moving from a smaller disk size to a larger disk size, greater than 4193280 MiB, will cause the disk to lose the disk caching ability.

***

## Import

PostgreSQL Flexible Servers can be imported using the `resource id`, e.g.

```sh $ pulumi import azure:postgresql/flexibleServer:FlexibleServer example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/flexibleServers/server1 ```

func GetFlexibleServer

func GetFlexibleServer(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FlexibleServerState, opts ...pulumi.ResourceOption) (*FlexibleServer, error)

GetFlexibleServer gets an existing FlexibleServer resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFlexibleServer

func NewFlexibleServer(ctx *pulumi.Context,
	name string, args *FlexibleServerArgs, opts ...pulumi.ResourceOption) (*FlexibleServer, error)

NewFlexibleServer registers a new resource with the given unique name, arguments, and options.

func (*FlexibleServer) ElementType

func (*FlexibleServer) ElementType() reflect.Type

func (*FlexibleServer) ToFlexibleServerOutput

func (i *FlexibleServer) ToFlexibleServerOutput() FlexibleServerOutput

func (*FlexibleServer) ToFlexibleServerOutputWithContext

func (i *FlexibleServer) ToFlexibleServerOutputWithContext(ctx context.Context) FlexibleServerOutput

type FlexibleServerActiveDirectoryAdministrator

type FlexibleServerActiveDirectoryAdministrator struct {
	pulumi.CustomResourceState

	// The object ID of a user, service principal or security group in the Azure Active Directory tenant set as the Flexible Server Admin. Changing this forces a new resource to be created.
	ObjectId pulumi.StringOutput `pulumi:"objectId"`
	// The name of Azure Active Directory principal. Changing this forces a new resource to be created.
	PrincipalName pulumi.StringOutput `pulumi:"principalName"`
	// The type of Azure Active Directory principal. Possible values are `Group`, `ServicePrincipal` and `User`. Changing this forces a new resource to be created.
	PrincipalType pulumi.StringOutput `pulumi:"principalType"`
	// The name of the resource group for the PostgreSQL Server. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
	// The name of the PostgreSQL Flexible Server on which to set the administrator. Changing this forces a new resource to be created.
	ServerName pulumi.StringOutput `pulumi:"serverName"`
	// The Azure Tenant ID. Changing this forces a new resource to be created.
	TenantId pulumi.StringOutput `pulumi:"tenantId"`
}

Allows you to set a user or group as the AD administrator for a PostgreSQL Flexible Server.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi-azuread/sdk/v5/go/azuread"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		current, err := core.GetClientConfig(ctx, map[string]interface{}{}, nil)
		if err != nil {
			return err
		}
		example, err := azuread.LookupServicePrincipal(ctx, &azuread.LookupServicePrincipalArgs{
			ObjectId: pulumi.StringRef(current.ObjectId),
		}, nil)
		if err != nil {
			return err
		}
		exampleResourceGroup, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("example-resources"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleFlexibleServer, err := postgresql.NewFlexibleServer(ctx, "example", &postgresql.FlexibleServerArgs{
			Name:                  pulumi.String("example-fs"),
			ResourceGroupName:     exampleResourceGroup.Name,
			Location:              exampleResourceGroup.Location,
			AdministratorLogin:    pulumi.String("adminTerraform"),
			AdministratorPassword: pulumi.String("QAZwsx123"),
			StorageMb:             pulumi.Int(32768),
			Version:               pulumi.String("12"),
			SkuName:               pulumi.String("GP_Standard_D2s_v3"),
			Zone:                  pulumi.String("2"),
			Authentication: &postgresql.FlexibleServerAuthenticationArgs{
				ActiveDirectoryAuthEnabled: pulumi.Bool(true),
				TenantId:                   pulumi.String(current.TenantId),
			},
		})
		if err != nil {
			return err
		}
		_, err = postgresql.NewFlexibleServerActiveDirectoryAdministrator(ctx, "example", &postgresql.FlexibleServerActiveDirectoryAdministratorArgs{
			ServerName:        exampleFlexibleServer.Name,
			ResourceGroupName: exampleResourceGroup.Name,
			TenantId:          pulumi.String(current.TenantId),
			ObjectId:          pulumi.String(example.ObjectId),
			PrincipalName:     pulumi.String(example.DisplayName),
			PrincipalType:     pulumi.String("ServicePrincipal"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

A PostgreSQL Flexible Server Active Directory Administrator can be imported using the `resource id`, e.g.

```sh $ pulumi import azure:postgresql/flexibleServerActiveDirectoryAdministrator:FlexibleServerActiveDirectoryAdministrator example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/myserver/administrators/objectId ```

func GetFlexibleServerActiveDirectoryAdministrator

func GetFlexibleServerActiveDirectoryAdministrator(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FlexibleServerActiveDirectoryAdministratorState, opts ...pulumi.ResourceOption) (*FlexibleServerActiveDirectoryAdministrator, error)

GetFlexibleServerActiveDirectoryAdministrator gets an existing FlexibleServerActiveDirectoryAdministrator resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFlexibleServerActiveDirectoryAdministrator

func NewFlexibleServerActiveDirectoryAdministrator(ctx *pulumi.Context,
	name string, args *FlexibleServerActiveDirectoryAdministratorArgs, opts ...pulumi.ResourceOption) (*FlexibleServerActiveDirectoryAdministrator, error)

NewFlexibleServerActiveDirectoryAdministrator registers a new resource with the given unique name, arguments, and options.

func (*FlexibleServerActiveDirectoryAdministrator) ElementType

func (*FlexibleServerActiveDirectoryAdministrator) ToFlexibleServerActiveDirectoryAdministratorOutput

func (i *FlexibleServerActiveDirectoryAdministrator) ToFlexibleServerActiveDirectoryAdministratorOutput() FlexibleServerActiveDirectoryAdministratorOutput

func (*FlexibleServerActiveDirectoryAdministrator) ToFlexibleServerActiveDirectoryAdministratorOutputWithContext

func (i *FlexibleServerActiveDirectoryAdministrator) ToFlexibleServerActiveDirectoryAdministratorOutputWithContext(ctx context.Context) FlexibleServerActiveDirectoryAdministratorOutput

type FlexibleServerActiveDirectoryAdministratorArgs

type FlexibleServerActiveDirectoryAdministratorArgs struct {
	// The object ID of a user, service principal or security group in the Azure Active Directory tenant set as the Flexible Server Admin. Changing this forces a new resource to be created.
	ObjectId pulumi.StringInput
	// The name of Azure Active Directory principal. Changing this forces a new resource to be created.
	PrincipalName pulumi.StringInput
	// The type of Azure Active Directory principal. Possible values are `Group`, `ServicePrincipal` and `User`. Changing this forces a new resource to be created.
	PrincipalType pulumi.StringInput
	// The name of the resource group for the PostgreSQL Server. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringInput
	// The name of the PostgreSQL Flexible Server on which to set the administrator. Changing this forces a new resource to be created.
	ServerName pulumi.StringInput
	// The Azure Tenant ID. Changing this forces a new resource to be created.
	TenantId pulumi.StringInput
}

The set of arguments for constructing a FlexibleServerActiveDirectoryAdministrator resource.

func (FlexibleServerActiveDirectoryAdministratorArgs) ElementType

type FlexibleServerActiveDirectoryAdministratorArray

type FlexibleServerActiveDirectoryAdministratorArray []FlexibleServerActiveDirectoryAdministratorInput

func (FlexibleServerActiveDirectoryAdministratorArray) ElementType

func (FlexibleServerActiveDirectoryAdministratorArray) ToFlexibleServerActiveDirectoryAdministratorArrayOutput

func (i FlexibleServerActiveDirectoryAdministratorArray) ToFlexibleServerActiveDirectoryAdministratorArrayOutput() FlexibleServerActiveDirectoryAdministratorArrayOutput

func (FlexibleServerActiveDirectoryAdministratorArray) ToFlexibleServerActiveDirectoryAdministratorArrayOutputWithContext

func (i FlexibleServerActiveDirectoryAdministratorArray) ToFlexibleServerActiveDirectoryAdministratorArrayOutputWithContext(ctx context.Context) FlexibleServerActiveDirectoryAdministratorArrayOutput

type FlexibleServerActiveDirectoryAdministratorArrayInput

type FlexibleServerActiveDirectoryAdministratorArrayInput interface {
	pulumi.Input

	ToFlexibleServerActiveDirectoryAdministratorArrayOutput() FlexibleServerActiveDirectoryAdministratorArrayOutput
	ToFlexibleServerActiveDirectoryAdministratorArrayOutputWithContext(context.Context) FlexibleServerActiveDirectoryAdministratorArrayOutput
}

FlexibleServerActiveDirectoryAdministratorArrayInput is an input type that accepts FlexibleServerActiveDirectoryAdministratorArray and FlexibleServerActiveDirectoryAdministratorArrayOutput values. You can construct a concrete instance of `FlexibleServerActiveDirectoryAdministratorArrayInput` via:

FlexibleServerActiveDirectoryAdministratorArray{ FlexibleServerActiveDirectoryAdministratorArgs{...} }

type FlexibleServerActiveDirectoryAdministratorArrayOutput

type FlexibleServerActiveDirectoryAdministratorArrayOutput struct{ *pulumi.OutputState }

func (FlexibleServerActiveDirectoryAdministratorArrayOutput) ElementType

func (FlexibleServerActiveDirectoryAdministratorArrayOutput) Index

func (FlexibleServerActiveDirectoryAdministratorArrayOutput) ToFlexibleServerActiveDirectoryAdministratorArrayOutput

func (FlexibleServerActiveDirectoryAdministratorArrayOutput) ToFlexibleServerActiveDirectoryAdministratorArrayOutputWithContext

func (o FlexibleServerActiveDirectoryAdministratorArrayOutput) ToFlexibleServerActiveDirectoryAdministratorArrayOutputWithContext(ctx context.Context) FlexibleServerActiveDirectoryAdministratorArrayOutput

type FlexibleServerActiveDirectoryAdministratorInput

type FlexibleServerActiveDirectoryAdministratorInput interface {
	pulumi.Input

	ToFlexibleServerActiveDirectoryAdministratorOutput() FlexibleServerActiveDirectoryAdministratorOutput
	ToFlexibleServerActiveDirectoryAdministratorOutputWithContext(ctx context.Context) FlexibleServerActiveDirectoryAdministratorOutput
}

type FlexibleServerActiveDirectoryAdministratorMap

type FlexibleServerActiveDirectoryAdministratorMap map[string]FlexibleServerActiveDirectoryAdministratorInput

func (FlexibleServerActiveDirectoryAdministratorMap) ElementType

func (FlexibleServerActiveDirectoryAdministratorMap) ToFlexibleServerActiveDirectoryAdministratorMapOutput

func (i FlexibleServerActiveDirectoryAdministratorMap) ToFlexibleServerActiveDirectoryAdministratorMapOutput() FlexibleServerActiveDirectoryAdministratorMapOutput

func (FlexibleServerActiveDirectoryAdministratorMap) ToFlexibleServerActiveDirectoryAdministratorMapOutputWithContext

func (i FlexibleServerActiveDirectoryAdministratorMap) ToFlexibleServerActiveDirectoryAdministratorMapOutputWithContext(ctx context.Context) FlexibleServerActiveDirectoryAdministratorMapOutput

type FlexibleServerActiveDirectoryAdministratorMapInput

type FlexibleServerActiveDirectoryAdministratorMapInput interface {
	pulumi.Input

	ToFlexibleServerActiveDirectoryAdministratorMapOutput() FlexibleServerActiveDirectoryAdministratorMapOutput
	ToFlexibleServerActiveDirectoryAdministratorMapOutputWithContext(context.Context) FlexibleServerActiveDirectoryAdministratorMapOutput
}

FlexibleServerActiveDirectoryAdministratorMapInput is an input type that accepts FlexibleServerActiveDirectoryAdministratorMap and FlexibleServerActiveDirectoryAdministratorMapOutput values. You can construct a concrete instance of `FlexibleServerActiveDirectoryAdministratorMapInput` via:

FlexibleServerActiveDirectoryAdministratorMap{ "key": FlexibleServerActiveDirectoryAdministratorArgs{...} }

type FlexibleServerActiveDirectoryAdministratorMapOutput

type FlexibleServerActiveDirectoryAdministratorMapOutput struct{ *pulumi.OutputState }

func (FlexibleServerActiveDirectoryAdministratorMapOutput) ElementType

func (FlexibleServerActiveDirectoryAdministratorMapOutput) MapIndex

func (FlexibleServerActiveDirectoryAdministratorMapOutput) ToFlexibleServerActiveDirectoryAdministratorMapOutput

func (o FlexibleServerActiveDirectoryAdministratorMapOutput) ToFlexibleServerActiveDirectoryAdministratorMapOutput() FlexibleServerActiveDirectoryAdministratorMapOutput

func (FlexibleServerActiveDirectoryAdministratorMapOutput) ToFlexibleServerActiveDirectoryAdministratorMapOutputWithContext

func (o FlexibleServerActiveDirectoryAdministratorMapOutput) ToFlexibleServerActiveDirectoryAdministratorMapOutputWithContext(ctx context.Context) FlexibleServerActiveDirectoryAdministratorMapOutput

type FlexibleServerActiveDirectoryAdministratorOutput

type FlexibleServerActiveDirectoryAdministratorOutput struct{ *pulumi.OutputState }

func (FlexibleServerActiveDirectoryAdministratorOutput) ElementType

func (FlexibleServerActiveDirectoryAdministratorOutput) ObjectId

The object ID of a user, service principal or security group in the Azure Active Directory tenant set as the Flexible Server Admin. Changing this forces a new resource to be created.

func (FlexibleServerActiveDirectoryAdministratorOutput) PrincipalName

The name of Azure Active Directory principal. Changing this forces a new resource to be created.

func (FlexibleServerActiveDirectoryAdministratorOutput) PrincipalType

The type of Azure Active Directory principal. Possible values are `Group`, `ServicePrincipal` and `User`. Changing this forces a new resource to be created.

func (FlexibleServerActiveDirectoryAdministratorOutput) ResourceGroupName

The name of the resource group for the PostgreSQL Server. Changing this forces a new resource to be created.

func (FlexibleServerActiveDirectoryAdministratorOutput) ServerName

The name of the PostgreSQL Flexible Server on which to set the administrator. Changing this forces a new resource to be created.

func (FlexibleServerActiveDirectoryAdministratorOutput) TenantId

The Azure Tenant ID. Changing this forces a new resource to be created.

func (FlexibleServerActiveDirectoryAdministratorOutput) ToFlexibleServerActiveDirectoryAdministratorOutput

func (o FlexibleServerActiveDirectoryAdministratorOutput) ToFlexibleServerActiveDirectoryAdministratorOutput() FlexibleServerActiveDirectoryAdministratorOutput

func (FlexibleServerActiveDirectoryAdministratorOutput) ToFlexibleServerActiveDirectoryAdministratorOutputWithContext

func (o FlexibleServerActiveDirectoryAdministratorOutput) ToFlexibleServerActiveDirectoryAdministratorOutputWithContext(ctx context.Context) FlexibleServerActiveDirectoryAdministratorOutput

type FlexibleServerActiveDirectoryAdministratorState

type FlexibleServerActiveDirectoryAdministratorState struct {
	// The object ID of a user, service principal or security group in the Azure Active Directory tenant set as the Flexible Server Admin. Changing this forces a new resource to be created.
	ObjectId pulumi.StringPtrInput
	// The name of Azure Active Directory principal. Changing this forces a new resource to be created.
	PrincipalName pulumi.StringPtrInput
	// The type of Azure Active Directory principal. Possible values are `Group`, `ServicePrincipal` and `User`. Changing this forces a new resource to be created.
	PrincipalType pulumi.StringPtrInput
	// The name of the resource group for the PostgreSQL Server. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringPtrInput
	// The name of the PostgreSQL Flexible Server on which to set the administrator. Changing this forces a new resource to be created.
	ServerName pulumi.StringPtrInput
	// The Azure Tenant ID. Changing this forces a new resource to be created.
	TenantId pulumi.StringPtrInput
}

func (FlexibleServerActiveDirectoryAdministratorState) ElementType

type FlexibleServerArgs

type FlexibleServerArgs struct {
	// The Administrator login for the PostgreSQL Flexible Server. Required when `createMode` is `Default` and `authentication.password_auth_enabled` is `true`.
	//
	// > **Note:** Once `administratorLogin` is specified, changing this forces a new PostgreSQL Flexible Server to be created.
	//
	// > **Note:** To create with `administratorLogin` specified or update with it first specified , `authentication.password_auth_enabled` must be set to `true`.
	AdministratorLogin pulumi.StringPtrInput
	// The Password associated with the `administratorLogin` for the PostgreSQL Flexible Server. Required when `createMode` is `Default` and `authentication.password_auth_enabled` is `true`.
	AdministratorPassword pulumi.StringPtrInput
	// An `authentication` block as defined below.
	Authentication FlexibleServerAuthenticationPtrInput
	// Is the storage auto grow for PostgreSQL Flexible Server enabled? Defaults to `false`.
	AutoGrowEnabled pulumi.BoolPtrInput
	// The backup retention days for the PostgreSQL Flexible Server. Possible values are between `7` and `35` days.
	BackupRetentionDays pulumi.IntPtrInput
	// The creation mode which can be used to restore or replicate existing servers. Possible values are `Default`, `GeoRestore`, `PointInTimeRestore`, `Replica` and `Update`. Changing this forces a new PostgreSQL Flexible Server to be created.
	//
	// > **Note:** `createMode` cannot be changed once it's set since it's a parameter at creation.
	//
	// > **Note:** While creating the resource, `createMode` cannot be set to `Update`.
	CreateMode pulumi.StringPtrInput
	// A `customerManagedKey` block as defined below. Changing this forces a new resource to be created.
	CustomerManagedKey FlexibleServerCustomerManagedKeyPtrInput
	// The ID of the virtual network subnet to create the PostgreSQL Flexible Server. The provided subnet should not have any other resource deployed in it and this subnet will be delegated to the PostgreSQL Flexible Server, if not already delegated. Changing this forces a new PostgreSQL Flexible Server to be created.
	DelegatedSubnetId pulumi.StringPtrInput
	// Is Geo-Redundant backup enabled on the PostgreSQL Flexible Server. Defaults to `false`. Changing this forces a new PostgreSQL Flexible Server to be created.
	GeoRedundantBackupEnabled pulumi.BoolPtrInput
	// A `highAvailability` block as defined below.
	HighAvailability FlexibleServerHighAvailabilityPtrInput
	// An `identity` block as defined below.
	Identity FlexibleServerIdentityPtrInput
	// The Azure Region where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.
	Location pulumi.StringPtrInput
	// A `maintenanceWindow` block as defined below.
	MaintenanceWindow FlexibleServerMaintenanceWindowPtrInput
	// The name which should be used for this PostgreSQL Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created.
	//
	// > **Note** This must be unique across the entire Azure service, not just within the resource group.
	Name pulumi.StringPtrInput
	// The point in time to restore from `sourceServerId` when `createMode` is `GeoRestore`, `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.
	PointInTimeRestoreTimeInUtc pulumi.StringPtrInput
	// The ID of the private DNS zone to create the PostgreSQL Flexible Server.
	//
	// > **Note:** There will be a breaking change from upstream service at 15th July 2021, the `privateDnsZoneId` will be required when setting a `delegatedSubnetId`. For existing flexible servers who don't want to be recreated, you need to provide the `privateDnsZoneId` to the service team to manually migrate to the specified private DNS zone. The `privatedns.Zone` should end with suffix `.postgres.database.azure.com`.
	PrivateDnsZoneId pulumi.StringPtrInput
	// Specifies whether this PostgreSQL Flexible Server is publicly accessible. Defaults to `true`.
	//
	// > **Note:** `publicNetworkAccessEnabled` must be set to `false` when `delegatedSubnetId` and `privateDnsZoneId` have a value.
	PublicNetworkAccessEnabled pulumi.BoolPtrInput
	// The replication role for the PostgreSQL Flexible Server. Possible value is `None`.
	//
	// > **Note:** The `replicationRole` cannot be set while creating and only can be updated to `None` for replica server.
	ReplicationRole pulumi.StringPtrInput
	// The name of the Resource Group where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.
	ResourceGroupName pulumi.StringInput
	// The SKU Name for the PostgreSQL Flexible Server. The name of the SKU, follows the `tier` + `name` pattern (e.g. `B_Standard_B1ms`, `GP_Standard_D2s_v3`, `MO_Standard_E4s_v3`).
	SkuName pulumi.StringPtrInput
	// The resource ID of the source PostgreSQL Flexible Server to be restored. Required when `createMode` is `GeoRestore`, `PointInTimeRestore` or `Replica`. Changing this forces a new PostgreSQL Flexible Server to be created.
	SourceServerId pulumi.StringPtrInput
	// The max storage allowed for the PostgreSQL Flexible Server. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4193280`, `4194304`, `8388608`, `16777216` and `33553408`.
	//
	// > **Note:** If the `storageMb` field is undefined on the initial deployment of the PostgreSQL Flexible Server resource it will default to `32768`. If the `storageMb` field has been defined and then removed, the `storageMb` field will retain the previously defined value.
	//
	// > **Note:** The `storageMb` can only be scaled up, for example, you can scale the `storageMb` from `32768` to `65536`, but not from `65536` to `32768`.
	StorageMb pulumi.IntPtrInput
	// The name of storage performance tier for IOPS of the PostgreSQL Flexible Server. Possible values are `P4`, `P6`, `P10`, `P15`,`P20`, `P30`,`P40`, `P50`,`P60`, `P70` or `P80`. Default value is dependant on the `storageMb` value. Please see the `storageTier` defaults based on `storageMb` table below.
	//
	// > **Note:** The `storageTier` can be scaled once every 12 hours, this restriction is in place to ensure stability and performance after any changes to your PostgreSQL Flexible Server's configuration.
	StorageTier pulumi.StringPtrInput
	// A mapping of tags which should be assigned to the PostgreSQL Flexible Server.
	Tags pulumi.StringMapInput
	// The version of PostgreSQL Flexible Server to use. Possible values are `11`,`12`, `13`, `14`, `15` and `16`. Required when `createMode` is `Default`.
	//
	// > **Note:** When `createMode` is `Update`, upgrading version wouldn't force a new resource to be created.
	Version pulumi.StringPtrInput
	Zone    pulumi.StringPtrInput
}

The set of arguments for constructing a FlexibleServer resource.

func (FlexibleServerArgs) ElementType

func (FlexibleServerArgs) ElementType() reflect.Type

type FlexibleServerArray

type FlexibleServerArray []FlexibleServerInput

func (FlexibleServerArray) ElementType

func (FlexibleServerArray) ElementType() reflect.Type

func (FlexibleServerArray) ToFlexibleServerArrayOutput

func (i FlexibleServerArray) ToFlexibleServerArrayOutput() FlexibleServerArrayOutput

func (FlexibleServerArray) ToFlexibleServerArrayOutputWithContext

func (i FlexibleServerArray) ToFlexibleServerArrayOutputWithContext(ctx context.Context) FlexibleServerArrayOutput

type FlexibleServerArrayInput

type FlexibleServerArrayInput interface {
	pulumi.Input

	ToFlexibleServerArrayOutput() FlexibleServerArrayOutput
	ToFlexibleServerArrayOutputWithContext(context.Context) FlexibleServerArrayOutput
}

FlexibleServerArrayInput is an input type that accepts FlexibleServerArray and FlexibleServerArrayOutput values. You can construct a concrete instance of `FlexibleServerArrayInput` via:

FlexibleServerArray{ FlexibleServerArgs{...} }

type FlexibleServerArrayOutput

type FlexibleServerArrayOutput struct{ *pulumi.OutputState }

func (FlexibleServerArrayOutput) ElementType

func (FlexibleServerArrayOutput) ElementType() reflect.Type

func (FlexibleServerArrayOutput) Index

func (FlexibleServerArrayOutput) ToFlexibleServerArrayOutput

func (o FlexibleServerArrayOutput) ToFlexibleServerArrayOutput() FlexibleServerArrayOutput

func (FlexibleServerArrayOutput) ToFlexibleServerArrayOutputWithContext

func (o FlexibleServerArrayOutput) ToFlexibleServerArrayOutputWithContext(ctx context.Context) FlexibleServerArrayOutput

type FlexibleServerAuthentication

type FlexibleServerAuthentication struct {
	// Whether or not Active Directory authentication is allowed to access the PostgreSQL Flexible Server. Defaults to `false`.
	ActiveDirectoryAuthEnabled *bool `pulumi:"activeDirectoryAuthEnabled"`
	// Whether or not password authentication is allowed to access the PostgreSQL Flexible Server. Defaults to `true`.
	PasswordAuthEnabled *bool `pulumi:"passwordAuthEnabled"`
	// The Tenant ID of the Azure Active Directory which is used by the Active Directory authentication. `activeDirectoryAuthEnabled` must be set to `true`.
	//
	// > **Note:** Setting `activeDirectoryAuthEnabled` to `true` requires a Service Principal for the Postgres Flexible Server. For more details see [this document](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/how-to-configure-sign-in-azure-ad-authentication).
	//
	// > **Note:** `tenantId` is required when `activeDirectoryAuthEnabled` is set to `true`. And it should not be specified when `activeDirectoryAuthEnabled` is set to `false`
	TenantId *string `pulumi:"tenantId"`
}

type FlexibleServerAuthenticationArgs

type FlexibleServerAuthenticationArgs struct {
	// Whether or not Active Directory authentication is allowed to access the PostgreSQL Flexible Server. Defaults to `false`.
	ActiveDirectoryAuthEnabled pulumi.BoolPtrInput `pulumi:"activeDirectoryAuthEnabled"`
	// Whether or not password authentication is allowed to access the PostgreSQL Flexible Server. Defaults to `true`.
	PasswordAuthEnabled pulumi.BoolPtrInput `pulumi:"passwordAuthEnabled"`
	// The Tenant ID of the Azure Active Directory which is used by the Active Directory authentication. `activeDirectoryAuthEnabled` must be set to `true`.
	//
	// > **Note:** Setting `activeDirectoryAuthEnabled` to `true` requires a Service Principal for the Postgres Flexible Server. For more details see [this document](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/how-to-configure-sign-in-azure-ad-authentication).
	//
	// > **Note:** `tenantId` is required when `activeDirectoryAuthEnabled` is set to `true`. And it should not be specified when `activeDirectoryAuthEnabled` is set to `false`
	TenantId pulumi.StringPtrInput `pulumi:"tenantId"`
}

func (FlexibleServerAuthenticationArgs) ElementType

func (FlexibleServerAuthenticationArgs) ToFlexibleServerAuthenticationOutput

func (i FlexibleServerAuthenticationArgs) ToFlexibleServerAuthenticationOutput() FlexibleServerAuthenticationOutput

func (FlexibleServerAuthenticationArgs) ToFlexibleServerAuthenticationOutputWithContext

func (i FlexibleServerAuthenticationArgs) ToFlexibleServerAuthenticationOutputWithContext(ctx context.Context) FlexibleServerAuthenticationOutput

func (FlexibleServerAuthenticationArgs) ToFlexibleServerAuthenticationPtrOutput

func (i FlexibleServerAuthenticationArgs) ToFlexibleServerAuthenticationPtrOutput() FlexibleServerAuthenticationPtrOutput

func (FlexibleServerAuthenticationArgs) ToFlexibleServerAuthenticationPtrOutputWithContext

func (i FlexibleServerAuthenticationArgs) ToFlexibleServerAuthenticationPtrOutputWithContext(ctx context.Context) FlexibleServerAuthenticationPtrOutput

type FlexibleServerAuthenticationInput

type FlexibleServerAuthenticationInput interface {
	pulumi.Input

	ToFlexibleServerAuthenticationOutput() FlexibleServerAuthenticationOutput
	ToFlexibleServerAuthenticationOutputWithContext(context.Context) FlexibleServerAuthenticationOutput
}

FlexibleServerAuthenticationInput is an input type that accepts FlexibleServerAuthenticationArgs and FlexibleServerAuthenticationOutput values. You can construct a concrete instance of `FlexibleServerAuthenticationInput` via:

FlexibleServerAuthenticationArgs{...}

type FlexibleServerAuthenticationOutput

type FlexibleServerAuthenticationOutput struct{ *pulumi.OutputState }

func (FlexibleServerAuthenticationOutput) ActiveDirectoryAuthEnabled

func (o FlexibleServerAuthenticationOutput) ActiveDirectoryAuthEnabled() pulumi.BoolPtrOutput

Whether or not Active Directory authentication is allowed to access the PostgreSQL Flexible Server. Defaults to `false`.

func (FlexibleServerAuthenticationOutput) ElementType

func (FlexibleServerAuthenticationOutput) PasswordAuthEnabled

Whether or not password authentication is allowed to access the PostgreSQL Flexible Server. Defaults to `true`.

func (FlexibleServerAuthenticationOutput) TenantId

The Tenant ID of the Azure Active Directory which is used by the Active Directory authentication. `activeDirectoryAuthEnabled` must be set to `true`.

> **Note:** Setting `activeDirectoryAuthEnabled` to `true` requires a Service Principal for the Postgres Flexible Server. For more details see [this document](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/how-to-configure-sign-in-azure-ad-authentication).

> **Note:** `tenantId` is required when `activeDirectoryAuthEnabled` is set to `true`. And it should not be specified when `activeDirectoryAuthEnabled` is set to `false`

func (FlexibleServerAuthenticationOutput) ToFlexibleServerAuthenticationOutput

func (o FlexibleServerAuthenticationOutput) ToFlexibleServerAuthenticationOutput() FlexibleServerAuthenticationOutput

func (FlexibleServerAuthenticationOutput) ToFlexibleServerAuthenticationOutputWithContext

func (o FlexibleServerAuthenticationOutput) ToFlexibleServerAuthenticationOutputWithContext(ctx context.Context) FlexibleServerAuthenticationOutput

func (FlexibleServerAuthenticationOutput) ToFlexibleServerAuthenticationPtrOutput

func (o FlexibleServerAuthenticationOutput) ToFlexibleServerAuthenticationPtrOutput() FlexibleServerAuthenticationPtrOutput

func (FlexibleServerAuthenticationOutput) ToFlexibleServerAuthenticationPtrOutputWithContext

func (o FlexibleServerAuthenticationOutput) ToFlexibleServerAuthenticationPtrOutputWithContext(ctx context.Context) FlexibleServerAuthenticationPtrOutput

type FlexibleServerAuthenticationPtrInput

type FlexibleServerAuthenticationPtrInput interface {
	pulumi.Input

	ToFlexibleServerAuthenticationPtrOutput() FlexibleServerAuthenticationPtrOutput
	ToFlexibleServerAuthenticationPtrOutputWithContext(context.Context) FlexibleServerAuthenticationPtrOutput
}

FlexibleServerAuthenticationPtrInput is an input type that accepts FlexibleServerAuthenticationArgs, FlexibleServerAuthenticationPtr and FlexibleServerAuthenticationPtrOutput values. You can construct a concrete instance of `FlexibleServerAuthenticationPtrInput` via:

        FlexibleServerAuthenticationArgs{...}

or:

        nil

type FlexibleServerAuthenticationPtrOutput

type FlexibleServerAuthenticationPtrOutput struct{ *pulumi.OutputState }

func (FlexibleServerAuthenticationPtrOutput) ActiveDirectoryAuthEnabled

func (o FlexibleServerAuthenticationPtrOutput) ActiveDirectoryAuthEnabled() pulumi.BoolPtrOutput

Whether or not Active Directory authentication is allowed to access the PostgreSQL Flexible Server. Defaults to `false`.

func (FlexibleServerAuthenticationPtrOutput) Elem

func (FlexibleServerAuthenticationPtrOutput) ElementType

func (FlexibleServerAuthenticationPtrOutput) PasswordAuthEnabled

Whether or not password authentication is allowed to access the PostgreSQL Flexible Server. Defaults to `true`.

func (FlexibleServerAuthenticationPtrOutput) TenantId

The Tenant ID of the Azure Active Directory which is used by the Active Directory authentication. `activeDirectoryAuthEnabled` must be set to `true`.

> **Note:** Setting `activeDirectoryAuthEnabled` to `true` requires a Service Principal for the Postgres Flexible Server. For more details see [this document](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/how-to-configure-sign-in-azure-ad-authentication).

> **Note:** `tenantId` is required when `activeDirectoryAuthEnabled` is set to `true`. And it should not be specified when `activeDirectoryAuthEnabled` is set to `false`

func (FlexibleServerAuthenticationPtrOutput) ToFlexibleServerAuthenticationPtrOutput

func (o FlexibleServerAuthenticationPtrOutput) ToFlexibleServerAuthenticationPtrOutput() FlexibleServerAuthenticationPtrOutput

func (FlexibleServerAuthenticationPtrOutput) ToFlexibleServerAuthenticationPtrOutputWithContext

func (o FlexibleServerAuthenticationPtrOutput) ToFlexibleServerAuthenticationPtrOutputWithContext(ctx context.Context) FlexibleServerAuthenticationPtrOutput

type FlexibleServerConfiguration

type FlexibleServerConfiguration struct {
	pulumi.CustomResourceState

	// Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.
	//
	// > **Note:** PostgreSQL provides the ability to extend the functionality using azure extensions, with PostgreSQL azure extensions you should specify the `name` value as `azure.extensions` and the `value` you wish to allow in the [extensions list](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-extensions?WT.mc_id=Portal-Microsoft_Azure_OSSDatabases#extension-versions).
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the PostgreSQL Flexible Server where we want to change configuration. Changing this forces a new PostgreSQL Flexible Server Configuration resource.
	ServerId pulumi.StringOutput `pulumi:"serverId"`
	// Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values.
	Value pulumi.StringOutput `pulumi:"value"`
}

Sets a PostgreSQL Configuration value on a Azure PostgreSQL Flexible Server.

> **Note:** Changes to static server parameters will automatically trigger Azure Flex Server restart. This behavior can be disabled in the provider `features` block by setting the `restartServerOnConfigurationValueChange` field to `false` within the `postgresqlFlexibleServer` block.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("example-resources"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleFlexibleServer, err := postgresql.NewFlexibleServer(ctx, "example", &postgresql.FlexibleServerArgs{
			Name:                  pulumi.String("example-psqlflexibleserver"),
			ResourceGroupName:     example.Name,
			Location:              example.Location,
			Version:               pulumi.String("12"),
			AdministratorLogin:    pulumi.String("psqladmin"),
			AdministratorPassword: pulumi.String("H@Sh1CoR3!"),
			StorageMb:             pulumi.Int(32768),
			SkuName:               pulumi.String("GP_Standard_D4s_v3"),
		})
		if err != nil {
			return err
		}
		_, err = postgresql.NewFlexibleServerConfiguration(ctx, "example", &postgresql.FlexibleServerConfigurationArgs{
			Name:     pulumi.String("backslash_quote"),
			ServerId: exampleFlexibleServer.ID(),
			Value:    pulumi.String("on"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

### Azure Extensions

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("example-resources"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleFlexibleServer, err := postgresql.NewFlexibleServer(ctx, "example", &postgresql.FlexibleServerArgs{
			Name:                  pulumi.String("example-psqlflexibleserver"),
			ResourceGroupName:     example.Name,
			Location:              example.Location,
			Version:               pulumi.String("12"),
			AdministratorLogin:    pulumi.String("psqladmin"),
			AdministratorPassword: pulumi.String("H@Sh1CoR3!"),
			StorageMb:             pulumi.Int(32768),
			SkuName:               pulumi.String("GP_Standard_D4s_v3"),
		})
		if err != nil {
			return err
		}
		_, err = postgresql.NewFlexibleServerConfiguration(ctx, "example", &postgresql.FlexibleServerConfigurationArgs{
			Name:     pulumi.String("azure.extensions"),
			ServerId: exampleFlexibleServer.ID(),
			Value:    pulumi.String("CUBE,CITEXT,BTREE_GIST"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

PostgreSQL Configurations can be imported using the `resource id`, e.g.

```sh $ pulumi import azure:postgresql/flexibleServerConfiguration:FlexibleServerConfiguration example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/flexibleServers/server1/configurations/configuration1 ```

func GetFlexibleServerConfiguration

func GetFlexibleServerConfiguration(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FlexibleServerConfigurationState, opts ...pulumi.ResourceOption) (*FlexibleServerConfiguration, error)

GetFlexibleServerConfiguration gets an existing FlexibleServerConfiguration resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFlexibleServerConfiguration

func NewFlexibleServerConfiguration(ctx *pulumi.Context,
	name string, args *FlexibleServerConfigurationArgs, opts ...pulumi.ResourceOption) (*FlexibleServerConfiguration, error)

NewFlexibleServerConfiguration registers a new resource with the given unique name, arguments, and options.

func (*FlexibleServerConfiguration) ElementType

func (*FlexibleServerConfiguration) ElementType() reflect.Type

func (*FlexibleServerConfiguration) ToFlexibleServerConfigurationOutput

func (i *FlexibleServerConfiguration) ToFlexibleServerConfigurationOutput() FlexibleServerConfigurationOutput

func (*FlexibleServerConfiguration) ToFlexibleServerConfigurationOutputWithContext

func (i *FlexibleServerConfiguration) ToFlexibleServerConfigurationOutputWithContext(ctx context.Context) FlexibleServerConfigurationOutput

type FlexibleServerConfigurationArgs

type FlexibleServerConfigurationArgs struct {
	// Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.
	//
	// > **Note:** PostgreSQL provides the ability to extend the functionality using azure extensions, with PostgreSQL azure extensions you should specify the `name` value as `azure.extensions` and the `value` you wish to allow in the [extensions list](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-extensions?WT.mc_id=Portal-Microsoft_Azure_OSSDatabases#extension-versions).
	Name pulumi.StringPtrInput
	// The ID of the PostgreSQL Flexible Server where we want to change configuration. Changing this forces a new PostgreSQL Flexible Server Configuration resource.
	ServerId pulumi.StringInput
	// Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values.
	Value pulumi.StringInput
}

The set of arguments for constructing a FlexibleServerConfiguration resource.

func (FlexibleServerConfigurationArgs) ElementType

type FlexibleServerConfigurationArray

type FlexibleServerConfigurationArray []FlexibleServerConfigurationInput

func (FlexibleServerConfigurationArray) ElementType

func (FlexibleServerConfigurationArray) ToFlexibleServerConfigurationArrayOutput

func (i FlexibleServerConfigurationArray) ToFlexibleServerConfigurationArrayOutput() FlexibleServerConfigurationArrayOutput

func (FlexibleServerConfigurationArray) ToFlexibleServerConfigurationArrayOutputWithContext

func (i FlexibleServerConfigurationArray) ToFlexibleServerConfigurationArrayOutputWithContext(ctx context.Context) FlexibleServerConfigurationArrayOutput

type FlexibleServerConfigurationArrayInput

type FlexibleServerConfigurationArrayInput interface {
	pulumi.Input

	ToFlexibleServerConfigurationArrayOutput() FlexibleServerConfigurationArrayOutput
	ToFlexibleServerConfigurationArrayOutputWithContext(context.Context) FlexibleServerConfigurationArrayOutput
}

FlexibleServerConfigurationArrayInput is an input type that accepts FlexibleServerConfigurationArray and FlexibleServerConfigurationArrayOutput values. You can construct a concrete instance of `FlexibleServerConfigurationArrayInput` via:

FlexibleServerConfigurationArray{ FlexibleServerConfigurationArgs{...} }

type FlexibleServerConfigurationArrayOutput

type FlexibleServerConfigurationArrayOutput struct{ *pulumi.OutputState }

func (FlexibleServerConfigurationArrayOutput) ElementType

func (FlexibleServerConfigurationArrayOutput) Index

func (FlexibleServerConfigurationArrayOutput) ToFlexibleServerConfigurationArrayOutput

func (o FlexibleServerConfigurationArrayOutput) ToFlexibleServerConfigurationArrayOutput() FlexibleServerConfigurationArrayOutput

func (FlexibleServerConfigurationArrayOutput) ToFlexibleServerConfigurationArrayOutputWithContext

func (o FlexibleServerConfigurationArrayOutput) ToFlexibleServerConfigurationArrayOutputWithContext(ctx context.Context) FlexibleServerConfigurationArrayOutput

type FlexibleServerConfigurationInput

type FlexibleServerConfigurationInput interface {
	pulumi.Input

	ToFlexibleServerConfigurationOutput() FlexibleServerConfigurationOutput
	ToFlexibleServerConfigurationOutputWithContext(ctx context.Context) FlexibleServerConfigurationOutput
}

type FlexibleServerConfigurationMap

type FlexibleServerConfigurationMap map[string]FlexibleServerConfigurationInput

func (FlexibleServerConfigurationMap) ElementType

func (FlexibleServerConfigurationMap) ToFlexibleServerConfigurationMapOutput

func (i FlexibleServerConfigurationMap) ToFlexibleServerConfigurationMapOutput() FlexibleServerConfigurationMapOutput

func (FlexibleServerConfigurationMap) ToFlexibleServerConfigurationMapOutputWithContext

func (i FlexibleServerConfigurationMap) ToFlexibleServerConfigurationMapOutputWithContext(ctx context.Context) FlexibleServerConfigurationMapOutput

type FlexibleServerConfigurationMapInput

type FlexibleServerConfigurationMapInput interface {
	pulumi.Input

	ToFlexibleServerConfigurationMapOutput() FlexibleServerConfigurationMapOutput
	ToFlexibleServerConfigurationMapOutputWithContext(context.Context) FlexibleServerConfigurationMapOutput
}

FlexibleServerConfigurationMapInput is an input type that accepts FlexibleServerConfigurationMap and FlexibleServerConfigurationMapOutput values. You can construct a concrete instance of `FlexibleServerConfigurationMapInput` via:

FlexibleServerConfigurationMap{ "key": FlexibleServerConfigurationArgs{...} }

type FlexibleServerConfigurationMapOutput

type FlexibleServerConfigurationMapOutput struct{ *pulumi.OutputState }

func (FlexibleServerConfigurationMapOutput) ElementType

func (FlexibleServerConfigurationMapOutput) MapIndex

func (FlexibleServerConfigurationMapOutput) ToFlexibleServerConfigurationMapOutput

func (o FlexibleServerConfigurationMapOutput) ToFlexibleServerConfigurationMapOutput() FlexibleServerConfigurationMapOutput

func (FlexibleServerConfigurationMapOutput) ToFlexibleServerConfigurationMapOutputWithContext

func (o FlexibleServerConfigurationMapOutput) ToFlexibleServerConfigurationMapOutputWithContext(ctx context.Context) FlexibleServerConfigurationMapOutput

type FlexibleServerConfigurationOutput

type FlexibleServerConfigurationOutput struct{ *pulumi.OutputState }

func (FlexibleServerConfigurationOutput) ElementType

func (FlexibleServerConfigurationOutput) Name

Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.

> **Note:** PostgreSQL provides the ability to extend the functionality using azure extensions, with PostgreSQL azure extensions you should specify the `name` value as `azure.extensions` and the `value` you wish to allow in the [extensions list](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-extensions?WT.mc_id=Portal-Microsoft_Azure_OSSDatabases#extension-versions).

func (FlexibleServerConfigurationOutput) ServerId

The ID of the PostgreSQL Flexible Server where we want to change configuration. Changing this forces a new PostgreSQL Flexible Server Configuration resource.

func (FlexibleServerConfigurationOutput) ToFlexibleServerConfigurationOutput

func (o FlexibleServerConfigurationOutput) ToFlexibleServerConfigurationOutput() FlexibleServerConfigurationOutput

func (FlexibleServerConfigurationOutput) ToFlexibleServerConfigurationOutputWithContext

func (o FlexibleServerConfigurationOutput) ToFlexibleServerConfigurationOutputWithContext(ctx context.Context) FlexibleServerConfigurationOutput

func (FlexibleServerConfigurationOutput) Value

Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values.

type FlexibleServerConfigurationState

type FlexibleServerConfigurationState struct {
	// Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.
	//
	// > **Note:** PostgreSQL provides the ability to extend the functionality using azure extensions, with PostgreSQL azure extensions you should specify the `name` value as `azure.extensions` and the `value` you wish to allow in the [extensions list](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-extensions?WT.mc_id=Portal-Microsoft_Azure_OSSDatabases#extension-versions).
	Name pulumi.StringPtrInput
	// The ID of the PostgreSQL Flexible Server where we want to change configuration. Changing this forces a new PostgreSQL Flexible Server Configuration resource.
	ServerId pulumi.StringPtrInput
	// Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values.
	Value pulumi.StringPtrInput
}

func (FlexibleServerConfigurationState) ElementType

type FlexibleServerCustomerManagedKey

type FlexibleServerCustomerManagedKey struct {
	// The ID of the geo backup Key Vault Key. It can't cross region and need Customer Managed Key in same region as geo backup.
	GeoBackupKeyVaultKeyId *string `pulumi:"geoBackupKeyVaultKeyId"`
	// The geo backup user managed identity id for a Customer Managed Key. Should be added with `identityIds`. It can't cross region and need identity in same region as geo backup.
	//
	// > **Note:** `primaryUserAssignedIdentityId` or `geoBackupUserAssignedIdentityId` is required when `type` is set to `UserAssigned`.
	GeoBackupUserAssignedIdentityId *string `pulumi:"geoBackupUserAssignedIdentityId"`
	// The ID of the Key Vault Key.
	KeyVaultKeyId string `pulumi:"keyVaultKeyId"`
	// Specifies the primary user managed identity id for a Customer Managed Key. Should be added with `identityIds`.
	PrimaryUserAssignedIdentityId *string `pulumi:"primaryUserAssignedIdentityId"`
}

type FlexibleServerCustomerManagedKeyArgs

type FlexibleServerCustomerManagedKeyArgs struct {
	// The ID of the geo backup Key Vault Key. It can't cross region and need Customer Managed Key in same region as geo backup.
	GeoBackupKeyVaultKeyId pulumi.StringPtrInput `pulumi:"geoBackupKeyVaultKeyId"`
	// The geo backup user managed identity id for a Customer Managed Key. Should be added with `identityIds`. It can't cross region and need identity in same region as geo backup.
	//
	// > **Note:** `primaryUserAssignedIdentityId` or `geoBackupUserAssignedIdentityId` is required when `type` is set to `UserAssigned`.
	GeoBackupUserAssignedIdentityId pulumi.StringPtrInput `pulumi:"geoBackupUserAssignedIdentityId"`
	// The ID of the Key Vault Key.
	KeyVaultKeyId pulumi.StringInput `pulumi:"keyVaultKeyId"`
	// Specifies the primary user managed identity id for a Customer Managed Key. Should be added with `identityIds`.
	PrimaryUserAssignedIdentityId pulumi.StringPtrInput `pulumi:"primaryUserAssignedIdentityId"`
}

func (FlexibleServerCustomerManagedKeyArgs) ElementType

func (FlexibleServerCustomerManagedKeyArgs) ToFlexibleServerCustomerManagedKeyOutput

func (i FlexibleServerCustomerManagedKeyArgs) ToFlexibleServerCustomerManagedKeyOutput() FlexibleServerCustomerManagedKeyOutput

func (FlexibleServerCustomerManagedKeyArgs) ToFlexibleServerCustomerManagedKeyOutputWithContext

func (i FlexibleServerCustomerManagedKeyArgs) ToFlexibleServerCustomerManagedKeyOutputWithContext(ctx context.Context) FlexibleServerCustomerManagedKeyOutput

func (FlexibleServerCustomerManagedKeyArgs) ToFlexibleServerCustomerManagedKeyPtrOutput

func (i FlexibleServerCustomerManagedKeyArgs) ToFlexibleServerCustomerManagedKeyPtrOutput() FlexibleServerCustomerManagedKeyPtrOutput

func (FlexibleServerCustomerManagedKeyArgs) ToFlexibleServerCustomerManagedKeyPtrOutputWithContext

func (i FlexibleServerCustomerManagedKeyArgs) ToFlexibleServerCustomerManagedKeyPtrOutputWithContext(ctx context.Context) FlexibleServerCustomerManagedKeyPtrOutput

type FlexibleServerCustomerManagedKeyInput

type FlexibleServerCustomerManagedKeyInput interface {
	pulumi.Input

	ToFlexibleServerCustomerManagedKeyOutput() FlexibleServerCustomerManagedKeyOutput
	ToFlexibleServerCustomerManagedKeyOutputWithContext(context.Context) FlexibleServerCustomerManagedKeyOutput
}

FlexibleServerCustomerManagedKeyInput is an input type that accepts FlexibleServerCustomerManagedKeyArgs and FlexibleServerCustomerManagedKeyOutput values. You can construct a concrete instance of `FlexibleServerCustomerManagedKeyInput` via:

FlexibleServerCustomerManagedKeyArgs{...}

type FlexibleServerCustomerManagedKeyOutput

type FlexibleServerCustomerManagedKeyOutput struct{ *pulumi.OutputState }

func (FlexibleServerCustomerManagedKeyOutput) ElementType

func (FlexibleServerCustomerManagedKeyOutput) GeoBackupKeyVaultKeyId

The ID of the geo backup Key Vault Key. It can't cross region and need Customer Managed Key in same region as geo backup.

func (FlexibleServerCustomerManagedKeyOutput) GeoBackupUserAssignedIdentityId

func (o FlexibleServerCustomerManagedKeyOutput) GeoBackupUserAssignedIdentityId() pulumi.StringPtrOutput

The geo backup user managed identity id for a Customer Managed Key. Should be added with `identityIds`. It can't cross region and need identity in same region as geo backup.

> **Note:** `primaryUserAssignedIdentityId` or `geoBackupUserAssignedIdentityId` is required when `type` is set to `UserAssigned`.

func (FlexibleServerCustomerManagedKeyOutput) KeyVaultKeyId

The ID of the Key Vault Key.

func (FlexibleServerCustomerManagedKeyOutput) PrimaryUserAssignedIdentityId

func (o FlexibleServerCustomerManagedKeyOutput) PrimaryUserAssignedIdentityId() pulumi.StringPtrOutput

Specifies the primary user managed identity id for a Customer Managed Key. Should be added with `identityIds`.

func (FlexibleServerCustomerManagedKeyOutput) ToFlexibleServerCustomerManagedKeyOutput

func (o FlexibleServerCustomerManagedKeyOutput) ToFlexibleServerCustomerManagedKeyOutput() FlexibleServerCustomerManagedKeyOutput

func (FlexibleServerCustomerManagedKeyOutput) ToFlexibleServerCustomerManagedKeyOutputWithContext

func (o FlexibleServerCustomerManagedKeyOutput) ToFlexibleServerCustomerManagedKeyOutputWithContext(ctx context.Context) FlexibleServerCustomerManagedKeyOutput

func (FlexibleServerCustomerManagedKeyOutput) ToFlexibleServerCustomerManagedKeyPtrOutput

func (o FlexibleServerCustomerManagedKeyOutput) ToFlexibleServerCustomerManagedKeyPtrOutput() FlexibleServerCustomerManagedKeyPtrOutput

func (FlexibleServerCustomerManagedKeyOutput) ToFlexibleServerCustomerManagedKeyPtrOutputWithContext

func (o FlexibleServerCustomerManagedKeyOutput) ToFlexibleServerCustomerManagedKeyPtrOutputWithContext(ctx context.Context) FlexibleServerCustomerManagedKeyPtrOutput

type FlexibleServerCustomerManagedKeyPtrInput

type FlexibleServerCustomerManagedKeyPtrInput interface {
	pulumi.Input

	ToFlexibleServerCustomerManagedKeyPtrOutput() FlexibleServerCustomerManagedKeyPtrOutput
	ToFlexibleServerCustomerManagedKeyPtrOutputWithContext(context.Context) FlexibleServerCustomerManagedKeyPtrOutput
}

FlexibleServerCustomerManagedKeyPtrInput is an input type that accepts FlexibleServerCustomerManagedKeyArgs, FlexibleServerCustomerManagedKeyPtr and FlexibleServerCustomerManagedKeyPtrOutput values. You can construct a concrete instance of `FlexibleServerCustomerManagedKeyPtrInput` via:

        FlexibleServerCustomerManagedKeyArgs{...}

or:

        nil

type FlexibleServerCustomerManagedKeyPtrOutput

type FlexibleServerCustomerManagedKeyPtrOutput struct{ *pulumi.OutputState }

func (FlexibleServerCustomerManagedKeyPtrOutput) Elem

func (FlexibleServerCustomerManagedKeyPtrOutput) ElementType

func (FlexibleServerCustomerManagedKeyPtrOutput) GeoBackupKeyVaultKeyId

The ID of the geo backup Key Vault Key. It can't cross region and need Customer Managed Key in same region as geo backup.

func (FlexibleServerCustomerManagedKeyPtrOutput) GeoBackupUserAssignedIdentityId

func (o FlexibleServerCustomerManagedKeyPtrOutput) GeoBackupUserAssignedIdentityId() pulumi.StringPtrOutput

The geo backup user managed identity id for a Customer Managed Key. Should be added with `identityIds`. It can't cross region and need identity in same region as geo backup.

> **Note:** `primaryUserAssignedIdentityId` or `geoBackupUserAssignedIdentityId` is required when `type` is set to `UserAssigned`.

func (FlexibleServerCustomerManagedKeyPtrOutput) KeyVaultKeyId

The ID of the Key Vault Key.

func (FlexibleServerCustomerManagedKeyPtrOutput) PrimaryUserAssignedIdentityId

func (o FlexibleServerCustomerManagedKeyPtrOutput) PrimaryUserAssignedIdentityId() pulumi.StringPtrOutput

Specifies the primary user managed identity id for a Customer Managed Key. Should be added with `identityIds`.

func (FlexibleServerCustomerManagedKeyPtrOutput) ToFlexibleServerCustomerManagedKeyPtrOutput

func (o FlexibleServerCustomerManagedKeyPtrOutput) ToFlexibleServerCustomerManagedKeyPtrOutput() FlexibleServerCustomerManagedKeyPtrOutput

func (FlexibleServerCustomerManagedKeyPtrOutput) ToFlexibleServerCustomerManagedKeyPtrOutputWithContext

func (o FlexibleServerCustomerManagedKeyPtrOutput) ToFlexibleServerCustomerManagedKeyPtrOutputWithContext(ctx context.Context) FlexibleServerCustomerManagedKeyPtrOutput

type FlexibleServerDatabase

type FlexibleServerDatabase struct {
	pulumi.CustomResourceState

	// Specifies the Charset for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Defaults to `UTF8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.
	Charset pulumi.StringPtrOutput `pulumi:"charset"`
	// Specifies the Collation for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Defaults to `en_US.utf8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.
	Collation pulumi.StringPtrOutput `pulumi:"collation"`
	// Specifies the name of the PostgreSQL Database, which needs [to be a valid PostgreSQL identifier](https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS). Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the Azure PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Database. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.
	ServerId pulumi.StringOutput `pulumi:"serverId"`
}

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("example-resources"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleFlexibleServer, err := postgresql.NewFlexibleServer(ctx, "example", &postgresql.FlexibleServerArgs{
			Name:                  pulumi.String("example-psqlflexibleserver"),
			ResourceGroupName:     example.Name,
			Location:              example.Location,
			Version:               pulumi.String("12"),
			AdministratorLogin:    pulumi.String("psqladmin"),
			AdministratorPassword: pulumi.String("H@Sh1CoR3!"),
			StorageMb:             pulumi.Int(32768),
			SkuName:               pulumi.String("GP_Standard_D4s_v3"),
		})
		if err != nil {
			return err
		}
		_, err = postgresql.NewFlexibleServerDatabase(ctx, "example", &postgresql.FlexibleServerDatabaseArgs{
			Name:      pulumi.String("exampledb"),
			ServerId:  exampleFlexibleServer.ID(),
			Collation: pulumi.String("en_US.utf8"),
			Charset:   pulumi.String("utf8"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Azure PostgreSQL Flexible Server Database can be imported using the `resource id`, e.g.

```sh $ pulumi import azure:postgresql/flexibleServerDatabase:FlexibleServerDatabase example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DBforPostgreSQL/flexibleServers/flexibleServer1/databases/database1 ```

func GetFlexibleServerDatabase

func GetFlexibleServerDatabase(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FlexibleServerDatabaseState, opts ...pulumi.ResourceOption) (*FlexibleServerDatabase, error)

GetFlexibleServerDatabase gets an existing FlexibleServerDatabase resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFlexibleServerDatabase

func NewFlexibleServerDatabase(ctx *pulumi.Context,
	name string, args *FlexibleServerDatabaseArgs, opts ...pulumi.ResourceOption) (*FlexibleServerDatabase, error)

NewFlexibleServerDatabase registers a new resource with the given unique name, arguments, and options.

func (*FlexibleServerDatabase) ElementType

func (*FlexibleServerDatabase) ElementType() reflect.Type

func (*FlexibleServerDatabase) ToFlexibleServerDatabaseOutput

func (i *FlexibleServerDatabase) ToFlexibleServerDatabaseOutput() FlexibleServerDatabaseOutput

func (*FlexibleServerDatabase) ToFlexibleServerDatabaseOutputWithContext

func (i *FlexibleServerDatabase) ToFlexibleServerDatabaseOutputWithContext(ctx context.Context) FlexibleServerDatabaseOutput

type FlexibleServerDatabaseArgs

type FlexibleServerDatabaseArgs struct {
	// Specifies the Charset for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Defaults to `UTF8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.
	Charset pulumi.StringPtrInput
	// Specifies the Collation for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Defaults to `en_US.utf8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.
	Collation pulumi.StringPtrInput
	// Specifies the name of the PostgreSQL Database, which needs [to be a valid PostgreSQL identifier](https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS). Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.
	Name pulumi.StringPtrInput
	// The ID of the Azure PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Database. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.
	ServerId pulumi.StringInput
}

The set of arguments for constructing a FlexibleServerDatabase resource.

func (FlexibleServerDatabaseArgs) ElementType

func (FlexibleServerDatabaseArgs) ElementType() reflect.Type

type FlexibleServerDatabaseArray

type FlexibleServerDatabaseArray []FlexibleServerDatabaseInput

func (FlexibleServerDatabaseArray) ElementType

func (FlexibleServerDatabaseArray) ToFlexibleServerDatabaseArrayOutput

func (i FlexibleServerDatabaseArray) ToFlexibleServerDatabaseArrayOutput() FlexibleServerDatabaseArrayOutput

func (FlexibleServerDatabaseArray) ToFlexibleServerDatabaseArrayOutputWithContext

func (i FlexibleServerDatabaseArray) ToFlexibleServerDatabaseArrayOutputWithContext(ctx context.Context) FlexibleServerDatabaseArrayOutput

type FlexibleServerDatabaseArrayInput

type FlexibleServerDatabaseArrayInput interface {
	pulumi.Input

	ToFlexibleServerDatabaseArrayOutput() FlexibleServerDatabaseArrayOutput
	ToFlexibleServerDatabaseArrayOutputWithContext(context.Context) FlexibleServerDatabaseArrayOutput
}

FlexibleServerDatabaseArrayInput is an input type that accepts FlexibleServerDatabaseArray and FlexibleServerDatabaseArrayOutput values. You can construct a concrete instance of `FlexibleServerDatabaseArrayInput` via:

FlexibleServerDatabaseArray{ FlexibleServerDatabaseArgs{...} }

type FlexibleServerDatabaseArrayOutput

type FlexibleServerDatabaseArrayOutput struct{ *pulumi.OutputState }

func (FlexibleServerDatabaseArrayOutput) ElementType

func (FlexibleServerDatabaseArrayOutput) Index

func (FlexibleServerDatabaseArrayOutput) ToFlexibleServerDatabaseArrayOutput

func (o FlexibleServerDatabaseArrayOutput) ToFlexibleServerDatabaseArrayOutput() FlexibleServerDatabaseArrayOutput

func (FlexibleServerDatabaseArrayOutput) ToFlexibleServerDatabaseArrayOutputWithContext

func (o FlexibleServerDatabaseArrayOutput) ToFlexibleServerDatabaseArrayOutputWithContext(ctx context.Context) FlexibleServerDatabaseArrayOutput

type FlexibleServerDatabaseInput

type FlexibleServerDatabaseInput interface {
	pulumi.Input

	ToFlexibleServerDatabaseOutput() FlexibleServerDatabaseOutput
	ToFlexibleServerDatabaseOutputWithContext(ctx context.Context) FlexibleServerDatabaseOutput
}

type FlexibleServerDatabaseMap

type FlexibleServerDatabaseMap map[string]FlexibleServerDatabaseInput

func (FlexibleServerDatabaseMap) ElementType

func (FlexibleServerDatabaseMap) ElementType() reflect.Type

func (FlexibleServerDatabaseMap) ToFlexibleServerDatabaseMapOutput

func (i FlexibleServerDatabaseMap) ToFlexibleServerDatabaseMapOutput() FlexibleServerDatabaseMapOutput

func (FlexibleServerDatabaseMap) ToFlexibleServerDatabaseMapOutputWithContext

func (i FlexibleServerDatabaseMap) ToFlexibleServerDatabaseMapOutputWithContext(ctx context.Context) FlexibleServerDatabaseMapOutput

type FlexibleServerDatabaseMapInput

type FlexibleServerDatabaseMapInput interface {
	pulumi.Input

	ToFlexibleServerDatabaseMapOutput() FlexibleServerDatabaseMapOutput
	ToFlexibleServerDatabaseMapOutputWithContext(context.Context) FlexibleServerDatabaseMapOutput
}

FlexibleServerDatabaseMapInput is an input type that accepts FlexibleServerDatabaseMap and FlexibleServerDatabaseMapOutput values. You can construct a concrete instance of `FlexibleServerDatabaseMapInput` via:

FlexibleServerDatabaseMap{ "key": FlexibleServerDatabaseArgs{...} }

type FlexibleServerDatabaseMapOutput

type FlexibleServerDatabaseMapOutput struct{ *pulumi.OutputState }

func (FlexibleServerDatabaseMapOutput) ElementType

func (FlexibleServerDatabaseMapOutput) MapIndex

func (FlexibleServerDatabaseMapOutput) ToFlexibleServerDatabaseMapOutput

func (o FlexibleServerDatabaseMapOutput) ToFlexibleServerDatabaseMapOutput() FlexibleServerDatabaseMapOutput

func (FlexibleServerDatabaseMapOutput) ToFlexibleServerDatabaseMapOutputWithContext

func (o FlexibleServerDatabaseMapOutput) ToFlexibleServerDatabaseMapOutputWithContext(ctx context.Context) FlexibleServerDatabaseMapOutput

type FlexibleServerDatabaseOutput

type FlexibleServerDatabaseOutput struct{ *pulumi.OutputState }

func (FlexibleServerDatabaseOutput) Charset

Specifies the Charset for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Defaults to `UTF8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.

func (FlexibleServerDatabaseOutput) Collation

Specifies the Collation for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Defaults to `en_US.utf8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.

func (FlexibleServerDatabaseOutput) ElementType

func (FlexibleServerDatabaseOutput) Name

Specifies the name of the PostgreSQL Database, which needs [to be a valid PostgreSQL identifier](https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS). Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.

func (FlexibleServerDatabaseOutput) ServerId

The ID of the Azure PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Database. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.

func (FlexibleServerDatabaseOutput) ToFlexibleServerDatabaseOutput

func (o FlexibleServerDatabaseOutput) ToFlexibleServerDatabaseOutput() FlexibleServerDatabaseOutput

func (FlexibleServerDatabaseOutput) ToFlexibleServerDatabaseOutputWithContext

func (o FlexibleServerDatabaseOutput) ToFlexibleServerDatabaseOutputWithContext(ctx context.Context) FlexibleServerDatabaseOutput

type FlexibleServerDatabaseState

type FlexibleServerDatabaseState struct {
	// Specifies the Charset for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Defaults to `UTF8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.
	Charset pulumi.StringPtrInput
	// Specifies the Collation for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Defaults to `en_US.utf8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.
	Collation pulumi.StringPtrInput
	// Specifies the name of the PostgreSQL Database, which needs [to be a valid PostgreSQL identifier](https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS). Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.
	Name pulumi.StringPtrInput
	// The ID of the Azure PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Database. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.
	ServerId pulumi.StringPtrInput
}

func (FlexibleServerDatabaseState) ElementType

type FlexibleServerFirewallRule

type FlexibleServerFirewallRule struct {
	pulumi.CustomResourceState

	// The End IP Address associated with this PostgreSQL Flexible Server Firewall Rule.
	EndIpAddress pulumi.StringOutput `pulumi:"endIpAddress"`
	// The name which should be used for this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.
	ServerId pulumi.StringOutput `pulumi:"serverId"`
	// The Start IP Address associated with this PostgreSQL Flexible Server Firewall Rule.
	StartIpAddress pulumi.StringOutput `pulumi:"startIpAddress"`
}

Manages a PostgreSQL Flexible Server Firewall Rule.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("example-resources"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleFlexibleServer, err := postgresql.NewFlexibleServer(ctx, "example", &postgresql.FlexibleServerArgs{
			Name:                  pulumi.String("example-psqlflexibleserver"),
			ResourceGroupName:     example.Name,
			Location:              example.Location,
			Version:               pulumi.String("12"),
			AdministratorLogin:    pulumi.String("psqladmin"),
			AdministratorPassword: pulumi.String("H@Sh1CoR3!"),
			StorageMb:             pulumi.Int(32768),
			SkuName:               pulumi.String("GP_Standard_D4s_v3"),
		})
		if err != nil {
			return err
		}
		_, err = postgresql.NewFlexibleServerFirewallRule(ctx, "example", &postgresql.FlexibleServerFirewallRuleArgs{
			Name:           pulumi.String("example-fw"),
			ServerId:       exampleFlexibleServer.ID(),
			StartIpAddress: pulumi.String("122.122.0.0"),
			EndIpAddress:   pulumi.String("122.122.0.0"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

PostgreSQL Flexible Server Firewall Rules can be imported using the `resource id`, e.g.

```sh $ pulumi import azure:postgresql/flexibleServerFirewallRule:FlexibleServerFirewallRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DBforPostgreSQL/flexibleServers/flexibleServer1/firewallRules/firewallRule1 ```

func GetFlexibleServerFirewallRule

func GetFlexibleServerFirewallRule(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FlexibleServerFirewallRuleState, opts ...pulumi.ResourceOption) (*FlexibleServerFirewallRule, error)

GetFlexibleServerFirewallRule gets an existing FlexibleServerFirewallRule resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFlexibleServerFirewallRule

func NewFlexibleServerFirewallRule(ctx *pulumi.Context,
	name string, args *FlexibleServerFirewallRuleArgs, opts ...pulumi.ResourceOption) (*FlexibleServerFirewallRule, error)

NewFlexibleServerFirewallRule registers a new resource with the given unique name, arguments, and options.

func (*FlexibleServerFirewallRule) ElementType

func (*FlexibleServerFirewallRule) ElementType() reflect.Type

func (*FlexibleServerFirewallRule) ToFlexibleServerFirewallRuleOutput

func (i *FlexibleServerFirewallRule) ToFlexibleServerFirewallRuleOutput() FlexibleServerFirewallRuleOutput

func (*FlexibleServerFirewallRule) ToFlexibleServerFirewallRuleOutputWithContext

func (i *FlexibleServerFirewallRule) ToFlexibleServerFirewallRuleOutputWithContext(ctx context.Context) FlexibleServerFirewallRuleOutput

type FlexibleServerFirewallRuleArgs

type FlexibleServerFirewallRuleArgs struct {
	// The End IP Address associated with this PostgreSQL Flexible Server Firewall Rule.
	EndIpAddress pulumi.StringInput
	// The name which should be used for this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.
	Name pulumi.StringPtrInput
	// The ID of the PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.
	ServerId pulumi.StringInput
	// The Start IP Address associated with this PostgreSQL Flexible Server Firewall Rule.
	StartIpAddress pulumi.StringInput
}

The set of arguments for constructing a FlexibleServerFirewallRule resource.

func (FlexibleServerFirewallRuleArgs) ElementType

type FlexibleServerFirewallRuleArray

type FlexibleServerFirewallRuleArray []FlexibleServerFirewallRuleInput

func (FlexibleServerFirewallRuleArray) ElementType

func (FlexibleServerFirewallRuleArray) ToFlexibleServerFirewallRuleArrayOutput

func (i FlexibleServerFirewallRuleArray) ToFlexibleServerFirewallRuleArrayOutput() FlexibleServerFirewallRuleArrayOutput

func (FlexibleServerFirewallRuleArray) ToFlexibleServerFirewallRuleArrayOutputWithContext

func (i FlexibleServerFirewallRuleArray) ToFlexibleServerFirewallRuleArrayOutputWithContext(ctx context.Context) FlexibleServerFirewallRuleArrayOutput

type FlexibleServerFirewallRuleArrayInput

type FlexibleServerFirewallRuleArrayInput interface {
	pulumi.Input

	ToFlexibleServerFirewallRuleArrayOutput() FlexibleServerFirewallRuleArrayOutput
	ToFlexibleServerFirewallRuleArrayOutputWithContext(context.Context) FlexibleServerFirewallRuleArrayOutput
}

FlexibleServerFirewallRuleArrayInput is an input type that accepts FlexibleServerFirewallRuleArray and FlexibleServerFirewallRuleArrayOutput values. You can construct a concrete instance of `FlexibleServerFirewallRuleArrayInput` via:

FlexibleServerFirewallRuleArray{ FlexibleServerFirewallRuleArgs{...} }

type FlexibleServerFirewallRuleArrayOutput

type FlexibleServerFirewallRuleArrayOutput struct{ *pulumi.OutputState }

func (FlexibleServerFirewallRuleArrayOutput) ElementType

func (FlexibleServerFirewallRuleArrayOutput) Index

func (FlexibleServerFirewallRuleArrayOutput) ToFlexibleServerFirewallRuleArrayOutput

func (o FlexibleServerFirewallRuleArrayOutput) ToFlexibleServerFirewallRuleArrayOutput() FlexibleServerFirewallRuleArrayOutput

func (FlexibleServerFirewallRuleArrayOutput) ToFlexibleServerFirewallRuleArrayOutputWithContext

func (o FlexibleServerFirewallRuleArrayOutput) ToFlexibleServerFirewallRuleArrayOutputWithContext(ctx context.Context) FlexibleServerFirewallRuleArrayOutput

type FlexibleServerFirewallRuleInput

type FlexibleServerFirewallRuleInput interface {
	pulumi.Input

	ToFlexibleServerFirewallRuleOutput() FlexibleServerFirewallRuleOutput
	ToFlexibleServerFirewallRuleOutputWithContext(ctx context.Context) FlexibleServerFirewallRuleOutput
}

type FlexibleServerFirewallRuleMap

type FlexibleServerFirewallRuleMap map[string]FlexibleServerFirewallRuleInput

func (FlexibleServerFirewallRuleMap) ElementType

func (FlexibleServerFirewallRuleMap) ToFlexibleServerFirewallRuleMapOutput

func (i FlexibleServerFirewallRuleMap) ToFlexibleServerFirewallRuleMapOutput() FlexibleServerFirewallRuleMapOutput

func (FlexibleServerFirewallRuleMap) ToFlexibleServerFirewallRuleMapOutputWithContext

func (i FlexibleServerFirewallRuleMap) ToFlexibleServerFirewallRuleMapOutputWithContext(ctx context.Context) FlexibleServerFirewallRuleMapOutput

type FlexibleServerFirewallRuleMapInput

type FlexibleServerFirewallRuleMapInput interface {
	pulumi.Input

	ToFlexibleServerFirewallRuleMapOutput() FlexibleServerFirewallRuleMapOutput
	ToFlexibleServerFirewallRuleMapOutputWithContext(context.Context) FlexibleServerFirewallRuleMapOutput
}

FlexibleServerFirewallRuleMapInput is an input type that accepts FlexibleServerFirewallRuleMap and FlexibleServerFirewallRuleMapOutput values. You can construct a concrete instance of `FlexibleServerFirewallRuleMapInput` via:

FlexibleServerFirewallRuleMap{ "key": FlexibleServerFirewallRuleArgs{...} }

type FlexibleServerFirewallRuleMapOutput

type FlexibleServerFirewallRuleMapOutput struct{ *pulumi.OutputState }

func (FlexibleServerFirewallRuleMapOutput) ElementType

func (FlexibleServerFirewallRuleMapOutput) MapIndex

func (FlexibleServerFirewallRuleMapOutput) ToFlexibleServerFirewallRuleMapOutput

func (o FlexibleServerFirewallRuleMapOutput) ToFlexibleServerFirewallRuleMapOutput() FlexibleServerFirewallRuleMapOutput

func (FlexibleServerFirewallRuleMapOutput) ToFlexibleServerFirewallRuleMapOutputWithContext

func (o FlexibleServerFirewallRuleMapOutput) ToFlexibleServerFirewallRuleMapOutputWithContext(ctx context.Context) FlexibleServerFirewallRuleMapOutput

type FlexibleServerFirewallRuleOutput

type FlexibleServerFirewallRuleOutput struct{ *pulumi.OutputState }

func (FlexibleServerFirewallRuleOutput) ElementType

func (FlexibleServerFirewallRuleOutput) EndIpAddress

The End IP Address associated with this PostgreSQL Flexible Server Firewall Rule.

func (FlexibleServerFirewallRuleOutput) Name

The name which should be used for this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.

func (FlexibleServerFirewallRuleOutput) ServerId

The ID of the PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.

func (FlexibleServerFirewallRuleOutput) StartIpAddress

The Start IP Address associated with this PostgreSQL Flexible Server Firewall Rule.

func (FlexibleServerFirewallRuleOutput) ToFlexibleServerFirewallRuleOutput

func (o FlexibleServerFirewallRuleOutput) ToFlexibleServerFirewallRuleOutput() FlexibleServerFirewallRuleOutput

func (FlexibleServerFirewallRuleOutput) ToFlexibleServerFirewallRuleOutputWithContext

func (o FlexibleServerFirewallRuleOutput) ToFlexibleServerFirewallRuleOutputWithContext(ctx context.Context) FlexibleServerFirewallRuleOutput

type FlexibleServerFirewallRuleState

type FlexibleServerFirewallRuleState struct {
	// The End IP Address associated with this PostgreSQL Flexible Server Firewall Rule.
	EndIpAddress pulumi.StringPtrInput
	// The name which should be used for this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.
	Name pulumi.StringPtrInput
	// The ID of the PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.
	ServerId pulumi.StringPtrInput
	// The Start IP Address associated with this PostgreSQL Flexible Server Firewall Rule.
	StartIpAddress pulumi.StringPtrInput
}

func (FlexibleServerFirewallRuleState) ElementType

type FlexibleServerHighAvailability

type FlexibleServerHighAvailability struct {
	// The high availability mode for the PostgreSQL Flexible Server. Possible value are `SameZone` or `ZoneRedundant`.
	Mode                    string  `pulumi:"mode"`
	StandbyAvailabilityZone *string `pulumi:"standbyAvailabilityZone"`
}

type FlexibleServerHighAvailabilityArgs

type FlexibleServerHighAvailabilityArgs struct {
	// The high availability mode for the PostgreSQL Flexible Server. Possible value are `SameZone` or `ZoneRedundant`.
	Mode                    pulumi.StringInput    `pulumi:"mode"`
	StandbyAvailabilityZone pulumi.StringPtrInput `pulumi:"standbyAvailabilityZone"`
}

func (FlexibleServerHighAvailabilityArgs) ElementType

func (FlexibleServerHighAvailabilityArgs) ToFlexibleServerHighAvailabilityOutput

func (i FlexibleServerHighAvailabilityArgs) ToFlexibleServerHighAvailabilityOutput() FlexibleServerHighAvailabilityOutput

func (FlexibleServerHighAvailabilityArgs) ToFlexibleServerHighAvailabilityOutputWithContext

func (i FlexibleServerHighAvailabilityArgs) ToFlexibleServerHighAvailabilityOutputWithContext(ctx context.Context) FlexibleServerHighAvailabilityOutput

func (FlexibleServerHighAvailabilityArgs) ToFlexibleServerHighAvailabilityPtrOutput

func (i FlexibleServerHighAvailabilityArgs) ToFlexibleServerHighAvailabilityPtrOutput() FlexibleServerHighAvailabilityPtrOutput

func (FlexibleServerHighAvailabilityArgs) ToFlexibleServerHighAvailabilityPtrOutputWithContext

func (i FlexibleServerHighAvailabilityArgs) ToFlexibleServerHighAvailabilityPtrOutputWithContext(ctx context.Context) FlexibleServerHighAvailabilityPtrOutput

type FlexibleServerHighAvailabilityInput

type FlexibleServerHighAvailabilityInput interface {
	pulumi.Input

	ToFlexibleServerHighAvailabilityOutput() FlexibleServerHighAvailabilityOutput
	ToFlexibleServerHighAvailabilityOutputWithContext(context.Context) FlexibleServerHighAvailabilityOutput
}

FlexibleServerHighAvailabilityInput is an input type that accepts FlexibleServerHighAvailabilityArgs and FlexibleServerHighAvailabilityOutput values. You can construct a concrete instance of `FlexibleServerHighAvailabilityInput` via:

FlexibleServerHighAvailabilityArgs{...}

type FlexibleServerHighAvailabilityOutput

type FlexibleServerHighAvailabilityOutput struct{ *pulumi.OutputState }

func (FlexibleServerHighAvailabilityOutput) ElementType

func (FlexibleServerHighAvailabilityOutput) Mode

The high availability mode for the PostgreSQL Flexible Server. Possible value are `SameZone` or `ZoneRedundant`.

func (FlexibleServerHighAvailabilityOutput) StandbyAvailabilityZone

func (o FlexibleServerHighAvailabilityOutput) StandbyAvailabilityZone() pulumi.StringPtrOutput

func (FlexibleServerHighAvailabilityOutput) ToFlexibleServerHighAvailabilityOutput

func (o FlexibleServerHighAvailabilityOutput) ToFlexibleServerHighAvailabilityOutput() FlexibleServerHighAvailabilityOutput

func (FlexibleServerHighAvailabilityOutput) ToFlexibleServerHighAvailabilityOutputWithContext

func (o FlexibleServerHighAvailabilityOutput) ToFlexibleServerHighAvailabilityOutputWithContext(ctx context.Context) FlexibleServerHighAvailabilityOutput

func (FlexibleServerHighAvailabilityOutput) ToFlexibleServerHighAvailabilityPtrOutput

func (o FlexibleServerHighAvailabilityOutput) ToFlexibleServerHighAvailabilityPtrOutput() FlexibleServerHighAvailabilityPtrOutput

func (FlexibleServerHighAvailabilityOutput) ToFlexibleServerHighAvailabilityPtrOutputWithContext

func (o FlexibleServerHighAvailabilityOutput) ToFlexibleServerHighAvailabilityPtrOutputWithContext(ctx context.Context) FlexibleServerHighAvailabilityPtrOutput

type FlexibleServerHighAvailabilityPtrInput

type FlexibleServerHighAvailabilityPtrInput interface {
	pulumi.Input

	ToFlexibleServerHighAvailabilityPtrOutput() FlexibleServerHighAvailabilityPtrOutput
	ToFlexibleServerHighAvailabilityPtrOutputWithContext(context.Context) FlexibleServerHighAvailabilityPtrOutput
}

FlexibleServerHighAvailabilityPtrInput is an input type that accepts FlexibleServerHighAvailabilityArgs, FlexibleServerHighAvailabilityPtr and FlexibleServerHighAvailabilityPtrOutput values. You can construct a concrete instance of `FlexibleServerHighAvailabilityPtrInput` via:

        FlexibleServerHighAvailabilityArgs{...}

or:

        nil

type FlexibleServerHighAvailabilityPtrOutput

type FlexibleServerHighAvailabilityPtrOutput struct{ *pulumi.OutputState }

func (FlexibleServerHighAvailabilityPtrOutput) Elem

func (FlexibleServerHighAvailabilityPtrOutput) ElementType

func (FlexibleServerHighAvailabilityPtrOutput) Mode

The high availability mode for the PostgreSQL Flexible Server. Possible value are `SameZone` or `ZoneRedundant`.

func (FlexibleServerHighAvailabilityPtrOutput) StandbyAvailabilityZone

func (FlexibleServerHighAvailabilityPtrOutput) ToFlexibleServerHighAvailabilityPtrOutput

func (o FlexibleServerHighAvailabilityPtrOutput) ToFlexibleServerHighAvailabilityPtrOutput() FlexibleServerHighAvailabilityPtrOutput

func (FlexibleServerHighAvailabilityPtrOutput) ToFlexibleServerHighAvailabilityPtrOutputWithContext

func (o FlexibleServerHighAvailabilityPtrOutput) ToFlexibleServerHighAvailabilityPtrOutputWithContext(ctx context.Context) FlexibleServerHighAvailabilityPtrOutput

type FlexibleServerIdentity

type FlexibleServerIdentity struct {
	// A list of User Assigned Managed Identity IDs to be assigned to this PostgreSQL Flexible Server. Required if used together with `customerManagedKey` block.
	IdentityIds []string `pulumi:"identityIds"`
	// Specifies the type of Managed Service Identity that should be configured on this PostgreSQL Flexible Server. The only possible value is `UserAssigned`.
	Type string `pulumi:"type"`
}

type FlexibleServerIdentityArgs

type FlexibleServerIdentityArgs struct {
	// A list of User Assigned Managed Identity IDs to be assigned to this PostgreSQL Flexible Server. Required if used together with `customerManagedKey` block.
	IdentityIds pulumi.StringArrayInput `pulumi:"identityIds"`
	// Specifies the type of Managed Service Identity that should be configured on this PostgreSQL Flexible Server. The only possible value is `UserAssigned`.
	Type pulumi.StringInput `pulumi:"type"`
}

func (FlexibleServerIdentityArgs) ElementType

func (FlexibleServerIdentityArgs) ElementType() reflect.Type

func (FlexibleServerIdentityArgs) ToFlexibleServerIdentityOutput

func (i FlexibleServerIdentityArgs) ToFlexibleServerIdentityOutput() FlexibleServerIdentityOutput

func (FlexibleServerIdentityArgs) ToFlexibleServerIdentityOutputWithContext

func (i FlexibleServerIdentityArgs) ToFlexibleServerIdentityOutputWithContext(ctx context.Context) FlexibleServerIdentityOutput

func (FlexibleServerIdentityArgs) ToFlexibleServerIdentityPtrOutput

func (i FlexibleServerIdentityArgs) ToFlexibleServerIdentityPtrOutput() FlexibleServerIdentityPtrOutput

func (FlexibleServerIdentityArgs) ToFlexibleServerIdentityPtrOutputWithContext

func (i FlexibleServerIdentityArgs) ToFlexibleServerIdentityPtrOutputWithContext(ctx context.Context) FlexibleServerIdentityPtrOutput

type FlexibleServerIdentityInput

type FlexibleServerIdentityInput interface {
	pulumi.Input

	ToFlexibleServerIdentityOutput() FlexibleServerIdentityOutput
	ToFlexibleServerIdentityOutputWithContext(context.Context) FlexibleServerIdentityOutput
}

FlexibleServerIdentityInput is an input type that accepts FlexibleServerIdentityArgs and FlexibleServerIdentityOutput values. You can construct a concrete instance of `FlexibleServerIdentityInput` via:

FlexibleServerIdentityArgs{...}

type FlexibleServerIdentityOutput

type FlexibleServerIdentityOutput struct{ *pulumi.OutputState }

func (FlexibleServerIdentityOutput) ElementType

func (FlexibleServerIdentityOutput) IdentityIds

A list of User Assigned Managed Identity IDs to be assigned to this PostgreSQL Flexible Server. Required if used together with `customerManagedKey` block.

func (FlexibleServerIdentityOutput) ToFlexibleServerIdentityOutput

func (o FlexibleServerIdentityOutput) ToFlexibleServerIdentityOutput() FlexibleServerIdentityOutput

func (FlexibleServerIdentityOutput) ToFlexibleServerIdentityOutputWithContext

func (o FlexibleServerIdentityOutput) ToFlexibleServerIdentityOutputWithContext(ctx context.Context) FlexibleServerIdentityOutput

func (FlexibleServerIdentityOutput) ToFlexibleServerIdentityPtrOutput

func (o FlexibleServerIdentityOutput) ToFlexibleServerIdentityPtrOutput() FlexibleServerIdentityPtrOutput

func (FlexibleServerIdentityOutput) ToFlexibleServerIdentityPtrOutputWithContext

func (o FlexibleServerIdentityOutput) ToFlexibleServerIdentityPtrOutputWithContext(ctx context.Context) FlexibleServerIdentityPtrOutput

func (FlexibleServerIdentityOutput) Type

Specifies the type of Managed Service Identity that should be configured on this PostgreSQL Flexible Server. The only possible value is `UserAssigned`.

type FlexibleServerIdentityPtrInput

type FlexibleServerIdentityPtrInput interface {
	pulumi.Input

	ToFlexibleServerIdentityPtrOutput() FlexibleServerIdentityPtrOutput
	ToFlexibleServerIdentityPtrOutputWithContext(context.Context) FlexibleServerIdentityPtrOutput
}

FlexibleServerIdentityPtrInput is an input type that accepts FlexibleServerIdentityArgs, FlexibleServerIdentityPtr and FlexibleServerIdentityPtrOutput values. You can construct a concrete instance of `FlexibleServerIdentityPtrInput` via:

        FlexibleServerIdentityArgs{...}

or:

        nil

type FlexibleServerIdentityPtrOutput

type FlexibleServerIdentityPtrOutput struct{ *pulumi.OutputState }

func (FlexibleServerIdentityPtrOutput) Elem

func (FlexibleServerIdentityPtrOutput) ElementType

func (FlexibleServerIdentityPtrOutput) IdentityIds

A list of User Assigned Managed Identity IDs to be assigned to this PostgreSQL Flexible Server. Required if used together with `customerManagedKey` block.

func (FlexibleServerIdentityPtrOutput) ToFlexibleServerIdentityPtrOutput

func (o FlexibleServerIdentityPtrOutput) ToFlexibleServerIdentityPtrOutput() FlexibleServerIdentityPtrOutput

func (FlexibleServerIdentityPtrOutput) ToFlexibleServerIdentityPtrOutputWithContext

func (o FlexibleServerIdentityPtrOutput) ToFlexibleServerIdentityPtrOutputWithContext(ctx context.Context) FlexibleServerIdentityPtrOutput

func (FlexibleServerIdentityPtrOutput) Type

Specifies the type of Managed Service Identity that should be configured on this PostgreSQL Flexible Server. The only possible value is `UserAssigned`.

type FlexibleServerInput

type FlexibleServerInput interface {
	pulumi.Input

	ToFlexibleServerOutput() FlexibleServerOutput
	ToFlexibleServerOutputWithContext(ctx context.Context) FlexibleServerOutput
}

type FlexibleServerMaintenanceWindow

type FlexibleServerMaintenanceWindow struct {
	// The day of week for maintenance window, where the week starts on a Sunday, i.e. Sunday = `0`, Monday = `1`. Defaults to `0`.
	DayOfWeek *int `pulumi:"dayOfWeek"`
	// The start hour for maintenance window. Defaults to `0`.
	StartHour *int `pulumi:"startHour"`
	// The start minute for maintenance window. Defaults to `0`.
	//
	// > **NOTE** The specified `maintenanceWindow` is always defined in UTC time. When unspecified, the maintenance window falls back to the default [system-managed](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/how-to-maintenance-portal#specify-maintenance-schedule-options).
	StartMinute *int `pulumi:"startMinute"`
}

type FlexibleServerMaintenanceWindowArgs

type FlexibleServerMaintenanceWindowArgs struct {
	// The day of week for maintenance window, where the week starts on a Sunday, i.e. Sunday = `0`, Monday = `1`. Defaults to `0`.
	DayOfWeek pulumi.IntPtrInput `pulumi:"dayOfWeek"`
	// The start hour for maintenance window. Defaults to `0`.
	StartHour pulumi.IntPtrInput `pulumi:"startHour"`
	// The start minute for maintenance window. Defaults to `0`.
	//
	// > **NOTE** The specified `maintenanceWindow` is always defined in UTC time. When unspecified, the maintenance window falls back to the default [system-managed](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/how-to-maintenance-portal#specify-maintenance-schedule-options).
	StartMinute pulumi.IntPtrInput `pulumi:"startMinute"`
}

func (FlexibleServerMaintenanceWindowArgs) ElementType

func (FlexibleServerMaintenanceWindowArgs) ToFlexibleServerMaintenanceWindowOutput

func (i FlexibleServerMaintenanceWindowArgs) ToFlexibleServerMaintenanceWindowOutput() FlexibleServerMaintenanceWindowOutput

func (FlexibleServerMaintenanceWindowArgs) ToFlexibleServerMaintenanceWindowOutputWithContext

func (i FlexibleServerMaintenanceWindowArgs) ToFlexibleServerMaintenanceWindowOutputWithContext(ctx context.Context) FlexibleServerMaintenanceWindowOutput

func (FlexibleServerMaintenanceWindowArgs) ToFlexibleServerMaintenanceWindowPtrOutput

func (i FlexibleServerMaintenanceWindowArgs) ToFlexibleServerMaintenanceWindowPtrOutput() FlexibleServerMaintenanceWindowPtrOutput

func (FlexibleServerMaintenanceWindowArgs) ToFlexibleServerMaintenanceWindowPtrOutputWithContext

func (i FlexibleServerMaintenanceWindowArgs) ToFlexibleServerMaintenanceWindowPtrOutputWithContext(ctx context.Context) FlexibleServerMaintenanceWindowPtrOutput

type FlexibleServerMaintenanceWindowInput

type FlexibleServerMaintenanceWindowInput interface {
	pulumi.Input

	ToFlexibleServerMaintenanceWindowOutput() FlexibleServerMaintenanceWindowOutput
	ToFlexibleServerMaintenanceWindowOutputWithContext(context.Context) FlexibleServerMaintenanceWindowOutput
}

FlexibleServerMaintenanceWindowInput is an input type that accepts FlexibleServerMaintenanceWindowArgs and FlexibleServerMaintenanceWindowOutput values. You can construct a concrete instance of `FlexibleServerMaintenanceWindowInput` via:

FlexibleServerMaintenanceWindowArgs{...}

type FlexibleServerMaintenanceWindowOutput

type FlexibleServerMaintenanceWindowOutput struct{ *pulumi.OutputState }

func (FlexibleServerMaintenanceWindowOutput) DayOfWeek

The day of week for maintenance window, where the week starts on a Sunday, i.e. Sunday = `0`, Monday = `1`. Defaults to `0`.

func (FlexibleServerMaintenanceWindowOutput) ElementType

func (FlexibleServerMaintenanceWindowOutput) StartHour

The start hour for maintenance window. Defaults to `0`.

func (FlexibleServerMaintenanceWindowOutput) StartMinute

The start minute for maintenance window. Defaults to `0`.

> **NOTE** The specified `maintenanceWindow` is always defined in UTC time. When unspecified, the maintenance window falls back to the default [system-managed](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/how-to-maintenance-portal#specify-maintenance-schedule-options).

func (FlexibleServerMaintenanceWindowOutput) ToFlexibleServerMaintenanceWindowOutput

func (o FlexibleServerMaintenanceWindowOutput) ToFlexibleServerMaintenanceWindowOutput() FlexibleServerMaintenanceWindowOutput

func (FlexibleServerMaintenanceWindowOutput) ToFlexibleServerMaintenanceWindowOutputWithContext

func (o FlexibleServerMaintenanceWindowOutput) ToFlexibleServerMaintenanceWindowOutputWithContext(ctx context.Context) FlexibleServerMaintenanceWindowOutput

func (FlexibleServerMaintenanceWindowOutput) ToFlexibleServerMaintenanceWindowPtrOutput

func (o FlexibleServerMaintenanceWindowOutput) ToFlexibleServerMaintenanceWindowPtrOutput() FlexibleServerMaintenanceWindowPtrOutput

func (FlexibleServerMaintenanceWindowOutput) ToFlexibleServerMaintenanceWindowPtrOutputWithContext

func (o FlexibleServerMaintenanceWindowOutput) ToFlexibleServerMaintenanceWindowPtrOutputWithContext(ctx context.Context) FlexibleServerMaintenanceWindowPtrOutput

type FlexibleServerMaintenanceWindowPtrInput

type FlexibleServerMaintenanceWindowPtrInput interface {
	pulumi.Input

	ToFlexibleServerMaintenanceWindowPtrOutput() FlexibleServerMaintenanceWindowPtrOutput
	ToFlexibleServerMaintenanceWindowPtrOutputWithContext(context.Context) FlexibleServerMaintenanceWindowPtrOutput
}

FlexibleServerMaintenanceWindowPtrInput is an input type that accepts FlexibleServerMaintenanceWindowArgs, FlexibleServerMaintenanceWindowPtr and FlexibleServerMaintenanceWindowPtrOutput values. You can construct a concrete instance of `FlexibleServerMaintenanceWindowPtrInput` via:

        FlexibleServerMaintenanceWindowArgs{...}

or:

        nil

type FlexibleServerMaintenanceWindowPtrOutput

type FlexibleServerMaintenanceWindowPtrOutput struct{ *pulumi.OutputState }

func (FlexibleServerMaintenanceWindowPtrOutput) DayOfWeek

The day of week for maintenance window, where the week starts on a Sunday, i.e. Sunday = `0`, Monday = `1`. Defaults to `0`.

func (FlexibleServerMaintenanceWindowPtrOutput) Elem

func (FlexibleServerMaintenanceWindowPtrOutput) ElementType

func (FlexibleServerMaintenanceWindowPtrOutput) StartHour

The start hour for maintenance window. Defaults to `0`.

func (FlexibleServerMaintenanceWindowPtrOutput) StartMinute

The start minute for maintenance window. Defaults to `0`.

> **NOTE** The specified `maintenanceWindow` is always defined in UTC time. When unspecified, the maintenance window falls back to the default [system-managed](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/how-to-maintenance-portal#specify-maintenance-schedule-options).

func (FlexibleServerMaintenanceWindowPtrOutput) ToFlexibleServerMaintenanceWindowPtrOutput

func (o FlexibleServerMaintenanceWindowPtrOutput) ToFlexibleServerMaintenanceWindowPtrOutput() FlexibleServerMaintenanceWindowPtrOutput

func (FlexibleServerMaintenanceWindowPtrOutput) ToFlexibleServerMaintenanceWindowPtrOutputWithContext

func (o FlexibleServerMaintenanceWindowPtrOutput) ToFlexibleServerMaintenanceWindowPtrOutputWithContext(ctx context.Context) FlexibleServerMaintenanceWindowPtrOutput

type FlexibleServerMap

type FlexibleServerMap map[string]FlexibleServerInput

func (FlexibleServerMap) ElementType

func (FlexibleServerMap) ElementType() reflect.Type

func (FlexibleServerMap) ToFlexibleServerMapOutput

func (i FlexibleServerMap) ToFlexibleServerMapOutput() FlexibleServerMapOutput

func (FlexibleServerMap) ToFlexibleServerMapOutputWithContext

func (i FlexibleServerMap) ToFlexibleServerMapOutputWithContext(ctx context.Context) FlexibleServerMapOutput

type FlexibleServerMapInput

type FlexibleServerMapInput interface {
	pulumi.Input

	ToFlexibleServerMapOutput() FlexibleServerMapOutput
	ToFlexibleServerMapOutputWithContext(context.Context) FlexibleServerMapOutput
}

FlexibleServerMapInput is an input type that accepts FlexibleServerMap and FlexibleServerMapOutput values. You can construct a concrete instance of `FlexibleServerMapInput` via:

FlexibleServerMap{ "key": FlexibleServerArgs{...} }

type FlexibleServerMapOutput

type FlexibleServerMapOutput struct{ *pulumi.OutputState }

func (FlexibleServerMapOutput) ElementType

func (FlexibleServerMapOutput) ElementType() reflect.Type

func (FlexibleServerMapOutput) MapIndex

func (FlexibleServerMapOutput) ToFlexibleServerMapOutput

func (o FlexibleServerMapOutput) ToFlexibleServerMapOutput() FlexibleServerMapOutput

func (FlexibleServerMapOutput) ToFlexibleServerMapOutputWithContext

func (o FlexibleServerMapOutput) ToFlexibleServerMapOutputWithContext(ctx context.Context) FlexibleServerMapOutput

type FlexibleServerOutput

type FlexibleServerOutput struct{ *pulumi.OutputState }

func (FlexibleServerOutput) AdministratorLogin

func (o FlexibleServerOutput) AdministratorLogin() pulumi.StringOutput

The Administrator login for the PostgreSQL Flexible Server. Required when `createMode` is `Default` and `authentication.password_auth_enabled` is `true`.

> **Note:** Once `administratorLogin` is specified, changing this forces a new PostgreSQL Flexible Server to be created.

> **Note:** To create with `administratorLogin` specified or update with it first specified , `authentication.password_auth_enabled` must be set to `true`.

func (FlexibleServerOutput) AdministratorPassword

func (o FlexibleServerOutput) AdministratorPassword() pulumi.StringPtrOutput

The Password associated with the `administratorLogin` for the PostgreSQL Flexible Server. Required when `createMode` is `Default` and `authentication.password_auth_enabled` is `true`.

func (FlexibleServerOutput) Authentication

An `authentication` block as defined below.

func (FlexibleServerOutput) AutoGrowEnabled

func (o FlexibleServerOutput) AutoGrowEnabled() pulumi.BoolPtrOutput

Is the storage auto grow for PostgreSQL Flexible Server enabled? Defaults to `false`.

func (FlexibleServerOutput) BackupRetentionDays

func (o FlexibleServerOutput) BackupRetentionDays() pulumi.IntOutput

The backup retention days for the PostgreSQL Flexible Server. Possible values are between `7` and `35` days.

func (FlexibleServerOutput) CreateMode

The creation mode which can be used to restore or replicate existing servers. Possible values are `Default`, `GeoRestore`, `PointInTimeRestore`, `Replica` and `Update`. Changing this forces a new PostgreSQL Flexible Server to be created.

> **Note:** `createMode` cannot be changed once it's set since it's a parameter at creation.

> **Note:** While creating the resource, `createMode` cannot be set to `Update`.

func (FlexibleServerOutput) CustomerManagedKey

A `customerManagedKey` block as defined below. Changing this forces a new resource to be created.

func (FlexibleServerOutput) DelegatedSubnetId

func (o FlexibleServerOutput) DelegatedSubnetId() pulumi.StringPtrOutput

The ID of the virtual network subnet to create the PostgreSQL Flexible Server. The provided subnet should not have any other resource deployed in it and this subnet will be delegated to the PostgreSQL Flexible Server, if not already delegated. Changing this forces a new PostgreSQL Flexible Server to be created.

func (FlexibleServerOutput) ElementType

func (FlexibleServerOutput) ElementType() reflect.Type

func (FlexibleServerOutput) Fqdn

The FQDN of the PostgreSQL Flexible Server.

func (FlexibleServerOutput) GeoRedundantBackupEnabled

func (o FlexibleServerOutput) GeoRedundantBackupEnabled() pulumi.BoolPtrOutput

Is Geo-Redundant backup enabled on the PostgreSQL Flexible Server. Defaults to `false`. Changing this forces a new PostgreSQL Flexible Server to be created.

func (FlexibleServerOutput) HighAvailability

A `highAvailability` block as defined below.

func (FlexibleServerOutput) Identity

An `identity` block as defined below.

func (FlexibleServerOutput) Location

The Azure Region where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.

func (FlexibleServerOutput) MaintenanceWindow

A `maintenanceWindow` block as defined below.

func (FlexibleServerOutput) Name

The name which should be used for this PostgreSQL Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created.

> **Note** This must be unique across the entire Azure service, not just within the resource group.

func (FlexibleServerOutput) PointInTimeRestoreTimeInUtc

func (o FlexibleServerOutput) PointInTimeRestoreTimeInUtc() pulumi.StringPtrOutput

The point in time to restore from `sourceServerId` when `createMode` is `GeoRestore`, `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.

func (FlexibleServerOutput) PrivateDnsZoneId

func (o FlexibleServerOutput) PrivateDnsZoneId() pulumi.StringOutput

The ID of the private DNS zone to create the PostgreSQL Flexible Server.

> **Note:** There will be a breaking change from upstream service at 15th July 2021, the `privateDnsZoneId` will be required when setting a `delegatedSubnetId`. For existing flexible servers who don't want to be recreated, you need to provide the `privateDnsZoneId` to the service team to manually migrate to the specified private DNS zone. The `privatedns.Zone` should end with suffix `.postgres.database.azure.com`.

func (FlexibleServerOutput) PublicNetworkAccessEnabled

func (o FlexibleServerOutput) PublicNetworkAccessEnabled() pulumi.BoolPtrOutput

Specifies whether this PostgreSQL Flexible Server is publicly accessible. Defaults to `true`.

> **Note:** `publicNetworkAccessEnabled` must be set to `false` when `delegatedSubnetId` and `privateDnsZoneId` have a value.

func (FlexibleServerOutput) ReplicationRole

func (o FlexibleServerOutput) ReplicationRole() pulumi.StringPtrOutput

The replication role for the PostgreSQL Flexible Server. Possible value is `None`.

> **Note:** The `replicationRole` cannot be set while creating and only can be updated to `None` for replica server.

func (FlexibleServerOutput) ResourceGroupName

func (o FlexibleServerOutput) ResourceGroupName() pulumi.StringOutput

The name of the Resource Group where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.

func (FlexibleServerOutput) SkuName

The SKU Name for the PostgreSQL Flexible Server. The name of the SKU, follows the `tier` + `name` pattern (e.g. `B_Standard_B1ms`, `GP_Standard_D2s_v3`, `MO_Standard_E4s_v3`).

func (FlexibleServerOutput) SourceServerId

func (o FlexibleServerOutput) SourceServerId() pulumi.StringPtrOutput

The resource ID of the source PostgreSQL Flexible Server to be restored. Required when `createMode` is `GeoRestore`, `PointInTimeRestore` or `Replica`. Changing this forces a new PostgreSQL Flexible Server to be created.

func (FlexibleServerOutput) StorageMb

func (o FlexibleServerOutput) StorageMb() pulumi.IntOutput

The max storage allowed for the PostgreSQL Flexible Server. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4193280`, `4194304`, `8388608`, `16777216` and `33553408`.

> **Note:** If the `storageMb` field is undefined on the initial deployment of the PostgreSQL Flexible Server resource it will default to `32768`. If the `storageMb` field has been defined and then removed, the `storageMb` field will retain the previously defined value.

> **Note:** The `storageMb` can only be scaled up, for example, you can scale the `storageMb` from `32768` to `65536`, but not from `65536` to `32768`.

func (FlexibleServerOutput) StorageTier

func (o FlexibleServerOutput) StorageTier() pulumi.StringOutput

The name of storage performance tier for IOPS of the PostgreSQL Flexible Server. Possible values are `P4`, `P6`, `P10`, `P15`,`P20`, `P30`,`P40`, `P50`,`P60`, `P70` or `P80`. Default value is dependant on the `storageMb` value. Please see the `storageTier` defaults based on `storageMb` table below.

> **Note:** The `storageTier` can be scaled once every 12 hours, this restriction is in place to ensure stability and performance after any changes to your PostgreSQL Flexible Server's configuration.

func (FlexibleServerOutput) Tags

A mapping of tags which should be assigned to the PostgreSQL Flexible Server.

func (FlexibleServerOutput) ToFlexibleServerOutput

func (o FlexibleServerOutput) ToFlexibleServerOutput() FlexibleServerOutput

func (FlexibleServerOutput) ToFlexibleServerOutputWithContext

func (o FlexibleServerOutput) ToFlexibleServerOutputWithContext(ctx context.Context) FlexibleServerOutput

func (FlexibleServerOutput) Version

The version of PostgreSQL Flexible Server to use. Possible values are `11`,`12`, `13`, `14`, `15` and `16`. Required when `createMode` is `Default`.

> **Note:** When `createMode` is `Update`, upgrading version wouldn't force a new resource to be created.

func (FlexibleServerOutput) Zone

type FlexibleServerState

type FlexibleServerState struct {
	// The Administrator login for the PostgreSQL Flexible Server. Required when `createMode` is `Default` and `authentication.password_auth_enabled` is `true`.
	//
	// > **Note:** Once `administratorLogin` is specified, changing this forces a new PostgreSQL Flexible Server to be created.
	//
	// > **Note:** To create with `administratorLogin` specified or update with it first specified , `authentication.password_auth_enabled` must be set to `true`.
	AdministratorLogin pulumi.StringPtrInput
	// The Password associated with the `administratorLogin` for the PostgreSQL Flexible Server. Required when `createMode` is `Default` and `authentication.password_auth_enabled` is `true`.
	AdministratorPassword pulumi.StringPtrInput
	// An `authentication` block as defined below.
	Authentication FlexibleServerAuthenticationPtrInput
	// Is the storage auto grow for PostgreSQL Flexible Server enabled? Defaults to `false`.
	AutoGrowEnabled pulumi.BoolPtrInput
	// The backup retention days for the PostgreSQL Flexible Server. Possible values are between `7` and `35` days.
	BackupRetentionDays pulumi.IntPtrInput
	// The creation mode which can be used to restore or replicate existing servers. Possible values are `Default`, `GeoRestore`, `PointInTimeRestore`, `Replica` and `Update`. Changing this forces a new PostgreSQL Flexible Server to be created.
	//
	// > **Note:** `createMode` cannot be changed once it's set since it's a parameter at creation.
	//
	// > **Note:** While creating the resource, `createMode` cannot be set to `Update`.
	CreateMode pulumi.StringPtrInput
	// A `customerManagedKey` block as defined below. Changing this forces a new resource to be created.
	CustomerManagedKey FlexibleServerCustomerManagedKeyPtrInput
	// The ID of the virtual network subnet to create the PostgreSQL Flexible Server. The provided subnet should not have any other resource deployed in it and this subnet will be delegated to the PostgreSQL Flexible Server, if not already delegated. Changing this forces a new PostgreSQL Flexible Server to be created.
	DelegatedSubnetId pulumi.StringPtrInput
	// The FQDN of the PostgreSQL Flexible Server.
	Fqdn pulumi.StringPtrInput
	// Is Geo-Redundant backup enabled on the PostgreSQL Flexible Server. Defaults to `false`. Changing this forces a new PostgreSQL Flexible Server to be created.
	GeoRedundantBackupEnabled pulumi.BoolPtrInput
	// A `highAvailability` block as defined below.
	HighAvailability FlexibleServerHighAvailabilityPtrInput
	// An `identity` block as defined below.
	Identity FlexibleServerIdentityPtrInput
	// The Azure Region where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.
	Location pulumi.StringPtrInput
	// A `maintenanceWindow` block as defined below.
	MaintenanceWindow FlexibleServerMaintenanceWindowPtrInput
	// The name which should be used for this PostgreSQL Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created.
	//
	// > **Note** This must be unique across the entire Azure service, not just within the resource group.
	Name pulumi.StringPtrInput
	// The point in time to restore from `sourceServerId` when `createMode` is `GeoRestore`, `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.
	PointInTimeRestoreTimeInUtc pulumi.StringPtrInput
	// The ID of the private DNS zone to create the PostgreSQL Flexible Server.
	//
	// > **Note:** There will be a breaking change from upstream service at 15th July 2021, the `privateDnsZoneId` will be required when setting a `delegatedSubnetId`. For existing flexible servers who don't want to be recreated, you need to provide the `privateDnsZoneId` to the service team to manually migrate to the specified private DNS zone. The `privatedns.Zone` should end with suffix `.postgres.database.azure.com`.
	PrivateDnsZoneId pulumi.StringPtrInput
	// Specifies whether this PostgreSQL Flexible Server is publicly accessible. Defaults to `true`.
	//
	// > **Note:** `publicNetworkAccessEnabled` must be set to `false` when `delegatedSubnetId` and `privateDnsZoneId` have a value.
	PublicNetworkAccessEnabled pulumi.BoolPtrInput
	// The replication role for the PostgreSQL Flexible Server. Possible value is `None`.
	//
	// > **Note:** The `replicationRole` cannot be set while creating and only can be updated to `None` for replica server.
	ReplicationRole pulumi.StringPtrInput
	// The name of the Resource Group where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.
	ResourceGroupName pulumi.StringPtrInput
	// The SKU Name for the PostgreSQL Flexible Server. The name of the SKU, follows the `tier` + `name` pattern (e.g. `B_Standard_B1ms`, `GP_Standard_D2s_v3`, `MO_Standard_E4s_v3`).
	SkuName pulumi.StringPtrInput
	// The resource ID of the source PostgreSQL Flexible Server to be restored. Required when `createMode` is `GeoRestore`, `PointInTimeRestore` or `Replica`. Changing this forces a new PostgreSQL Flexible Server to be created.
	SourceServerId pulumi.StringPtrInput
	// The max storage allowed for the PostgreSQL Flexible Server. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4193280`, `4194304`, `8388608`, `16777216` and `33553408`.
	//
	// > **Note:** If the `storageMb` field is undefined on the initial deployment of the PostgreSQL Flexible Server resource it will default to `32768`. If the `storageMb` field has been defined and then removed, the `storageMb` field will retain the previously defined value.
	//
	// > **Note:** The `storageMb` can only be scaled up, for example, you can scale the `storageMb` from `32768` to `65536`, but not from `65536` to `32768`.
	StorageMb pulumi.IntPtrInput
	// The name of storage performance tier for IOPS of the PostgreSQL Flexible Server. Possible values are `P4`, `P6`, `P10`, `P15`,`P20`, `P30`,`P40`, `P50`,`P60`, `P70` or `P80`. Default value is dependant on the `storageMb` value. Please see the `storageTier` defaults based on `storageMb` table below.
	//
	// > **Note:** The `storageTier` can be scaled once every 12 hours, this restriction is in place to ensure stability and performance after any changes to your PostgreSQL Flexible Server's configuration.
	StorageTier pulumi.StringPtrInput
	// A mapping of tags which should be assigned to the PostgreSQL Flexible Server.
	Tags pulumi.StringMapInput
	// The version of PostgreSQL Flexible Server to use. Possible values are `11`,`12`, `13`, `14`, `15` and `16`. Required when `createMode` is `Default`.
	//
	// > **Note:** When `createMode` is `Update`, upgrading version wouldn't force a new resource to be created.
	Version pulumi.StringPtrInput
	Zone    pulumi.StringPtrInput
}

func (FlexibleServerState) ElementType

func (FlexibleServerState) ElementType() reflect.Type

type FlexibleServerVirtualEndpoint

type FlexibleServerVirtualEndpoint struct {
	pulumi.CustomResourceState

	// The name of the Virtual Endpoint
	Name pulumi.StringOutput `pulumi:"name"`
	// The Resource ID of the *Replica* Postgres Flexible Server this should be associated with
	ReplicaServerId pulumi.StringOutput `pulumi:"replicaServerId"`
	// The Resource ID of the *Source* Postgres Flexible Server this should be associated with.
	SourceServerId pulumi.StringOutput `pulumi:"sourceServerId"`
	// The type of Virtual Endpoint. Currently only `ReadWrite` is supported.
	Type pulumi.StringOutput `pulumi:"type"`
}

Allows you to create a Virtual Endpoint associated with a Postgres Flexible Replica.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("example-resources"),
			Location: pulumi.String("East US"),
		})
		if err != nil {
			return err
		}
		exampleFlexibleServer, err := postgresql.NewFlexibleServer(ctx, "example", &postgresql.FlexibleServerArgs{
			Name:                       pulumi.String("example"),
			ResourceGroupName:          example.Name,
			Location:                   example.Location,
			Version:                    pulumi.String("16"),
			PublicNetworkAccessEnabled: pulumi.Bool(false),
			AdministratorLogin:         pulumi.String("psqladmin"),
			AdministratorPassword:      pulumi.String("H@Sh1CoR3!"),
			Zone:                       pulumi.String("1"),
			StorageMb:                  pulumi.Int(32768),
			StorageTier:                pulumi.String("P30"),
			SkuName:                    pulumi.String("GP_Standard_D2ads_v5"),
		})
		if err != nil {
			return err
		}
		exampleReplica, err := postgresql.NewFlexibleServer(ctx, "example_replica", &postgresql.FlexibleServerArgs{
			Name:                       pulumi.String("example-replica"),
			ResourceGroupName:          exampleFlexibleServer.ResourceGroupName,
			Location:                   exampleFlexibleServer.Location,
			CreateMode:                 pulumi.String("Replica"),
			SourceServerId:             exampleFlexibleServer.ID(),
			Version:                    pulumi.String("16"),
			PublicNetworkAccessEnabled: pulumi.Bool(false),
			Zone:                       pulumi.String("1"),
			StorageMb:                  pulumi.Int(32768),
			StorageTier:                pulumi.String("P30"),
			SkuName:                    pulumi.String("GP_Standard_D2ads_v5"),
		})
		if err != nil {
			return err
		}
		_, err = postgresql.NewFlexibleServerVirtualEndpoint(ctx, "example", &postgresql.FlexibleServerVirtualEndpointArgs{
			Name:            pulumi.String("example-endpoint-1"),
			SourceServerId:  exampleFlexibleServer.ID(),
			ReplicaServerId: exampleReplica.ID(),
			Type:            pulumi.String("ReadWrite"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

> **Note:** If creating multiple replicas, an error can occur if virtual endpoints are created before all replicas have been completed. To avoid this error, use a `dependsOn` property on `postgresql.FlexibleServerVirtualEndpoint` that references all Postgres Flexible Server Replicas.

## Import

A PostgreSQL Flexible Virtual Endpoint can be imported using the `resource id`, e.g.

```sh $ pulumi import azure:postgresql/flexibleServerVirtualEndpoint:FlexibleServerVirtualEndpoint example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DBforPostgreSQL/flexibleServers/server1/virtualEndpoints/endpoint1 ```

func GetFlexibleServerVirtualEndpoint

func GetFlexibleServerVirtualEndpoint(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FlexibleServerVirtualEndpointState, opts ...pulumi.ResourceOption) (*FlexibleServerVirtualEndpoint, error)

GetFlexibleServerVirtualEndpoint gets an existing FlexibleServerVirtualEndpoint resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFlexibleServerVirtualEndpoint

func NewFlexibleServerVirtualEndpoint(ctx *pulumi.Context,
	name string, args *FlexibleServerVirtualEndpointArgs, opts ...pulumi.ResourceOption) (*FlexibleServerVirtualEndpoint, error)

NewFlexibleServerVirtualEndpoint registers a new resource with the given unique name, arguments, and options.

func (*FlexibleServerVirtualEndpoint) ElementType

func (*FlexibleServerVirtualEndpoint) ToFlexibleServerVirtualEndpointOutput

func (i *FlexibleServerVirtualEndpoint) ToFlexibleServerVirtualEndpointOutput() FlexibleServerVirtualEndpointOutput

func (*FlexibleServerVirtualEndpoint) ToFlexibleServerVirtualEndpointOutputWithContext

func (i *FlexibleServerVirtualEndpoint) ToFlexibleServerVirtualEndpointOutputWithContext(ctx context.Context) FlexibleServerVirtualEndpointOutput

type FlexibleServerVirtualEndpointArgs

type FlexibleServerVirtualEndpointArgs struct {
	// The name of the Virtual Endpoint
	Name pulumi.StringPtrInput
	// The Resource ID of the *Replica* Postgres Flexible Server this should be associated with
	ReplicaServerId pulumi.StringInput
	// The Resource ID of the *Source* Postgres Flexible Server this should be associated with.
	SourceServerId pulumi.StringInput
	// The type of Virtual Endpoint. Currently only `ReadWrite` is supported.
	Type pulumi.StringInput
}

The set of arguments for constructing a FlexibleServerVirtualEndpoint resource.

func (FlexibleServerVirtualEndpointArgs) ElementType

type FlexibleServerVirtualEndpointArray

type FlexibleServerVirtualEndpointArray []FlexibleServerVirtualEndpointInput

func (FlexibleServerVirtualEndpointArray) ElementType

func (FlexibleServerVirtualEndpointArray) ToFlexibleServerVirtualEndpointArrayOutput

func (i FlexibleServerVirtualEndpointArray) ToFlexibleServerVirtualEndpointArrayOutput() FlexibleServerVirtualEndpointArrayOutput

func (FlexibleServerVirtualEndpointArray) ToFlexibleServerVirtualEndpointArrayOutputWithContext

func (i FlexibleServerVirtualEndpointArray) ToFlexibleServerVirtualEndpointArrayOutputWithContext(ctx context.Context) FlexibleServerVirtualEndpointArrayOutput

type FlexibleServerVirtualEndpointArrayInput

type FlexibleServerVirtualEndpointArrayInput interface {
	pulumi.Input

	ToFlexibleServerVirtualEndpointArrayOutput() FlexibleServerVirtualEndpointArrayOutput
	ToFlexibleServerVirtualEndpointArrayOutputWithContext(context.Context) FlexibleServerVirtualEndpointArrayOutput
}

FlexibleServerVirtualEndpointArrayInput is an input type that accepts FlexibleServerVirtualEndpointArray and FlexibleServerVirtualEndpointArrayOutput values. You can construct a concrete instance of `FlexibleServerVirtualEndpointArrayInput` via:

FlexibleServerVirtualEndpointArray{ FlexibleServerVirtualEndpointArgs{...} }

type FlexibleServerVirtualEndpointArrayOutput

type FlexibleServerVirtualEndpointArrayOutput struct{ *pulumi.OutputState }

func (FlexibleServerVirtualEndpointArrayOutput) ElementType

func (FlexibleServerVirtualEndpointArrayOutput) Index

func (FlexibleServerVirtualEndpointArrayOutput) ToFlexibleServerVirtualEndpointArrayOutput

func (o FlexibleServerVirtualEndpointArrayOutput) ToFlexibleServerVirtualEndpointArrayOutput() FlexibleServerVirtualEndpointArrayOutput

func (FlexibleServerVirtualEndpointArrayOutput) ToFlexibleServerVirtualEndpointArrayOutputWithContext

func (o FlexibleServerVirtualEndpointArrayOutput) ToFlexibleServerVirtualEndpointArrayOutputWithContext(ctx context.Context) FlexibleServerVirtualEndpointArrayOutput

type FlexibleServerVirtualEndpointInput

type FlexibleServerVirtualEndpointInput interface {
	pulumi.Input

	ToFlexibleServerVirtualEndpointOutput() FlexibleServerVirtualEndpointOutput
	ToFlexibleServerVirtualEndpointOutputWithContext(ctx context.Context) FlexibleServerVirtualEndpointOutput
}

type FlexibleServerVirtualEndpointMap

type FlexibleServerVirtualEndpointMap map[string]FlexibleServerVirtualEndpointInput

func (FlexibleServerVirtualEndpointMap) ElementType

func (FlexibleServerVirtualEndpointMap) ToFlexibleServerVirtualEndpointMapOutput

func (i FlexibleServerVirtualEndpointMap) ToFlexibleServerVirtualEndpointMapOutput() FlexibleServerVirtualEndpointMapOutput

func (FlexibleServerVirtualEndpointMap) ToFlexibleServerVirtualEndpointMapOutputWithContext

func (i FlexibleServerVirtualEndpointMap) ToFlexibleServerVirtualEndpointMapOutputWithContext(ctx context.Context) FlexibleServerVirtualEndpointMapOutput

type FlexibleServerVirtualEndpointMapInput

type FlexibleServerVirtualEndpointMapInput interface {
	pulumi.Input

	ToFlexibleServerVirtualEndpointMapOutput() FlexibleServerVirtualEndpointMapOutput
	ToFlexibleServerVirtualEndpointMapOutputWithContext(context.Context) FlexibleServerVirtualEndpointMapOutput
}

FlexibleServerVirtualEndpointMapInput is an input type that accepts FlexibleServerVirtualEndpointMap and FlexibleServerVirtualEndpointMapOutput values. You can construct a concrete instance of `FlexibleServerVirtualEndpointMapInput` via:

FlexibleServerVirtualEndpointMap{ "key": FlexibleServerVirtualEndpointArgs{...} }

type FlexibleServerVirtualEndpointMapOutput

type FlexibleServerVirtualEndpointMapOutput struct{ *pulumi.OutputState }

func (FlexibleServerVirtualEndpointMapOutput) ElementType

func (FlexibleServerVirtualEndpointMapOutput) MapIndex

func (FlexibleServerVirtualEndpointMapOutput) ToFlexibleServerVirtualEndpointMapOutput

func (o FlexibleServerVirtualEndpointMapOutput) ToFlexibleServerVirtualEndpointMapOutput() FlexibleServerVirtualEndpointMapOutput

func (FlexibleServerVirtualEndpointMapOutput) ToFlexibleServerVirtualEndpointMapOutputWithContext

func (o FlexibleServerVirtualEndpointMapOutput) ToFlexibleServerVirtualEndpointMapOutputWithContext(ctx context.Context) FlexibleServerVirtualEndpointMapOutput

type FlexibleServerVirtualEndpointOutput

type FlexibleServerVirtualEndpointOutput struct{ *pulumi.OutputState }

func (FlexibleServerVirtualEndpointOutput) ElementType

func (FlexibleServerVirtualEndpointOutput) Name

The name of the Virtual Endpoint

func (FlexibleServerVirtualEndpointOutput) ReplicaServerId

The Resource ID of the *Replica* Postgres Flexible Server this should be associated with

func (FlexibleServerVirtualEndpointOutput) SourceServerId

The Resource ID of the *Source* Postgres Flexible Server this should be associated with.

func (FlexibleServerVirtualEndpointOutput) ToFlexibleServerVirtualEndpointOutput

func (o FlexibleServerVirtualEndpointOutput) ToFlexibleServerVirtualEndpointOutput() FlexibleServerVirtualEndpointOutput

func (FlexibleServerVirtualEndpointOutput) ToFlexibleServerVirtualEndpointOutputWithContext

func (o FlexibleServerVirtualEndpointOutput) ToFlexibleServerVirtualEndpointOutputWithContext(ctx context.Context) FlexibleServerVirtualEndpointOutput

func (FlexibleServerVirtualEndpointOutput) Type

The type of Virtual Endpoint. Currently only `ReadWrite` is supported.

type FlexibleServerVirtualEndpointState

type FlexibleServerVirtualEndpointState struct {
	// The name of the Virtual Endpoint
	Name pulumi.StringPtrInput
	// The Resource ID of the *Replica* Postgres Flexible Server this should be associated with
	ReplicaServerId pulumi.StringPtrInput
	// The Resource ID of the *Source* Postgres Flexible Server this should be associated with.
	SourceServerId pulumi.StringPtrInput
	// The type of Virtual Endpoint. Currently only `ReadWrite` is supported.
	Type pulumi.StringPtrInput
}

func (FlexibleServerVirtualEndpointState) ElementType

type GetServerIdentity

type GetServerIdentity struct {
	// The ID of the System Managed Service Principal assigned to the PostgreSQL Server.
	PrincipalId string `pulumi:"principalId"`
	// The ID of the Tenant of the System Managed Service Principal assigned to the PostgreSQL Server.
	TenantId string `pulumi:"tenantId"`
	// The identity type of the Managed Identity assigned to the PostgreSQL Server.
	Type string `pulumi:"type"`
}

type GetServerIdentityArgs

type GetServerIdentityArgs struct {
	// The ID of the System Managed Service Principal assigned to the PostgreSQL Server.
	PrincipalId pulumi.StringInput `pulumi:"principalId"`
	// The ID of the Tenant of the System Managed Service Principal assigned to the PostgreSQL Server.
	TenantId pulumi.StringInput `pulumi:"tenantId"`
	// The identity type of the Managed Identity assigned to the PostgreSQL Server.
	Type pulumi.StringInput `pulumi:"type"`
}

func (GetServerIdentityArgs) ElementType

func (GetServerIdentityArgs) ElementType() reflect.Type

func (GetServerIdentityArgs) ToGetServerIdentityOutput

func (i GetServerIdentityArgs) ToGetServerIdentityOutput() GetServerIdentityOutput

func (GetServerIdentityArgs) ToGetServerIdentityOutputWithContext

func (i GetServerIdentityArgs) ToGetServerIdentityOutputWithContext(ctx context.Context) GetServerIdentityOutput

type GetServerIdentityArray

type GetServerIdentityArray []GetServerIdentityInput

func (GetServerIdentityArray) ElementType

func (GetServerIdentityArray) ElementType() reflect.Type

func (GetServerIdentityArray) ToGetServerIdentityArrayOutput

func (i GetServerIdentityArray) ToGetServerIdentityArrayOutput() GetServerIdentityArrayOutput

func (GetServerIdentityArray) ToGetServerIdentityArrayOutputWithContext

func (i GetServerIdentityArray) ToGetServerIdentityArrayOutputWithContext(ctx context.Context) GetServerIdentityArrayOutput

type GetServerIdentityArrayInput

type GetServerIdentityArrayInput interface {
	pulumi.Input

	ToGetServerIdentityArrayOutput() GetServerIdentityArrayOutput
	ToGetServerIdentityArrayOutputWithContext(context.Context) GetServerIdentityArrayOutput
}

GetServerIdentityArrayInput is an input type that accepts GetServerIdentityArray and GetServerIdentityArrayOutput values. You can construct a concrete instance of `GetServerIdentityArrayInput` via:

GetServerIdentityArray{ GetServerIdentityArgs{...} }

type GetServerIdentityArrayOutput

type GetServerIdentityArrayOutput struct{ *pulumi.OutputState }

func (GetServerIdentityArrayOutput) ElementType

func (GetServerIdentityArrayOutput) Index

func (GetServerIdentityArrayOutput) ToGetServerIdentityArrayOutput

func (o GetServerIdentityArrayOutput) ToGetServerIdentityArrayOutput() GetServerIdentityArrayOutput

func (GetServerIdentityArrayOutput) ToGetServerIdentityArrayOutputWithContext

func (o GetServerIdentityArrayOutput) ToGetServerIdentityArrayOutputWithContext(ctx context.Context) GetServerIdentityArrayOutput

type GetServerIdentityInput

type GetServerIdentityInput interface {
	pulumi.Input

	ToGetServerIdentityOutput() GetServerIdentityOutput
	ToGetServerIdentityOutputWithContext(context.Context) GetServerIdentityOutput
}

GetServerIdentityInput is an input type that accepts GetServerIdentityArgs and GetServerIdentityOutput values. You can construct a concrete instance of `GetServerIdentityInput` via:

GetServerIdentityArgs{...}

type GetServerIdentityOutput

type GetServerIdentityOutput struct{ *pulumi.OutputState }

func (GetServerIdentityOutput) ElementType

func (GetServerIdentityOutput) ElementType() reflect.Type

func (GetServerIdentityOutput) PrincipalId

The ID of the System Managed Service Principal assigned to the PostgreSQL Server.

func (GetServerIdentityOutput) TenantId

The ID of the Tenant of the System Managed Service Principal assigned to the PostgreSQL Server.

func (GetServerIdentityOutput) ToGetServerIdentityOutput

func (o GetServerIdentityOutput) ToGetServerIdentityOutput() GetServerIdentityOutput

func (GetServerIdentityOutput) ToGetServerIdentityOutputWithContext

func (o GetServerIdentityOutput) ToGetServerIdentityOutputWithContext(ctx context.Context) GetServerIdentityOutput

func (GetServerIdentityOutput) Type

The identity type of the Managed Identity assigned to the PostgreSQL Server.

type LookupFlexibleServerArgs

type LookupFlexibleServerArgs struct {
	// The name of this PostgreSQL Flexible Server.
	Name string `pulumi:"name"`
	// The name of the Resource Group where the PostgreSQL Flexible Server exists.
	ResourceGroupName string `pulumi:"resourceGroupName"`
}

A collection of arguments for invoking getFlexibleServer.

type LookupFlexibleServerOutputArgs

type LookupFlexibleServerOutputArgs struct {
	// The name of this PostgreSQL Flexible Server.
	Name pulumi.StringInput `pulumi:"name"`
	// The name of the Resource Group where the PostgreSQL Flexible Server exists.
	ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"`
}

A collection of arguments for invoking getFlexibleServer.

func (LookupFlexibleServerOutputArgs) ElementType

type LookupFlexibleServerResult

type LookupFlexibleServerResult struct {
	// The Administrator login for the PostgreSQL Flexible Server.
	AdministratorLogin string `pulumi:"administratorLogin"`
	// Is the storage auto grow for PostgreSQL Flexible Server enabled?
	AutoGrowEnabled bool `pulumi:"autoGrowEnabled"`
	// The backup retention days for the PostgreSQL Flexible Server.
	BackupRetentionDays int `pulumi:"backupRetentionDays"`
	// The ID of the virtual network subnet to create the PostgreSQL Flexible Server.
	DelegatedSubnetId string `pulumi:"delegatedSubnetId"`
	// The FQDN of the PostgreSQL Flexible Server.
	Fqdn string `pulumi:"fqdn"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The Azure Region where the PostgreSQL Flexible Server exists.
	Location string `pulumi:"location"`
	Name     string `pulumi:"name"`
	// Is public network access enabled?
	PublicNetworkAccessEnabled bool   `pulumi:"publicNetworkAccessEnabled"`
	ResourceGroupName          string `pulumi:"resourceGroupName"`
	// The SKU Name for the PostgreSQL Flexible Server. The name of the SKU, follows the `tier` + `name` pattern (e.g. `B_Standard_B1ms`, `GP_Standard_D2s_v3`, `MO_Standard_E4s_v3`).
	SkuName string `pulumi:"skuName"`
	// The max storage allowed for the PostgreSQL Flexible Server.
	StorageMb int `pulumi:"storageMb"`
	// A mapping of tags assigned to the PostgreSQL Flexible Server.
	Tags map[string]string `pulumi:"tags"`
	// The version of PostgreSQL Flexible Server to use.
	Version string `pulumi:"version"`
}

A collection of values returned by getFlexibleServer.

func LookupFlexibleServer

func LookupFlexibleServer(ctx *pulumi.Context, args *LookupFlexibleServerArgs, opts ...pulumi.InvokeOption) (*LookupFlexibleServerResult, error)

Use this data source to access information about an existing PostgreSQL Flexible Server.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := postgresql.LookupFlexibleServer(ctx, &postgresql.LookupFlexibleServerArgs{
			Name:              "existing-postgresql-fs",
			ResourceGroupName: "existing-postgresql-resgroup",
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("id", example.Id)
		return nil
	})
}

```

type LookupFlexibleServerResultOutput

type LookupFlexibleServerResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getFlexibleServer.

func (LookupFlexibleServerResultOutput) AdministratorLogin

func (o LookupFlexibleServerResultOutput) AdministratorLogin() pulumi.StringOutput

The Administrator login for the PostgreSQL Flexible Server.

func (LookupFlexibleServerResultOutput) AutoGrowEnabled

Is the storage auto grow for PostgreSQL Flexible Server enabled?

func (LookupFlexibleServerResultOutput) BackupRetentionDays

func (o LookupFlexibleServerResultOutput) BackupRetentionDays() pulumi.IntOutput

The backup retention days for the PostgreSQL Flexible Server.

func (LookupFlexibleServerResultOutput) DelegatedSubnetId

The ID of the virtual network subnet to create the PostgreSQL Flexible Server.

func (LookupFlexibleServerResultOutput) ElementType

func (LookupFlexibleServerResultOutput) Fqdn

The FQDN of the PostgreSQL Flexible Server.

func (LookupFlexibleServerResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupFlexibleServerResultOutput) Location

The Azure Region where the PostgreSQL Flexible Server exists.

func (LookupFlexibleServerResultOutput) Name

func (LookupFlexibleServerResultOutput) PublicNetworkAccessEnabled

func (o LookupFlexibleServerResultOutput) PublicNetworkAccessEnabled() pulumi.BoolOutput

Is public network access enabled?

func (LookupFlexibleServerResultOutput) ResourceGroupName

func (LookupFlexibleServerResultOutput) SkuName

The SKU Name for the PostgreSQL Flexible Server. The name of the SKU, follows the `tier` + `name` pattern (e.g. `B_Standard_B1ms`, `GP_Standard_D2s_v3`, `MO_Standard_E4s_v3`).

func (LookupFlexibleServerResultOutput) StorageMb

The max storage allowed for the PostgreSQL Flexible Server.

func (LookupFlexibleServerResultOutput) Tags

A mapping of tags assigned to the PostgreSQL Flexible Server.

func (LookupFlexibleServerResultOutput) ToLookupFlexibleServerResultOutput

func (o LookupFlexibleServerResultOutput) ToLookupFlexibleServerResultOutput() LookupFlexibleServerResultOutput

func (LookupFlexibleServerResultOutput) ToLookupFlexibleServerResultOutputWithContext

func (o LookupFlexibleServerResultOutput) ToLookupFlexibleServerResultOutputWithContext(ctx context.Context) LookupFlexibleServerResultOutput

func (LookupFlexibleServerResultOutput) Version

The version of PostgreSQL Flexible Server to use.

type LookupServerArgs

type LookupServerArgs struct {
	// The name of the PostgreSQL Server.
	Name string `pulumi:"name"`
	// Specifies the name of the Resource Group where the PostgreSQL Server exists.
	ResourceGroupName string `pulumi:"resourceGroupName"`
}

A collection of arguments for invoking getServer.

type LookupServerOutputArgs

type LookupServerOutputArgs struct {
	// The name of the PostgreSQL Server.
	Name pulumi.StringInput `pulumi:"name"`
	// Specifies the name of the Resource Group where the PostgreSQL Server exists.
	ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"`
}

A collection of arguments for invoking getServer.

func (LookupServerOutputArgs) ElementType

func (LookupServerOutputArgs) ElementType() reflect.Type

type LookupServerResult

type LookupServerResult struct {
	// The administrator username of the PostgreSQL Server.
	AdministratorLogin string `pulumi:"administratorLogin"`
	// The fully qualified domain name of the PostgreSQL Server.
	Fqdn string `pulumi:"fqdn"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// An `identity` block as defined below.
	Identities []GetServerIdentity `pulumi:"identities"`
	// The location of the Resource Group in which the PostgreSQL Server exists.
	Location          string `pulumi:"location"`
	Name              string `pulumi:"name"`
	ResourceGroupName string `pulumi:"resourceGroupName"`
	// The SKU name of the PostgreSQL Server.
	SkuName string `pulumi:"skuName"`
	// A mapping of tags assigned to the resource.
	Tags map[string]string `pulumi:"tags"`
	// The version of the PostgreSQL Server.
	Version string `pulumi:"version"`
}

A collection of values returned by getServer.

func LookupServer

func LookupServer(ctx *pulumi.Context, args *LookupServerArgs, opts ...pulumi.InvokeOption) (*LookupServerResult, error)

Use this data source to access information about an existing PostgreSQL Azure Database Server.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := postgresql.LookupServer(ctx, &postgresql.LookupServerArgs{
			Name:              "postgresql-server-1",
			ResourceGroupName: "api-rg-pro",
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("postgresqlServerId", example.Id)
		return nil
	})
}

```

type LookupServerResultOutput

type LookupServerResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getServer.

func (LookupServerResultOutput) AdministratorLogin

func (o LookupServerResultOutput) AdministratorLogin() pulumi.StringOutput

The administrator username of the PostgreSQL Server.

func (LookupServerResultOutput) ElementType

func (LookupServerResultOutput) ElementType() reflect.Type

func (LookupServerResultOutput) Fqdn

The fully qualified domain name of the PostgreSQL Server.

func (LookupServerResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupServerResultOutput) Identities

An `identity` block as defined below.

func (LookupServerResultOutput) Location

The location of the Resource Group in which the PostgreSQL Server exists.

func (LookupServerResultOutput) Name

func (LookupServerResultOutput) ResourceGroupName

func (o LookupServerResultOutput) ResourceGroupName() pulumi.StringOutput

func (LookupServerResultOutput) SkuName

The SKU name of the PostgreSQL Server.

func (LookupServerResultOutput) Tags

A mapping of tags assigned to the resource.

func (LookupServerResultOutput) ToLookupServerResultOutput

func (o LookupServerResultOutput) ToLookupServerResultOutput() LookupServerResultOutput

func (LookupServerResultOutput) ToLookupServerResultOutputWithContext

func (o LookupServerResultOutput) ToLookupServerResultOutputWithContext(ctx context.Context) LookupServerResultOutput

func (LookupServerResultOutput) Version

The version of the PostgreSQL Server.

type Server

type Server struct {
	pulumi.CustomResourceState

	// The Administrator login for the PostgreSQL Server. Required when `createMode` is `Default`. Changing this forces a new resource to be created.
	AdministratorLogin pulumi.StringOutput `pulumi:"administratorLogin"`
	// The Password associated with the `administratorLogin` for the PostgreSQL Server. Required when `createMode` is `Default`.
	AdministratorLoginPassword pulumi.StringPtrOutput `pulumi:"administratorLoginPassword"`
	// Enable/Disable auto-growing of the storage. Storage auto-grow prevents your server from running out of storage and becoming read-only. If storage auto grow is enabled, the storage automatically grows without impacting the workload. Defaults to `true`.
	AutoGrowEnabled pulumi.BoolPtrOutput `pulumi:"autoGrowEnabled"`
	// Backup retention days for the server, supported values are between `7` and `35` days.
	BackupRetentionDays pulumi.IntOutput `pulumi:"backupRetentionDays"`
	// The creation mode. Can be used to restore or replicate existing servers. Possible values are `Default`, `Replica`, `GeoRestore`, and `PointInTimeRestore`. Defaults to `Default`.
	CreateMode pulumi.StringPtrOutput `pulumi:"createMode"`
	// For creation modes other than `Default`, the source server ID to use.
	CreationSourceServerId pulumi.StringPtrOutput `pulumi:"creationSourceServerId"`
	// The FQDN of the PostgreSQL Server.
	Fqdn pulumi.StringOutput `pulumi:"fqdn"`
	// Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup storage in the General Purpose and Memory Optimized tiers. When the backups are stored in geo-redundant backup storage, they are not only stored within the region in which your server is hosted, but are also replicated to a paired data center. This provides better protection and ability to restore your server in a different region in the event of a disaster. This is not support for the Basic tier. Changing this forces a new resource to be created.
	GeoRedundantBackupEnabled pulumi.BoolPtrOutput `pulumi:"geoRedundantBackupEnabled"`
	// An `identity` block as defined below.
	Identity ServerIdentityPtrOutput `pulumi:"identity"`
	// Whether or not infrastructure is encrypted for this server. Changing this forces a new resource to be created.
	//
	// > **NOTE:** This property is currently still in development and not supported by Microsoft. If the `infrastructureEncryptionEnabled` attribute is set to `true` the PostgreSQL instance will incur a substantial performance degradation due to a second encryption pass on top of the existing default encryption that is already provided by Azure Storage. It is strongly suggested to leave this value `false` as not doing so can lead to unclear error messages.
	InfrastructureEncryptionEnabled pulumi.BoolPtrOutput `pulumi:"infrastructureEncryptionEnabled"`
	// Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
	Location pulumi.StringOutput `pulumi:"location"`
	// Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.
	Name pulumi.StringOutput `pulumi:"name"`
	// Whether or not public network access is allowed for this server. Defaults to `true`.
	PublicNetworkAccessEnabled pulumi.BoolPtrOutput `pulumi:"publicNetworkAccessEnabled"`
	// The name of the resource group in which to create the PostgreSQL Server. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
	// When `createMode` is `PointInTimeRestore` the point in time to restore from `creationSourceServerId`. It should be provided in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) format, e.g. `2013-11-08T22:00:40Z`.
	RestorePointInTime pulumi.StringPtrOutput `pulumi:"restorePointInTime"`
	// Specifies the SKU Name for this PostgreSQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/rest/api/postgresql/singleserver/servers/create#sku). Possible values are `B_Gen4_1`, `B_Gen4_2`, `B_Gen5_1`, `B_Gen5_2`, `GP_Gen4_2`, `GP_Gen4_4`, `GP_Gen4_8`, `GP_Gen4_16`, `GP_Gen4_32`, `GP_Gen5_2`, `GP_Gen5_4`, `GP_Gen5_8`, `GP_Gen5_16`, `GP_Gen5_32`, `GP_Gen5_64`, `MO_Gen5_2`, `MO_Gen5_4`, `MO_Gen5_8`, `MO_Gen5_16` and `MO_Gen5_32`.
	//
	// > **NOTE:** When replication is set up and `skuName` is changed to a higher tier or more capacity for the primary, all replicas are scaled up to the same tier/capacity. This is an Azure requirement, for more information see the [replica scaling documentation](https://docs.microsoft.com/azure/postgresql/concepts-read-replicas#scaling)
	SkuName pulumi.StringOutput `pulumi:"skuName"`
	// Specifies if SSL should be enforced on connections. Possible values are `true` and `false`.
	//
	// > **NOTE:** `sslMinimalTlsVersionEnforced` must be set to `TLSEnforcementDisabled` when `sslEnforcementEnabled` is set to `false`.
	SslEnforcementEnabled pulumi.BoolOutput `pulumi:"sslEnforcementEnabled"`
	// The minimum TLS version to support on the sever. Possible values are `TLSEnforcementDisabled`, `TLS1_0`, `TLS1_1`, and `TLS1_2`. Defaults to `TLS1_2`.
	SslMinimalTlsVersionEnforced pulumi.StringPtrOutput `pulumi:"sslMinimalTlsVersionEnforced"`
	// Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `16777216` MB(16TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/azure/postgresql/concepts-pricing-tiers#storage).
	StorageMb pulumi.IntOutput `pulumi:"storageMb"`
	// A mapping of tags to assign to the resource.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// Threat detection policy configuration, known in the API as Server Security Alerts Policy. The `threatDetectionPolicy` block supports fields documented below.
	ThreatDetectionPolicy ServerThreatDetectionPolicyPtrOutput `pulumi:"threatDetectionPolicy"`
	// Specifies the version of PostgreSQL to use. Valid values are `9.5`, `9.6`, `10`, `10.0`, `10.2` and `11`. Changing this forces a new resource to be created.
	Version pulumi.StringOutput `pulumi:"version"`
}

Manages a PostgreSQL Server.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("example-resources"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		_, err = postgresql.NewServer(ctx, "example", &postgresql.ServerArgs{
			Name:                         pulumi.String("example-psqlserver"),
			Location:                     example.Location,
			ResourceGroupName:            example.Name,
			AdministratorLogin:           pulumi.String("psqladmin"),
			AdministratorLoginPassword:   pulumi.String("H@Sh1CoR3!"),
			SkuName:                      pulumi.String("GP_Gen5_4"),
			Version:                      pulumi.String("11"),
			StorageMb:                    pulumi.Int(640000),
			BackupRetentionDays:          pulumi.Int(7),
			GeoRedundantBackupEnabled:    pulumi.Bool(true),
			AutoGrowEnabled:              pulumi.Bool(true),
			PublicNetworkAccessEnabled:   pulumi.Bool(false),
			SslEnforcementEnabled:        pulumi.Bool(true),
			SslMinimalTlsVersionEnforced: pulumi.String("TLS1_2"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

PostgreSQL Server's can be imported using the `resource id`, e.g.

```sh $ pulumi import azure:postgresql/server:Server server1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/servers/server1 ```

func GetServer

func GetServer(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ServerState, opts ...pulumi.ResourceOption) (*Server, error)

GetServer gets an existing Server resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewServer

func NewServer(ctx *pulumi.Context,
	name string, args *ServerArgs, opts ...pulumi.ResourceOption) (*Server, error)

NewServer registers a new resource with the given unique name, arguments, and options.

func (*Server) ElementType

func (*Server) ElementType() reflect.Type

func (*Server) ToServerOutput

func (i *Server) ToServerOutput() ServerOutput

func (*Server) ToServerOutputWithContext

func (i *Server) ToServerOutputWithContext(ctx context.Context) ServerOutput

type ServerArgs

type ServerArgs struct {
	// The Administrator login for the PostgreSQL Server. Required when `createMode` is `Default`. Changing this forces a new resource to be created.
	AdministratorLogin pulumi.StringPtrInput
	// The Password associated with the `administratorLogin` for the PostgreSQL Server. Required when `createMode` is `Default`.
	AdministratorLoginPassword pulumi.StringPtrInput
	// Enable/Disable auto-growing of the storage. Storage auto-grow prevents your server from running out of storage and becoming read-only. If storage auto grow is enabled, the storage automatically grows without impacting the workload. Defaults to `true`.
	AutoGrowEnabled pulumi.BoolPtrInput
	// Backup retention days for the server, supported values are between `7` and `35` days.
	BackupRetentionDays pulumi.IntPtrInput
	// The creation mode. Can be used to restore or replicate existing servers. Possible values are `Default`, `Replica`, `GeoRestore`, and `PointInTimeRestore`. Defaults to `Default`.
	CreateMode pulumi.StringPtrInput
	// For creation modes other than `Default`, the source server ID to use.
	CreationSourceServerId pulumi.StringPtrInput
	// Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup storage in the General Purpose and Memory Optimized tiers. When the backups are stored in geo-redundant backup storage, they are not only stored within the region in which your server is hosted, but are also replicated to a paired data center. This provides better protection and ability to restore your server in a different region in the event of a disaster. This is not support for the Basic tier. Changing this forces a new resource to be created.
	GeoRedundantBackupEnabled pulumi.BoolPtrInput
	// An `identity` block as defined below.
	Identity ServerIdentityPtrInput
	// Whether or not infrastructure is encrypted for this server. Changing this forces a new resource to be created.
	//
	// > **NOTE:** This property is currently still in development and not supported by Microsoft. If the `infrastructureEncryptionEnabled` attribute is set to `true` the PostgreSQL instance will incur a substantial performance degradation due to a second encryption pass on top of the existing default encryption that is already provided by Azure Storage. It is strongly suggested to leave this value `false` as not doing so can lead to unclear error messages.
	InfrastructureEncryptionEnabled pulumi.BoolPtrInput
	// Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
	Location pulumi.StringPtrInput
	// Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.
	Name pulumi.StringPtrInput
	// Whether or not public network access is allowed for this server. Defaults to `true`.
	PublicNetworkAccessEnabled pulumi.BoolPtrInput
	// The name of the resource group in which to create the PostgreSQL Server. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringInput
	// When `createMode` is `PointInTimeRestore` the point in time to restore from `creationSourceServerId`. It should be provided in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) format, e.g. `2013-11-08T22:00:40Z`.
	RestorePointInTime pulumi.StringPtrInput
	// Specifies the SKU Name for this PostgreSQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/rest/api/postgresql/singleserver/servers/create#sku). Possible values are `B_Gen4_1`, `B_Gen4_2`, `B_Gen5_1`, `B_Gen5_2`, `GP_Gen4_2`, `GP_Gen4_4`, `GP_Gen4_8`, `GP_Gen4_16`, `GP_Gen4_32`, `GP_Gen5_2`, `GP_Gen5_4`, `GP_Gen5_8`, `GP_Gen5_16`, `GP_Gen5_32`, `GP_Gen5_64`, `MO_Gen5_2`, `MO_Gen5_4`, `MO_Gen5_8`, `MO_Gen5_16` and `MO_Gen5_32`.
	//
	// > **NOTE:** When replication is set up and `skuName` is changed to a higher tier or more capacity for the primary, all replicas are scaled up to the same tier/capacity. This is an Azure requirement, for more information see the [replica scaling documentation](https://docs.microsoft.com/azure/postgresql/concepts-read-replicas#scaling)
	SkuName pulumi.StringInput
	// Specifies if SSL should be enforced on connections. Possible values are `true` and `false`.
	//
	// > **NOTE:** `sslMinimalTlsVersionEnforced` must be set to `TLSEnforcementDisabled` when `sslEnforcementEnabled` is set to `false`.
	SslEnforcementEnabled pulumi.BoolInput
	// The minimum TLS version to support on the sever. Possible values are `TLSEnforcementDisabled`, `TLS1_0`, `TLS1_1`, and `TLS1_2`. Defaults to `TLS1_2`.
	SslMinimalTlsVersionEnforced pulumi.StringPtrInput
	// Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `16777216` MB(16TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/azure/postgresql/concepts-pricing-tiers#storage).
	StorageMb pulumi.IntPtrInput
	// A mapping of tags to assign to the resource.
	Tags pulumi.StringMapInput
	// Threat detection policy configuration, known in the API as Server Security Alerts Policy. The `threatDetectionPolicy` block supports fields documented below.
	ThreatDetectionPolicy ServerThreatDetectionPolicyPtrInput
	// Specifies the version of PostgreSQL to use. Valid values are `9.5`, `9.6`, `10`, `10.0`, `10.2` and `11`. Changing this forces a new resource to be created.
	Version pulumi.StringInput
}

The set of arguments for constructing a Server resource.

func (ServerArgs) ElementType

func (ServerArgs) ElementType() reflect.Type

type ServerArray

type ServerArray []ServerInput

func (ServerArray) ElementType

func (ServerArray) ElementType() reflect.Type

func (ServerArray) ToServerArrayOutput

func (i ServerArray) ToServerArrayOutput() ServerArrayOutput

func (ServerArray) ToServerArrayOutputWithContext

func (i ServerArray) ToServerArrayOutputWithContext(ctx context.Context) ServerArrayOutput

type ServerArrayInput

type ServerArrayInput interface {
	pulumi.Input

	ToServerArrayOutput() ServerArrayOutput
	ToServerArrayOutputWithContext(context.Context) ServerArrayOutput
}

ServerArrayInput is an input type that accepts ServerArray and ServerArrayOutput values. You can construct a concrete instance of `ServerArrayInput` via:

ServerArray{ ServerArgs{...} }

type ServerArrayOutput

type ServerArrayOutput struct{ *pulumi.OutputState }

func (ServerArrayOutput) ElementType

func (ServerArrayOutput) ElementType() reflect.Type

func (ServerArrayOutput) Index

func (ServerArrayOutput) ToServerArrayOutput

func (o ServerArrayOutput) ToServerArrayOutput() ServerArrayOutput

func (ServerArrayOutput) ToServerArrayOutputWithContext

func (o ServerArrayOutput) ToServerArrayOutputWithContext(ctx context.Context) ServerArrayOutput

type ServerIdentity

type ServerIdentity struct {
	// The Principal ID associated with this Managed Service Identity.
	PrincipalId *string `pulumi:"principalId"`
	// The Tenant ID associated with this Managed Service Identity.
	TenantId *string `pulumi:"tenantId"`
	// Specifies the type of Managed Service Identity that should be configured on this PostgreSQL Server. The only possible value is `SystemAssigned`.
	Type string `pulumi:"type"`
}

type ServerIdentityArgs

type ServerIdentityArgs struct {
	// The Principal ID associated with this Managed Service Identity.
	PrincipalId pulumi.StringPtrInput `pulumi:"principalId"`
	// The Tenant ID associated with this Managed Service Identity.
	TenantId pulumi.StringPtrInput `pulumi:"tenantId"`
	// Specifies the type of Managed Service Identity that should be configured on this PostgreSQL Server. The only possible value is `SystemAssigned`.
	Type pulumi.StringInput `pulumi:"type"`
}

func (ServerIdentityArgs) ElementType

func (ServerIdentityArgs) ElementType() reflect.Type

func (ServerIdentityArgs) ToServerIdentityOutput

func (i ServerIdentityArgs) ToServerIdentityOutput() ServerIdentityOutput

func (ServerIdentityArgs) ToServerIdentityOutputWithContext

func (i ServerIdentityArgs) ToServerIdentityOutputWithContext(ctx context.Context) ServerIdentityOutput

func (ServerIdentityArgs) ToServerIdentityPtrOutput

func (i ServerIdentityArgs) ToServerIdentityPtrOutput() ServerIdentityPtrOutput

func (ServerIdentityArgs) ToServerIdentityPtrOutputWithContext

func (i ServerIdentityArgs) ToServerIdentityPtrOutputWithContext(ctx context.Context) ServerIdentityPtrOutput

type ServerIdentityInput

type ServerIdentityInput interface {
	pulumi.Input

	ToServerIdentityOutput() ServerIdentityOutput
	ToServerIdentityOutputWithContext(context.Context) ServerIdentityOutput
}

ServerIdentityInput is an input type that accepts ServerIdentityArgs and ServerIdentityOutput values. You can construct a concrete instance of `ServerIdentityInput` via:

ServerIdentityArgs{...}

type ServerIdentityOutput

type ServerIdentityOutput struct{ *pulumi.OutputState }

func (ServerIdentityOutput) ElementType

func (ServerIdentityOutput) ElementType() reflect.Type

func (ServerIdentityOutput) PrincipalId

The Principal ID associated with this Managed Service Identity.

func (ServerIdentityOutput) TenantId

The Tenant ID associated with this Managed Service Identity.

func (ServerIdentityOutput) ToServerIdentityOutput

func (o ServerIdentityOutput) ToServerIdentityOutput() ServerIdentityOutput

func (ServerIdentityOutput) ToServerIdentityOutputWithContext

func (o ServerIdentityOutput) ToServerIdentityOutputWithContext(ctx context.Context) ServerIdentityOutput

func (ServerIdentityOutput) ToServerIdentityPtrOutput

func (o ServerIdentityOutput) ToServerIdentityPtrOutput() ServerIdentityPtrOutput

func (ServerIdentityOutput) ToServerIdentityPtrOutputWithContext

func (o ServerIdentityOutput) ToServerIdentityPtrOutputWithContext(ctx context.Context) ServerIdentityPtrOutput

func (ServerIdentityOutput) Type

Specifies the type of Managed Service Identity that should be configured on this PostgreSQL Server. The only possible value is `SystemAssigned`.

type ServerIdentityPtrInput

type ServerIdentityPtrInput interface {
	pulumi.Input

	ToServerIdentityPtrOutput() ServerIdentityPtrOutput
	ToServerIdentityPtrOutputWithContext(context.Context) ServerIdentityPtrOutput
}

ServerIdentityPtrInput is an input type that accepts ServerIdentityArgs, ServerIdentityPtr and ServerIdentityPtrOutput values. You can construct a concrete instance of `ServerIdentityPtrInput` via:

        ServerIdentityArgs{...}

or:

        nil

type ServerIdentityPtrOutput

type ServerIdentityPtrOutput struct{ *pulumi.OutputState }

func (ServerIdentityPtrOutput) Elem

func (ServerIdentityPtrOutput) ElementType

func (ServerIdentityPtrOutput) ElementType() reflect.Type

func (ServerIdentityPtrOutput) PrincipalId

The Principal ID associated with this Managed Service Identity.

func (ServerIdentityPtrOutput) TenantId

The Tenant ID associated with this Managed Service Identity.

func (ServerIdentityPtrOutput) ToServerIdentityPtrOutput

func (o ServerIdentityPtrOutput) ToServerIdentityPtrOutput() ServerIdentityPtrOutput

func (ServerIdentityPtrOutput) ToServerIdentityPtrOutputWithContext

func (o ServerIdentityPtrOutput) ToServerIdentityPtrOutputWithContext(ctx context.Context) ServerIdentityPtrOutput

func (ServerIdentityPtrOutput) Type

Specifies the type of Managed Service Identity that should be configured on this PostgreSQL Server. The only possible value is `SystemAssigned`.

type ServerInput

type ServerInput interface {
	pulumi.Input

	ToServerOutput() ServerOutput
	ToServerOutputWithContext(ctx context.Context) ServerOutput
}

type ServerKey

type ServerKey struct {
	pulumi.CustomResourceState

	// The URL to a Key Vault Key.
	KeyVaultKeyId pulumi.StringOutput `pulumi:"keyVaultKeyId"`
	// The ID of the PostgreSQL Server. Changing this forces a new resource to be created.
	ServerId pulumi.StringOutput `pulumi:"serverId"`
}

Manages a Customer Managed Key for a PostgreSQL Server.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/keyvault"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		current, err := core.GetClientConfig(ctx, map[string]interface{}{}, nil)
		if err != nil {
			return err
		}
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("example-resources"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleKeyVault, err := keyvault.NewKeyVault(ctx, "example", &keyvault.KeyVaultArgs{
			Name:                   pulumi.String("examplekv"),
			Location:               example.Location,
			ResourceGroupName:      example.Name,
			TenantId:               pulumi.String(current.TenantId),
			SkuName:                pulumi.String("premium"),
			PurgeProtectionEnabled: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		exampleServer, err := postgresql.NewServer(ctx, "example", &postgresql.ServerArgs{
			Name:                       pulumi.String("example-postgre-server"),
			Location:                   example.Location,
			ResourceGroupName:          example.Name,
			AdministratorLogin:         pulumi.String("psqladmin"),
			AdministratorLoginPassword: pulumi.String("H@Sh1CoR3!"),
			SkuName:                    pulumi.String("GP_Gen5_2"),
			Version:                    pulumi.String("11"),
			StorageMb:                  pulumi.Int(51200),
			SslEnforcementEnabled:      pulumi.Bool(true),
			Identity: &postgresql.ServerIdentityArgs{
				Type: pulumi.String("SystemAssigned"),
			},
		})
		if err != nil {
			return err
		}
		server, err := keyvault.NewAccessPolicy(ctx, "server", &keyvault.AccessPolicyArgs{
			KeyVaultId: exampleKeyVault.ID(),
			TenantId:   pulumi.String(current.TenantId),
			ObjectId: pulumi.String(exampleServer.Identity.ApplyT(func(identity postgresql.ServerIdentity) (*string, error) {
				return &identity.PrincipalId, nil
			}).(pulumi.StringPtrOutput)),
			KeyPermissions: pulumi.StringArray{
				pulumi.String("Get"),
				pulumi.String("UnwrapKey"),
				pulumi.String("WrapKey"),
			},
			SecretPermissions: pulumi.StringArray{
				pulumi.String("Get"),
			},
		})
		if err != nil {
			return err
		}
		client, err := keyvault.NewAccessPolicy(ctx, "client", &keyvault.AccessPolicyArgs{
			KeyVaultId: exampleKeyVault.ID(),
			TenantId:   pulumi.String(current.TenantId),
			ObjectId:   pulumi.String(current.ObjectId),
			KeyPermissions: pulumi.StringArray{
				pulumi.String("Get"),
				pulumi.String("Create"),
				pulumi.String("Delete"),
				pulumi.String("List"),
				pulumi.String("Restore"),
				pulumi.String("Recover"),
				pulumi.String("UnwrapKey"),
				pulumi.String("WrapKey"),
				pulumi.String("Purge"),
				pulumi.String("Encrypt"),
				pulumi.String("Decrypt"),
				pulumi.String("Sign"),
				pulumi.String("Verify"),
				pulumi.String("GetRotationPolicy"),
			},
			SecretPermissions: pulumi.StringArray{
				pulumi.String("Get"),
			},
		})
		if err != nil {
			return err
		}
		exampleKey, err := keyvault.NewKey(ctx, "example", &keyvault.KeyArgs{
			Name:       pulumi.String("tfex-key"),
			KeyVaultId: exampleKeyVault.ID(),
			KeyType:    pulumi.String("RSA"),
			KeySize:    pulumi.Int(2048),
			KeyOpts: pulumi.StringArray{
				pulumi.String("decrypt"),
				pulumi.String("encrypt"),
				pulumi.String("sign"),
				pulumi.String("unwrapKey"),
				pulumi.String("verify"),
				pulumi.String("wrapKey"),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			client,
			server,
		}))
		if err != nil {
			return err
		}
		_, err = postgresql.NewServerKey(ctx, "example", &postgresql.ServerKeyArgs{
			ServerId:      exampleServer.ID(),
			KeyVaultKeyId: exampleKey.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

A PostgreSQL Server Key can be imported using the `resource id` of the PostgreSQL Server Key, e.g.

```sh $ pulumi import azure:postgresql/serverKey:ServerKey example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DBforPostgreSQL/servers/server1/keys/keyvaultname_key-name_keyversion ```

func GetServerKey

func GetServerKey(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ServerKeyState, opts ...pulumi.ResourceOption) (*ServerKey, error)

GetServerKey gets an existing ServerKey resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewServerKey

func NewServerKey(ctx *pulumi.Context,
	name string, args *ServerKeyArgs, opts ...pulumi.ResourceOption) (*ServerKey, error)

NewServerKey registers a new resource with the given unique name, arguments, and options.

func (*ServerKey) ElementType

func (*ServerKey) ElementType() reflect.Type

func (*ServerKey) ToServerKeyOutput

func (i *ServerKey) ToServerKeyOutput() ServerKeyOutput

func (*ServerKey) ToServerKeyOutputWithContext

func (i *ServerKey) ToServerKeyOutputWithContext(ctx context.Context) ServerKeyOutput

type ServerKeyArgs

type ServerKeyArgs struct {
	// The URL to a Key Vault Key.
	KeyVaultKeyId pulumi.StringInput
	// The ID of the PostgreSQL Server. Changing this forces a new resource to be created.
	ServerId pulumi.StringInput
}

The set of arguments for constructing a ServerKey resource.

func (ServerKeyArgs) ElementType

func (ServerKeyArgs) ElementType() reflect.Type

type ServerKeyArray

type ServerKeyArray []ServerKeyInput

func (ServerKeyArray) ElementType

func (ServerKeyArray) ElementType() reflect.Type

func (ServerKeyArray) ToServerKeyArrayOutput

func (i ServerKeyArray) ToServerKeyArrayOutput() ServerKeyArrayOutput

func (ServerKeyArray) ToServerKeyArrayOutputWithContext

func (i ServerKeyArray) ToServerKeyArrayOutputWithContext(ctx context.Context) ServerKeyArrayOutput

type ServerKeyArrayInput

type ServerKeyArrayInput interface {
	pulumi.Input

	ToServerKeyArrayOutput() ServerKeyArrayOutput
	ToServerKeyArrayOutputWithContext(context.Context) ServerKeyArrayOutput
}

ServerKeyArrayInput is an input type that accepts ServerKeyArray and ServerKeyArrayOutput values. You can construct a concrete instance of `ServerKeyArrayInput` via:

ServerKeyArray{ ServerKeyArgs{...} }

type ServerKeyArrayOutput

type ServerKeyArrayOutput struct{ *pulumi.OutputState }

func (ServerKeyArrayOutput) ElementType

func (ServerKeyArrayOutput) ElementType() reflect.Type

func (ServerKeyArrayOutput) Index

func (ServerKeyArrayOutput) ToServerKeyArrayOutput

func (o ServerKeyArrayOutput) ToServerKeyArrayOutput() ServerKeyArrayOutput

func (ServerKeyArrayOutput) ToServerKeyArrayOutputWithContext

func (o ServerKeyArrayOutput) ToServerKeyArrayOutputWithContext(ctx context.Context) ServerKeyArrayOutput

type ServerKeyInput

type ServerKeyInput interface {
	pulumi.Input

	ToServerKeyOutput() ServerKeyOutput
	ToServerKeyOutputWithContext(ctx context.Context) ServerKeyOutput
}

type ServerKeyMap

type ServerKeyMap map[string]ServerKeyInput

func (ServerKeyMap) ElementType

func (ServerKeyMap) ElementType() reflect.Type

func (ServerKeyMap) ToServerKeyMapOutput

func (i ServerKeyMap) ToServerKeyMapOutput() ServerKeyMapOutput

func (ServerKeyMap) ToServerKeyMapOutputWithContext

func (i ServerKeyMap) ToServerKeyMapOutputWithContext(ctx context.Context) ServerKeyMapOutput

type ServerKeyMapInput

type ServerKeyMapInput interface {
	pulumi.Input

	ToServerKeyMapOutput() ServerKeyMapOutput
	ToServerKeyMapOutputWithContext(context.Context) ServerKeyMapOutput
}

ServerKeyMapInput is an input type that accepts ServerKeyMap and ServerKeyMapOutput values. You can construct a concrete instance of `ServerKeyMapInput` via:

ServerKeyMap{ "key": ServerKeyArgs{...} }

type ServerKeyMapOutput

type ServerKeyMapOutput struct{ *pulumi.OutputState }

func (ServerKeyMapOutput) ElementType

func (ServerKeyMapOutput) ElementType() reflect.Type

func (ServerKeyMapOutput) MapIndex

func (ServerKeyMapOutput) ToServerKeyMapOutput

func (o ServerKeyMapOutput) ToServerKeyMapOutput() ServerKeyMapOutput

func (ServerKeyMapOutput) ToServerKeyMapOutputWithContext

func (o ServerKeyMapOutput) ToServerKeyMapOutputWithContext(ctx context.Context) ServerKeyMapOutput

type ServerKeyOutput

type ServerKeyOutput struct{ *pulumi.OutputState }

func (ServerKeyOutput) ElementType

func (ServerKeyOutput) ElementType() reflect.Type

func (ServerKeyOutput) KeyVaultKeyId

func (o ServerKeyOutput) KeyVaultKeyId() pulumi.StringOutput

The URL to a Key Vault Key.

func (ServerKeyOutput) ServerId

func (o ServerKeyOutput) ServerId() pulumi.StringOutput

The ID of the PostgreSQL Server. Changing this forces a new resource to be created.

func (ServerKeyOutput) ToServerKeyOutput

func (o ServerKeyOutput) ToServerKeyOutput() ServerKeyOutput

func (ServerKeyOutput) ToServerKeyOutputWithContext

func (o ServerKeyOutput) ToServerKeyOutputWithContext(ctx context.Context) ServerKeyOutput

type ServerKeyState

type ServerKeyState struct {
	// The URL to a Key Vault Key.
	KeyVaultKeyId pulumi.StringPtrInput
	// The ID of the PostgreSQL Server. Changing this forces a new resource to be created.
	ServerId pulumi.StringPtrInput
}

func (ServerKeyState) ElementType

func (ServerKeyState) ElementType() reflect.Type

type ServerMap

type ServerMap map[string]ServerInput

func (ServerMap) ElementType

func (ServerMap) ElementType() reflect.Type

func (ServerMap) ToServerMapOutput

func (i ServerMap) ToServerMapOutput() ServerMapOutput

func (ServerMap) ToServerMapOutputWithContext

func (i ServerMap) ToServerMapOutputWithContext(ctx context.Context) ServerMapOutput

type ServerMapInput

type ServerMapInput interface {
	pulumi.Input

	ToServerMapOutput() ServerMapOutput
	ToServerMapOutputWithContext(context.Context) ServerMapOutput
}

ServerMapInput is an input type that accepts ServerMap and ServerMapOutput values. You can construct a concrete instance of `ServerMapInput` via:

ServerMap{ "key": ServerArgs{...} }

type ServerMapOutput

type ServerMapOutput struct{ *pulumi.OutputState }

func (ServerMapOutput) ElementType

func (ServerMapOutput) ElementType() reflect.Type

func (ServerMapOutput) MapIndex

func (ServerMapOutput) ToServerMapOutput

func (o ServerMapOutput) ToServerMapOutput() ServerMapOutput

func (ServerMapOutput) ToServerMapOutputWithContext

func (o ServerMapOutput) ToServerMapOutputWithContext(ctx context.Context) ServerMapOutput

type ServerOutput

type ServerOutput struct{ *pulumi.OutputState }

func (ServerOutput) AdministratorLogin

func (o ServerOutput) AdministratorLogin() pulumi.StringOutput

The Administrator login for the PostgreSQL Server. Required when `createMode` is `Default`. Changing this forces a new resource to be created.

func (ServerOutput) AdministratorLoginPassword

func (o ServerOutput) AdministratorLoginPassword() pulumi.StringPtrOutput

The Password associated with the `administratorLogin` for the PostgreSQL Server. Required when `createMode` is `Default`.

func (ServerOutput) AutoGrowEnabled

func (o ServerOutput) AutoGrowEnabled() pulumi.BoolPtrOutput

Enable/Disable auto-growing of the storage. Storage auto-grow prevents your server from running out of storage and becoming read-only. If storage auto grow is enabled, the storage automatically grows without impacting the workload. Defaults to `true`.

func (ServerOutput) BackupRetentionDays

func (o ServerOutput) BackupRetentionDays() pulumi.IntOutput

Backup retention days for the server, supported values are between `7` and `35` days.

func (ServerOutput) CreateMode

func (o ServerOutput) CreateMode() pulumi.StringPtrOutput

The creation mode. Can be used to restore or replicate existing servers. Possible values are `Default`, `Replica`, `GeoRestore`, and `PointInTimeRestore`. Defaults to `Default`.

func (ServerOutput) CreationSourceServerId

func (o ServerOutput) CreationSourceServerId() pulumi.StringPtrOutput

For creation modes other than `Default`, the source server ID to use.

func (ServerOutput) ElementType

func (ServerOutput) ElementType() reflect.Type

func (ServerOutput) Fqdn

func (o ServerOutput) Fqdn() pulumi.StringOutput

The FQDN of the PostgreSQL Server.

func (ServerOutput) GeoRedundantBackupEnabled

func (o ServerOutput) GeoRedundantBackupEnabled() pulumi.BoolPtrOutput

Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup storage in the General Purpose and Memory Optimized tiers. When the backups are stored in geo-redundant backup storage, they are not only stored within the region in which your server is hosted, but are also replicated to a paired data center. This provides better protection and ability to restore your server in a different region in the event of a disaster. This is not support for the Basic tier. Changing this forces a new resource to be created.

func (ServerOutput) Identity

An `identity` block as defined below.

func (ServerOutput) InfrastructureEncryptionEnabled

func (o ServerOutput) InfrastructureEncryptionEnabled() pulumi.BoolPtrOutput

Whether or not infrastructure is encrypted for this server. Changing this forces a new resource to be created.

> **NOTE:** This property is currently still in development and not supported by Microsoft. If the `infrastructureEncryptionEnabled` attribute is set to `true` the PostgreSQL instance will incur a substantial performance degradation due to a second encryption pass on top of the existing default encryption that is already provided by Azure Storage. It is strongly suggested to leave this value `false` as not doing so can lead to unclear error messages.

func (ServerOutput) Location

func (o ServerOutput) Location() pulumi.StringOutput

Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

func (ServerOutput) Name

func (o ServerOutput) Name() pulumi.StringOutput

Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.

func (ServerOutput) PublicNetworkAccessEnabled

func (o ServerOutput) PublicNetworkAccessEnabled() pulumi.BoolPtrOutput

Whether or not public network access is allowed for this server. Defaults to `true`.

func (ServerOutput) ResourceGroupName

func (o ServerOutput) ResourceGroupName() pulumi.StringOutput

The name of the resource group in which to create the PostgreSQL Server. Changing this forces a new resource to be created.

func (ServerOutput) RestorePointInTime

func (o ServerOutput) RestorePointInTime() pulumi.StringPtrOutput

When `createMode` is `PointInTimeRestore` the point in time to restore from `creationSourceServerId`. It should be provided in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) format, e.g. `2013-11-08T22:00:40Z`.

func (ServerOutput) SkuName

func (o ServerOutput) SkuName() pulumi.StringOutput

Specifies the SKU Name for this PostgreSQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/rest/api/postgresql/singleserver/servers/create#sku). Possible values are `B_Gen4_1`, `B_Gen4_2`, `B_Gen5_1`, `B_Gen5_2`, `GP_Gen4_2`, `GP_Gen4_4`, `GP_Gen4_8`, `GP_Gen4_16`, `GP_Gen4_32`, `GP_Gen5_2`, `GP_Gen5_4`, `GP_Gen5_8`, `GP_Gen5_16`, `GP_Gen5_32`, `GP_Gen5_64`, `MO_Gen5_2`, `MO_Gen5_4`, `MO_Gen5_8`, `MO_Gen5_16` and `MO_Gen5_32`.

> **NOTE:** When replication is set up and `skuName` is changed to a higher tier or more capacity for the primary, all replicas are scaled up to the same tier/capacity. This is an Azure requirement, for more information see the [replica scaling documentation](https://docs.microsoft.com/azure/postgresql/concepts-read-replicas#scaling)

func (ServerOutput) SslEnforcementEnabled

func (o ServerOutput) SslEnforcementEnabled() pulumi.BoolOutput

Specifies if SSL should be enforced on connections. Possible values are `true` and `false`.

> **NOTE:** `sslMinimalTlsVersionEnforced` must be set to `TLSEnforcementDisabled` when `sslEnforcementEnabled` is set to `false`.

func (ServerOutput) SslMinimalTlsVersionEnforced

func (o ServerOutput) SslMinimalTlsVersionEnforced() pulumi.StringPtrOutput

The minimum TLS version to support on the sever. Possible values are `TLSEnforcementDisabled`, `TLS1_0`, `TLS1_1`, and `TLS1_2`. Defaults to `TLS1_2`.

func (ServerOutput) StorageMb

func (o ServerOutput) StorageMb() pulumi.IntOutput

Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `16777216` MB(16TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/azure/postgresql/concepts-pricing-tiers#storage).

func (ServerOutput) Tags

A mapping of tags to assign to the resource.

func (ServerOutput) ThreatDetectionPolicy

func (o ServerOutput) ThreatDetectionPolicy() ServerThreatDetectionPolicyPtrOutput

Threat detection policy configuration, known in the API as Server Security Alerts Policy. The `threatDetectionPolicy` block supports fields documented below.

func (ServerOutput) ToServerOutput

func (o ServerOutput) ToServerOutput() ServerOutput

func (ServerOutput) ToServerOutputWithContext

func (o ServerOutput) ToServerOutputWithContext(ctx context.Context) ServerOutput

func (ServerOutput) Version

func (o ServerOutput) Version() pulumi.StringOutput

Specifies the version of PostgreSQL to use. Valid values are `9.5`, `9.6`, `10`, `10.0`, `10.2` and `11`. Changing this forces a new resource to be created.

type ServerState

type ServerState struct {
	// The Administrator login for the PostgreSQL Server. Required when `createMode` is `Default`. Changing this forces a new resource to be created.
	AdministratorLogin pulumi.StringPtrInput
	// The Password associated with the `administratorLogin` for the PostgreSQL Server. Required when `createMode` is `Default`.
	AdministratorLoginPassword pulumi.StringPtrInput
	// Enable/Disable auto-growing of the storage. Storage auto-grow prevents your server from running out of storage and becoming read-only. If storage auto grow is enabled, the storage automatically grows without impacting the workload. Defaults to `true`.
	AutoGrowEnabled pulumi.BoolPtrInput
	// Backup retention days for the server, supported values are between `7` and `35` days.
	BackupRetentionDays pulumi.IntPtrInput
	// The creation mode. Can be used to restore or replicate existing servers. Possible values are `Default`, `Replica`, `GeoRestore`, and `PointInTimeRestore`. Defaults to `Default`.
	CreateMode pulumi.StringPtrInput
	// For creation modes other than `Default`, the source server ID to use.
	CreationSourceServerId pulumi.StringPtrInput
	// The FQDN of the PostgreSQL Server.
	Fqdn pulumi.StringPtrInput
	// Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup storage in the General Purpose and Memory Optimized tiers. When the backups are stored in geo-redundant backup storage, they are not only stored within the region in which your server is hosted, but are also replicated to a paired data center. This provides better protection and ability to restore your server in a different region in the event of a disaster. This is not support for the Basic tier. Changing this forces a new resource to be created.
	GeoRedundantBackupEnabled pulumi.BoolPtrInput
	// An `identity` block as defined below.
	Identity ServerIdentityPtrInput
	// Whether or not infrastructure is encrypted for this server. Changing this forces a new resource to be created.
	//
	// > **NOTE:** This property is currently still in development and not supported by Microsoft. If the `infrastructureEncryptionEnabled` attribute is set to `true` the PostgreSQL instance will incur a substantial performance degradation due to a second encryption pass on top of the existing default encryption that is already provided by Azure Storage. It is strongly suggested to leave this value `false` as not doing so can lead to unclear error messages.
	InfrastructureEncryptionEnabled pulumi.BoolPtrInput
	// Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
	Location pulumi.StringPtrInput
	// Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.
	Name pulumi.StringPtrInput
	// Whether or not public network access is allowed for this server. Defaults to `true`.
	PublicNetworkAccessEnabled pulumi.BoolPtrInput
	// The name of the resource group in which to create the PostgreSQL Server. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringPtrInput
	// When `createMode` is `PointInTimeRestore` the point in time to restore from `creationSourceServerId`. It should be provided in [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) format, e.g. `2013-11-08T22:00:40Z`.
	RestorePointInTime pulumi.StringPtrInput
	// Specifies the SKU Name for this PostgreSQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/rest/api/postgresql/singleserver/servers/create#sku). Possible values are `B_Gen4_1`, `B_Gen4_2`, `B_Gen5_1`, `B_Gen5_2`, `GP_Gen4_2`, `GP_Gen4_4`, `GP_Gen4_8`, `GP_Gen4_16`, `GP_Gen4_32`, `GP_Gen5_2`, `GP_Gen5_4`, `GP_Gen5_8`, `GP_Gen5_16`, `GP_Gen5_32`, `GP_Gen5_64`, `MO_Gen5_2`, `MO_Gen5_4`, `MO_Gen5_8`, `MO_Gen5_16` and `MO_Gen5_32`.
	//
	// > **NOTE:** When replication is set up and `skuName` is changed to a higher tier or more capacity for the primary, all replicas are scaled up to the same tier/capacity. This is an Azure requirement, for more information see the [replica scaling documentation](https://docs.microsoft.com/azure/postgresql/concepts-read-replicas#scaling)
	SkuName pulumi.StringPtrInput
	// Specifies if SSL should be enforced on connections. Possible values are `true` and `false`.
	//
	// > **NOTE:** `sslMinimalTlsVersionEnforced` must be set to `TLSEnforcementDisabled` when `sslEnforcementEnabled` is set to `false`.
	SslEnforcementEnabled pulumi.BoolPtrInput
	// The minimum TLS version to support on the sever. Possible values are `TLSEnforcementDisabled`, `TLS1_0`, `TLS1_1`, and `TLS1_2`. Defaults to `TLS1_2`.
	SslMinimalTlsVersionEnforced pulumi.StringPtrInput
	// Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `16777216` MB(16TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/azure/postgresql/concepts-pricing-tiers#storage).
	StorageMb pulumi.IntPtrInput
	// A mapping of tags to assign to the resource.
	Tags pulumi.StringMapInput
	// Threat detection policy configuration, known in the API as Server Security Alerts Policy. The `threatDetectionPolicy` block supports fields documented below.
	ThreatDetectionPolicy ServerThreatDetectionPolicyPtrInput
	// Specifies the version of PostgreSQL to use. Valid values are `9.5`, `9.6`, `10`, `10.0`, `10.2` and `11`. Changing this forces a new resource to be created.
	Version pulumi.StringPtrInput
}

func (ServerState) ElementType

func (ServerState) ElementType() reflect.Type

type ServerThreatDetectionPolicy

type ServerThreatDetectionPolicy struct {
	// Specifies a list of alerts which should be disabled. Possible values are `Sql_Injection`, `Sql_Injection_Vulnerability`, `Access_Anomaly`, `Data_Exfiltration` and `Unsafe_Action`.
	DisabledAlerts []string `pulumi:"disabledAlerts"`
	// Should the account administrators be emailed when this alert is triggered?
	EmailAccountAdmins *bool `pulumi:"emailAccountAdmins"`
	// A list of email addresses which alerts should be sent to.
	EmailAddresses []string `pulumi:"emailAddresses"`
	// Is the policy enabled?
	Enabled *bool `pulumi:"enabled"`
	// Specifies the number of days to keep in the Threat Detection audit logs.
	RetentionDays *int `pulumi:"retentionDays"`
	// Specifies the identifier key of the Threat Detection audit storage account.
	StorageAccountAccessKey *string `pulumi:"storageAccountAccessKey"`
	// Specifies the blob storage endpoint (e.g. <https://example.blob.core.windows.net>). This blob storage will hold all Threat Detection audit logs.
	StorageEndpoint *string `pulumi:"storageEndpoint"`
}

type ServerThreatDetectionPolicyArgs

type ServerThreatDetectionPolicyArgs struct {
	// Specifies a list of alerts which should be disabled. Possible values are `Sql_Injection`, `Sql_Injection_Vulnerability`, `Access_Anomaly`, `Data_Exfiltration` and `Unsafe_Action`.
	DisabledAlerts pulumi.StringArrayInput `pulumi:"disabledAlerts"`
	// Should the account administrators be emailed when this alert is triggered?
	EmailAccountAdmins pulumi.BoolPtrInput `pulumi:"emailAccountAdmins"`
	// A list of email addresses which alerts should be sent to.
	EmailAddresses pulumi.StringArrayInput `pulumi:"emailAddresses"`
	// Is the policy enabled?
	Enabled pulumi.BoolPtrInput `pulumi:"enabled"`
	// Specifies the number of days to keep in the Threat Detection audit logs.
	RetentionDays pulumi.IntPtrInput `pulumi:"retentionDays"`
	// Specifies the identifier key of the Threat Detection audit storage account.
	StorageAccountAccessKey pulumi.StringPtrInput `pulumi:"storageAccountAccessKey"`
	// Specifies the blob storage endpoint (e.g. <https://example.blob.core.windows.net>). This blob storage will hold all Threat Detection audit logs.
	StorageEndpoint pulumi.StringPtrInput `pulumi:"storageEndpoint"`
}

func (ServerThreatDetectionPolicyArgs) ElementType

func (ServerThreatDetectionPolicyArgs) ToServerThreatDetectionPolicyOutput

func (i ServerThreatDetectionPolicyArgs) ToServerThreatDetectionPolicyOutput() ServerThreatDetectionPolicyOutput

func (ServerThreatDetectionPolicyArgs) ToServerThreatDetectionPolicyOutputWithContext

func (i ServerThreatDetectionPolicyArgs) ToServerThreatDetectionPolicyOutputWithContext(ctx context.Context) ServerThreatDetectionPolicyOutput

func (ServerThreatDetectionPolicyArgs) ToServerThreatDetectionPolicyPtrOutput

func (i ServerThreatDetectionPolicyArgs) ToServerThreatDetectionPolicyPtrOutput() ServerThreatDetectionPolicyPtrOutput

func (ServerThreatDetectionPolicyArgs) ToServerThreatDetectionPolicyPtrOutputWithContext

func (i ServerThreatDetectionPolicyArgs) ToServerThreatDetectionPolicyPtrOutputWithContext(ctx context.Context) ServerThreatDetectionPolicyPtrOutput

type ServerThreatDetectionPolicyInput

type ServerThreatDetectionPolicyInput interface {
	pulumi.Input

	ToServerThreatDetectionPolicyOutput() ServerThreatDetectionPolicyOutput
	ToServerThreatDetectionPolicyOutputWithContext(context.Context) ServerThreatDetectionPolicyOutput
}

ServerThreatDetectionPolicyInput is an input type that accepts ServerThreatDetectionPolicyArgs and ServerThreatDetectionPolicyOutput values. You can construct a concrete instance of `ServerThreatDetectionPolicyInput` via:

ServerThreatDetectionPolicyArgs{...}

type ServerThreatDetectionPolicyOutput

type ServerThreatDetectionPolicyOutput struct{ *pulumi.OutputState }

func (ServerThreatDetectionPolicyOutput) DisabledAlerts

Specifies a list of alerts which should be disabled. Possible values are `Sql_Injection`, `Sql_Injection_Vulnerability`, `Access_Anomaly`, `Data_Exfiltration` and `Unsafe_Action`.

func (ServerThreatDetectionPolicyOutput) ElementType

func (ServerThreatDetectionPolicyOutput) EmailAccountAdmins

Should the account administrators be emailed when this alert is triggered?

func (ServerThreatDetectionPolicyOutput) EmailAddresses

A list of email addresses which alerts should be sent to.

func (ServerThreatDetectionPolicyOutput) Enabled

Is the policy enabled?

func (ServerThreatDetectionPolicyOutput) RetentionDays

Specifies the number of days to keep in the Threat Detection audit logs.

func (ServerThreatDetectionPolicyOutput) StorageAccountAccessKey

func (o ServerThreatDetectionPolicyOutput) StorageAccountAccessKey() pulumi.StringPtrOutput

Specifies the identifier key of the Threat Detection audit storage account.

func (ServerThreatDetectionPolicyOutput) StorageEndpoint

Specifies the blob storage endpoint (e.g. <https://example.blob.core.windows.net>). This blob storage will hold all Threat Detection audit logs.

func (ServerThreatDetectionPolicyOutput) ToServerThreatDetectionPolicyOutput

func (o ServerThreatDetectionPolicyOutput) ToServerThreatDetectionPolicyOutput() ServerThreatDetectionPolicyOutput

func (ServerThreatDetectionPolicyOutput) ToServerThreatDetectionPolicyOutputWithContext

func (o ServerThreatDetectionPolicyOutput) ToServerThreatDetectionPolicyOutputWithContext(ctx context.Context) ServerThreatDetectionPolicyOutput

func (ServerThreatDetectionPolicyOutput) ToServerThreatDetectionPolicyPtrOutput

func (o ServerThreatDetectionPolicyOutput) ToServerThreatDetectionPolicyPtrOutput() ServerThreatDetectionPolicyPtrOutput

func (ServerThreatDetectionPolicyOutput) ToServerThreatDetectionPolicyPtrOutputWithContext

func (o ServerThreatDetectionPolicyOutput) ToServerThreatDetectionPolicyPtrOutputWithContext(ctx context.Context) ServerThreatDetectionPolicyPtrOutput

type ServerThreatDetectionPolicyPtrInput

type ServerThreatDetectionPolicyPtrInput interface {
	pulumi.Input

	ToServerThreatDetectionPolicyPtrOutput() ServerThreatDetectionPolicyPtrOutput
	ToServerThreatDetectionPolicyPtrOutputWithContext(context.Context) ServerThreatDetectionPolicyPtrOutput
}

ServerThreatDetectionPolicyPtrInput is an input type that accepts ServerThreatDetectionPolicyArgs, ServerThreatDetectionPolicyPtr and ServerThreatDetectionPolicyPtrOutput values. You can construct a concrete instance of `ServerThreatDetectionPolicyPtrInput` via:

        ServerThreatDetectionPolicyArgs{...}

or:

        nil

type ServerThreatDetectionPolicyPtrOutput

type ServerThreatDetectionPolicyPtrOutput struct{ *pulumi.OutputState }

func (ServerThreatDetectionPolicyPtrOutput) DisabledAlerts

Specifies a list of alerts which should be disabled. Possible values are `Sql_Injection`, `Sql_Injection_Vulnerability`, `Access_Anomaly`, `Data_Exfiltration` and `Unsafe_Action`.

func (ServerThreatDetectionPolicyPtrOutput) Elem

func (ServerThreatDetectionPolicyPtrOutput) ElementType

func (ServerThreatDetectionPolicyPtrOutput) EmailAccountAdmins

Should the account administrators be emailed when this alert is triggered?

func (ServerThreatDetectionPolicyPtrOutput) EmailAddresses

A list of email addresses which alerts should be sent to.

func (ServerThreatDetectionPolicyPtrOutput) Enabled

Is the policy enabled?

func (ServerThreatDetectionPolicyPtrOutput) RetentionDays

Specifies the number of days to keep in the Threat Detection audit logs.

func (ServerThreatDetectionPolicyPtrOutput) StorageAccountAccessKey

func (o ServerThreatDetectionPolicyPtrOutput) StorageAccountAccessKey() pulumi.StringPtrOutput

Specifies the identifier key of the Threat Detection audit storage account.

func (ServerThreatDetectionPolicyPtrOutput) StorageEndpoint

Specifies the blob storage endpoint (e.g. <https://example.blob.core.windows.net>). This blob storage will hold all Threat Detection audit logs.

func (ServerThreatDetectionPolicyPtrOutput) ToServerThreatDetectionPolicyPtrOutput

func (o ServerThreatDetectionPolicyPtrOutput) ToServerThreatDetectionPolicyPtrOutput() ServerThreatDetectionPolicyPtrOutput

func (ServerThreatDetectionPolicyPtrOutput) ToServerThreatDetectionPolicyPtrOutputWithContext

func (o ServerThreatDetectionPolicyPtrOutput) ToServerThreatDetectionPolicyPtrOutputWithContext(ctx context.Context) ServerThreatDetectionPolicyPtrOutput

type VirtualNetworkRule

type VirtualNetworkRule struct {
	pulumi.CustomResourceState

	// Should the Virtual Network Rule be created before the Subnet has the Virtual Network Service Endpoint enabled?
	IgnoreMissingVnetServiceEndpoint pulumi.BoolPtrOutput `pulumi:"ignoreMissingVnetServiceEndpoint"`
	// The name of the PostgreSQL virtual network rule. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen. Changing this forces a new resource to be created.
	//
	// > **NOTE:** `name` must be between 1-128 characters long and must satisfy all of the requirements below:
	//
	// 1. Contains only alphanumeric and hyphen characters
	// 2. Cannot start with a number or hyphen
	// 3. Cannot end with a hyphen
	Name pulumi.StringOutput `pulumi:"name"`
	// The name of the resource group where the PostgreSQL server resides. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
	// The name of the SQL Server to which this PostgreSQL virtual network rule will be applied to. Changing this forces a new resource to be created.
	ServerName pulumi.StringOutput `pulumi:"serverName"`
	// The ID of the subnet that the PostgreSQL server will be connected to.
	SubnetId pulumi.StringOutput `pulumi:"subnetId"`
}

Manages a PostgreSQL Virtual Network Rule.

> **NOTE:** PostgreSQL Virtual Network Rules [can only be used with SKU Tiers of `GeneralPurpose` or `MemoryOptimized`](https://docs.microsoft.com/azure/postgresql/concepts-data-access-and-security-vnet)

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("example-resources"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{
			Name: pulumi.String("example-vnet"),
			AddressSpaces: pulumi.StringArray{
				pulumi.String("10.7.29.0/29"),
			},
			Location:          example.Location,
			ResourceGroupName: example.Name,
		})
		if err != nil {
			return err
		}
		internal, err := network.NewSubnet(ctx, "internal", &network.SubnetArgs{
			Name:               pulumi.String("internal"),
			ResourceGroupName:  example.Name,
			VirtualNetworkName: exampleVirtualNetwork.Name,
			AddressPrefixes: pulumi.StringArray{
				pulumi.String("10.7.29.0/29"),
			},
			ServiceEndpoints: pulumi.StringArray{
				pulumi.String("Microsoft.Sql"),
			},
		})
		if err != nil {
			return err
		}
		exampleServer, err := postgresql.NewServer(ctx, "example", &postgresql.ServerArgs{
			Name:                       pulumi.String("postgresql-server-1"),
			Location:                   example.Location,
			ResourceGroupName:          example.Name,
			SkuName:                    pulumi.String("GP_Gen5_2"),
			StorageMb:                  pulumi.Int(5120),
			BackupRetentionDays:        pulumi.Int(7),
			AdministratorLogin:         pulumi.String("psqladmin"),
			AdministratorLoginPassword: pulumi.String("H@Sh1CoR3!"),
			Version:                    pulumi.String("9.5"),
			SslEnforcementEnabled:      pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		_, err = postgresql.NewVirtualNetworkRule(ctx, "example", &postgresql.VirtualNetworkRuleArgs{
			Name:                             pulumi.String("postgresql-vnet-rule"),
			ResourceGroupName:                example.Name,
			ServerName:                       exampleServer.Name,
			SubnetId:                         internal.ID(),
			IgnoreMissingVnetServiceEndpoint: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

PostgreSQL Virtual Network Rules can be imported using the `resource id`, e.g.

```sh $ pulumi import azure:postgresql/virtualNetworkRule:VirtualNetworkRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforPostgreSQL/servers/myserver/virtualNetworkRules/vnetrulename ```

func GetVirtualNetworkRule

func GetVirtualNetworkRule(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VirtualNetworkRuleState, opts ...pulumi.ResourceOption) (*VirtualNetworkRule, error)

GetVirtualNetworkRule gets an existing VirtualNetworkRule resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewVirtualNetworkRule

func NewVirtualNetworkRule(ctx *pulumi.Context,
	name string, args *VirtualNetworkRuleArgs, opts ...pulumi.ResourceOption) (*VirtualNetworkRule, error)

NewVirtualNetworkRule registers a new resource with the given unique name, arguments, and options.

func (*VirtualNetworkRule) ElementType

func (*VirtualNetworkRule) ElementType() reflect.Type

func (*VirtualNetworkRule) ToVirtualNetworkRuleOutput

func (i *VirtualNetworkRule) ToVirtualNetworkRuleOutput() VirtualNetworkRuleOutput

func (*VirtualNetworkRule) ToVirtualNetworkRuleOutputWithContext

func (i *VirtualNetworkRule) ToVirtualNetworkRuleOutputWithContext(ctx context.Context) VirtualNetworkRuleOutput

type VirtualNetworkRuleArgs

type VirtualNetworkRuleArgs struct {
	// Should the Virtual Network Rule be created before the Subnet has the Virtual Network Service Endpoint enabled?
	IgnoreMissingVnetServiceEndpoint pulumi.BoolPtrInput
	// The name of the PostgreSQL virtual network rule. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen. Changing this forces a new resource to be created.
	//
	// > **NOTE:** `name` must be between 1-128 characters long and must satisfy all of the requirements below:
	//
	// 1. Contains only alphanumeric and hyphen characters
	// 2. Cannot start with a number or hyphen
	// 3. Cannot end with a hyphen
	Name pulumi.StringPtrInput
	// The name of the resource group where the PostgreSQL server resides. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringInput
	// The name of the SQL Server to which this PostgreSQL virtual network rule will be applied to. Changing this forces a new resource to be created.
	ServerName pulumi.StringInput
	// The ID of the subnet that the PostgreSQL server will be connected to.
	SubnetId pulumi.StringInput
}

The set of arguments for constructing a VirtualNetworkRule resource.

func (VirtualNetworkRuleArgs) ElementType

func (VirtualNetworkRuleArgs) ElementType() reflect.Type

type VirtualNetworkRuleArray

type VirtualNetworkRuleArray []VirtualNetworkRuleInput

func (VirtualNetworkRuleArray) ElementType

func (VirtualNetworkRuleArray) ElementType() reflect.Type

func (VirtualNetworkRuleArray) ToVirtualNetworkRuleArrayOutput

func (i VirtualNetworkRuleArray) ToVirtualNetworkRuleArrayOutput() VirtualNetworkRuleArrayOutput

func (VirtualNetworkRuleArray) ToVirtualNetworkRuleArrayOutputWithContext

func (i VirtualNetworkRuleArray) ToVirtualNetworkRuleArrayOutputWithContext(ctx context.Context) VirtualNetworkRuleArrayOutput

type VirtualNetworkRuleArrayInput

type VirtualNetworkRuleArrayInput interface {
	pulumi.Input

	ToVirtualNetworkRuleArrayOutput() VirtualNetworkRuleArrayOutput
	ToVirtualNetworkRuleArrayOutputWithContext(context.Context) VirtualNetworkRuleArrayOutput
}

VirtualNetworkRuleArrayInput is an input type that accepts VirtualNetworkRuleArray and VirtualNetworkRuleArrayOutput values. You can construct a concrete instance of `VirtualNetworkRuleArrayInput` via:

VirtualNetworkRuleArray{ VirtualNetworkRuleArgs{...} }

type VirtualNetworkRuleArrayOutput

type VirtualNetworkRuleArrayOutput struct{ *pulumi.OutputState }

func (VirtualNetworkRuleArrayOutput) ElementType

func (VirtualNetworkRuleArrayOutput) Index

func (VirtualNetworkRuleArrayOutput) ToVirtualNetworkRuleArrayOutput

func (o VirtualNetworkRuleArrayOutput) ToVirtualNetworkRuleArrayOutput() VirtualNetworkRuleArrayOutput

func (VirtualNetworkRuleArrayOutput) ToVirtualNetworkRuleArrayOutputWithContext

func (o VirtualNetworkRuleArrayOutput) ToVirtualNetworkRuleArrayOutputWithContext(ctx context.Context) VirtualNetworkRuleArrayOutput

type VirtualNetworkRuleInput

type VirtualNetworkRuleInput interface {
	pulumi.Input

	ToVirtualNetworkRuleOutput() VirtualNetworkRuleOutput
	ToVirtualNetworkRuleOutputWithContext(ctx context.Context) VirtualNetworkRuleOutput
}

type VirtualNetworkRuleMap

type VirtualNetworkRuleMap map[string]VirtualNetworkRuleInput

func (VirtualNetworkRuleMap) ElementType

func (VirtualNetworkRuleMap) ElementType() reflect.Type

func (VirtualNetworkRuleMap) ToVirtualNetworkRuleMapOutput

func (i VirtualNetworkRuleMap) ToVirtualNetworkRuleMapOutput() VirtualNetworkRuleMapOutput

func (VirtualNetworkRuleMap) ToVirtualNetworkRuleMapOutputWithContext

func (i VirtualNetworkRuleMap) ToVirtualNetworkRuleMapOutputWithContext(ctx context.Context) VirtualNetworkRuleMapOutput

type VirtualNetworkRuleMapInput

type VirtualNetworkRuleMapInput interface {
	pulumi.Input

	ToVirtualNetworkRuleMapOutput() VirtualNetworkRuleMapOutput
	ToVirtualNetworkRuleMapOutputWithContext(context.Context) VirtualNetworkRuleMapOutput
}

VirtualNetworkRuleMapInput is an input type that accepts VirtualNetworkRuleMap and VirtualNetworkRuleMapOutput values. You can construct a concrete instance of `VirtualNetworkRuleMapInput` via:

VirtualNetworkRuleMap{ "key": VirtualNetworkRuleArgs{...} }

type VirtualNetworkRuleMapOutput

type VirtualNetworkRuleMapOutput struct{ *pulumi.OutputState }

func (VirtualNetworkRuleMapOutput) ElementType

func (VirtualNetworkRuleMapOutput) MapIndex

func (VirtualNetworkRuleMapOutput) ToVirtualNetworkRuleMapOutput

func (o VirtualNetworkRuleMapOutput) ToVirtualNetworkRuleMapOutput() VirtualNetworkRuleMapOutput

func (VirtualNetworkRuleMapOutput) ToVirtualNetworkRuleMapOutputWithContext

func (o VirtualNetworkRuleMapOutput) ToVirtualNetworkRuleMapOutputWithContext(ctx context.Context) VirtualNetworkRuleMapOutput

type VirtualNetworkRuleOutput

type VirtualNetworkRuleOutput struct{ *pulumi.OutputState }

func (VirtualNetworkRuleOutput) ElementType

func (VirtualNetworkRuleOutput) ElementType() reflect.Type

func (VirtualNetworkRuleOutput) IgnoreMissingVnetServiceEndpoint

func (o VirtualNetworkRuleOutput) IgnoreMissingVnetServiceEndpoint() pulumi.BoolPtrOutput

Should the Virtual Network Rule be created before the Subnet has the Virtual Network Service Endpoint enabled?

func (VirtualNetworkRuleOutput) Name

The name of the PostgreSQL virtual network rule. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen. Changing this forces a new resource to be created.

> **NOTE:** `name` must be between 1-128 characters long and must satisfy all of the requirements below:

1. Contains only alphanumeric and hyphen characters 2. Cannot start with a number or hyphen 3. Cannot end with a hyphen

func (VirtualNetworkRuleOutput) ResourceGroupName

func (o VirtualNetworkRuleOutput) ResourceGroupName() pulumi.StringOutput

The name of the resource group where the PostgreSQL server resides. Changing this forces a new resource to be created.

func (VirtualNetworkRuleOutput) ServerName

The name of the SQL Server to which this PostgreSQL virtual network rule will be applied to. Changing this forces a new resource to be created.

func (VirtualNetworkRuleOutput) SubnetId

The ID of the subnet that the PostgreSQL server will be connected to.

func (VirtualNetworkRuleOutput) ToVirtualNetworkRuleOutput

func (o VirtualNetworkRuleOutput) ToVirtualNetworkRuleOutput() VirtualNetworkRuleOutput

func (VirtualNetworkRuleOutput) ToVirtualNetworkRuleOutputWithContext

func (o VirtualNetworkRuleOutput) ToVirtualNetworkRuleOutputWithContext(ctx context.Context) VirtualNetworkRuleOutput

type VirtualNetworkRuleState

type VirtualNetworkRuleState struct {
	// Should the Virtual Network Rule be created before the Subnet has the Virtual Network Service Endpoint enabled?
	IgnoreMissingVnetServiceEndpoint pulumi.BoolPtrInput
	// The name of the PostgreSQL virtual network rule. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen. Changing this forces a new resource to be created.
	//
	// > **NOTE:** `name` must be between 1-128 characters long and must satisfy all of the requirements below:
	//
	// 1. Contains only alphanumeric and hyphen characters
	// 2. Cannot start with a number or hyphen
	// 3. Cannot end with a hyphen
	Name pulumi.StringPtrInput
	// The name of the resource group where the PostgreSQL server resides. Changing this forces a new resource to be created.
	ResourceGroupName pulumi.StringPtrInput
	// The name of the SQL Server to which this PostgreSQL virtual network rule will be applied to. Changing this forces a new resource to be created.
	ServerName pulumi.StringPtrInput
	// The ID of the subnet that the PostgreSQL server will be connected to.
	SubnetId pulumi.StringPtrInput
}

func (VirtualNetworkRuleState) ElementType

func (VirtualNetworkRuleState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL